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