郭海花 陳允芳 王 健


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