郭?;? 陳允芳 王 健
摘要:“Visual Basic程序設(shè)計”是面向高校學(xué)生開設(shè)的第一門程序設(shè)計課程,作為非計算機專業(yè)的專業(yè)基礎(chǔ)課,近年來受到愈來愈多的重視。本文針對非計算機專業(yè)的“VB程序設(shè)計”教學(xué),提出無論是課堂教學(xué)還是實驗教學(xué)環(huán)節(jié),都應(yīng)結(jié)合學(xué)生所學(xué)專業(yè),將程序設(shè)計應(yīng)用到其專業(yè)知識中去,以激發(fā)學(xué)生的學(xué)習(xí)興趣,實現(xiàn)教與學(xué)相結(jié)合的良好效果。
關(guān)鍵詞:VB程序設(shè)計語言;非計算機專業(yè);專業(yè)實例法;教與學(xué)
中圖分類號:G642 文獻標識碼:B
Visual Basic(以下簡稱VB)與許多程序設(shè)計語言一樣,教學(xué)內(nèi)容中除了包括數(shù)據(jù)類型、變量和常量、運算符和表達式等基本語言基礎(chǔ),更為重要的是結(jié)構(gòu)化程序設(shè)計的三大控制結(jié)構(gòu)和編程方法。VB突出的特征是面向?qū)ο蟮氖录?qū)動機制,使得編程時無論在設(shè)計理念、設(shè)計過程及設(shè)計方法上對教師的教與學(xué)生的學(xué)都有較高要求。因此,采用先進有效、靈活多樣的教學(xué)方法是提高“VB程序設(shè)計”課程教學(xué)質(zhì)量的關(guān)鍵。
“VB程序設(shè)計”在高校非計算機專業(yè)中是專業(yè)基礎(chǔ)課,不同于“高等數(shù)學(xué)”、“大學(xué)英語”等基礎(chǔ)課,它的實踐性很強。現(xiàn)在的學(xué)生特別講究實用性,總愛問“學(xué)習(xí)這門課有什么用?”,如果你僅僅告訴他們學(xué)了它以后可以編寫程序,這樣很難激起他們的興趣,因為對他們而言,編程似乎離他們太遠,他們更關(guān)心的這門課程是不是與所學(xué)專業(yè)靠攏,便于自己將來更好地加以應(yīng)用。如果脫離實際應(yīng)用,學(xué)生的學(xué)習(xí)興趣和積極性就不會太高,最后導(dǎo)致達不到預(yù)想的教學(xué)效果。那么為了更好地激發(fā)同學(xué)們學(xué)習(xí)VB的興趣,取得良好教學(xué)效果,使之成為今后專業(yè)工作中的重要手段。根據(jù)多年來從事測繪工程專業(yè)“VB程序設(shè)計”教學(xué)實踐,結(jié)合該專業(yè)特點,提出改變單一以計算機語言講課的教學(xué)方式,應(yīng)在課堂教學(xué)、實踐教學(xué)環(huán)節(jié),結(jié)合專業(yè)應(yīng)用,寓專業(yè)實例于教,是行之有效的教學(xué)方法。
1課堂教學(xué)
1.1選取合適的實例作為內(nèi)容的切入點
在“VB程序設(shè)計”教學(xué)中,VB語言基礎(chǔ)的課程教學(xué)十分枯燥,學(xué)生聽了以后也是一頭霧水。尤其是運算符和表達式與原來數(shù)學(xué)中的表達書寫有差異,思想上要進行轉(zhuǎn)換不是一時半會的事情。這時采用比較簡單且與學(xué)生熟知的例子來進行演示、講解,效果就很明顯。實例不在多,在于它的說服力及連貫性。一個實例如果在講授多個知識點時都能用上,對學(xué)生的理解會更具系統(tǒng)性。如圖1,求解圖中相鄰點之間的距離,也即邊長。
這個實例從開始學(xué)VB語言基礎(chǔ),到數(shù)組的應(yīng)用、過程的應(yīng)用等階段都具有典型性,而且對于測繪工程專業(yè)學(xué)生來說也會在專業(yè)課程中經(jīng)常遇到。
本例可從以下幾方面引導(dǎo)學(xué)生對知識的理解:
(1) 數(shù)據(jù)類型及變量
計算機在處理數(shù)據(jù)時,必須將其裝入內(nèi)存,這樣就引入了變量,同時想到變量的數(shù)據(jù)類型。本例中有八個單精度數(shù)據(jù)需要存儲,定義八個單精度類型的變量,然后再給這些變量分別賦已知值。
(2) 運算符和表達式
在邊長計算中,學(xué)生都明白已知兩點坐標求兩點距離的公式。這里主要考慮應(yīng)用學(xué)到的VB運算符及內(nèi)部函數(shù)將數(shù)學(xué)公式轉(zhuǎn)換成VB表達式。
(3) 函數(shù)的靈活應(yīng)用
本例中要求計算的邊長保留兩位有效數(shù)字。我們知道,VB中如果輸出結(jié)果不處理的話,以默認的形式顯示,這往往不是我們想要的。這時,我們可以利用Format函數(shù)對結(jié)果進行格式化,還可以使用Int函數(shù)進行處理。如:將數(shù)據(jù)98.4564保留兩位有效數(shù)字的做法是:
Int(98.4564*100+0.5)/100。
通過該例,學(xué)生對數(shù)據(jù)類型、變量、運算符和表達式等語言規(guī)則就有了直觀而深入的理解。
在學(xué)到數(shù)組時,我們知道在實際應(yīng)用中要處理同一性質(zhì)的成批數(shù)據(jù)時,有效的辦法是通過數(shù)組來解決。上例中,有四個點坐標,八個同一性質(zhì)的數(shù)據(jù),要對其進行存儲,至少定義八個簡單變量,這無疑在定義變量、初始化變量以及計算方面帶來很大的工作量。如果圖中增加更多的點,那簡單變量就更顯得力不從心了。比如:該例若用數(shù)組解決,可定義一個數(shù)組名為x,大小為4,一個數(shù)組名為y,大小也為4的兩個數(shù)組就可以存儲八個數(shù)據(jù)了,即:Dim x(4) As Single,y(4) As Single。在賦初值時,結(jié)合循環(huán)很容易就實現(xiàn),如:
For i = 1 To 4
x(i) = InputBox("請輸入第" & i & "點的X坐標")
y(i) = InputBox("請輸入第" & i & "點的Y坐標")
Next i
以上與八條賦值語句相比,減少了很多工作量??梢哉f,適當?shù)臅r候采用適當?shù)慕鉀Q辦法,會達到事半功倍的效果。
同時,在學(xué)到過程時,還可以用到這個實例。因為過程的最大應(yīng)用就是避免我們重復(fù)寫代碼,也就是說,在程序中多次用到的相同的代碼,我們可將其定義為過程,供其他過程多次調(diào)用。上例中,有幾條邊就得計算幾次邊長,而每次計算邊長的方法都一樣,只是數(shù)據(jù)有差異,這時候我們可將計算邊長這個功能定義成函數(shù)過程,這樣又減少了工作量。如:
Function bcFunc(xa!, ya!, xb!, yb!) As Single
bcFunc = Sqr((xa - xb) ^ 2 + (ya - yb) ^ 2)
End Function
計算邊長的程序如下:
For i = 1 To 4
bc(i) = bcFunc(x(i), y(i), x(1), y(1))
bc(i) = Int(bc(i) * 100 + 0.5) / 100
Next i
通過以上對同一個程序進行數(shù)組的應(yīng)用、過程的應(yīng)用的修改之后,不僅讓學(xué)生對知識有了系統(tǒng)的掌握,同時讓學(xué)生直觀地感受到寫程序不只是得出結(jié)果那么簡單,也要考慮程序要簡潔、結(jié)構(gòu)清楚、盡量減少冗余。
1.2與學(xué)生互動,提高學(xué)生學(xué)習(xí)的主動性、積極性
現(xiàn)代化的教學(xué)模式體現(xiàn)了信息量大、直觀等特點,更重要的是在新模式下,通過多媒體教學(xué)手段的激勵進行的師生互動,只有這樣才能充分體現(xiàn)現(xiàn)代化教學(xué)模式的優(yōu)勢。除了要加強課堂啟發(fā)互動外,盡可能結(jié)合課程自身的特點,加強學(xué)生現(xiàn)場演練來提高其學(xué)習(xí)的主動性和積極性。
(1) 課堂啟發(fā)
眾所周知,計算機程序設(shè)計針對某一問題都是先確定算法,再根據(jù)算法進行編程。在提出算法這一階段,就是通過老師引導(dǎo)學(xué)生,給學(xué)生提出問題,學(xué)生問題思考,找到解決問題的思路,最后師生共同完成程序編寫。這種互動,大大提高了學(xué)生學(xué)習(xí)VB的主動性和積極性,最終使他們能夠獨立解決問題。有時,教師也可以將自己寫好的實例先演示給學(xué)生,然后,采用啟發(fā)式提問學(xué)生自己所看到的功能會是使用什么方法解決的。這種互動,能夠有意識地提高學(xué)生的主動性,引導(dǎo)學(xué)生將課堂上所學(xué)知識得到鞏固應(yīng)用。實踐證明,這種啟發(fā)也無疑是一種很好的方法。
(2) 現(xiàn)場演練
為了提高學(xué)生聽課的積極性,了解學(xué)生對本次課的掌握情況,在課堂上留出幾分鐘的時間,結(jié)合本次課的內(nèi)容出題,讓學(xué)生上講臺現(xiàn)場解決。通過這種形式的任務(wù)驅(qū)動,大部分學(xué)生學(xué)習(xí)的熱情極高,能夠主動接受檢驗,同時根據(jù)完成的情況,明顯地發(fā)現(xiàn)學(xué)生對知識理解得比較透徹、充分,達到了預(yù)想的滿意效果。
2實踐教學(xué)
實踐教學(xué)環(huán)節(jié)在計算機程序設(shè)計教學(xué)中至關(guān)重要。在這一環(huán)節(jié),要做到以下幾點。
2.1實驗任務(wù)明確、充實
每次實驗課,要求學(xué)生課前做好實驗準備,即先寫好每個任務(wù)的程序,至少也是應(yīng)該對實驗任務(wù)是有了思路的(即算法),然后帶著問題有目的地坐在計算機前輸入程序、調(diào)試、最后得出結(jié)果。之所以這樣做,是因為對學(xué)生來說,機時顯得非常寶貴。若坐在計算機前再開始看題、理思路,一次實驗的時間確實不夠這么去消磨,更談不上去提高自己的編程能力了。編程能力的提高大多是通過一次次調(diào)試程序,解決存在的問題來實現(xiàn)的。所以課前準備就尤為重要了。
實驗課上,要保證學(xué)生任務(wù)充實,即有事可做。除了要求學(xué)生練習(xí)基本知識的應(yīng)用外,還加強了與專業(yè)相結(jié)合的相關(guān)綜合實驗。比如:測繪工程專業(yè)學(xué)生在進行完經(jīng)緯儀導(dǎo)線的野外施測后,要進行經(jīng)緯儀導(dǎo)線計算,即根據(jù)野外采集的導(dǎo)線邊長和角度來求得各導(dǎo)線點的坐標。這一系列的計算,包括五個步驟,即:角度閉合差的計算和調(diào)整;坐標方位角的推算;坐標增量的計算;坐標增量閉合差的計算和調(diào)整;坐標計算。整個過程對學(xué)生來說思路清楚,計算都有公式可循,似乎很簡單,但用計算機處理起來,還是有難度的。不是程序有多復(fù)雜,而是學(xué)生能否靈活地應(yīng)用所學(xué)知識來解決實際問題,這是一個挑戰(zhàn)。在挑戰(zhàn)面前,最能鍛煉學(xué)生、提高學(xué)生的編程能力了。通過與專業(yè)相結(jié)合的這種應(yīng)用性教學(xué),學(xué)生一方面對專業(yè)知識加深理解,另一方面對學(xué)習(xí)這門課的目的明確了,積極性、能動性提高了,教學(xué)目的也就達到了,教學(xué)效果也較好。這是一個兩全其美的方法,值得根據(jù)專業(yè)特點適當推廣。
2.2加強輔導(dǎo)力度
實踐教學(xué)環(huán)節(jié)不是學(xué)生的獨角戲,教師一定要抓好這個環(huán)節(jié)的輔導(dǎo),會起到非同一般的效果。
(1) 隨時解決學(xué)生遇到的難題
學(xué)生在實驗過程中,難免會遇到攔路虎,他們急需幫助時,教師能夠及時進行指導(dǎo),并根據(jù)問題所在,加深對知識理解的引導(dǎo),這樣日積月累,學(xué)生的能力自然就上去了。如果教師不在身邊,問題長時間不能得到解決,學(xué)生很有可能會出現(xiàn)消極態(tài)度,久而久之,甚至?xí)W(xué)習(xí)的興趣,這樣問題就嚴重了。此外,通過實驗輔導(dǎo),可以發(fā)現(xiàn)普遍存在的問題,教師可將其進行總結(jié),下一次課再結(jié)合實例講給大家,加深學(xué)生對其的理解。
(2) 適當?shù)耐貙拰W(xué)生的思維
學(xué)生在完成實驗任務(wù)時,應(yīng)鼓勵學(xué)生多動腦,多嘗試,同一個任務(wù)應(yīng)用多種方法實現(xiàn),同時還可以加入其它功能。比如:在介紹VB的主要特點時,為了便于學(xué)生更好地理解,可以舉一個例子:簡單字幕動畫演示。如圖2,程序運行過程中,窗體上的字幕是從左向右移動的,并且當字幕到了右邊界看不見時,字幕又自動從左邊界開始向右移動。學(xué)生在實驗這個例題的過程中,提出這樣的問題:“能不能讓字幕雙向移動,即從左到右,再從右到左?”回答是肯定的,雖然學(xué)生是初學(xué),而且大多知識還未接觸,但不失時機地積極指導(dǎo),可以很好地培養(yǎng)他們的興趣。果不其然,經(jīng)過指導(dǎo),程序?qū)崿F(xiàn)了他想要的功能,學(xué)生特別有成就感,此后,他學(xué)習(xí)VB的積極性非常高,而且經(jīng)常在完成任務(wù)后,去寫一些趣味性的程序。這說明學(xué)生的思維已不再局限在書本內(nèi),而是去開辟另一片天空,他已領(lǐng)略到其中的樂趣了。
綜上所述,實驗教學(xué)環(huán)節(jié)是學(xué)生和教師共同的時間,學(xué)生應(yīng)該帶著問題和任務(wù)去實驗,而教師應(yīng)及時進行答疑解惑,二者的配合,是對課堂教學(xué)的延伸,起著相當重要的作用。
3加強考核
課程考核往往作為衡量教學(xué)效果的一種客觀手段,在教學(xué)環(huán)節(jié)中起著很重要的作用。而高校中大部分課程都采用傳統(tǒng)的期末閉卷筆試形式進行考核,這種方式只注重考核學(xué)生理論知識的掌握情況,而忽視了學(xué)生實踐操作的能力測試,進而很難反映一個學(xué)生的應(yīng)用知識解決實際問題的能力。因此,根據(jù)VB的課程特點,采取將傳統(tǒng)的期末閉卷筆試與期末機試、平時考核、實驗考核相結(jié)合的模式是可取的。在該模式中,期末閉卷考核成績占70%(我校規(guī)定至少占70%),機試成績占10%,平時成績占5%,實驗成績占15%。期末機試是一項綜合能力的檢測,這項考核由教師出題,著重考察學(xué)生綜合應(yīng)用所學(xué)知識解決實際問題的能力。平時成績主要根據(jù)學(xué)生的出勤情況給出,提高學(xué)生主動參與程度。實驗成績根據(jù)學(xué)生每次的實驗完成情況給出,包括實驗的準備、實驗課上的探究和創(chuàng)新程度等表現(xiàn),此外,還注重學(xué)生結(jié)合自己專業(yè)應(yīng)用所學(xué)知識編寫程序的能力,即根據(jù)本文中實驗教學(xué)部分的任務(wù)進行考核。通過近幾年對這種考核方式的應(yīng)用來看,很大程度上提高了學(xué)生學(xué)習(xí)的主動性、積極性,同時在能力上也有了明顯的提高。
4結(jié)論
“VB程序設(shè)計”課程是為非計算機專業(yè)學(xué)生開設(shè)的第一門程序設(shè)計課程,在高校的計算機基礎(chǔ)教學(xué)中占據(jù)重要位地位。教師采取得法的教學(xué)方法,對學(xué)生的學(xué)習(xí)是非常重要的。在多年給測繪工程專業(yè)學(xué)生講授該課程的教學(xué)過程中,不斷探索、改變教學(xué)方法,認為程序設(shè)計語言的教學(xué)應(yīng)結(jié)合其專業(yè)應(yīng)用,才能激發(fā)學(xué)生學(xué)習(xí)語言的興趣,提高學(xué)生的積極性、主動性,“教師的教”和“學(xué)生的學(xué)”才會取得良好的效果。
參考文獻:
[1]楊潞霞. “VB程序設(shè)計”的教學(xué)的改革與實踐[J]. 計算機教育,2007(15):24-26.
[2]朱長江,白晨希. VB程序設(shè)計教學(xué)方法探討[J]. 電腦知識與技術(shù),2007(09):871-872.
[3]王猛. 互動式VB教學(xué)[J]. 黑龍江科技信息,2007(23):231-231.
[4]袁鋒. 談《VB程序設(shè)計》教學(xué)方法改革的五個轉(zhuǎn)變[J]. 中國成人教育,2004(09):67-67.