薛傳谷
摘 要 程序設(shè)計(jì)語言是中職學(xué)校計(jì)算機(jī)專業(yè)的重要課程,也是學(xué)生反映非常枯燥、抽象、難學(xué)的一門課程。如何做好VB教學(xué)一直是廣大計(jì)算機(jī)教師不斷探索和追求的問題。本文結(jié)合教學(xué)實(shí)踐探討了如何做好VB教學(xué),培養(yǎng)學(xué)生的編程能力。
關(guān)鍵詞 程序設(shè)計(jì) 教學(xué) 編程能力
中圖分類號(hào):G71文獻(xiàn)標(biāo)識(shí)碼:A
Exploration on Developing Vocational Students'
Programming capability in VB Teaching
XUE Chuangu
Fujian Pingnan Vocational School, Ningde, Fujian 352300)
Abstract Programming language is the key course of vocational school computer science, students also reflect it's very boring, abstract and difficult to learn. How to teach VB well has been the problems majority of computer teachers continue to explore and pursue. This paper explores how to teach VB and develop students' programming skills.
Key words programming design; teaching; programming capability
對(duì)中職學(xué)生來說,VB程序設(shè)計(jì)的概念抽象、規(guī)則繁多,枯燥難學(xué)。然而中職學(xué)校教學(xué)目標(biāo)卻要求:通過學(xué)習(xí),學(xué)生不僅要掌握高級(jí)程序設(shè)計(jì)語言的知識(shí),更重要的是在實(shí)踐中逐步掌握程序設(shè)計(jì)的思想和方法,培養(yǎng)問題求解和程序語言的應(yīng)用能力。這就要求教師在教學(xué)上下功夫,想方設(shè)法促進(jìn)學(xué)生編程能力的發(fā)展。
1 開展趣味教學(xué),培養(yǎng)學(xué)生學(xué)習(xí)編程的主動(dòng)性和積極性
愛因斯坦說:“興趣是最好的老師。”在教學(xué)中,教師設(shè)計(jì)與日常生活緊密結(jié)合的問題,或者從學(xué)生感興趣的事例引入問題,激發(fā)學(xué)習(xí)熱情,使學(xué)生主動(dòng)學(xué)習(xí)、樂于學(xué)習(xí)。這樣的教學(xué),必將收到意想不到的良好效果。教師在教學(xué)中安排的趣味教學(xué)問題要恰當(dāng),既要保證生動(dòng)有趣,又要難易適中,使學(xué)生只要“跳一跳就能夠得著”。
教師可以安排實(shí)際應(yīng)用類問題,促使學(xué)生產(chǎn)生想試一試的強(qiáng)烈愿望。比如,在火車站把托運(yùn)行李重量編程轉(zhuǎn)換為價(jià)格;設(shè)計(jì)加減法練習(xí)題并自動(dòng)計(jì)分;用VB程序設(shè)計(jì)簡(jiǎn)單的動(dòng)畫“蝴蝶飛舞”等。
2 抓住教材資源,以變促學(xué),促進(jìn)學(xué)生編程能力的發(fā)展
教材是編者辛勤勞動(dòng)的成果,是知識(shí)與經(jīng)驗(yàn)的結(jié)晶,它為師生提供了知識(shí)的源泉。由于學(xué)生的學(xué)習(xí)習(xí)慣、思維習(xí)慣、知識(shí)水平的具體情況有很大的差異性,如果不加思考地完全直接采納教材,對(duì)學(xué)生的發(fā)展是不利的。作為教師,要杜絕“一味的拿來主義”,應(yīng)該鉆研教材,積極做好“變化”教學(xué)。比如講授數(shù)據(jù)類型,可以將它們比作廚房中的油鹽醬醋罐,存放內(nèi)容的類型各不相同。把局部變量、模塊變量、全局變量的作用域比作學(xué)生、班主任、年段長(zhǎng)的權(quán)限;在同一個(gè)過程中如果有同名的全局變量與局部變量的作用域,比作“縣官(全局變量被屏蔽)不如現(xiàn)管(局部變量有效)”等等。更重要的是,著重挖掘教材的例題習(xí)題,開展“求異思變”教學(xué)活動(dòng),促進(jìn)學(xué)生發(fā)展。何謂求異思變?即變方法,變題目,拓展應(yīng)用。
(1)變方法。在VB教學(xué)中,教師可經(jīng)常嘗試一題多解,拓展學(xué)生的編程思路,培養(yǎng)編程能力。比如在學(xué)完各個(gè)循環(huán)結(jié)構(gòu)之后,教材上有道例題“編寫程序,判斷一個(gè)正整數(shù)(> =3)是否為素?cái)?shù)”。首先讓學(xué)生理解“判斷素?cái)?shù)”的算法,掌握課本上編寫的代碼。接著要求學(xué)生用其它像FOR-NEXT、DO-LOOP等6種循環(huán)結(jié)構(gòu)來改寫該題代碼,實(shí)現(xiàn)同樣的功能。這樣安排,既讓學(xué)生進(jìn)一步理解判斷素?cái)?shù)的算法,又讓他們對(duì)這幾種循環(huán)結(jié)構(gòu)進(jìn)一步熟悉,還區(qū)別了各個(gè)循環(huán)結(jié)構(gòu)的異同。再如“學(xué)生成績(jī)劃分等級(jí)”問題,可以用if結(jié)構(gòu)、select結(jié)構(gòu)、數(shù)組等多種方法;像這樣,積極開展一題多解教學(xué),拓展學(xué)生的編程思路。既促進(jìn)了知識(shí)的靈活運(yùn)用,又培養(yǎng)了編程能力。
(2)變題目。教材提供的編程題不是很多,這時(shí)就要靠教師來研究教材資源,或增加或減少程序問題的一些元素,使派生出來的編程題的難度呈交叉梯狀發(fā)展。既有問題上的相互獨(dú)立,又有知識(shí)上的內(nèi)在聯(lián)系,還有難易程度的區(qū)分。這樣既能激勵(lì)優(yōu)生,促進(jìn)中等生,又照顧到后進(jìn)生,使得人人有所學(xué),人人有進(jìn)步。
下面就是改變課本例題“求N!”的一些元素派生出來的幾道編程題。
A.計(jì)算并輸出9 ! 的值 ;
B.計(jì)算 5*7*9*11*……*101;
C.計(jì)算N !
D.計(jì)算1! + 2! +3! + …+11!;
E.計(jì)算 1! + (1!+2!) + … +(1!+2!+ … +N!)
這樣設(shè)計(jì)的問題,既有簡(jiǎn)單的又有較難的,各種層次的學(xué)生都得到了訓(xùn)練,學(xué)生得到均衡發(fā)展。
(3)拓展應(yīng)用。在日常教學(xué)與練習(xí)訓(xùn)練中,教師要善于敏銳地抓住一些問題,對(duì)知識(shí)巧妙地加以聯(lián)想、遷移、拓展,生成新問題。通過對(duì)這些新問題的分析、解決,訓(xùn)練了學(xué)生的思維,培養(yǎng)了創(chuàng)新精神,促進(jìn)了學(xué)生編程能力的提高。如程序問題“運(yùn)行后,文本框中只允許輸入英文字母?!狈治龅弥帉懳谋究虻逆I盤事件KeyPress,利用參數(shù)KeyAscii來控制英文字母的輸入。在此基礎(chǔ)上拓展問題:程序運(yùn)行后,文本框中只允許輸入數(shù)字、小數(shù)點(diǎn)、正負(fù)號(hào),并且要求如果有正負(fù)號(hào),必須以正負(fù)號(hào)開頭。這個(gè)問題增大了難度——“必須以正負(fù)號(hào)開頭”,提高了復(fù)雜度——“控制字符輸入的多種類型”。
3 開展“錯(cuò)誤”教學(xué),以“錯(cuò)”治錯(cuò),培養(yǎng)學(xué)生的糾錯(cuò)能力
有位教育專家說過:糾正錯(cuò)誤的過程也是一種學(xué)習(xí)過程。在教學(xué)過程中,遇到學(xué)生出現(xiàn)的錯(cuò)誤,老師的一般做法是指出錯(cuò)誤的地方以及如何糾正,學(xué)生只是被動(dòng)地接受,同樣的錯(cuò)誤很容易再次出現(xiàn),可見效果不佳。實(shí)踐證明,如果調(diào)動(dòng)起學(xué)生的主觀能動(dòng)性,糾錯(cuò)的效果大大提高。有效做法是:教師在平時(shí)注意收集學(xué)生在課堂、作業(yè)、試卷中的錯(cuò)誤,做好記錄,然后分析、分類、統(tǒng)計(jì)、總結(jié),最后精心設(shè)計(jì)以“錯(cuò)”治錯(cuò)的方案。
方案一:可以開辟黑板報(bào)一角“懸賞糾錯(cuò)”?!皯屹p糾錯(cuò)”的問題以“程序算法錯(cuò)誤”為主并且要有典型性和代表性。問題可以是學(xué)生錯(cuò)誤的原型,也可以是學(xué)生錯(cuò)誤原型的變型,還可以是老師設(shè)計(jì)的錯(cuò)誤。既然是“懸賞”一定要有獎(jiǎng)勵(lì),以此激勵(lì)學(xué)生主動(dòng)解決問題。
方案二:開辦“糾錯(cuò)”課堂。這種課以調(diào)動(dòng)學(xué)生主動(dòng)參與為主、教師的引導(dǎo)幫助為輔。可以在課堂上把錯(cuò)誤再次原樣呈現(xiàn),故意讓出錯(cuò)學(xué)生來找出錯(cuò)誤及錯(cuò)誤原因,或者由其他學(xué)生糾正錯(cuò)誤;也可以設(shè)計(jì)成改錯(cuò)題,讓學(xué)生現(xiàn)場(chǎng)分析解決;還可以在糾錯(cuò)的基礎(chǔ)上,挖掘“錯(cuò)誤”的價(jià)值,設(shè)計(jì)出新問題讓學(xué)生來分析解決。
通過以“錯(cuò)”治錯(cuò)教學(xué),既達(dá)到糾錯(cuò)的目的,又培養(yǎng)了學(xué)生分析問題與解決問題的能力。
4 嚴(yán)抓實(shí)踐教學(xué)環(huán)節(jié),增強(qiáng)學(xué)生的編程能力
“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”,任何源程序未經(jīng)上機(jī)檢驗(yàn)均不能完全保證其正確性。通過上機(jī)實(shí)踐,才能發(fā)現(xiàn)問題,糾正部分學(xué)生的“想當(dāng)然”心理,培養(yǎng)實(shí)事求是的精神,增強(qiáng)編程能力。
4.1 精心設(shè)計(jì)實(shí)踐操作學(xué)案,指導(dǎo)學(xué)生獨(dú)立研究并完成實(shí)踐任務(wù)
古語曰:無疑則無進(jìn)。計(jì)算機(jī)編程操作性強(qiáng),這給我們置疑與釋疑提供了很大的便利,使得相當(dāng)多的疑問可以通過實(shí)踐操作得以解決。因此,教師要充分挖掘?qū)嵺`操作課的效能。
學(xué)生是初學(xué)者,他們對(duì)重難點(diǎn)把握不準(zhǔn)。教師有必要設(shè)計(jì)好《實(shí)踐操作學(xué)案》來指導(dǎo)學(xué)生開展實(shí)踐活動(dòng)。學(xué)案一要目標(biāo)明確,二要體現(xiàn)本章節(jié)重點(diǎn)知識(shí)并且設(shè)置由易到難的梯度,三要設(shè)置疑問,四要有綜合實(shí)踐題以便各章節(jié)融會(huì)貫通,五要由學(xué)生獨(dú)立完成并寫出完整程序代碼。在實(shí)踐課中以學(xué)生的實(shí)踐為主,老師的指導(dǎo)為輔。哪怕是學(xué)生遇到了困難,老師也只能是做些指導(dǎo)與提示,不可越趄代皰。在巡視過程中,老師著重發(fā)現(xiàn)并記錄編程的好方法、新方法、錯(cuò)誤方法,作為或者表揚(yáng)或者鼓勵(lì)或者剖析的材料。
4.2 擇機(jī)開設(shè)“特殊型”實(shí)踐操作課,提高學(xué)生的編程水平
通過日常教學(xué),學(xué)生的編程能力達(dá)到一定的水平。但是如何讓學(xué)生的編程能力得到更高的提升?這時(shí)就要發(fā)揮教師的主導(dǎo)作用了——在電腦機(jī)房開設(shè)“特殊型” 實(shí)踐課,用事實(shí)來說話。這種課有如下幾類:
(1)“尋醫(yī)問藥”型。學(xué)生在編程實(shí)踐中總會(huì)存在這樣或那樣的疑難與困惑,這類課就是集中解惑的過程。老師把收集到的所有問題(包括程序代碼)找出典型, 分類提出。當(dāng)然問題也可以是學(xué)生提出來的。課堂采用討論與提問的方式,主要由學(xué)生幫助解決,不能解決的再由老師解答。
(2)“經(jīng)驗(yàn)交流”型。在編程過程中,每個(gè)人的思維方式不同、角度各異,各有高招?!叭诵斜赜形?guī)熝伞?,這類課就是通過交流,讓每個(gè)學(xué)生不斷吸收別人的長(zhǎng)處,豐富編程實(shí)踐。這種交流不是泛泛而談,而是擺出具體案例,主要由學(xué)生編寫者講講具體的分析過程,算法實(shí)現(xiàn)的過程,還可以談?wù)剝?yōu)化程序代碼的過程。教師也可以談?wù)勛约旱慕?jīng)驗(yàn),堅(jiān)決避免老師一言堂。要保證“分析、討論、比較”貫穿在整個(gè)交流過程中。
(3)“故意找茬”型。這種課堂要拿那些貌似“完善與優(yōu)秀的學(xué)生作業(yè)或作品”來開刀。方法一,不看程序,請(qǐng)5~8位同學(xué)分別運(yùn)行這個(gè)程序,想盡辦法讓程序運(yùn)行出錯(cuò),找出錯(cuò)誤原因,最后修改完善程序。方法二,不準(zhǔn)運(yùn)行程序,邀請(qǐng)學(xué)生只看程序代碼,找出錯(cuò)誤或糾正錯(cuò)誤。這種方式既能完善程序功能,減少程序漏洞,又讓其他學(xué)生學(xué)到編程技巧,更能很好地培養(yǎng)學(xué)生的查錯(cuò)糾錯(cuò)能力。
4.3 開展第二課堂活動(dòng),培養(yǎng)學(xué)生自我學(xué)習(xí)、研究問題的能力
第二課堂以任務(wù)驅(qū)動(dòng)法為主,教師不定期地布置編程任務(wù),要求每個(gè)學(xué)生獨(dú)立完成。任務(wù)可以是“小小計(jì)算器”、“中英文打字軟件”、“電子畫板”、“音樂播放器”、“化學(xué)模擬反應(yīng)實(shí)驗(yàn)室”、“拍蚊子游戲”等等。教師要經(jīng)常關(guān)注學(xué)生編程進(jìn)展,有時(shí)要給予適當(dāng)指導(dǎo),或提供參考書籍,或提供關(guān)于VB編程的參考網(wǎng)址……通過第二課堂活動(dòng),拓寬了學(xué)生的知識(shí)面,開闊了學(xué)生的視野。培養(yǎng)了學(xué)生獨(dú)立學(xué)習(xí)、研究問題的能力。
此外,組織學(xué)生參加各級(jí)各類編程競(jìng)賽,爭(zhēng)取獲得榮譽(yù),以此不斷激發(fā)學(xué)生的學(xué)習(xí)熱情,增強(qiáng)競(jìng)爭(zhēng)意識(shí)。一旦形成生生競(jìng)爭(zhēng)、師師競(jìng)爭(zhēng)、師生競(jìng)爭(zhēng)的濃厚氛圍,學(xué)生的能力必定得到長(zhǎng)足發(fā)展。
總之,作為教師,要盡最大可能地研究教學(xué)教法,調(diào)動(dòng)起學(xué)生的主觀能動(dòng)性,嚴(yán)抓編程實(shí)踐,促進(jìn)學(xué)生編程能力的發(fā)展,提高學(xué)生的編程能力。
參考文獻(xiàn)
[1] 教育部考試中心編著.二級(jí)教程——Visual Basic語言程序設(shè)計(jì).北京:高等教育出版社,2010:1-435.
[2] 飛思科技研發(fā)中心編著.Visual Basic靈感編程.北京:電子工業(yè)出版社,2002:65-90.
[3] 吳目誠(chéng),吳秉柔編著.精彩Visual Basic 6.0程序設(shè)計(jì).北京:科學(xué)出版社,2002:141-172.