王 琦
摘要:本文針對高校計算機程序設計語言Visual Basic初級編程教學中存在的問題,結合自己多年的教學實踐,提出了解決的對策,對教學效果的改進大有幫助。
關鍵詞:程序設計;代碼編寫;教學效果
中圖分類號:G642 文獻標識碼:B
1引言
隨著社會信息化高速進展,各行各業的信息化進程不斷加速,計算機應用技術與其他專業的教學、科研工作的結合更加緊密,各學科與以計算機技術為核心的信息技術的融合,促進了計算機學科的發展,各專業對學生的計算機應用能力也有更高和更加具體的要求,選修計算機課程成為必然。
計算機程序設計語言Visual Basic(簡稱VB),是Windows環境下最親切的程序設計語言,它不僅簡單易學、操作方便,而且引入了面向對象的事件驅動機制和可視化的程序設計方法,效率高,功能強且使用簡單,是目前廣泛使用的計算機軟件開發平臺,因此成為目前許多高等院校學習面向對象程序設計語言的首選,是非計算機專業學生必修的重要基礎課程之一,也是國家二級考試的基礎課程。其目的是培養學生程序設計和簡單的系統開發及應用能力。
由于計算機編程語言相對其它課程較為抽象難懂,編程思路不易被學生接受和掌握,又加上選修這門課的同學缺少計算機相關的基礎知識,因此使得VB這門課的教學普遍存在著抽象、枯燥、學生難學、教師難教等諸多問題,嚴重影響著本課程的教學質量。為此,探討如何解決上述問題,改進VB的教學現狀,成為VB任課教師的共同課題。結合多年的VB教學實踐經驗,筆者認為VB教學的諸多難題,集中出現在以下幾個重要的教學環節當中,如果任課教師能夠把握時機,抓好這些教學環節,將能夠有效地改進VB的教學效果,提高教學質量。
2做好VB課程的引入教學,充分調動學生學習VB的積極性
實踐證明,學習VB,興趣是最好的老師,模仿是入門的捷徑。對于任何一項工作,只要有了興趣,就有了一半的成功機會,學生學習VB更是這樣。實際上豐富有趣的諸多VB實例編程對于本科階段的學生來說,有著強大的吸引力。例如,教師可在引入課上向學生演示用VB所設計的系列程序,如關機程序,定時程序,放大鏡程序,掃雷游戲程序,清空回收站程序等各個方面的Windows應用小程序,大的應用方面還可以向學生介紹,用VB可以設計網絡傳輸程序,數據庫應用程序等,這些實例只演示運行的效果,先不要展示編程的設計代碼,目的在于讓學生開闊視野,了解學習VB的應用前景,激發學習的興趣。學生雖然缺少這方面的編程基礎知識,但對于計算機的編程,充滿著好奇與探索的欲望,眾多的學生希望通過學習VB后能夠在計算機編程方面一試身手,而且VB又是計算機等級考試科目之一,有很多的學生選擇簡單易學、功能強大的VB。所以在VB教學的引入課當中,教師要充分利用這些有利的因素,恰當地安排相關的教學內容,及時有效地調動學生的學習積極性,變“要我學”為“我要學”,并且避免后續的教學變成迫于考試的壓力不得不學的不良狀況。
3做好VB課程的入門教學,確保學生理解掌握VB的基本概念
學習VB入門難,這是VB教學中普遍存在的問題。學生缺乏課程的相關知識基礎,是問題存在的一個方面的原因,更主要的原因在于,學生對于VB當中貫穿始終的幾個基本概念,很難理解和運用,所以在VB課程的入門教學階段,基本概念的教學尤為重要,要確保學生理解掌握VB的幾個重要的基本概念,并且能夠靈活地運用于實際。
針對概念的抽象難懂這一難點,教師要充分地結合實例來講解,并針對以往在學生的實際編程應用中容易出現的概念性錯誤,在課堂教學中舉例強調,避免重復發生,能夠較好地幫助學生理解掌握概念。例如:
錯誤1:form_load()…print "歡迎使用VB"…endsub;
錯誤2:text1_gotfocus() …text1.setfocus…endsub;
錯誤3:label3="y=";
錯誤4:print y=sin(a)+sin(b);
從以上所列錯誤進行類型分析可知,屬于學生對于事件、方法、屬性等概念理解使用不當所造成,對于類似的問題,教學中只有通過耐心、細致地分清錯誤的原因,多舉實例來強調有關事件、方法的使用等來避免。概念的混淆不清,直接影響到后續教學中的代碼編寫,而代碼編寫難下手,又是學生學習VB的一大難題,其原因也較多地在于概念的理解使用不當,實際編代碼時不會靈活運用。
4做好VB中事件選取與代碼添加部分的教學
VB實際編程時,對于事件的選取與代碼的添加這一部分,是最為關鍵的,也是最為困難的,它既要求編程者有靈活的思維能力,又要求有充分的編程經驗,當然最基本的還是要準確地把握VB中的基本概念與基本語句的使用。所以搞好這一環節的教學,前提是做好第二環節的教學,比如事件的選取,要求學生了解各種事件的觸發時間與觸發條件,否則,學生不可能準確地選取事件,例如前面所列錯誤1,說明學生對于窗體的加載事件發生的時間不夠明確,使用print方法在窗體上輸出,只能在窗體加載完成后才能實現,同樣的,如果在load()事件中使用end語句,將會導致看不到程序運行效果,學生往往對此迷惑不解。另一種情況是選取事件時搞不清對象,造成事件不能觸發,代碼無效,學生則為之莫名其妙等。如此之類的錯誤,均屬于對事件概念的理解把握不夠,因此不能正確使用。
另外,在代碼的添加部分,由于缺少編程經驗,面對問題時,學生往往不知從何下手,頭腦中一片空白,如果是一個模仿性的問題,學生則較容易接受。當然,學習VB,興趣是最好的老師,模仿則是入門的捷徑,依靠模仿,學生可以較快地掌握一些基本的編程經驗和編程技巧,所以,模仿在入門階段是非常必要的,但在遇到具體的一個實際問題時,模仿的習慣反而會制約學生的思維開拓,造成無路可尋的不良現象,這就要求教師在教學中教給學生一種有效的打開思路的方法,而不能完全靠模仿。針對這一問題,通過教學實踐總結出的一個最簡單有效的方法,就是編程公式的總結使用,對于諸多的編程問題,往往都離不開輸入、計算、輸出這三大塊內容,這里稱之為編程公式,依照它,教師就可以讓學生在面對問題時,像填空那樣,分別解決這三塊內容,這樣,代碼的入手問題便輕松解決,之后,再根據實際問題選用三種基本結構及相應的語句來完成代碼,就比較容易了,而基本語句的正確理解與使用在代碼的編寫中又非常重要。
5做好VB基本語句的使用部分的教學
VB基本語句不多,單獨來講,結合實例,學生不難理解與掌握,難點在于語句的結構在使用中靈活多變,學生感到不知如何選擇。比如選擇結構對應的條件選擇語句,從單分支到雙分支,再到多分支以及嵌套分支,語句各不相同,造成學生在使用中易于混淆不清,語句書寫的格式往往出錯。為此,教學中教師應結合實例,重點強調各語句的格式及執行過程的不同,強化對比各種結構,并通過多練達到讓學生熟練掌握每種語句的格式及適用范圍。
在語句的教學中,語句的執行流程是學生必須理解的內容。如順序結構的賦值語句,由于忽略了其執行流程,往往造成輸出部分先于計算部分出現這樣的錯誤。而選擇結構由于語句書寫格式多樣,最易造成其執行過程混亂不清,其結果往往導致程序多次調試不能通過,嚴重挫傷學生的學習積極性。至于循環結構,同樣強調弄清楚其執行的流程,否則學生往往搞不清循環次數與循環結束的條件等,這些都最終造成學生以為語句看似簡單,但卻不能準確使用的后果。
6做好代碼調試部分的教學
代碼調試要求細致耐心,如果代碼能夠順利通過,學生看到程序運行結果出現,會因成功而感到喜悅,從而興趣倍增,更增加對編程的探索欲望。反之,如果不能順利通過,又不能很快發現錯誤所在,反復調試卻總不見運行結果,學生往往失去耐心,長此下去,將嚴重挫傷學生的學習積極性,有的甚至畏難而退,出現厭學情緒。因此,不可小看程序的調試部分。
首先應該向學生明確,代碼不能一次性通過是正常現象,編程需要耐心對待;其次,養成認細心的習慣可有效減少錯誤的發生,如text與test、label與lable、date與data書寫混淆,缺少endif語句、next語句等錯誤均屬于不細心造成的;再者,嚴格按語句的書寫格式及語言規范書寫語句,可避免大多數的錯誤發生,如a=b=c, num%+text1,print y=sina+sinb等錯誤則屬于學生對語言規范不夠明確造成的。至于邏輯性錯誤,學生自己則很難發現,需要教師幫助解決。
總結經驗,代碼的調試部分,學生和教師都要求有足夠的耐心和細心,而且,教師要善于總結學生中易于出現的類同錯誤,在課堂上及時糾正,或根據以往的教學經驗在教學進度中及時提醒,進行預防,較有效減少重復性錯誤的發生。
7總結
以上五個基本而又重要的教學環節,各有偏重,又相互聯系,相互影響,搞好這些環節的教學,就等于抓住了VB教學的重心;同時還要求教師和學生都要有足夠的耐心和毅力,共同努力實現VB教學質量的提高。
參考文獻:
[1] 蔣加伏.Visual Basic程序設計教程[M]. 北京:北京郵電大學出版社,2008.
[2] 湯彬. “VB 程序設計基礎”教學方法的探索與實踐[J]. 計算機教育,2008(16):112-113.