vb程序范文
時間:2023-04-06 05:57:53
導語:如何才能寫好一篇vb程序,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
【關鍵詞】界面設計 代碼設計 算法
1 引言
程序設計不僅是一門科學而且是一門藝術,它有較強的創造性和靈活性,也是學生較難掌握的技能。一方面程序設計本身枯燥、嚴謹,難以理解,另一方面更主要的是教師在組織程序設計教學中缺乏針對性,沒充分考慮學生的知識水平、認知規律、學習特點和接受能力。
Visual Basic,是一種面向對象的程序設計語言,編寫應用程序快捷高效,是職中計算機專業的必修科目。在這門課的教學實踐中,我緊緊抓住界面設計和程序代碼設計兩大環節,打破教材原有以知識的邏輯結構體系為順序組織課堂教學的方式,以教授程序設計的基本方法為主線,從具體問題入手,由淺入深,由簡及繁,循序漸進,介紹解決問題的方法,最后引出概念和結論,取得良好教學效果。
2 界面設計
在面向對象程序設計語言教學中,界面設計是一項很重要的工作,程序是否簡便易用,與界面的質量有很大關系,而界面中的對象屬性會影響對象的外觀及功能,因此,對象的屬性設置在界面設計教學中要重點加以訓練。我設計了如下的界面,讓學生和我一起完成。
題目要求任意輸入兩數,求這兩數的和(或差、或積、或商),實際是完成一個簡單的計算器。
2.1 建立應用程序界面
(1)啟動 vb。
(2)加入兩個文本框。
(3)加入四個運算按鈕。
(4)加入兩個標簽框。
在界面設計教學中,學生通過自己的實際操作,很容易就掌握了如何在界面內添加對象,如何改變對象位置,以及如何設置對象的屬性。通過幾次針對性的練習,學生對屬性的設置不會有太大問題。
2.2 設置各控件的屬性
如表1。
2.3 編寫代碼
當程序運行后整個系統處于相對“靜止”,等待輸入,當輸入數據后,單擊四個按鈕中的任一個時,則引發Label2的Caption屬性變化,由原來的內容改為兩文本框中內容的和(或差、或積、或商),因此,必須在四個按鈕中的Click(單擊)事件中加入適當的代碼,使Label2的Caption發生變化。
編寫“+”代碼的操作方法:
(1)雙擊“+”按鈕。
(2)在Command1_Click()過程中加入以下一行代碼。
Private Sub Command1_Click()
Label2.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub
通過此例,很容易便可掌握屬性值在代碼中的設置。其它按鈕控件仿照以上方法,讓學生自行完成。
3 程序代碼設計
程序設計主要學習的是編程本身的思想,學習的效果不能馬上看到,但是可以學到扎實的基本功,如強化邏輯分析和建立數學模型的能力;數據結構和算法知識;豐富的實踐經驗。針對客觀實際,我在VB教學中采取了以下幾個措施。
3.1 密切聯系實際,激發學生學習興趣
職中學生相當一部分文化基礎差,對概念理解力差,發現問題與解決問題的能力較低,對學習興趣不高,課堂注意力容易分散,知識掌握不牢固。因此在程序設計教學中我放低教學起點,降低教學難度,培養他們的學習興趣,讓他們學得輕松,學有所獲,感受成功。
3.2 編程教學中淡化語句教學,注重算法教學,貫徹結構化程序設計思想
程序的長短、變量的多少不是判斷一個程序好環的標準,算法的清晰易懂才是最主要的。同時要強調VB面向對象的結構化程序設計思想,如下例,“給100個整數,打印輸出其中的素數”結合算法將一個大任務分解成若干“功能模塊”。
3.3 從不同角度看同一問題,把握問題實質
程序設計可以通過不同的算法、語句設計出不同的程序而解決同一個問題。一個程序的好壞關鍵在于這個程序是否簡潔明確、結構清晰和高效率。可把解決同一問題的A程序、B程序或C程序的不同地方加以分析和歸類,向學生展示講解,從而加深學生印象。如在講授循環結構時,同一例題就可用DO、While…Wend、Do…While、Do…Until、For…Next五種語句來實現。可以適當的加以提示,鼓勵學生用不同的語句來設計程序解決問題。最后給予總結和提煉,明確哪種方法簡潔、易讀,哪種方法運行速度快,哪種方法靈活。
總之,教學有法,教無定法,只要教學得法。如何培養學生學習興趣,改進教學方法,使學生得到發展是我們長期而艱巨的任務,圍繞著這個任務,在保護學生學習積極性的前提下,按照學生的認知規律組織教學,一切可行的教學方法都可在我們的教學過程中加以運用。
參考文獻
[1]朱海紅.程序設計的教學要講究方法[J].新課程導學,2011.
[2]申然.我在進行VB程序設計教學過程中的幾點嘗試[J].文教資料,2006.
作者簡介
謝翠芬(1976-),女,廣東省佛山市人。現為佛山市華材職業技術學校計算機中學一級教師,主要從事計算機科學教育改革研究。
篇2
關鍵詞:VB程序設計;現代教育;實踐與改革
Visual Basic程序設計作為一門程序設計語言,在教學過程中,應用和研發的特征比較明顯,而初學者總是感覺程序設計比較枯燥無味、難于理解、入門困難,甚至對其產生畏難厭學情緒。教學中筆者利用現代教育技術手段,對傳統的教學方法進行改革,實踐探索出了一套行之有效的教學策略,取得了良好的教學效果。
一、著力培養學生學習興趣,上好VB入門課
1.課前強調程序設計的重要性,充分調動學生的求知欲
在講授該課程之前,結合學生實際所學專業,事先準備幾個VB開發的應用程序或是信息管理系統,第一節課上課時通過多媒體演示,讓學生明白程序設計的重要性和實用性,樹立明確的學習目標:學習VB不只是達到計算機應用能力的考核要求,更是今后工作、生活中不可或缺的一項基本技能。學生了解了學習目標之后,就會迫切地想自己去嘗試程序設計,這樣學生學習程序設計的積極性就被調動起來了。
2.揭開程序設計的神秘面紗,開始學習之旅
初學者在學完計算機應用基礎后,對計算機的運行原理還是似懂非懂,在這樣的前提下,開設VB程序設計課,學生想到要自己編寫程序代碼來控制計算機完成一項任務更是一頭霧水。通過長期的教學實踐筆者得出的結論是,要解決這一問題,主要是要在學習者腦海中樹立“萬丈高樓平地起”的思想:即無論多復雜的程序都是由基本語句積累起來的,而基本語句是很容易掌握的。例如,借助Windows畫圖程序講解一個簡易調色板程序,改變文本框背景顏色只需要一行語句:Text1.backcolor=VBred即可實現。教師在給出VB顏色描述的關鍵字后,進一步要求學生實現其他顏色的編程。同時,在教學之初,教師還可以通過一些簡單有趣的實例講解來幫助學生正確認識VB程序設計的基本步驟和方法。
3.鼓勵學生克服程序設計的畏難情緒,激發其學習興趣
學生通過兩周的學習,對VB程序設計會有初步的了解,如VB基礎開發環境、對象、方法、事件等概念,但教學之初所形成的學習欲望會逐漸冷卻,再加之VB的每一個對象都有許多個屬性,而且全是英文,晦澀而抽象的概念和英文描述很容易使學生產生畏難情緒,甚至厭學。此時特別需要教師對學生進行鼓勵、指導,引導學生明白雖然每個對象具有自己的屬性,但各對象之間有大部分屬性是相同的,并且這些屬性中常用的只有一小部分,很容易就能掌握;另外程序代碼的書寫雖然看似神秘,但掌握了語法格式后很容易編寫。
二、改革教學方法和教學手段,提高教學質量
1.從生活實際入手,將抽象的理論形象化
人類社會的理論知識都是日常生活中發現總結出來的,而VB程序設計作為一門課程也是前人在不斷的實踐中完善和發展起來的,必然和日常生活有著密切的聯系。如果能將VB程序設計的教學過程同生活實際聯系起來,原本枯燥抽象的理論就會變得形象生動、通俗易懂,易于學生接受。例如在講解VB變量的命名時可以聯系實際生活中起名的習慣來類比展開,“變量命名必須以字母打頭”這一原則如同我們的名字必須以姓氏打頭;變量起名時不能用關鍵字如if,for等,如同我們起名時不會用燈管、茶幾等名詞;變量在其有效范圍內必須唯一,如同我們一個家庭的弟兄倆不應重名。只要將理論與生活有機地結合,找出理論在生活中的原型,教師講課也感到輕松,學生聽起來也容易理解,實踐證明這可以取得事半功倍的效果。
2.利用現代教育手段,提高課堂教學質量
VB程序設計學習的特點是實踐性強,所有的理論最終都要以寫好的程序為結果。而傳統的黑板+粉筆的教學手段使教師將程序代碼寫在黑板上講解無異于畫餅充饑,無法向學生展示程序運行的結果,特別是容易出錯的地方不能驗證,因此充分利用多媒體投影等現代教育技術手段是非常實用且必要的。一是利用多媒體授課,恰當的課件不僅可以提高學生的學習興趣,還能把程序結果實時地展示給學生,增大了課堂教學的信息量,使講授內容形象、直觀,這樣的教學過程學生聽得清、看得切、記得牢、印象深,原本在課堂上聽起來非常枯燥乏味的內容就會變得充滿樂趣。二是采用實踐型授課,在計算機實驗室利用電子教室進行教學,即采用邊講邊練的授課形式,學生對學習的程序進行現場操作,將理論講授和上機實踐融為一體,使講解更直觀、更清晰、更具吸引力,同時教師還可以隨時發現學生實際操作中的問題,給予及時的指導,從而有效提高教學質量。
三、創新評價方式,鞏固教學成果
課程的教學質量是平時教與學質量的總體體現,課程考核是對學習者知識、技能和能力的綜合評價。VB程序設計由于其特有的實踐性強而有別于其他課程,采用單純筆試的評價方法不能全面、準確地衡量教學質量。通過實踐發現,VB課程考核方法的改革思路是在現有的考核基礎上,注重對學生過程性評價和實踐操作能力的評價,即采用“理論(40%)+上機(40%)+過程性考核(20%)”的綜合性考核模式。
四、結束語
總之,教學工作是一項艱巨的任務,還需要在長期的教學實踐中不斷改革舊的教學模式,并結合學生實際情況,去探索研究,尋找新的、行之有效的教學方法和手段,綜合評價學生,努力培養學生自主學習的興趣,只有這樣才能提高學生實際應用的能力,VB課程的教學質量才能得到不斷的提高。
參考文獻:
篇3
關鍵詞:VB程序設計;教學方法;改革
中圖分類號:G642.0 文獻標識碼:B 文章編號:1009-9166(2010)029(C)-0123-01
引言:Visual Basic(下面簡稱VB)程序設計是我校計算機相關專業學生的必修課,然而VB語言枯燥、難以理解,學生缺乏相應的知識背景,導致學生對這門課有恐懼心理,缺乏興趣。這就要求我們教師在教學中分析、摸索出一些較為行之有效的教學方法,才有可能培養學生程序設計能力,掌握一門技能,激發學生對程序設計的興趣。筆者在近幾年的教學實踐中進行了如下改革探索,取得了良好的教學效果。
一、教學改革與實施
(一)采用實例教學法,激發學生的學習興趣
VB程序設計語言所涉及的內容多,控件的屬性、事件、方法也很多。要讓學生對這些概念有一定深度的理解和掌握是比較困難的。時間一長,就會影響學生學習的積極性與主動性。因此在教學中,我從實例入手,采用實例作為知識的載體,選擇學生感興趣的問題作為實例,通過讓學生親眼觀看、親手模仿,在實際操作中親自去體會和領悟這些概念。
(二)采用循序漸進方法,培養學生創新思維
知識的學習是一個循序漸進的過程。在教學過程中,我們可以先從簡單的實例出發,再增加或者改變實例的條件,逐漸加深難度,以此培養學生的創新思維,提高學生對程序的分析與編寫能力。這里仍以10!這個實例來看,這是我們講授For…Next循環時的一個典型實例,這段程序在學生弄懂For…Next循環語句之后,理解起來并不困難。但為加深學生對語句的理解程度,提高學生舉一反三的能力,要求學生對原程序條件做如下幾種變化:
(1)求1到10之間所有數的和
(2)求1到100之間所有數的和
(3)求1到100之間所有奇數的和,步長為2
(4)求1到100之間所有奇數的和,步長為1
這里第(1)小題和實例中原程序相比難度不大,學生已學會根據數據范圍定義數據類型,很快寫出如下代碼:
Dim S As Integer
Dim I As Integer
S=0
For I=1 To 10
S=S+I
Next I
Print"S=";S
第(2)小題將(1)題程序中I的終值改為100即可,學生理解終值在這一循環語句中的作用。第(3)小題增加了難度,需要動腦筋思考,將(2)題程序中For I=1 to 100語句改為For I=1 to 100 step2,才能得到奇數的相加,而且步長為2,掌握步長step在循環語句中的用法與作用。第(4)小題難度更大,要求奇數和,步長為1,做兩點變化:一要寫出For I=0 To 49,二要修改循環體,將循環體語句變為S=S+(2×I+1)。要做到這些變化,需要學生對For…Next循環語句有比較深刻的理解并能創造性地、靈活地予以運用。通過這種循序漸進的方式,激發了學生主動思考與解決問題的積極性,鞏固了教學效果,提高了學生的綜合編程能力。
(三)注重實踐教學,培養學生實踐能力
VB是一門實踐性很強的課程,如果只紙上談兵,不上機練習,是不可能真正掌握VB程序開發的。實踐教學主要注意抓住以下幾點:
(1)模仿階段,對課堂核心實例系統的調試、改進。核心實例的每次增強版是全面反映教學內容的,學生通過模仿、知識再現達到在實踐中領悟知識,開拓編程思路。(2)分層次階段,在教學過程實施的開始,和核心實例同步,我就給出了幾個類似核心實例的課程設計內容,供學生選擇。對核心實例的調試比較成功的,可以同步實施自己所學的課程設計內容,達到培養學生分析問題和解決問題的能力。對掌握核心實例有困難的學生,針對教學內容重新布置實驗,強化知識鞏固。課程設計內容課后上機完成。
要掌握上面兩個階段的具體情況,教師應親自指導,與學生一起上機實驗,隨時監控學生實驗過程。對學生提出的問題及時予以指導,而發現學生常犯的共性錯誤,可在理論課上進行點評。
(四)改革考核形式,體現學生綜合運用能力
考試作為教學效果的一種客觀測試手段,是教學中的一個重要環節。我們根據VB的課程特點,在傳統的期末閉卷筆試考核之外,增加了平時考核、實驗考核和課程設計考核的內容。平時成績占10%,期末閉卷考核成績占40%,實驗成績占20%,課程設計成績占30%。對于課程設計,在課程即將結束的前兩周,將所有的學生分成若干小組,讓各小組分別選擇不同的課題來設計,例如開發一個檔案管理系統、圖書管理系統。實踐證明,這種綜合考核方法不僅檢驗了學生把所學知識、技能進行條理化、系統化以及綜合運用的能力,而且對調動學生的學習積極性,提高學習興趣,客觀、公正地評價該門課程的教學質量和效果都起到了很好的促進作用。
二、結束語
篇4
關鍵詞:VB程序設計;實例教學;任務驅動
中圖分類號:TP312.1-4 文獻標識碼:A文章編號:1007-9599 (2011) 09-0000-01
How to Teach the VB Programming
Tao Lei
(Anshun Vocational Technology College,Anshun561000,China)
Abstract:The VB programming is the computer application research group's high-quality goods curriculum,the author studies the very good this class here the teaching method.Through with prominent teacher's exchange and the self-study,the author discovered that the VB example teaching,is actuates the student to learn this class the key.
Keywords:VB programming;Cases teaching;Task-driven
VB程序設計是一門非常容易上手的程序設計語言課程,只要潛心學習,不難提高編程能力,屬于我系計算機專業學生必修課。但是在教學入門階段,VB程序設計難免會像所有程序設計語言課程一樣枯燥、難懂,不容易提起學生興趣,這樣也就無法帶領學生繼續走下去。本文就實例演示結合任務驅動的方法,使學生在教學過程中能積極主動的探索和學習。
一、教學以實例為主導
大家都知道計算機專業中的課程大都是操作性強的課程,比如電腦的安裝與維護,一個理論知識掌握良好的學生可能還不如一個電腦城打工一兩天的學徒。老師如果只是照本宣科,不提供電腦進行實地拆卸和安裝練習,那學生是永遠學不好這門課程的。在學習VB的過程中也一樣,我們以必須結合大量的實例演示,讓同學們真正體會到VB的可視化設計和它的實用性。作為程序語言設計課程,VB這門課程的教材還是以理論知識為主,特別是在VB課程的入門階段,在理論課程的授課中,教師首先是給學生詳細的介紹各個控件,只有知道每個控件各自的作用以及使用方法以后我們才可以在VB中創造我們自己的程序。然而在控件介紹的過程中如果只是理論知識不斷堆砌的話,活潑好動的學生們勢必厭煩,甚至厭學。雖然教科書在這個部分的實例不多,但老師必須要突破這個框框,設計出和每一個控件有關的有趣實例來開展教學,這樣會達到事半功倍的效果。用實例作為上課開場導入就是不錯的方法,比如學習TEXT的時候,就用一個時隱時現的古詩句做開場,問學生這是怎么做的;學習TIMER的時候,演示一個顯示當前時間的條幅,學生一定好奇這是怎么來的。這時候只要稍做講解他們一定會躍躍欲試,實例激發了同學們學習程序設計的興趣,從而有了創作出自己的程序的需求。而當創作過程遇到的還沒學到的指令代碼后,他們也會主動問老師和自己查詢,這也為我的后期教學打下好的基礎。
二、練習以實例為中心
學車的人不上車就學不會駕駛,游泳的人不下水也學不會游泳。我們的學生如果不用實際操作例子讓他們練習,那么VB的知識只能停留在書本上。VB程序設計的教學安排為每周四到六學時,其中一半是理論講解課,一半是上機實踐操作課。筆者認為上機操作如果不采用貼合實際的例子來訓練而只是遵照書本的話,學生學無可用,并且也打擊了他們的學習主動性。所以在生活中去尋找例子,在課余時間提煉編程心得是筆者備課的主要內容。比如書本上有一個股票分析系統的訓練,因為學生對這方面很生疏,不太了解,筆者就改成班費管理系統,學生們對這塊是再熟悉不過的,而且編好系統馬上就可以投入使用,所以大家的積極性、主動性都很高,做完訓練非常有成就感,進而很喜歡這門課程。
三、任務驅動法完善教學
當然由于我們學院學生的思想還不夠成熟,自我控制能力相對來說還是比較差,因此自覺性還不夠好,為了監督他們很好的學習、認真的實踐,筆者采用了任務驅動法開展教學,每次課都留兩個任務,第一個任務是完全模仿筆者的課堂實例上機操作,以加強對本節課課程內容的理解并熟練這些操作技巧,這項作業因而也比較容易完成,完成后給基本成績。第二個任務就是做過變化了的生活實例,同學們在做的時候需要舉一反三,還要會預習后面的知識,完成后給附加成績,不同程度的同學就可以根據自己的條件去安排任務。筆者認為雖然學生不可能每個人都對這門課程有濃厚的興趣,不可能以后都去從事專業的程序設計工作,但是通過這樣的任務安排至少大家都會努力去完成任務,不會厭學,棄學,而且一個學期過后作為計算機專業的學生,他們的基礎知識和技能是掌握的,并且還有一部分同學通過任務驅動真正踏上了程序設計之路。
以上的幾方面是筆者認為的主要教學方法。程序設計教學的主要目標是為了使同學們了解編程的基本思想,培養分析問題、解決問題的基本能力。圍繞著這個目標,在保證同學們學習積極性的前提下,按照他們的認知規律組織教學,一切有效的教學方法都可以在我們的教學過程中加以運用,進而使綜合素質得到整體提高,這是VB程序設計課程教學的最終目標。
采用實例教學實際上就是為了使課堂生動,提高學生的積極性、主動性,這種方法不僅在VB程序設計課程中可用,在我們的其他教學中,實例的運用依然是提高教學效果的保障。作為一名年輕的教育工作者,在兢兢業業提高自身知識水平的同時能夠摸索到適宜學生接受的教學方法,不會出現肚子里有水倒不出的尷尬,這也是筆者工作的重心和快樂所在。
參考文獻:
[1]倪飛舟.Visual Basic程序設計教程[M].2010,2(1):1
篇5
關鍵詞:VB;程序設計;改革;實踐
Abstract: Visual Basic programming as a public non-professional computer-based lessons, theory and practice strong, and teaching difficult. The article on how to improve the quality of teaching and training students in an integrated application development capabilities and explore reforms were made.
Key words: VB; programming; reform; practice
1 引言
Visual Basic(下面簡稱VB) 程序設計是我校非計算機專業學生的必修課,然而VB語言枯燥、難以理解,學生缺乏相應的知識背景,導致學生對這門課有恐懼心理,缺乏興趣。這就要求我們教師在教學中分析、摸索出一些較為行之有效的教學方法,才有可能培養學生程序設計能力,掌握一門技能,激發學生對程序設計的興趣。筆者在近幾年的教學實踐中進行了如下改革探索,取得了良好的教學效果。
2 教學改革與實施
2.1 對課本原有知識進行整合,激發學生的學習興趣
大部分的教材總是先講VB語言的基本語法,然后再講VB中對象的使用。但在講授時不宜將兩者分開,要把VB面向對象的程序設計方法,事件驅動的編程機制貫穿于整個教學過程中。VB中的對象主要用于構建界面,而具體程序功能的實現則要編寫代碼行,因此任何一個完整的應用程序都不可能只用對象或只用語法。這兩塊內容可進行穿插講解。這樣就避免了讓學生在毫無知識背景的情況下去理解抽象難懂的概念,挫傷他們編程的積極性。在教學過程中,我始終堅持以學生已有的知識程度為基礎,打破原有的以課本知識的邏輯結構為順序組織課堂教學的模式,先不講基本概念,改用從簡單的實例人手,通過讓學生觀看、模仿,在實際操作中去探究和領悟這些概念,并適時地加以歸納總結,讓學生在輕松愉快的氣氛中接受新知識。比如,在講到循環結構中DO——LOOP語句和FOR——NEXT語句的用法時,我用DO——LOOP語句的4種形式和FOR——NEXT語句實現求解N!的過程,讓學生去觀察、領悟它們的異同。
2.2 教學方法多樣化
筆者在教學實踐中,除了采用傳統的教學方法如:提問法、小組討論法外,主要采用以下教學方法:
1)錯例分析法
學生對變量、類型、運算符、表達式這些基本概念和語言規則的掌握需要一個過程,對算法和數據結構的知識需要不斷積累。學習過程中,能聽懂老師授課的內容,但自己編制的程序往往錯誤百出。課堂上,我經常將容易出錯的概念以反例形式展示給學生,讓他們找錯誤,通過運行。比如錯誤使用邏輯運算符。
假設a、b和c是三個變量。如果已知a
不能寫成:a < b < c 。
很多學生會錯誤延用數學上的概念,寫成后一種形式。
例 Option Explicit
Private Sub Command1_Click()
Dim a As Integer,b As Integer,c As Integer
a = -3: b = -2: c = -1
Print a < b And b < c
’顯示True
Print a < b < c
’顯示False
End Sub
為什么 a < b < c會得False?因為,VB在計算這個表達式時,先計算“a < b”部分,得True;再計算“True
通過諸如此類的反例教學,使學生豁然開朗,印象深刻。
2)零散實例和核心實例結合
零散實例教學法,對每個知識點的運用和理解是非常行之有效的,但對前后知識的貫穿缺乏說服力。筆者在教學改革實踐中體會到,除經典的零散實例外,將一個規模較大的、典型的、有實用價值的、學生感興趣的核心實例貫穿于教學全過程,對提高學生的編程能力非常幫助。所謂核心實例是指,實例從小到大、隨章節的展開而逐步成長,呈現為逐步進化的多個版本。比如引入一個貫串全書的問題:設計一個“圖書管理系統”。首先,用最基本的概念和最簡單的結構,給出該系統的第一個(也是最簡單的)版本,以后的每一次課,都對該系統提出新的功能和結構上的要求,并用本次課介紹的新概念和新方法對它進行功能上的擴充和結構上的改進。每次得到該系統的一個增強的新版本。為達到設計目標,學生隨著教學的進程,可以積極投入到對實例系統的調試、改進的實踐中,逐漸掌握了所學的基本知識,同時也提高了編程能力。
2.3 重視實踐教學,培養學生綜合應用程序開發能力
VB 是一門實踐性很強的課程,如果只紙上談兵,不上機練習,是不可能真正掌握VB 程序開發的。實踐教學主要注意抓住以下幾點:
(1)模仿階段,對課堂核心實例系統的調試、改進。核心實例的每次增強版是全面反映教學內容的,學生通過模仿、知識再現達到在實踐中領悟知識,開拓編程思路。
(2)分層次階段,在教學過程實施的開始,和核心實例同步,我就給出了幾個類似核心實例的課程設計內容,供學生選擇。對核心實例的調試比較成功的,可以同步實施自己所學的課程設計內容,達到培養學生分析問題和解決問題的能力。對掌握核心實例有困難的學生,針對教學內容重新布置實驗,強化知識鞏固。課程設計內容課后上機完成。
要掌握上面兩個階段的具體情況,教師應親自指導,與學生一起上機實驗,隨時監控學生實驗過程。對學生提出的問題及時予以指導,而發現學生常犯的共性錯誤,可在理論課上進行點評。
2.4 培養學生使用標準編碼,養成良好編程習慣
在程序設計過程中,使用標準編碼可以避免一些不必要的錯誤。筆者在授課過程當中使用標準編碼的實例,在講解實例過程中對學生進行適當地引導,讓學生養成一個良好的編程習慣。
程序書寫規范是非常重要問題,不僅書寫格式應該結構層次分明,而且程序里面應添加起碼的注釋。不按照標準書寫程序會增加別人查看程序的難度,同時也不利于自己以后上機調試修改。強調學生避免使用Visual Basic 中的隱式操作,養成顯式編碼的習慣。比如永遠使用Option Explicit,嚴格執行變量先定義后使用的原則。避免使用缺省屬性,明確指出是在引用對象還是在引用對象屬性。
3 結束語
一門課程的教學是一個復雜的系統工程,筆者將以上一些改革和探索用在課堂教學和實踐教學中,取得了一些效果,但教學有法,教無定法,只要教學得法。在教學實踐中,合理運用多種教學方法,靈活地、創造性地掌握教學過程,激發學生的興趣,培養學生的創造性思維和綜合應用程序開發能力。
參考文獻
[1] 王棟.Visual Basic程序設計實用教程(第3版).北京:清華大學出版社 2007
篇6
[關鍵詞]教學方法 程序設計 對象 能力
Visual Basic 是一門面向對象的可視化編程語言,它的應用非常廣泛,可以開發科學計算、數據庫管理、客戶/服務器模式、Internet/Intranet等多個領域的應用程序,它簡單易學、功能強大、應用廣泛,是一門實用性很強的課程。
程序設計課程的設置,是培養中職生職業技能的一個重要手段之一。但是對于學生們來說,程序設計的思維方式和概念都是全新的,學生接受起來比較困難,在教學中如何緊緊圍繞Visual Basic應用程序開發的界面設計、屬性設置和代碼編寫三個環節,由簡及繁、由淺入深、循序漸進地開展教學,每個教師都在摸索著以尋求一個最佳方案。通過幾年來的VB教學實踐,我談一談自己在教學中使用的方法。
(一)努力培養學生興趣
俗話說:興趣是最好的老師。在程序設計教學中要利用學生對事物的好奇心,選擇一些有趣的、有實際意義的程序,激發學生的學習興趣。為了激發學生的興趣,在VB程序設計中的第1堂課,先不講理論知識,而是演示一些有趣的實例如動畫效果蝴蝶飛舞、移動字幕等、計算器,記事本等小實用程序,給學生一個視覺沖擊,吸引他們,并告訴他們學習了VB程序設計后,大家都能夠編出這些小程序,來充分調動學生的學習積極性,迎合了學生渴望成功的心理特點。
(二)立足具體實例,滲透基本概念
剛接觸程序設計的中職學生,對程序設計充滿了好奇,如果教材把對象、事件、控件等一大堆的概念放在前面講,一下子引入大量抽象的名詞、概念,就會打擊學生的學習興趣。因此要想讓學生領會這些抽象的概念,教學中應以一個個鮮活的具體實例為切入點,在每個例子中適時、適量滲透一些相關的概念和知識,讓學生在做中學,在學中做,使學生在完成任務的過程中,逐漸地、很自然地去體會控件、對象、事件的概念。為了讓學生靈活掌握每個控件的用法,教學中要安排足夠的課時把這些控件的用法滲透到一個個程序實例中,由淺入深逐漸介紹,讓學生在編寫程序的過程中總結控件的用法。
(三)分解難點,逐個掌握
在VB程序設計的三大環節中,重點難點是編寫代碼。代碼不要一次性給出,而是通過逐步實現各個功能,再組合程序(若程序較復雜,還應給出流程圖),實現加強功能,這樣學生才能真正理解結構化程序設計的特點,并且把難點進行了分解。最好在編寫程序代碼的過程中設想好一些以往學生常見的、典型的錯誤,以便通過調試工具進行找錯并修改,可以讓學生加深對知識點的掌握,以后也不會再犯同樣的錯誤。
(四)注意因材施教,發揮學生特長
由于中職學生基礎和能力的差異,在進行教學時,應根據學生的具體情況制定不同的目標,提出不同的要求,充分調動每個學生的學習積極性,這樣才能達到應有的效果。一學到程序設計,學生的兩極分化就會特別嚴重。有些學生對程序設計特別感興趣,喜歡編程,有時會編出讓教師都驚訝的程序,而有些學生則是根本不愿意學習,這時就要在整體教學中注意兼顧個別學生。例如教材中的習題可以分為必做題和選做題,可以發揮優秀學生的內在潛力,同時也可以調動中等學生的學習積極性。在教學的過程中,學生個體的差異性不可避免,如果每個學生的問題都要教師來解決的話,不僅課堂時間不允許,而且顧此失彼,還會影響課堂秩序。教師可以讓成績好的學生去輔導后進生,不僅可以減輕教師負擔,同時也加強了學生之間的編程思想的交流。這既遵循了信息技術學科強調的團結合作的精神,又解決了現實問題。
(五)養成動態思維習慣
為了培養學生的邏輯思維能力和抽象思維能力,在程序設計教學中可以有意識的在以下幾個方面給予關注:①對于一些比較簡單的程序要求同學們直接寫出結果;②對于有循環或判斷結構的程序,要求學生根據條件一步步向前走,把循環過程寫下來;③故意給出一些錯誤的程序,給學生設計一些陷阱,讓學生自己去發現;④讓學生把書本中程序編寫錯了的地方改正過來。
(六)通過課程設計,培養學生的程序開發能力
通過學習,學生大致掌握了VB的一些基本知識,但對知識的理解只停留在表面上,缺乏系統的運用,對小型應用程序系統的開發步驟和調試都還不熟悉。因此,如果我們能開設12周的課程設計讓學生在教師的指導下根據自己的實際能力選擇一個課題進行設計,這樣對學生的知識運用能力的培養大有裨益的。例如可以要求學生模仿設計windows附件中的計算器或寫字板;對于部分數據庫基礎掌握得較好的同學,要求他們編寫網上學生成績查詢系統或圖書館管理系統,這些課題都比較貼近學生的實際,學生也很有興趣,因此他們在設計時較為投入,也能認真地查閱資料,分析步驟,進行控件的選取、屬性的設置和事件的編寫、調試。這樣可以大大提高學生的程序開發能力。
VB語言所涉及的內容多,知識面寬,在短短的課堂教學中,要讓學生完全掌握是不可能的,所以學生課外自學也是一個重要的環節。另外,教師還應重視自己創新能力和將專業知識應用到社會實踐中的能力的培養,利用VB結合實際開發一些小型的應用程序系統,使自己更好地掌握它,只有這樣,教師在教學中才能更好地進行目標任務的選編、設計和組織,探索出更適應學生的教學方法,取得更好的教學效果。
參考文獻
[1]全國中等專業學校計算機應用基礎課程組.Visual Basic 程序設計[M].北京:高等教育出版社,1999.
篇7
一、以興趣為師
興趣是學生最好的老師。如何提高學生對學科教學的興趣是每一位教師孜孜探求的首要課題。學生愛上信息技術課,而這種愛好往往表現在愛玩游戲,或者上網聊天、瀏覽感興趣的網站等方面。但是對一些基本的知識、技能不愿認真地學習。因此,在教學過程中教師要精心設計,誘發學生學習動機,激發學生學習興趣,從而達到提高效率的目的。
既然學生愛玩游戲,就可把學習寓于游戲之中,激發學生學習的興趣。例如學生在學習多分支if...then...else if語句和多分支選擇select case語句時,在教學中就采用先不講這些理論,再讓學生玩用VB制作的小游戲,如《對獎器》《石頭剪刀布》等,老師再介紹if...then...else if語句和多分支選擇select case語句的結構,了解VB程序設計的相關知識點時,學生學得就很認真,也能在老師的指導下編寫出《對獎器》《石頭剪刀布》這樣的小程序。
這樣,學生就有了成就感,既保持了學生學習計算機的熱情,又促使學生自覺學習計算機知識。
二、以應用程序為助手
如果學到某個知識點時,根據知識點純粹給學生一個任務,并講解這個功能是如何實現的,那么學生很可能對此不感興趣,即使完成了操作任務,也是生搬硬套,達不到程序設計所要求的提高探究能力。平時學生會使用一些小型的應用程序,對它們的功能也比較了解,但對如何設計這些程序卻茫然不知,于是,筆者把這個作為上課的切入點,把平時常見的應用程序與所講的知識相結合,讓學生先分析其功能,再引導他們運用所學知識實現其功能。最后讓學生設計類似功能的程序。如在講解加載多窗體時,以學生常用的QQ應用程序為例,學生分析其功能是輸入QQ號與密碼,如果兩者與所設置的QQ號、密碼是一致的,那么就會進入QQ程序面板,否則無法進入程序面板并給予提示,學生由此得到啟示:要實現其功能,至少需要兩個窗體,接下來的新課內容學生就會主動學習。學完新課知識以后,再讓他們設計類似功能的程序就比較容易了。
此例教學過程啟示學生:生活是我們創作的源泉,所以從生活入手,以常見的應用程序作為教師教學的助手,讓學生感知了VB程序設計源于生活,服務于生活。
三、以熱點為學習點
VB程序設計,傳統的教學方式是“講授法+學生上機”。一般是教師介紹性地把軟件的功能、軟件的操作界面灌輸給學生,相當于教師把軟件的使用說明告訴學生。其結果是教師講得滿頭大汗,學生聽得糊里糊涂,對編程環境仍無法駕馭;對編程思想的教學,往往停留在理論階段,與實際問題相差甚遠。
受政治學科“熱點解讀”的啟發,筆者將生活中學生較關注的熱點帶入課堂,作為VB程序設計的學習點。在講到DateDiff函數時,當時正值世博會即將開幕,高考、會考即將舉行之時,筆者嘗試著讓學生制作世博會開幕、高考、會考倒計時的小程序。學生反應很熱烈,根據所學的知識很快就設計好了。因為他們要參加會考,通過自己設計的程序,大部分同學了解到了時間的緊迫感。
把熱點融入進程序設計教學中,既不脫離社會生活,又能使學生受到教育,一舉兩得。實踐證明,以社會熱點作為學習點是一種頗為成功的程序教學法,體現了理論與實際相結合的教學原則。
四、以演示為輔,以實踐為主
在信息技術課教學中,演示—實踐法是指學生在教師的演示示范操作指導下,借助計算機等多媒體對某一方法、步驟反復實踐,從而形成技能、技巧或習慣的教學方法。這種方法既是學生的自我檢測和對教師教學效果的及時反饋,又是學生掌握計算機技能的主要途徑。在網絡教室可以利用多媒體教學軟件的“廣播教學”功能進行示范性演示。教師在演示或者展示過程中,盡量做到姿勢正確,動作規范合理,同時還要給學生講清楚為什么要這樣做,各語句的功能與作用。演示—實踐法其目的是讓學生既能夠掌握知識,又能掌握操作計算機的正確方法步驟,養成良好的習慣。適時地進行演示可以讓學生更快地掌握操作技能,記憶也更加深刻。以興趣為師、以應用程序為助手、以熱點為學習點均是在以網絡教室為主的機房中上課,演示后,讓學生馬上實踐操作。同時我既可以通過軟件的“監控功能”觀測學生實踐操作情況,又可親自巡視學生練習過程,及時發現學生實踐過程存在的問題,進而及時地手把手地給出糾錯處理。當然,筆者認為這種方法特別要注意的是:(1)要給學生更多的利用計算機進行操作練習的時間,老師不能講得太多,學生練習得太少,即練多講少。(2)在學生練習過程中,教師必須勤于輔導,即輔與導相結合。(3)選擇運用現代教學手段過程中的適當時機,可結合傳統方法在黑板上強調某個操作要點,引起學生高度關注,即現代法與傳統法相結合。
當然還可以運用多媒體教學軟件“學生演示”功能演示某個學生對某一問題的處理操作過程,進而讓全體同學都能觀察其操作是否規范合理,是否存在過錯等,這樣讓全班同學都能借鑒學習,做到共性與個性相結合。
篇8
關鍵詞:Visual Basic;程序設計;教學與實踐
中圖分類號:G642 文獻標識碼:B
文章編號:1672-5913(2007)10-0003-03
掌握計算機應用基本技能成為新世紀人才不可缺少的基本素質之一。由于高級語言程序設計課程不僅使學生更深入地理解計算機的工作過程,而且在培養學生嚴密地邏輯思維、培養非計算機專業學生利用計算機解決本專業問題的能力方面有著非常重要的作用,因此各個高校普遍開設了程序設計課程。而Visual Basic作為面向對象的程序設計語言,其易學易用,圖形用戶界面的特點成為非計算機專業類學生首選的教學語言。幾年來,我們以提高學生計算機素質,培養創新意識和創新能力為目標,對全校的計算機公共課系列課程進行了一系列的教學改革,尤其對程序設計語言課程的教學改革更是向縱深發展,朝建設精品課程的目標努力。
1Visual Basic在計算機基礎教學中的地位和作用
浙江大學城市學院的計算機基礎教學在課程體系上分為兩部分,第一部分是計算機文化基礎,在第一學期的9~16周開課,主要任務是使學生掌握計算機基本知識與基本操作技能,培養學生的計算機文化意識。第二部分是計算機程序設計,在第二學期開設,理工科學生選擇C語言,文科類學生選擇Visual Basic作為學習編程的平臺。城市學院中文科類學生的比例占了近半數,因此Visual Basic成為了名副其實的大課,每年有1500多人學習,作為計算機基礎教育的重點課程,對學生乃至學校都有重要影響。
2存在的問題
盡管這幾年城市學院的計算機基礎教學成績取得了很大的進步,但應該看到還存在不少問題,這些問題解決得好壞直接影響計算機基礎教學的進一步發展。
首先,學生的學習動機不明確,“VB程序設計”的授課對象是廣大非計算機專業的學生,尤其是以文科類學生為主,有不少學生認為學習程序設計對他們來說沒有用,僅把它當做一門不得不學的課程,只是單純的應付考試,還沒有意識到在信息時代的今天計算機已經成為了人們所必須掌握的一種基本技能。
其次,文科類學生在數學、物理及電子技術方面的基礎比較薄弱,自身的認知結構、學習傾向等多方面的差異,致使他們在學習過程中積極性不高,學習興趣不濃,學生普遍感到“VB程序設計”枯燥、難學。
第三,我們的教學方法、教學手段往往過分強調教師的“教”在教學活動中的作用,而不是從學生的角度出發,從學生如何學好一門課的角度出發。其實教學過程不單單是學生在老師指導下的一種特殊的認識過程,它更是學生個性全面發展的過程,是師生之間相互作用的一種雙向活動,因而要探求新的教、學并重的教學理念、教學思路。
第四,“VB程序設計”是一門理論與實踐并重的課程,傳統的程序設計語言教學按照給出語法、解釋語法規則、舉例說明的三步曲,教學上習慣于滿堂講,填鴨式教學,總感覺內容多,課時不夠,結果導致教師講得累,學生聽得累,經常有學生說上課聽懂了,但一碰到自己做,感覺無從下手。
3我們的經驗
3.1端正學習態度
在教學過程中,要幫助學生端正學習態度,提高計算機語言課程對其全面發展必要性的認識。程序設計語言是大學中一門很重要的公共課程,是衡量大學生計算機素質的重要標志。程序設計課程的教學不僅要讓學生學習程序設計的基本概念和方法、掌握編程的技術,更重要的是培養學生邏輯思維和邏輯推理的能力、動手能力、創新意識和創新能力。多注重學生興趣的培養,通過一些生動形象的實例引導學生主動提出問題、分析問題、解決問題。
3.2教學方法的改進
基于VB語言的特點,在VB的教學中重點處理好以下兩方面的內容:① 算法與結構化編程;② 面向對象技術[1]。
算法與結構化編程是程序設計的核心。在教學中重點注意算法的概念、結構化程序的概念與組成、算法的描述。如典型的排序算法,檢索算法等,要把這些作為經典熟記。
面向對象技術涉及到相關概念的教學和面向對象技術應用的教學。VB是基于對象的編程語言,類、對象、屬性、事件、方法構成了VB的靈魂,對象及其屬性、方法和事件是VB程序的主干,因為這三者決定了對象的外觀與行為模式。事實上,應用程序整個界面的運作,都是通過控制對象的屬性、方法與事件來完成的。將結構化程序設計和面向對象程序設計融合在一起,面向對象的程序代碼主要體現在各個事件過程中,而在事件過程中貫穿了傳統的程序設計思路和算法的應用。
由于在VB課程中既要介紹傳統的程序設計方法,又要介紹面向對象的程序設計概念和可視化界面設計所涉及的控件、應用程序開發等,內容多,學時少,要講好這門課,需要充分運用各種教學方法。
(1) 直觀教學法
在VB語言程序設計中,有些內容比較抽象,不容易被學生接受和理解。作為教師不僅要把深奧的理論講得通俗易懂,還要巧用日常生活中的例子,形象的比喻方法最容易為學生所接受。比如循環嵌套是學生不太容易搞清楚的地方,我們可以提出一個很現實的問題,如時針走過兩個格子的話,秒針走過多少格子?形象地把秒針、分針和時針的運動打比方,最里層的秒針運動最快,秒針走過一圈,分針前進一格,分針走過一圈,時針前進一格,這就是三重循環嵌套,然后寫出程序代碼,這樣就把抽象的問題形象化,便于學生理解和掌握。
(2) 演示教學法
在教學過程中,為了提高學生的學習興趣,教師可以利用一些與教學有關的軟件和索材,如使用簡單的Flas來反映循環結構程序執行流程、排序算法等。讓學生有興趣學習,就能取得很好的教學效果。
(3) 案例教學法
案例教學從學習者的認知規律出發,精選與實際生活中關系密切的問題作為案例,通過案例的運行分析設計思路和實現方法,進而引出該案例中用到的知識點,再舉一反三,啟發學生對案例進一步討論、歸納,對案例完善和擴展,最后達到知識的快速掌握和能力的快速培養。由于所有案例都是直接面對應用的,具有實際的應用價值,所以很好地培養了學生的應用能力[2]。“案例教學法”貫穿教學的始終。
3.3學以致用
通過以上一系列教學方法及手段的運用,教師把各個知識點像珍珠一樣一個個串起來。但是計算機應用知識不可能只靠聽課就能掌握,為了進一步把教師講的內容消化為學生自己的知識,逐步提高個人的編程能力,必須大力加強動手實踐環節,包括作業、編程、上機、上網、做項目,引導學生通過實踐拓展知識。必須提升實踐環節在教學過程中的地位和作用,引導學生通過實踐來提高能力,只有多動手實踐,才能破除學生對計算機的神秘感,才能激發學生對掌握計算機編程產生興趣。我們提出圍繞上機實踐,抓到課率和課后作業,形成了一套行之有效的方法。
(1) 講練結合
當學生掌握了某個基本編程結構或學習了某個控件后,應及時訓練編程,培養編程的思維方法。我們設計了隨堂練習讓學生當堂練習,練習題目在范例的基礎上做一些細微的改動,目的是及時掌握所學內容。人的認知規律也提示人在學習新的知識時模仿是第一步的,在模仿的基礎上進行改進,進而實現設計。而我們的隨堂練習更是設計成活頁,給學生5~10分鐘的時間完成,寫上姓名、學號后上交,這樣不僅省去了課堂點名,又達到了教與學的良性互動。
(2) 上機實踐教學
上機實踐課作為與課堂理論教學的配套,是一個重要的教學環節,它不僅檢驗所學內容,更對提升學習興趣、引導學生進一步探索有著直接的影響。這一部分的教學我們設計為完成以下三個方面的作業。
1) 上機前練習。為了避免學生上機毫無準備,浪費時間,上機實踐前學生必須完成上機前練習,每次上機課開始教師都要認真檢查,作為平時成績的考核依據。精心設計每道練習,由淺入深,讓學生在讀程序,改程序和程序設計中充分理解和掌握該章節所要求的內容。我們將每一章分為三種練習,根據Benjamin Bloom的研究成果,他提出了認識領域達到的六級分類[3]。在設計上機前練習時,我們將Bloom的六類合并成三類。這些分類根據學習一個算法或語法結構的具體例子定義如下:
認知:讀一個簡單程序,寫程序運行結果或畫流程圖。
改進:根據前一個作業,生成一個非常相似的算法,如讀一個簡單程序,修改程序錯誤或程序填空,實現指定的功能,這是一種較淺近變換。
設計:學生可修改算法,將算法用于不同的環境,可合并相關算法,還可以比較算法,進行程序設計,這是一種較深遠變換。
2) 上機實踐。通過每周一次的上機實踐把本周教學中涉及到的基本概念、重點、難點及常見錯誤在實驗課上再一次認真梳理。要求學生在VB環境下設計界面、屬性、事件,如利用窗體單擊事件實現前述三類上機前練習,并且運用單步執行、設置斷點等方法跟蹤算法的執行,對給定的數據確定其輸出。
要求學生按照所寫內容及步驟進行操作,提醒學生對每一操作的結果仔細觀察和詳細記錄,用實踐來驗證自己的認識是否正確。學生在操作中將遇到各種問題,教師應啟發學生獨立思考,勇于實踐,引導學生去發現問題的原因,分析問題和解決問題,培養學生的動手能力。
3) 實驗報告。上機結束后,要求學生將上機操作內容和步驟、出現問題及解決方法寫成上機實習報告,以督促學生及時總結實踐經驗,進一步深化對課堂教學內容的理解和掌握,同時把程序源代碼上傳至服務器。教師認真批改作業并作詳細記錄,根據每一次上機的整體情況,對學生中出現的共性問題分析原因,在課堂上進行有針對性的講評和總結,使教學和實習有機結合。要讓學生充分理解上機實踐的重要性,在期末我們組織專門的上機考試,充分全面地考查了學生掌握程序設計的能力。
3.4構建課程支持系統
積極地利用校園網構建網絡教學平臺,彌補傳統教學的有限性,為學生提供更廣闊的學習環境。學院新購的Blackborad教學支持系統為我們拓展教學手段提供了很好的平臺。他通過“我的課程”模塊中的鏈接直接進入課程,在課程內容區教師可以公布通告、課程資料、任務、教學資源鏈接;通過互聯網上載課程文件,并可以方便地管理課程內容;為用戶提供虛擬教室、討論板交流工具,通過討論板、實時的虛擬教室互動和小組交流,實現協作學習的效果;還可通過數字收發箱提交并管理作業內容;在線考核功能可以將原始試題資料錄入,可以生成試題庫;從題庫中可隨機生成試卷,進行考試并有成績統計分析來強化學生的學習效果、衡量學生的學習過程。
4總結
抓住VB及面向對象程序設計的本質特征,采取適當的教學措施,使學生盡快掌握這一編程理念和編程方法。近幾年在全體教研組教師的共同努力下,城市學院在浙江省計算機等級考試中成績穩居省內各高校的前列。我們將在已有的成績和基礎上積極向第三階段計算機教學過渡,把計算機應用滲透到各專業課程中,開設VB的后續課程并和各專業緊密結合,使學生有機會通過多種途徑進行結合本專業的計算機應用實踐,使我校的計算機基礎教育真正全面、深入和持久地進行下去,把中央的高等學校本科教學質量與教學改革工程真正地落到實處。
參考文獻
[1] 賈長云. VB教學之我見[J]. 中國職業技術教育,2004,(2).
[2] 龔沛曾,楊志強. “Visual Basic 程序設計”國家精品課程建設[J]. 中國大學教學2004,(9).
[3] Nell Dale Michael McMillan,史宗海譯. Visual 上機實踐指導教程[M]. 電子工業出版社,2003.
收稿時間:2006-12-27
篇9
一、遞歸算法的概念
計算機要完成人們預先定義的工作,首先應該設計完成這個工作的步驟和方法,即算法 。然后再根據算法編寫程序。算法是問題的求解過程的精確描述,求解一個問題往往有多種 算法可供選擇,選擇標準首先是算法的正確性、可靠性、可讀性等,其次是算法所需存儲空 間和時間的消耗。算法設計是一件非常復雜的事情,在處理實際問題時,為了更好地將復雜 的問題變得簡單,在設計算法時常常采用遞歸的方法。
所謂遞歸,就是指用自身的結構來描述自身,以實現層次數據結構的查詢和訪問。用遞 歸概念來描述的算法就稱為遞歸算法。遞歸算法常用于遞歸調用方面,即子過程或函數自己 調用自己。VB允許一個自定義子過程或函數過程在過程體(又稱子程序體)的內部調用自己, 這樣的子過程或函數就叫遞歸子過程或遞歸函數。
遞歸調用必須是有限的,有限才有意義。所以在進行算法描述時必須設置相關的控制條 件,使其成為有限。這可以通過條件語句(If語句)來實現,即只有在設定的條件成立時遞歸 才繼續,否則終止遞歸。可見,構成遞歸必須滿足以下條件:1)有明確的結束遞歸的邊界 條件(又稱終止條件)以及結束時的邊界值;2)過程的描述中包含其本身,即能用遞歸形式 表示,且遞歸向終止條件發展。
二、遞歸算法的設計方法
遞歸算法既是一種有效的算法設計方法,也是一種有效的分析問題的方法。遞歸算法求 解問題的基本思想是:對于較為復雜的問題,把原問題分解成若干個相對簡單且類同的子問 題,這樣原問題就可遞推得到求解。
當一個問題存在上述構成遞歸的條件時,該問題便可以利用遞歸算法進行處理。具體的 設計方法是:當所求解問題難于直接求解時,首先,把問題分解成若干個難度較小、較容易 求解的子問題,子問題與原問題具有類同的結構。如果子問題能夠直接求解,則解之;如果 子問題仍不能直接求解,將每個子問題再分解成若干個更簡單的子問題,直到分解出的子問 題能夠很容易地求解或解為已知,這是實現遞歸的模板。然后,設計遞歸出口(即結束遞歸 的邊界條件),在滿足出口條件時,遞歸函數不能再調用自己,必須返回一個確定的值。將 這兩個方面的問題分析好之后,就可以在子程序體中定義遞歸調用了。
在通常情況下,遞歸調用都是要受到條件控制的,而且在被調用的過程中,會對調用條 件進行有規律的修改,直到滿足邊界條件,返回邊界值,結束遞歸;然后按照原來的路徑逐 層返回,求出原問題的解。由此可知,遞歸算法設計的關鍵在于遞歸描述和遞歸終止條件。
三、遞歸算法的實現過程
遞歸算法的執行過程是不斷地自調用,直到到達遞歸出口才結束。然后,遞歸算法開始 按最后調用的過程最先返回的次序逐層返回,返回到最外層的調用語句時遞歸算法執行過程 結束。可見,遞歸的實現過程包含了“調用”和“返回”兩個階段。
許多問題都是可以利用遞歸算法進行求解的。VB中一個最常用例子就是計算階乘。例如 ,用遞歸函數實現計算N!的求解。代碼如下:
Private Sub FormClick()
Dim N As Integer,F As Long
N=InputBox(“輸入一個正整數:”)
F=Fact(N) ’函數調用
Print N;“!=”;F
End Sub
Private Function Fact(ByVal N As Integer)As Long
If N=0 Or N=1 Then
Fact=1
Else
Fact=N*Fact Fact(N-1) ’函數遞歸調用
End If
End Function
運行程序,單擊窗體執行Form Click()事件過程,鍵盤輸入3賦給變量N,即求3!的值。 程序以Fact(N)形式調用函數Fact。當函數Fact開始運行時,首先檢測傳遞過來的參數 N值 是否為1,若為1,則函數返回值為1;若不為1,函數執行賦值語句Fact=N*Fact(N-1)。函數 調用傳遞的參數N是3,函數計算表達式3*Fact(3-1)值,由于表達式中還有函數調用,于是V B第二次調用Fact函數,但傳遞的參數是2,函數計算表達式2*Fact(2-1)值。當再一次調用 此函數時,參數值為1,因此函數返回值1到本次調用點,此調用函數又返回2的值到調用這 個調用函數的函數;最后,最初被調用的函數返回6到調用它的過程,得到運行結果。遞歸 函數Fact的調用和返回過程如圖1所示。
圖1 遞歸函數Fact的調用從圖1可以看出,一個遞歸問題可以分為“調用”和“返回”兩個階段。當進入調用階 段后,便逐層向下調用,因此Fact函數被調用3次,即Fact(3)、Fact(2)、Fact(1),直到 遇到終止條件(即當N=1時Fact=1)。然后帶著終止條件所給的函數值進入返回階段。按照原 來的路徑逐層返回,由Fact(1)推出Fact(2),由Fact(2)推出Fact(3)為止。
一般來講,從算法描述的角度看,遞歸算法通常有兩種實現方法。一種是在遞歸函數中用遞 歸公式實現。上述的計算階乘就是一個使用遞歸公式的常用例子,其中Fact=N*Fact(N-1) 就是遞歸公式。再如,求Fibonacci數列的問題,也是通過遞歸公式來實現遞歸調用的。其 遞歸函數代碼段如下:
圖2 漢諾塔(hanoi)問題Private Function Fab(ByVal N As Integer)As Long
If N=1 Or N=2 Then
Fab=1 '遞歸出口
Else
Fab=Fab(N-2)+Fab(N-1)
'遞歸公式
End If
End Function
有些問題無法直接使用遞歸公式,而要通過一個遞歸過程來描述。例如,大家所熟知的 漢諾塔問題:有A、B、C三個塔座,A塔上有直徑從小到大的N個盤子(如圖2所示),要求借助 塔B將N個盤子由A移到C,且保證:每次只移動一個盤子,任何時刻不能把大盤子置于小盤子 之上。
此問題可以用一個遞歸過程描述:(1)借助C,將(N-1)個盤子從A座移動到B座:(2)將 最后一個盤子(最下端的)從A座移動到C座:(3)滯助A,將(N-1)個盤子從B座移動到 C座。
依據以上分析,(1)和(3)步屬于同類問題,只是參數值不同而已。由此可寫出遞歸算法 ,并用VB程序描述的遞歸過程代碼段如下:
Private Sub MoveDisk(N As Integer,A As String,B As String,C As String)
If N=1 Then
Print “將第1個圓盤從第”&A&“座移到第”&C&“座”
Else
Call MoveDisk(N-1,A,C,B) '過程遞歸調用
Print“將第”&N&“個圓盤從第”&A&“座移到第”n&C&“座”
Call MoveDisk(N-1,B,A,C) '過程遞歸調用
End If
End Sub
此程序根據對問題的遞歸描述寫出,結構清楚,易理解。因涉及遞歸,所以其調用的執行過 程可能很復雜。但如果不用遞歸方法,問題又可能很難處理。因此,在算法描述過程中,只 需把以上算法的三步過程設計好,再考慮一個盤子時的情況(遞歸出口)怎樣處理就可以了。
從上述分析中,可以認為,看問題能否用遞歸算法,先不要考慮具體的執行過程,只要滿足 上述 構成遞歸的條件即可。在VB程序設計中使用遞歸時還應注意,在定義遞歸函數 或遞歸過程時,一般先使用If語句進行遞歸測試,找到遞歸結束的條件,然后再進行遞歸調 用。
以上示例是遞歸應用的典型。很多人認為遞歸不易理解,這是把遞歸狹隘化了,但是對 遞歸的理解不能因此受到限制,遞歸程序的復雜程度比一般程序要高很多。遞歸算法使程序 清晰直觀,是程序設計中很重要的方面,但遞歸在計算機中的執行過程卻很復雜,需要占用 較大的內存空間和較多的系統時間來進行頻繁進出和轉移操作,執行效率很低。所以,在VB 程序設計過程中,并不一味追求遞歸。如果一個問題的求解過程明顯是遞推規律或通過循 環處理方法即可方便解決的,則不必要使用遞歸。反之,在對問題進行分解、求解的過程中 得到的是和原問題性質相同的子問題,由此自然得到一個遞歸算法,且它比實現非遞歸算法 更符合人們的思維邏輯,則應該使用遞歸。因此,使用遞歸應揚長避短,只有真正掌握遞歸 這個有效的編程方法,才能提高編程能力和編程效率。
參考文獻
[1]牛又奇,孫建國.VisualBASIC程序設計教程[M].蘇州:蘇州大學出版社, 2007.
[2]霍紅衛.算法設計與分析[M].西安:西安電子科技大學出版社,2005.
篇10
關鍵詞:程序設計;課程考核;考核模式
引言
《程序設計》課程是一門基于.net技術平臺下用VB語言設計應用程序的計算機程序設計課程,實踐性要求很強。通過學習,不但要求學生掌握扎實的理論知識,同時還要求學生具備熟練的操作技能,注重平時學習能力的培養,讓學生形成系統化的課程知識體系,最終達到開發小型管理系統的能力。采用科學的符合教學特點的課程考核方式是十分有必要的。
課程考核不但是對學生知識能力的驗證,也是考核教學質量的方式之一。以現有的考核體系“平時成績(30%)+期末成績(70%)”模式進行課程考核,平時成績由出勤率和平時提問決定,期末成績以理論成績為主,這種終結性的考核方式往往出現大面積不及格的現象,嚴重挫傷教者和學者的自信心,已不能適應新形勢下高職教育所倡導的注重學生過程能力和綜合能力的培養,因此改革課程考核模式至關重要。
課程考核改革思路
從思想上更新觀念,改變終結性的考核觀,向考核學生知識點、應用能力、分析與解決問題能力的過程性考核方向轉變。本著樹立以人為本、以就業為導向的人才培養觀,不但要以“能力測試”,還應以有利于促進學生的自主學習,促進對技能的掌握,有利于推動學生的就業和創業為考核的最終目的,在實踐中探索具有創新性的、系統而科學的、可操作性強的課程考核模式。
1.引入過程性考核
過程性考核是將學生在教學全過程中對知識點掌握、應用能力及分析和解決問題能力作為教學評價,包括考勤、理論作業及單元測試等過程性材料考核。其中引入單元測試,主要是對學生階段性知識進行測評,可及時了解學生知識掌握情況,及時調整教學策略,解決存在的疑難。這樣的考核模式,不但體現考核所起的督導激勵、導學促教的功能,也真正考核出學生動手能力、創新能力的水平。
2.引入綜合項目實踐考核
通過引入某個綜合項目系統,課程圍繞系統的開發過程進行講授。依次根據開發系統的過程組織課程教學的進度,將綜合項目劃為與教學進度一致的若干個小模塊,即對應課程的每一個實驗任務。由教師指導學生完成每個實驗的設計,并要求每次上交完成實驗結果及實驗報告,根據完成情況給出評分,形成過程性上機成績。課程結束時學生應完成整個系統的開發,形成期末實踐考核成績。這樣不僅有助于培養學生動手編程和創新能力,還培養學生形成課程系統化知識體系。
3.引入綜合評價
引入綜合評價是為了在課堂中營造一種積極的學習氛圍,讓學生積極投入到學習過程中。在綜合評價成績給定時要從以下幾個方面考慮。
(1)上課表現
課堂是學生學習知識的場所,上課表現主要是指學生的學習態度、投入狀況與學習的主動性、創新性等方面。
(2)學習小組評價
要從學生團隊合作意識、參與情況及完成質量等方面評價。
(3)教師評價
根據學生平時學習的自覺性、積極性等狀況給出一個綜合評價分。
探索、改革新的考核模式
1.確定學生考核成績評定指標體系
通過學生出勤率、單元測試、上交理論作業、上交上機報告、期末理論考核及期末實踐考核等六項指標,形成課程考核評定成績指標體系,評定學生課程考核成績。根據課程成績考核要求依次確定各項考核指標在總成績中所占比例(如圖)。
考核成績指標均按百分制。這樣當課程學習結束,期末考試之后,每位學生都會有根據課程考核評定指標得到的一組成績數據,構成考核評定成績的原始數據樣本X= [x1, x2,…, xi],其中i為課程考核評定指標體系中的指標數。
2.確定課程考核指標的權重系數和評價系數
(1)根據學校課程成績考核要求確定每一考核指標在總成績中所占比例權重系數W=[w1,w2, …, wi],其中 i為課程考核評定指標體系中的指標數。由權重系數確定考核指標的基本分(如下表所示)。
(2)為鼓勵學生注重學習的過程,對學生有一個全面性的考評。由教師和學生對每一位學生課堂學習表現印象的綜合評價給出綜合評價分,其中教師評價分和學生評價比值為3∶2,最終確定每一位學生的綜合評價分C。根據評價分的不同確定評價考核系數C=[c1,c2, …, cj],其中j為評價系數。
評價分C值在:
85分以上的(含85分),評價考核系數C1=1.5;
70分以上的(含70分),評價考核系數C2=1.2;
60分以上的(含60分),評價考核系數C3=1.1;
60分以下的,評價考核系數C4=1。
3.課程考核成績評定方法
根據考核指標成績、考核指標權重系數及評價系數得到每位學生的課程考核成績,即每一位學生課程考核成績S=(x1×w1+x2×w2+…+xi×wi)×Cj(其中:i為各考核指標數,j為評價數)。