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