呂君


摘 要:VB程序設計是我校非計算機專業的一門必修課程,不但可以培養學生的程序設計能力、實踐操作能力,還可以為以后更深一步的學習計算機專業知識打下堅實基礎。但對目前計算機基礎相對較弱的非計算機專業的學生來說,往往對這一門課程報有恐俱感甚至厭學心理。文章探討了在VB教學中,如何以“分步式教學法”為途徑來擺脫課本上枯燥無味的教學內容,激發學生的學習主動性和熱情,并最終培養學生的嚴謹邏輯思維和創新能力。
關鍵詞:VB教學;分步式教學;程序設計
Visual Basic是目前眾多軟件開發工具中效率最高的一個,所以在計算機業界得到廣泛的應用。自然VB程序設計也就成為非計算機專業學生的重要課程之一,非計算機專業的學生學會運用VB進行程序設計也為他們以后能熟練學習計算機相關知識做準備。多數非計算機專業的學生,自身計算機基礎較弱,同時因為VB程序設計課程的開發方法和概念又都是全新的,部分章節內容枯燥抽象,學習起來感覺相當困難,甚至望而卻步。怎樣才能激發非計算機專業的學生學習VB的熱情和提高非計算機專業的學生程序設計的能力?本文將總結出“VB教學分步式教學法”,現與大家共同探討。
VB的分步式教學法,就是把學生學習VB課程的過程分為“入門--基礎--提高”這三個小同的階段。根據每一階段學生的學習特點和心理特點,設置小同的目標,采取小同側重點,施以適當的教學方法,這樣就可以有的放矢,充分調動學生學習的主動性和創造性,達到事半功倍的效果。
1 入門階段:以消除學習恐懼心理,培養學習興趣為目的
VB程序設計對于非計算機專業的學生來講,一般都是從零學起,要想讓學生學好這門課程,前面基礎知識很重要。俗話說,好的開始是成功的一半。要培養學生的學習興趣,消除他們對程序設計的恐懼心理,在第一章初學時,可以從學生的興趣入手,利用學生對事物的好奇心,選擇一些有趣的、有實際意義的程序,激發學生的學習興趣。例如:第一次實驗課時,布置一個簡單代碼編寫的應用程序,用控件設置一個山寨版的QQ(圖1),在“登錄”按鈕中寫上一個msgbox”上課時間請勿用QQ聊天”,1的有趣提示對話框(圖2),幫助學生了解如何用VB開發應用程序,了解到控件如何使用,相關屬性的作用是什么。
這樣的介紹會讓學生覺得VB并不抽象,而很具體,就像身邊的朋友,只是需要慢慢去了解它。首先,把VB程序設計的功能直觀化,讓學生感受到VB程序設計的魅力。先在大屏幕上演示用VB程序設計幾個大型系統軟件如:超市管理系統、圖書館管理系統、網絡版五子棋等,接下來再把往屆學生做的優秀程序演示給學生們看,如: “奧運會倒計時牌”、“俄羅斯方塊游戲”、“計算器”、“電腦福利彩票開獎”等等。學生在感受到VB價值和實用性的同時,會對這門課程產生濃厚的興趣,從心里愿意去學,并期待在以后的學習中有所作為。這正是學好這門課程良好的開端。其次,現場演示消除心理顧慮。老師可以在課堂上現場制作了一個QQ界面的程序并演示給學生看。這讓學生覺得才花幾分鐘的時問,就能編出一個漂亮有趣的程序,這么簡單,我也能行。沒有任何心里負擔,從心底里愿意去學習,這正是我們期望達到的教學目標。
2 基礎階段:讓學生對VB語言基礎知識全面掌握,牢記編程步驟
本階段也是一個核心階段,要學生全面掌握了工具箱中大部分控件的三要素(屬性、事件、方法),并在老師的指導下完成一些小程序實例。為了讓學生能夠獨立編程,很多教師都頗費腦筋,甚至部分學生卻感覺壓力重重、喘不過氣來。所以在這一階段要有步驟的實施教學計劃,切不可一味求快。
首先,要讓學生根深蒂固的理解掌握VB編程的四個步驟:1、設計應用程序界面;2、完成對象的屬性設置;3、編寫代碼;4、調試運行。其中最讓學生頭痛的就是第三步編寫代碼。在教學過程中,教師應幫助學生理清編寫代碼的思路,讓學生有法可尋。如:我們要對哪個控件編程?這個控件上發生了什么事件?事件過程要求哪幾個控件發生了什么變化?總的思路也就是,“誰的什么事件導致了誰變成了什么樣子”。在每次實驗過程中都要讓學生不斷重復,這會為以后獨立編程打下堅實的基礎。
其次,當學生具備編程思路后,可訓練他們為不完整的程序填充代碼和對已有的程序進行改造。此時要注意給出的題目應由易到難,從簡單的屬性設置逐漸過渡到函數的使用、語法結構等內容上來。在實驗題目中利用知識遷移適當擴充學習內容。
對于這段程序的完成并不困難,在做完For…Next循環之后,為了提高他們對知識的綜合運用能力,開動學生的頭腦,可以根據原題編寫幾個擴展練習題:(1)求1到100之間所有奇/偶數的和;(2)求1到100之間所有素數的和;(3)求1到1000之間能被7整除的素數的個數。
在講授VB程序設計語言時,可以寫一些錯誤的程序,讓學生去思考,錯在哪里,這樣可以充分讓學生了解自己的基礎知識到底扎不扎實。如:在講授數據類型時,先直接寫一個簡單的程序:
然后提問:“此程序運行后輸出的結果是什么?”
絕大多數學生會回答:"40000"!但其運行結果卻是“溢出”,學生會感到困惑。此時先不要進行解釋,再問:“如果把400改成40000又如何,學生會說“還是溢出”。當看到演示后的結果卻是4000000時,學生肯定會更加迷惑!此時再道出原因:100和400都是Integer類型,運算的結果也必須是Integer,但實際結果40000超出了Integer的范圍,所以出現“溢出”現象;而100和40000分別是Integer和Long,運算結果應該是Long,但4000000沒有超出Long的范圍,所以正常輸出。為了能正確輸出類似100*400這類表達式的運算結果,有必要將其中一個或兩個數定義成Long類型,這樣就很自然地引出單精度、雙精度及字符型等數據類型說明符,效果好而且印象深刻。所以有些小程序更能讓學生掌握好基礎知識。
3 提高階段:讓學生逐漸形成自己的編程思想,加強創新能力的培養
此階段,老師在平時教學中應多鼓勵學生發問,引發學生發散性和深入性思考,培養學生的創新思維。課堂里,教師既要讓學生認真學習和掌握書本上的知識,又使他們的思維不要束縛在條條框框中。應鼓勵學生提出新的設想,探索解決問題的新途徑,從而培養他們的創新思維能力。例如,講授多重循環時,像(圖3)、(圖4)這兩題的編程方法總結就四個字“外行內列”,就是用兩個For…Next循環做到的,外部循環控制打印的行數和每一行打印的起始位置,而內部循環是控制每一列打印元素的個數和元素的內容;這類程序掌握好這個
原則那么編程起來就得心應手。在教學時可以先跟學生講解(圖3)程序的編寫過程,接下來讓學生自己去思考(圖4)程序的代碼。讓學生自己觀察這兩個程序的效果不同之處,(圖4)每行元素是遞減,(圖3)中的是遞增;(圖3)元素是“*”不變,而(圖4)每行的元素都是不同數字,而且呈遞減趨勢等。讓學生學會獨立思考,具備提出問題、解決問題的能力,在思考過程中提高了認識,拓展了創新思維,這也是教師所期待的教學效果。在課后學生要及時歸納、做好小結,最好準備一個筆記本專門記載下來。歸納可以是一個控件多方面(如事件、屬性設置等)的歸納,也可以是對一種結構的歸納(如分支結構的歸納)。總結可以是對一類程序的總結,也可以是幾類程序的總結。歸納總結的形式也可以多種多樣,可以使用文字概括,也可以使用圖示總結,重難點要著重強調。
實踐教學表明,“分步式教學法”不但解決了VB程序設計知識點多、實效性差、與應用脫鉤等問題,而且還充分調動了學生學習的積極性、提高了學生學習計算機應用的能力,最終讓學生對學習VB程序設計產生了濃厚的興趣。不少學生通過該課程的學習后,結合個人興趣與實際需要,開發了各種實用性的軟件。
參考文獻
[1] 何克抗,鄭永柏,謝幼如.教學系統設計[M].北京:北京師范大學出版社,2002:164.
[2] 龔沛曾,陸慰民,楊志強,Visual Basic實驗指導與測試,北京:高等教育出版社,2004