摘要:從計算機二級等級考試出發,根據《Visual Basic程序設計》課程自身的特點,對《Visual Basic程序設計》的教學方法進行改革。改革的基本原則:課堂上應以學生為本,注重激發學生的學習興趣,幫助學生體驗成功,增強自信。具體做法:不拘泥于課本,從順序上對教學內容進行大膽地調整,將教學內容進行有機分解、組合,應用案例教學法。
關鍵詞:教學互動;興趣點;調整順序;內容分解;案例教學
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)26-1756-03
On Classroom Instruction Reformation from Visual Basic Programme Design
LIN Fang
(Anhui Electrical Engineering Professional Technique College, Hefei 230022, China)
Abstract: Based on computer grading examinations, it is available to reform the classroom instruction method of Visual Basic Programme design according to the peculiarity of the course itself: Visual Basic Programme Design. The main principle of reformation is: emphasis the instructing interaction during classroom, so as to stimulate students' interest in learning, helping them experience success and enhance their confidence. And the detailed process are: adjust the order of instructing contents, not restricted by the text book. Deconstruct, and reform the knowledge points, apply case instructing method.
Key words: instructing interaction; interest point; adjust the order; deconstruct; and reform the knowledge points; case instructing
1 引言
隨著計算機技術在各個領域的推廣普及和應用,計算機已成為人們必須掌握的一種基本技能。既掌握專業技術又具有計算機應用能力的人越來越受到用人單位的高度重視和歡迎。
計算機等級考試是考察一個人計算機水平的一個重要依據,很多部門和行業已將是否通過計算機等級考試作為上崗和晉級的重要條件甚至是必備條件。
本人是安徽省一所高職院校的計算機老師,帶領學生通過安徽省計算機二級考試是我工作的一部分。在數年的教學過程中本人走了不少彎路,在學校領導的支持和鼓勵下,我根據以往的經驗和教訓在課堂教學方法上做了一些調整和嘗試。
2 教學互動
之前,我一直采用“滿堂灌”的教學模式,即滿堂課都是我一個人口若懸河地講,學生閉著嘴巴聽;除了個別意志力特別堅強的學生在認真聽,其他的要么打瞌睡,要么開小差,一堂課下來,很多學生都是一問三不知。殘酷的現實讓我開始思考,到底哪里出了問題?我回顧了自己以往的教學過程,發現了癥結所在:課堂上,作為教師的我是唯一的主體,學生是聽眾、觀眾,學生幾乎沒有時間談自己的看法,我不了解學生的想法、狀態,也不想知道學生的想法。正是這種單向教學,挫傷了學生學習的積極性,使他們失去了學習興趣。
基于“滿堂灌”上述缺點,根據《Visual Basic程序設計》課程自身的特點,結合我們高職教育的特殊性,我改變了策略;在課堂上,盡量讓學生多思考、多動手、多說話,鼓勵他們大膽發表自己對問題的看法。
比如,在學習for循環語句時,先通過一個簡單例題
FOR i=1 TO 10 STEP 1
print i;
Nexti
使學生們初步了解for循環的執行過程,循環變量初值、循環變量終值、以及步長等的作用。然后引導學生思考,這樣一個循環過程如果用while-wend循環來實現應該怎么寫?
i=1
While i<=10
print i;
i=i+1
wend
學生在動手書寫時會出現各種各樣的錯誤:有的同學忘了給i賦初值,有的同學忘了i=i+1,對于這兩種情況,我會請他們按照while-wend的執行順序,將程序執行過程寫在草稿紙上,兩個循環寫下來,他們就知道自己錯在哪了;還有的同學不知道while后面的條件怎么寫,我會提醒他們for循環結束循環的條件是什么?在這樣的引導下,大多數的學生最終都能寫出正確的答案,這時再讓他們上機運行一下,結果所有學生都露出自信的微笑。通過這樣兩個循環語句的轉換,既學習新知識,又復習了舊知識,對循環語句有了一個融會貫通的理解;更重要的是,學生在這樣的轉換中又一次體驗了自己經過努力而獲得的成功,增添了自信,增添了興趣。
這樣做,看起來好像是耽誤了老師上課的時間,但實際上好處很多:一方面教師從學生解決問題的過程中可以發現學生對教學內容的掌握程度,發現他們的閃光點或理解上的錯誤,這樣對閃光點可以及時表揚,激發學生的學習熱情,對理解上的錯誤可以及時的糾正;二來,在這種模式下,學生在課堂上不再是被動的接受者,而是主動探求者,這樣一來在課堂打瞌睡、開小差的人幾乎沒有了。
3 課本有時只是老師或學生查閱的一個工具,它并不能束縛教師的思想
編者在編寫課本時,在內容的編排順序上,考慮更多的是內容的連貫性。教師在課堂上上課時可以不拘泥于課本,不一定非按照課本的順序來講解內容,有些時候可跳出課本,按照教師自己的想法或根據學生的現狀來組織教學內容。
一般的《Visual Basic程序設計》教材在介紹語言基礎時,通常是按照如下的順序:
1) Visual Basic基本數據類型;2) 常量與變量;3) Visual Basic中的運算符與表達式;4) Visual Basic程序的書寫規則;5) Visual Basic的常用內部函數;6) Visual Basic的基本輸入/輸出語句;7) Visual Basic的基本控制結構;8) 數組。
(1)、(2)、(3)、(4)、(5)、(6)這幾部分涉及的內容具有這么幾個特點:知識點多、散、簡單且枯燥,如果按部就班講這部分內容,大多數學生不感興趣,可能直接導致失去學習這門課的興趣。興趣是最好的老師,一個課程開頭的幾節課能否引起學生的興趣對于學生能否學好這門課起了非常大的決定作用。所以,我決定從第(7)部分開始講,先介紹選擇結構語句,在講解這部分內容時如果遇到第(7)部分之前的知識(如運算符、函數等),只要給與適當的說明學生即可明白。當第(7)部分講解完畢,前面的知識點也基本被覆蓋了,這時只需要花一個課時將前面內容從頭到尾捋一遍,即可收到事半功倍的效果。
除了內容順序上的考慮,在編寫課本時,編者還要考慮課本內容的完整性,在介紹一個知識點時往往要求面面俱到。例如第2章在講解定義變量時,書中寫:
|dim|private|static|public|<變量名>[as <類型>][,<變量名2>[as <類型>]
第2章內容只涉及到用dim來定義變量,而private、static、public這些關鍵詞要到第4章才能真正用上。如果一開始就將這些關鍵詞全部介紹一遍,會給學生造成很大的困擾,這個困擾可能一直延續到第4章,而有些學生有可能會因為這個困擾而失去學習這門課的興趣。鑒于此,我在介紹第4章之前,只介紹用dim關鍵詞來定義變量;等上到第4章 “過程與變量的作用域”時,學生對定義變量的意義已經非常熟悉了,此時再介紹private、static、public,學生就容易接受了。
4 精心設計案例,以案例為中心講解知識點
Visual Basic有許多控件,而每個控件都有很多屬性,如果單純地介紹屬性,學生一方面會記不住,同時聽起來也會很無趣;但是如果教師通過編排一個個實例來講解相關知識點,學生的興趣會大得多,記憶效果也會好很多。
以列表框為例,列表框所涉及到的屬性比較多,如:list、listcount、listindex、selected、text等,課前為了幫助學生更好地了解這些屬性,我編寫了幾個小程序,將列表框所涉及到幾個常用屬性和方法分散在幾個案例中,通過這幾個案例去體會各個屬性、方法的功能和用法。
[案例1]事件過程如下:
Private sub form_click()
i=0
while i
Print List1.List(i),
i=i+1
wend
End sub
這個事件過程里用到了列表框的2個屬性:listcount和list。Listcount屬性的值就是列表框內的項目個數,而列表框內每一個項目都可以用list屬性來表示,如list(0)即代表列表框的第1個項目:北京。程序運行后,當用戶在窗體上單擊時會執行此事件過程,將列表框內的項目一個一個輸出在窗體上。通過這個程序不僅初識了列表框的兩個屬性,而且還復習了while-wend循環,一舉兩得。
[案例2]事件過程如下:
Private Sub Form_Load()
List1.Selected(2) = True
End Sub
Private Sub Command1_Click()
Text1.Text = List1.Text
Text2.Text = List1.ListIndex
End Sub
[案例2]里用到了列表框的另外3個屬性:text 、listindex和Selected。text屬性的值就是列表框內的被選中的那個項目,listindex屬性表示的是列表框內被選中的那個項目的下標,而Selected屬性的值是邏輯值:true或1。由于在form_load事件過程中List1.Selected(2) = True,使得列表框的第3項也即“湖南”在程序開始運行后即被選中。用戶如果選中“上海”,單擊命令按鈕后,在text1內顯示“上海”,而在text2內顯示的是“上海”這個項目的下標。該案例所涉及到的3個屬性都跟選中有關,但它們各自取值不同,書寫格式上也有差異,通過這個案例,使學生對這3個屬性有一個橫向比較,加深記憶。
[案例3]事件過程如下:
Private Sub Command1_Click()
If text1.text<> \"\" then
List1.AddItem Text1.Text
Else
Msgbox \"請在文本框中輸入\"
End if
End Sub
Private Sub Command2_Click()
If list1.listindex<>-1 then
List1.RemoveItem List1.ListIndex
Else
Msgbox \"請先在列表框中選擇一個項目\"
End if
End Sub
[案例3]中,用戶單擊commmand1時,會將用戶在文本框中輸入的內容添加到列表框中;如果用戶事先沒有在文本框中輸入內容,則會出現一個消息框。用戶單擊command2時,程序會將用戶在列表框中選中的項目刪除;如果用戶事先沒有在列表框中選擇一個項目,則list1.listindex的值為-1,此時會出現一個消息框,提示用戶應先在列表框進行選擇。Additem和removeitem是列表框的兩個方法,它們作用正好相反;Additem用于向列表框添加項目,而removeitem用于將列表框中被選中的那一項刪除。在這個案例中,除了學習Additem和removeitem兩個方法,還復習了listindex屬性、msgbox 語句以及多行if語句。
在講解這3個案例時,通常是先將最終生成的可執行文件運行一遍,讓學生先看到程序運行的結果,這一步很重要,這是學生的興趣點;接著給他們看代碼,在講解代碼的過程中重點介紹新知識點;然后讓他們自己上機驗證。在這樣的過程之后,學生們對新內容已經有了些許印象,這時,再圍繞知識點對案例做一些變化,讓學生自己編寫代碼、上機調試,學生們會非常有興趣。
5 結束語
實踐證明,我所做的這些嘗試是有效的,在2007年~2008年第1學期,我所帶的兩個班中,一個班通過率為95%(40人有2人未過),另一個班通過率為100%,而兩個班優秀率均為15%(每40人中均有6人優秀)。而在2006~2007年第2學期,一個班通過率為85%,一個班為87%,每個班僅有2名優秀。面對這樣的結果,我當然很高興,但是離領導的要求、離我的目標還有一定的差距。
不同的課程、不同的老師、不同的學生可能適合的教學方法是不同的,但是,我覺得:每門課程都應該有學生的興趣點,教師能否抓住學生的興趣點很大程度上決定了教學效果的好壞。所以作為教師,不僅要有過硬的專業技術,還應該充分了解學生,了解他們的接收能力,了解他們的性格,了解他們的學習習慣……,這樣才能對癥下藥。
“唯有改革才有出路”,經濟如此,教育也如此。為了今后能取得更好的成績,我必須不斷地反思,不斷總結,不斷創新,希望作為教師的我們,共同努力,摸索出更多更好的教學方法,培養出更多、更優秀的祖國需要的人才,為我們祖國早日強大作出自己的貢獻!
參考文獻:
[1] 潘地林.Visual Basic程序設計[M].北京:高等教育出版社,2006.
[2] 譚浩強.Visual Basic程序設計[M].北京:清華大學出版社,2000.
[3] 孫家啟.Visual Basic程序設計教程[M].合肥:安徽大學出版社,2005.