摘 要:本文從自身近幾年的信息技術(shù)Visual Basic(以下簡(jiǎn)稱為“VB”)程序設(shè)計(jì)教學(xué)的親身體驗(yàn)和經(jīng)驗(yàn)出發(fā),分析了VB程序設(shè)計(jì)課堂教學(xué)中所面臨的一些難點(diǎn)和尷尬,在遵循信息技術(shù)這門特殊課程的課堂教學(xué)的基本原則和基本規(guī)律下,給出了自己的一些見解和教學(xué)策略。
關(guān)鍵詞:程序設(shè)計(jì);教學(xué);難點(diǎn);策略
在新課程新高考的背景下,信息技術(shù)這門學(xué)科被納入“7選3”科目,且選考技術(shù)學(xué)科的學(xué)生越來(lái)越多,我省一年兩考的技術(shù)選考走過了整整兩年,從上機(jī)到筆試的考試形式轉(zhuǎn)變,從會(huì)考上升到高考的高度,猛地讓我們的學(xué)科地位竄到高點(diǎn),但我們信息技術(shù)學(xué)科老師的地位真正地提高了嗎?為了迎接這個(gè)契機(jī)抓住這個(gè)轉(zhuǎn)折點(diǎn),我們就要用更高的教學(xué)能力要求自己,這就要求我們尋求更好的課堂教學(xué)設(shè)計(jì),研究和總結(jié)解題策略,帶領(lǐng)越來(lái)越多的選考學(xué)生在高考這條路上越走越好。以下是我在實(shí)際教學(xué)中不斷摸索,所做的一些嘗試。
一、 巧用比喻教學(xué)法,化解VB中的抽象概念。
VB中有很多專業(yè)性很強(qiáng)的概念,這些概念對(duì)于學(xué)生而言很難理解,而且非常容易混淆,比如在VB面向?qū)ο蟪绦蛟O(shè)計(jì)第一課時(shí)就講到了窗體、類、對(duì)象、屬性、方法和事件過程等,在介紹這一堆概念時(shí),我們可以通過比喻的方法來(lái)幫助學(xué)生很好地理解。比如我們可將“窗體”比作“舞臺(tái)”,那么“對(duì)象”就是在舞臺(tái)中表演的各種各樣的“人物”,同一種族的人為一“類”,如漢族、回族、苗族等,所以我們這有Label標(biāo)簽類、TextBox文本框類、CommandButton類等,每個(gè)“人物”會(huì)有不同的發(fā)型、服飾、語(yǔ)言等,這就是“對(duì)象”的屬性和屬性值?!胺椒ā焙汀斑^程”就是舞臺(tái)中人物表演的動(dòng)作,“事件”就是指什么情況下人物開始表演。比如:
Private Sub;Command 1 Click()
Label 1. Caption=“Hello,說Boys and girls.”
End Sub
這段簡(jiǎn)單的程序意思是當(dāng)我們鼠標(biāo)去單擊Command 1對(duì)象時(shí),此鼠標(biāo)單擊事件就會(huì)響應(yīng)程序的執(zhí)行。
再比如,我們?cè)谥v變量和數(shù)據(jù)類型時(shí),可以將變量比作“調(diào)味罐”,那數(shù)據(jù)類型就是規(guī)定往不同調(diào)味罐里存放不同的調(diào)味料,放鹽的就不能放糖,就好比將字符串型的變量不能直接賦值給整數(shù)型變量,所以就有了s=val(text1.text)用val(x)標(biāo)準(zhǔn)函數(shù)將數(shù)字字串轉(zhuǎn)換為數(shù)值,再賦值給整數(shù)型變量s。
再比如,我們?cè)谥v一維數(shù)組時(shí),原概念是這樣描述的——數(shù)組是由一批同類型的變量構(gòu)成的一個(gè)序列,組成數(shù)組的每一個(gè)變量被稱為數(shù)組的元素,也稱為下標(biāo)變量,下標(biāo)是一個(gè)整數(shù),用來(lái)指出某個(gè)元素在數(shù)組中的位置,如定義了一個(gè)一維數(shù)組變量:
Dim a(1 to 100)as integer
我們就可以比喻成我們有一個(gè)名叫“a”的火車,該火車車廂的編號(hào)從1開始到100,共有100節(jié)車廂,即100個(gè)元素,分別是a(1)、a(2)……a(100),integer數(shù)據(jù)類型就理解成該車廂是用來(lái)載客的,不是載貨的,a(1)=45,就理解成第1節(jié)車廂今天的載客量是45。
通過與現(xiàn)實(shí)生活中的實(shí)例相類比,幫助學(xué)生理解和掌握知識(shí)點(diǎn),讓課堂不再那么枯燥乏味。
二、 選用綜合實(shí)例上機(jī)實(shí)踐,解救分層教學(xué)難問題
學(xué)生算法思維素養(yǎng)參差不齊,對(duì)于學(xué)生存在的差異性,可以采用分層教學(xué),即符合教學(xué)中因材施教的原則。程序設(shè)計(jì)的理論知識(shí)多且零碎,若一開始就以實(shí)例編程為主,素質(zhì)好的學(xué)生在上機(jī)實(shí)踐的同時(shí)會(huì)兼顧理論知識(shí)的理解和掌握,而基礎(chǔ)不好的學(xué)生,勢(shì)必會(huì)手忙腳亂,既顧不好基礎(chǔ)知識(shí)點(diǎn)的學(xué)習(xí),又耽誤編程實(shí)踐,這會(huì)挫傷大多數(shù)學(xué)生的學(xué)習(xí)積極性,導(dǎo)致差生越來(lái)越差,兩極分化現(xiàn)象越來(lái)越嚴(yán)重,苦的是中間段學(xué)生。所以基礎(chǔ)知識(shí)的理論授課時(shí)間和留給學(xué)生實(shí)例操作時(shí)間在1∶1左右比較恰當(dāng),但是一旦基礎(chǔ)知識(shí)大部分學(xué)生已掌握時(shí),再繼續(xù)以講解為主,就是對(duì)基礎(chǔ)好的學(xué)生的一種教育重復(fù),這必然會(huì)使好學(xué)生不能有更高的突顯。
因此,在后期為了能兼顧所有的學(xué)生,在講解和鞏固基礎(chǔ)知識(shí)的同時(shí),要開始偏向培養(yǎng)學(xué)生的操作能力,就從綜合實(shí)例操作任務(wù)設(shè)置上進(jìn)行分層教學(xué),將操作任務(wù)分為基礎(chǔ)必做題和深度拓展選做題,教師講課時(shí)間和學(xué)生實(shí)踐操作時(shí)間以1∶3左右進(jìn)行,甚至可以整堂課放開讓學(xué)生做,教師在期間進(jìn)行點(diǎn)撥輔導(dǎo)。基礎(chǔ)差的學(xué)生一開始就先試著完成基礎(chǔ)必做題,久而久之,也會(huì)有提高,進(jìn)而跟進(jìn)嘗試拓展題;素質(zhì)好的學(xué)生也不會(huì)受束縛,不斷地去實(shí)踐拓展題。這種看似簡(jiǎn)單的分層任務(wù)形式教學(xué),實(shí)質(zhì)上對(duì)教師在選擇程序?qū)嵗龝r(shí)很有講究,要把握好度的問題。
三、 先“紙上談兵”,后“機(jī)上論戰(zhàn)”
在VB程序設(shè)計(jì)教學(xué)中,很多學(xué)生反映上課時(shí)能聽懂老師的講解,可一旦自己去實(shí)踐操作或做題時(shí),就會(huì)突然腦袋一片空白,沒有思路,甚至面對(duì)屏幕卻敲不出一個(gè)代碼。起初階段我的做法是將關(guān)鍵代碼編寫好,顯示在大屏幕上供學(xué)生參考,讓學(xué)生學(xué)會(huì)閱讀簡(jiǎn)單程序、學(xué)會(huì)“依樣畫葫蘆”地照搬照抄,去感受代碼。幾節(jié)課后,我就會(huì)在課后安排下節(jié)課的程序?qū)嵗?,把流程圖給學(xué)生,要求學(xué)生在練習(xí)本上根據(jù)流程圖進(jìn)行編程,并提示關(guān)鍵的思路,代碼由學(xué)生自己編寫并上交,而我要趕在下節(jié)課前將學(xué)生寫在紙上的代碼批改一遍。
剛開始使用這個(gè)策略時(shí),我的批改難度很大,學(xué)生會(huì)定義五花八門的變量名,代碼書寫沒有層次沒有縮進(jìn),更別談注釋了,簡(jiǎn)直一塌糊涂,改得我眼花繚亂,心力交悴。對(duì)學(xué)生自己而言,上機(jī)實(shí)踐時(shí)也是問題百出,我就不停地穿梭在機(jī)房里進(jìn)行解答。因此,后來(lái)進(jìn)行了一些規(guī)定,比方對(duì)程序中的變量名的命名進(jìn)行規(guī)定,代碼的書寫進(jìn)行規(guī)范化縮進(jìn),以及加上必要的注釋。
程序,對(duì)于計(jì)算機(jī)來(lái)說就是一串?dāng)?shù)據(jù),但是對(duì)編寫的人來(lái)說我們要的是程序的可讀性,因此在書寫時(shí),該縮進(jìn)的縮進(jìn),該對(duì)齊的對(duì)齊,層次清楚,還要養(yǎng)成注釋的習(xí)慣,這樣調(diào)試出錯(cuò)時(shí),檢查起來(lái)也方便。一般函數(shù)體、過程體、循環(huán)體、條件判斷體需要向內(nèi)縮進(jìn)3格,同層次的代碼在同層次的縮進(jìn)層上。
程序代碼的編寫是一門藝術(shù),良好的編寫習(xí)慣可以使你編寫的代碼更易于理解,讓你的代碼如行云流水般的舒暢。
在上機(jī)實(shí)踐時(shí),同時(shí)將參考代碼展示在屏幕上,一來(lái)基礎(chǔ)好的學(xué)生可以參考代碼自行調(diào)試,二來(lái)我就有稍空閑的時(shí)間去幫助那些基礎(chǔ)薄弱的學(xué)生。這樣每一節(jié)程序設(shè)計(jì)課結(jié)束后,還有一個(gè)關(guān)鍵的作業(yè),就是要求學(xué)生將完整的可行的代碼抄寫一遍,沒有調(diào)試成功的,就抄寫教師的代碼,這樣做的目的就是讓學(xué)生去感受代碼,以建立起對(duì)程序設(shè)計(jì)的整體概念,體會(huì)各種語(yǔ)句的功能等。
四、 常以考題為依據(jù),進(jìn)行專題分析與研究,總結(jié)解題策略
(一) 針對(duì)VB選擇題的解題策略
VB在選考中涉及3道選擇題,其中1道是基礎(chǔ)題,以流程圖的形式出現(xiàn)或是對(duì)調(diào)試結(jié)果進(jìn)行分析等,這道題絕大部分學(xué)生沒有問題。
另外2道是選擇題第11題和第12題的加試題,大多是冒泡和選擇排序、對(duì)分和順序查找的程序?qū)崿F(xiàn)的“變相”,主要考核學(xué)生閱讀程序的能力。針對(duì)這兩題的答題策略培養(yǎng),在平時(shí)教學(xué)中一方面要要求學(xué)生熟練掌握冒泡和選擇排序、對(duì)分和順序查找的算法思想,另一方面要要求學(xué)生在平時(shí)練習(xí)中堅(jiān)持用手動(dòng)的方法,結(jié)合程序代碼對(duì)數(shù)據(jù)進(jìn)行排序或查找,其次還要要求學(xué)生養(yǎng)成畫“輔助線”輔助代碼執(zhí)行。
(二) 針對(duì)VB填空題的解題策略
VB在選考中涉及3道填空題,分別是第14題,以及第16、17題兩道加試題。
(1) 第14題,此題是學(xué)考學(xué)生要完成的,因此考核的是解析算法或者枚舉算法,具體第一空一般是考核對(duì)象屬性、方法、對(duì)象名、事件名等基礎(chǔ)概念;第二空是程序代碼填空;第三空寫出程序運(yùn)行結(jié)果或程序?qū)崿F(xiàn)的功能等。
此題的答題策略:針對(duì)第一空,要求學(xué)生熟練正確區(qū)分對(duì)象、屬性名及屬性值的概念,同時(shí)掌握標(biāo)簽、文本框、命令按鈕、圖像框、列表框、定時(shí)器控件對(duì)象的常用屬性及其關(guān)鍵屬性值的設(shè)置方法。針對(duì)第二空程序代碼填空,要明確題中的算法思想和解題思路,熟練掌握常用函數(shù),賦值、條件、循環(huán)三種基本語(yǔ)句的格式、功能和應(yīng)用,平時(shí)要練習(xí)編寫一些簡(jiǎn)單的VB應(yīng)用程序。針對(duì)第三空寫出程序運(yùn)行結(jié)果或程序?qū)崿F(xiàn)的功能,要求學(xué)生根據(jù)題目描述的已知條件去推斷各種變量的含義,特別注意在文本框、標(biāo)簽框或列表框中顯示的變量(或表達(dá)式),在程序運(yùn)行過程中的變化。
邊讀題邊做筆記,將試題中的關(guān)鍵字詞做好記號(hào),并在配套的圖片窗體中標(biāo)注各個(gè)對(duì)象名稱,可以輔助讀懂程序功能。題目一遍讀不明白再讀,結(jié)合圖片反復(fù)讀,從字面上讀懂程序?qū)崿F(xiàn)的是什么功能的前提下,再來(lái)看代碼。
除此之外,還可以從表達(dá)式、if語(yǔ)句中的條件、循環(huán)初值、循環(huán)終值、計(jì)數(shù)語(yǔ)句、輸出語(yǔ)句等分析出錯(cuò)的原因,尋求錯(cuò)誤語(yǔ)句的解決方法。
(2) 第17題,此題是大綜合,是數(shù)據(jù)庫(kù)及算法的綜合應(yīng)用,考核的內(nèi)容為程序、變量分析,主要是以程序填空出現(xiàn),難度大,但此題的第一小題往往又是不難的,只要學(xué)生能靜下心來(lái)將題目描述的程序功能或算法思想從字面上讀明白,基本能答出來(lái),但往往是因?yàn)閷W(xué)生基礎(chǔ)不扎實(shí),解題不熟練,在前面的答題中花費(fèi)了大量時(shí)間,導(dǎo)致連看這題的時(shí)間都沒有。
答題策略一:從表達(dá)式,if語(yǔ)句中的條件,for循環(huán)語(yǔ)句中的初值、終值,計(jì)數(shù)語(yǔ)句,輸出語(yǔ)句等分析推斷填空處的語(yǔ)句。
答題策略二:近來(lái),出現(xiàn)自定義函數(shù)題頻率趨高。函數(shù)是編程的核心基礎(chǔ)之一,各種語(yǔ)言都有函數(shù)的概念,函數(shù)是組織好的用來(lái)實(shí)現(xiàn)特定邏輯功能的代碼段,函數(shù)在程序中是可以重復(fù)調(diào)用的,這就提高了應(yīng)用的模塊性和代碼的重復(fù)利用率。比如VB中有很多標(biāo)準(zhǔn)函數(shù)是事先定義好的,我們只需拿來(lái)使用就好了,比方Abs(x)函數(shù),它能夠?qū)崿F(xiàn)的特定的邏輯功能就是求它里面的參數(shù)x的絕對(duì)值;但許多應(yīng)用程序常常需要自己來(lái)定義函數(shù),以實(shí)現(xiàn)某種特定的計(jì)算,因此就有了自定義函數(shù)。
考查自定義函數(shù)就兩個(gè)點(diǎn),一是在End Function之前的語(yǔ)句中,至少有一個(gè)形如“函數(shù)名=表達(dá)式”的語(yǔ)句,這樣,表達(dá)式的計(jì)算結(jié)果才能作為函數(shù)的返回值,被VB送到函數(shù)的調(diào)用點(diǎn)上。二是自定義函數(shù)的調(diào)用,函數(shù)調(diào)用與內(nèi)部標(biāo)準(zhǔn)函數(shù)沒什么區(qū)別,只不過內(nèi)部函數(shù)由VB提供,而自定義函數(shù)由用戶自己定義,調(diào)用的格式“自定義函數(shù)名(參數(shù)表)”要牢記。
答題策略三:對(duì)于數(shù)據(jù)庫(kù),只要讀懂?dāng)?shù)據(jù)庫(kù)連接,ADO對(duì)象、讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)等相關(guān)知識(shí),對(duì)語(yǔ)句不作要求。
洋洋灑灑談了自身在VB教學(xué)實(shí)踐中的一些心得和體會(huì)。教學(xué)方法對(duì)教學(xué)效果來(lái)說至關(guān)重要,但不是絕對(duì)的,有了好的教學(xué)策略,還要有一個(gè)合理的實(shí)施過程,在這個(gè)過程中,師生情感的交流對(duì)教學(xué)效果的影響也是不可忽視的。作為一線的信息技術(shù)教師,我們要用更豐富的教學(xué)實(shí)踐、更豐富的教學(xué)理論和更豐富的教學(xué)睿智,來(lái)研透考題走向,讓我們的學(xué)生在提高信息素養(yǎng)的同時(shí),更能在高考中考出理想的成績(jī),擁有更多選擇繼續(xù)學(xué)業(yè)的權(quán)力。
參考文獻(xiàn):
[1] 張宏.高中《算法與程序設(shè)計(jì)》教學(xué)策略[J].教育教學(xué)論壇,2013(5).
[2] 黨麗瓊,劉文輝.基于多因素語(yǔ)義相似度的主觀題自動(dòng)評(píng)閱方法研究[J].計(jì)算機(jī)時(shí)代,2012(5).
[3] 李超燕,周建良.中小學(xué)信息技術(shù)上機(jī)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012(5).
[4] 袁利永,劉日仙.Script Control在自動(dòng)閱卷系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010(19).
[5] 劉日仙,袁利永.Script Control在VB自動(dòng)閱卷系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)時(shí)代,2010(9).
[6] 劉培奇,李增智.基于模糊含權(quán)概念圖的主觀題自動(dòng)閱卷方法研究[J].計(jì)算機(jī)應(yīng)用研究.2009(12).
[7] 郭新順,鄭戟明.具有多個(gè)備選答案的客觀題自動(dòng)閱卷系統(tǒng)設(shè)計(jì)[J].電腦編程技巧與維護(hù).2009(14).
作者簡(jiǎn)介:范肖霞,浙江省臺(tái)州市,天臺(tái)平橋二中。