【摘要】1991年,美國微軟公司推出了Visual Basle(簡稱VB),目前浙江省對口專業高職考、計算機專業必考的程序設計語言就是VB。對于職高學生而言,該課程入門較難,感覺無從下手。筆者從事VB程序設計這門課的教學有十幾年了,針對這一問題,結合職高學生實際情況、在VB程序設計教學中,對于怎樣讓學生輕松入門,提高他們的學習興趣做了一些有益的探索。本文闡述了在教學中如何讓學生克服畏難情緒,為進一步學習程序起良好的鋪墊作用。
【關鍵詞】VB程序設計;教學;第一課;實例;興趣;信心
程序解決問題對職高學生來說是一種既陌生又新鮮的信息處理方法。因此,怎樣讓學生輕松入門,提高他們的學習興趣成為本節課要解決的首要問題。
在職高學生初次接觸程序設計時,如果墨守成規地在第一節課就向學生介紹類、對象、屬性、方法、事件等概念,容易使學生感到枯燥乏味,對程序設計產生畏難和厭棄情緒。因此,只有激發起學生強烈的學習興趣,才能起到事半功倍的效果,正所謂“磨刀不誤砍柴工”。筆者正是通過“興趣”這個導人點,大膽采用非常規教學方法,才收到了意想不到的效果。
相傳漢高祖劉邦問大將軍韓信統御士兵多少,韓信答:乒不足一萬,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余7人。劉邦茫然而不知其數。這是一個非常有趣的問題,人們又把它稱作“中國剩余定理”。學生可以通過各種數學方法計算,大部分學生花費了很長時間才得到答案,而有的學生費盡周折最后卻依然無解。這時,便可讓學生看多媒體投影。啟動教師課前編好的vB工程文件,只需單擊按鈕一次,程序即可在不到1秒內顯示出求得的解,而且正確便捷。(如圖所示)
學生看得目瞪口呆,不禁感嘆于程序強大的功能以及便捷的運行。
學生本以為這樣的程序設計一定很復雜,后臺一定很龐大,因此,在知道了程序設計的作用和特點之后,他們意識到“程序”并不難。
那么程序能解決問題的奧妙在哪里呢?帶著這樣的疑問,教師打開了這樣一段程序代碼,如圖1所示。
面對這樣一段代碼,學生不免會感到茫然,為了消除這種情緒,教師并不急于解說程序,而是從學生熟悉的數學方法人手。士兵的人數范圍可能是24到9999,在此范圍內逐個搜索滿足條件的人數,就可以得出答案。此范圍的搜索就是通過循環語句for實現的,即由for和next組成的配對語句,而if和then之間的就是條件(注意對照程序),rood是取余數的運算符。這樣學生可以很容易理解程序的作用,而不會陷入到復雜的結構分析中去。這樣就讓學生覺得程序并不是表面看起來的那么深奧,還能夠保持信心學下去。實際上整個程序代碼也僅僅就是這么幾條語句,學生可能還不懂什么叫“循環”,但是沒關系。先來看懂這條語名:“For s=24 to 9999”,即設定人數為24到9999,這條語句是整個程序循環的開始,與后面的語句“Next s”構成循環,且這兩個語句都是循環結構的循環體。循環變量s的初始值為最小的可能值,因為每17人一列余7人,所以設為24,循環體每循環一次其值增加1,直到s的值大于9999則退出循環。把終值設為9999應該不難理解,因為士兵不足一萬。
在這個循環里,使用了一個分支結構,即程序在運行過程中根據設定的條件來選擇相應的程序語句執行。這里我們使用的是If語句,判斷是否滿足題目中所要求的“每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余7人”。
(1)執行For語句:直接進入循環,執行循環體。
(2)執行If語句:判斷條件:如果條件滿足,輸出滿足條件的人數。程序的流程圖如圖2所示。
縱觀整個流程,對初學者來說,只要搞懂了數學問題就不難理解。至于變量、程序結構、函數、過程等是后面將要學習的內容,可以分別設計不同的實例來分別說明。而對于初識程序的學生而言,正確無誤地輸入程序代碼既是基本功的要求,也是鍛煉動手能力的需要。當學生出現運行錯誤時,教師應給予指導或邀請完成任務的同學給予幫助,及時地解決問題和體驗程序的運行對提高學生的學習興趣是很重要的。教師可以演示建立工程文件的一般方法,建立好窗體和控件后,由學生自己輸入程序代碼,體驗編程過程,運行程序,看看計算機完成了什么工作。
為進一步檢測學生掌握情況,引導學生探究,教師可以做一些小小改動,再以小組為單位,拋出問題。如:愛因斯坦曾出過這樣一道有趣的數學題,有一個長階梯,不足200級,每步上2級,最后剩1級;若每步上3級,最后剩2級;若每步上5級,后剩4級;若每步上6級,最后剩5級;只有每步上7級,最后一級也不剩。問至少有多少級階梯?要求分組討論,對于已經掌握知識的學生可以很快解決問題,這里主要培養學生團隊精神。
作為程序入門的第一節課,主要目的就是讓學生真切地感覺計算機程序解決問題的過程,了解用高級語言編程工具解決問題的基本方法,激發學生對程序設計的求知欲,提高學生的興趣。這里只要求學生體驗程序的運行過程和作用,讓學生感到用程序解決問題不是那么高深莫測,同時,及時地實踐既讓他們有繼續學習的興趣和信心,也培養了相應的能力,那么本節課的目的就達到了。

本節課構思側重于改變以往“教師講,學生做”的傳統教學模式,而是一切以學生為主,通過情景創設和學生的實踐反思,引領學生自然進入學習主題。先用學生自認為很熟悉的數學知識暫時難倒他們,再用程序解決問題激發學生的興趣和解決問題的積極性。整節課采用討論學習法及任務驅動法,充分調動學生的學習積極性,激發學生的求知欲。引導學生分析問題,從數學分析過渡到程序解決,教給學生解決問題的方法,同時也避免了晦澀難懂的程序解說。此外,對例題的選擇也下了一番工夫,一道有趣的數學題不但可以讓學生積極思考,而且設計的程序對有一定英語基礎的學生來說也很容易理解。通過歸納總結,將能力的培養落到具體的探究解決問題的過程中,使學生真正成為學習的主體,從而使學生在不知不覺中掌握并消化本節課的重點、難點,在實踐中體驗成功的喜悅和提升。