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