吳少琴
(汕頭市高級技工學(xué)校 廣東 汕頭 510031)
中技生的英語和數(shù)學(xué)基礎(chǔ)普遍都較差,對學(xué)習(xí)VB這門課程存在一定的畏懼心理。作為教師,應(yīng)從他們的知識背景和認(rèn)知規(guī)律出發(fā),幫助他們克服學(xué)習(xí)上的障礙,讓他們能夠輕松學(xué)習(xí),體會到學(xué)習(xí)不再是一種負(fù)擔(dān),而是一種愉快的體驗,本文就此談?wù)勗诮虒W(xué)過程中采用的一些學(xué)生易于理解、樂意接受、行之有效的方法。
興趣是學(xué)生取得良好學(xué)習(xí)效果的第一動力,好的案例可引發(fā)學(xué)生的學(xué)習(xí)動機(jī)與學(xué)習(xí)興趣。我在案例的設(shè)計上頗費(fèi)心思,選擇的案例既要生動有趣或具有實用性,又要包含相關(guān)的知識點(diǎn)。例如,選用“彈跳的籃球”來講控件數(shù)組,因為球的鮮艷顏色和不停彈跳能夠吸引學(xué)生的眼球;選用“體型測試”來講If語句和Select Case語句,因為學(xué)生會關(guān)注自己的體重夠不夠標(biāo)準(zhǔn)。學(xué)生感覺有趣的或有用的,他們就會努力學(xué)習(xí)。
第一堂課,我不急于講課,而是演示一些動感十足、色彩鮮艷的實例來吸引住學(xué)生,例如:閃爍的霓虹燈、豹子奔跑等,同時能夠讓他們認(rèn)識到VB能做什么。學(xué)生饒有興趣地觀看了好幾個案例演示后問:“老師,還有沒有啊?”這時我們的預(yù)期目的達(dá)到了:他們開始對VB感興趣了。
此時再將另外幾個生動的程序發(fā)送到學(xué)生機(jī),教會學(xué)生怎么運(yùn)行,讓學(xué)生親自體驗程序的運(yùn)行效果,進(jìn)一步感受程序設(shè)計的魅力,他們會感到編程很有意思。良好的開始,等于成功了一半。
開始授課時,我沒有按傳統(tǒng)的教法先介紹難懂的概念,而是從最簡單的、不涉及代碼的實例入手,讓學(xué)生能夠無障礙地運(yùn)行程序,找到“我已經(jīng)能做程序了”的成就感。
先讓學(xué)生“照貓畫貓”地跟著我在窗體上添加3個標(biāo)簽控件(上方左右各一個代表眼睛,下方一個代表嘴巴),然后在屬性窗口中設(shè)置窗體的BackColor屬性 (藍(lán)色)、標(biāo)簽的BackColor屬性(上方黃色,下方紅色)和BorderStyle屬性(單線邊框)。最后運(yùn)行,一個機(jī)器人的臉顯示出來了。這時學(xué)生會有這樣的體會:原來VB也不難學(xué)嘛!從而排除了學(xué)生的畏難情緒。
VB的概念比較抽象,學(xué)生不容易理解。比如,對象和屬性。我不忙解釋,而是先讓學(xué)生打開“畫機(jī)器人”案例,再讓學(xué)生欣賞一些不同膚色、黑眼睛、藍(lán)眼睛、單眼皮、雙眼皮的可愛兒童圖片。然后這樣來比喻:
人的臉、眼睛就相當(dāng)于VB的“對象”,皮膚是白的還是黑的、眼睛是單眼皮還是雙眼皮就相當(dāng)于對象的“屬性”。以標(biāo)簽控件為例,它的BorderStyle屬性用來設(shè)置邊框樣式,如果其值為0,則無邊框,相當(dāng)于單眼皮;如果其值為1,則有單線邊框,相當(dāng)于雙眼皮。學(xué)生一下子就明白了。
在此后的講課中,發(fā)現(xiàn)學(xué)生記得特別牢,如果標(biāo)簽用于提示功能,學(xué)生就會回答用“單眼皮”;如果標(biāo)簽用于輸出功能,學(xué)生就會回答用“雙眼皮”。
對每一案例,采用先演示后講解的教法。一方面能夠讓學(xué)生目標(biāo)明確,清楚案例最終要達(dá)到什么效果;另一方面讓學(xué)生先有視覺的享受,能夠更好地激發(fā)他們聽課的欲望。例如,案例“彈跳的籃球”,看完演示,學(xué)生很想知道怎樣才能讓球“跳”起來?因此他們會認(rèn)真地聽講,這時再將要講授的知識點(diǎn)列出來。
在我們教師看來很簡單的操作,學(xué)生因為是初學(xué),他們并不覺得簡單。所以,在學(xué)生初學(xué)VB階段,不能給他們吃大餐,只能讓他們一點(diǎn)點(diǎn)地吃,一點(diǎn)點(diǎn)地消化,不然就會消化不良。通常,一個小程序我都會分成好幾步來講,每講完一小步,就讓他們跟著依樣畫葫蘆地練習(xí)。
同時,我將程序代碼制作成一個個的“.jpg”文件發(fā)送到學(xué)生機(jī),學(xué)生可以打開這些文件來參照輸入。慢慢地,等到學(xué)生基本上都能蹣跚“走路”了,我就不再配給他們代碼文件這根“拐杖”了。
VB程序設(shè)計包括界面設(shè)計和代碼設(shè)計兩部分。界面設(shè)計比較直觀,學(xué)生容易掌握。代碼設(shè)計是學(xué)習(xí)的重點(diǎn)和難點(diǎn),可以從界面設(shè)計入手來過度。
比如,對于“畫機(jī)器人”案例,前面用的是在屬性窗口設(shè)置屬性的方法,要達(dá)到同樣的效果,也可以通過編寫代碼的方法來實現(xiàn)。
Private Sub Form_Click()
Form1.BackColor=RGB(0,0,255)
Label1.BackColor=RGB(255,255,0)
Label2.BackColor=RGB(255,255,0)
Label3.BackColor=RGB(255,0,0)
Label1.BorderStyle=1
Label2.BorderStyle=1
Label3.BorderStyle=1
End Sub
通過此例,學(xué)生可以對兩種方法進(jìn)行比較。
中技生英語基礎(chǔ)普遍都較弱,輸入代碼時容易出錯,又因看不懂英文的錯誤提示,沮喪和畏難情緒陡增。例如,學(xué)生經(jīng)常將 Label1 中的“l(fā)”(小寫字母)和“1”(數(shù)字)混淆,那么如何來避免這些輸入錯誤呢?
1)學(xué)生學(xué)習(xí)編程之初,一般都讓他們使用對象默認(rèn)的名稱,如窗體用 Form1,標(biāo)簽用 Label1、Label2,以降低輸入難度,減輕負(fù)擔(dān)。
2)復(fù)制法。編寫代碼時,先在窗體設(shè)計窗口中選中對象,然后從屬性窗口中復(fù)制該對象的英文名稱粘貼到代碼窗口中,以避免對象名稱輸錯。
3)選擇法。在代碼窗口中粘貼完對象名稱后,輸入小圓點(diǎn)“.”,在彈出的窗口中單擊某個列表項,便可以設(shè)置該對象的某項屬性,這樣就可以有效避免屬性拼寫錯誤。
4)學(xué)生對于什么時候該用“.”,什么時候不該用“.”模糊不清,可以教學(xué)生將小圓點(diǎn)“.”看成中文的“的”字,那么,我們說某人的膚色,在VB上就用“Form1.BackColor”來表示,意思就是“窗體1的背景色”,學(xué)生就很好理解了。
想強(qiáng)求學(xué)生死記硬背那些對象名稱或?qū)傩缘扔⑽膯卧~幾乎是不可能的。我的做法是,讓學(xué)生通過多個程序的模仿,在反復(fù)操作的過程中,學(xué)生自然而然地就能夠記住那些單詞的拼寫了,像Text1、BackColor等。這就像我們第一次見某個人,沒能記??;第二次見這個人,還是沒能記住;第三次見這個人,可能有點(diǎn)印象了;第四次見這個人,可能就記住了。
最常用的數(shù)據(jù)類型是數(shù)值型數(shù)據(jù),包含Integer、Long、Single、Double 4種。如何逐個介紹,我是通過學(xué)生熟悉的“計算正方形面積”案例來實現(xiàn)的。假設(shè)存儲邊長的變量為A,存儲面積的變量為S。
先將A和S均定義為Integer。當(dāng)邊長A等于或大于182時,運(yùn)行“溢出”出錯。這是因為S=A*A=182*182=33124,超出Integer的范圍32767;如果將S定義為Long,則運(yùn)行正常。
再將A定義為Single,S定義為Integer。若給A賦值1.5,則運(yùn)行結(jié)果為2而不是2.25,這是因為運(yùn)算結(jié)果2.25被四舍為整型2。若給A賦值1.6,則運(yùn)行結(jié)果為3而不是2.56。這是因為運(yùn)算結(jié)果2.56被五入為整型3。這時再將S定義為Single,則能得到含有小數(shù)的準(zhǔn)確結(jié)果。
中技生的數(shù)學(xué)基礎(chǔ)也較弱,理解Int(10*Rnd+1)這樣的表達(dá)式有難度,為什么它會產(chǎn)生1~10的隨機(jī)整數(shù)?我是這樣子來講的:因為Rnd函數(shù)產(chǎn)生一個在(0,1)之間的隨機(jī)小數(shù),那么
當(dāng)值接近0比如Rnd=0.0001時,10*Rnd=0.001,10*Rnd+1=1.001,則 Int(10*Rnd+1)=1
當(dāng)值接近1比如Rnd=0.9999時,10*Rnd=9.999,10*Rnd+1=10.999,則 Int(10*Rnd+1)=10
所以Int(10*Rnd+1)產(chǎn)生出的隨機(jī)整數(shù)都是在1~10之間。
經(jīng)過這樣的舉例,學(xué)生也就明白了。
以此類推,Int(255*Rnd+1)會產(chǎn)生出1~255的隨機(jī)整數(shù),此表達(dá)式在以后的隨機(jī)顏色、圓的隨機(jī)半徑中會經(jīng)常用到。
像“小球水平來回移動”這種利用形狀控件和定時器控件來制作動畫的案例,學(xué)生最喜歡,但卻不容易理解,這是學(xué)生的空間想像力有限所致,可以借助直觀的示意圖來講解。
用繪圖工具模擬畫出窗體和形狀控件,并在適當(dāng)位置標(biāo)示出窗體的Scale Width和Scale Height屬性、形狀控件的Left、Top、Width和Height屬性,對照著這張示意圖來講解小球撞擊窗體左側(cè)的條件是Shape1.Left<=0,撞擊窗體右側(cè)的條件是Shape1.Left+Shape1.Width>=Form1.ScaleWidth,這樣學(xué)生就能夠直觀感受、易于理解。
教學(xué)方法制約著教學(xué)效果。只有從學(xué)生的興趣和需要出發(fā),采用靈活多變的教學(xué)方法,并不斷進(jìn)行教學(xué)方法的創(chuàng)新,才能培養(yǎng)學(xué)生的學(xué)習(xí)興趣,VB的教學(xué)效果才能不斷得到提高。
[1]孫遠(yuǎn)光,主編.Visual Basic程序設(shè)計實用教程[M].北京:北京理工大學(xué)出版社,2010,7.
[2]陳蘋,主編.程序設(shè)計 Visual Basic[M].南京:江蘇教育出版社,2009,10.
[3]杜秋華,康慧芳,編著.可視化編程應(yīng)用:Visual Basic 6.0[M].2 版.北京:人民郵電出版社,2007,5.