馮中毅 董海棠
1.蘭州城市學(xué)院 甘肅蘭州 730070 2.蘭州交通大學(xué) 甘肅蘭州 730070
程序設(shè)計課程教學(xué)中培養(yǎng)學(xué)生能力的探討
馮中毅1董海棠2
1.蘭州城市學(xué)院 甘肅蘭州 730070 2.蘭州交通大學(xué) 甘肅蘭州 730070
VisualBasic程序設(shè)計語言是我們學(xué)校開設(shè)的全校性理工科學(xué)生必修的計算機(jī)公共基礎(chǔ)課程。探討了在我們學(xué)校教改中,計算機(jī)課程學(xué)時減少的情況下教學(xué)的組織,提出了教學(xué)方法的建議。重點討論了備課過程和課堂教學(xué)中多種教學(xué)方法的融合,及課后通過讓學(xué)生完成具有一定實用性的題目來提高學(xué)生的編程和調(diào)試能力,為學(xué)生在各自的專業(yè)中應(yīng)用和擴(kuò)展編程知識并解決本專業(yè)的問題打下良好的基礎(chǔ)。
VisualBasic程序設(shè)計;教學(xué);編程與調(diào)試
“VisualBasic語言”被我校作為理工科本科生學(xué)習(xí)程序設(shè)計的入門語言,筆者通過教學(xué)的實際體驗,探討了如何在學(xué)時較少的情況下組織教學(xué),培養(yǎng)和提高學(xué)生的編程和調(diào)試能力。
我校大學(xué)理工科本科的教學(xué)改革較大幅度地壓縮了公共基礎(chǔ)課的總課時,以提高專業(yè)課程、選修課程和實踐性課程的課時,這就導(dǎo)致計算機(jī)應(yīng)用基礎(chǔ)課程總學(xué)時數(shù)相應(yīng)減少。為此,負(fù)責(zé)全校低年級計算機(jī)基礎(chǔ)課程的教師多次進(jìn)行研討,特別是近幾年來,筆者一直在這方面進(jìn)行改革探索,努力使學(xué)生在較短的學(xué)時里掌握程序設(shè)計的知識,并能夠根據(jù)自己的學(xué)科特點進(jìn)行應(yīng)用和擴(kuò)展,且使得在以后的學(xué)習(xí)和工作中根據(jù)需要能夠進(jìn)行自學(xué)提高。
程序設(shè)計課程安排在大學(xué)一年級第二學(xué)期,共72學(xué)時,其中36學(xué)時進(jìn)行程序設(shè)計語言理論的學(xué)習(xí),主要內(nèi)容為程序設(shè)計語言的概念和語法及相應(yīng)的典型算法。同時每周同步安排2學(xué)時的上機(jī)教學(xué),共36學(xué)時的上機(jī)實踐。多年來,計算機(jī)語言課程有C語言,C++,VisualFoxPro和VisualBasic等多種語言可供選擇。隨著面向?qū)ο缶幊趟枷氲钠占?教學(xué)也需要轉(zhuǎn)向面向?qū)ο蟮木幊?。但?典型的面向?qū)ο蟪绦蛟O(shè)計語言如C++和Java等,對于非專業(yè)的學(xué)生來說在較短的時間內(nèi)難以掌握。因此我們選擇了VisualBasic這種易于掌握,又滲透了面向?qū)ο蟮木幊趟枷?功能也很強(qiáng)大的程序設(shè)計語言。
在上機(jī)實踐的教學(xué)環(huán)節(jié),除了完成必要的典型題目,在學(xué)生較為熟悉VisualBasic程序設(shè)計環(huán)境后,后半學(xué)期(教學(xué)周第9周以后),將學(xué)生分成小組,每組由3~4人組成,以VisualBasic語言為編程環(huán)境,以教師指定或?qū)W生有興趣的小軟件項目為背景,進(jìn)行的訓(xùn)練包括:需求分析、算法設(shè)計、模塊設(shè)計、編寫程序和軟件測試等環(huán)節(jié),最后以編寫的軟件文檔和源代碼作為上機(jī)實踐課成績的依據(jù)。實踐表明,經(jīng)過這樣的全過程實踐,學(xué)生可以初步掌握可視化編程,了解軟件的一般性開發(fā)方法。比較過去的教學(xué)學(xué)生雖然學(xué)完了程序設(shè)計課程,也通過了全國計算機(jī)二級考試,但對于軟件開發(fā)所知甚少,有了很大的提高。
目前VisualBasic程序設(shè)計課程教材有很多種,內(nèi)容差別很大,筆者在選擇教材時本著以下原則:
(1)重視概念和算法的學(xué)習(xí),內(nèi)容簡明扼要,對于語法細(xì)節(jié)不深究,操作部分的指導(dǎo)要清晰明確。
(2)教材內(nèi)容的組織上有助于盡早在學(xué)生頭腦中建立起面向編程的思維模式。
(3)有詳細(xì)的實驗指導(dǎo)書,能夠訓(xùn)練學(xué)生綜合運用計算機(jī)的能力。
(4)教材中的各章節(jié)提供有針對性的典型案例,通過案例步驟的講解而引出理論知識具體運用,能夠結(jié)合學(xué)生的學(xué)科內(nèi)容,能夠綜合教材中的前后知識點。
(5)將程序設(shè)計語言及軟件的進(jìn)展融入教材中。
由于各種版本的教材各有特色。教師在選擇時還可根據(jù)學(xué)生的計算機(jī)水平,所在學(xué)科的特點、本專業(yè)的教學(xué)目標(biāo)以及不同層次的教學(xué)要求進(jìn)行權(quán)衡。對于程序設(shè)計要求較低的專業(yè)可以選擇較為淺顯的教材,而對于要求計算機(jī)實踐能力較強(qiáng)的專業(yè),如電子技術(shù)等專業(yè),應(yīng)選擇更接近工程實訓(xùn)的教材。
在實施教學(xué)活動時,要考慮學(xué)生的學(xué)習(xí)基礎(chǔ)、認(rèn)知能力、興趣和習(xí)慣。在經(jīng)過了一個學(xué)期的計算機(jī)應(yīng)用基礎(chǔ)的學(xué)習(xí)后,學(xué)生一般都具備計算機(jī)的使用能力,對于常用的一些軟件如Office套件等都較為熟悉。也有部分學(xué)生在中學(xué)學(xué)過程序設(shè)計語言,具有一定的編程基礎(chǔ)。但據(jù)筆者在教學(xué)中對學(xué)生的了解,對于程序設(shè)計而言,學(xué)生已具有的程序設(shè)計知識是很少且模糊的。因此,在教學(xué)時需要告誡部分學(xué)生不要因為已學(xué)過一點程序設(shè)計而自滿。教師在教學(xué)中也要引導(dǎo)學(xué)生更深入地學(xué)習(xí)計算機(jī)專業(yè)知識,在教學(xué)中融入數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)及軟硬件環(huán)境等相關(guān)知識。并在教學(xué)后期用綜合性的有工程應(yīng)用背景的題目來訓(xùn)練學(xué)生。這些補(bǔ)充內(nèi)容能夠幫助非專業(yè)的理工科學(xué)生快速建立起計算機(jī)的知識結(jié)構(gòu)框架。
課堂教學(xué)中直觀生動的講解是提高學(xué)習(xí)效率的重要手段,特別是在教學(xué)時教師進(jìn)行現(xiàn)場的編程和調(diào)試,對學(xué)生的學(xué)習(xí)有很大的幫助,但耗時較多,教師需要精心選擇題目并“制造”典型錯誤。另外,教師需注意培養(yǎng)學(xué)生良好的編程風(fēng)格,如規(guī)范的變量命名,加入適當(dāng)?shù)淖⑨專忼X形的縮進(jìn)要求等。學(xué)生的模仿是學(xué)習(xí)程序設(shè)計的第一步,要讓學(xué)生切身感受編程的整個過程培養(yǎng)學(xué)生良好的習(xí)慣。
在教學(xué)中要注重訓(xùn)練學(xué)生用程序設(shè)計語言進(jìn)行數(shù)據(jù)計算和邏輯分析的基本功,主要有數(shù)據(jù)結(jié)構(gòu)的設(shè)計、算法的選擇、模塊功能的劃分等。具體語法的教學(xué)要融入到編程過程中,通過大量實際應(yīng)用的講解和練習(xí)來鞏固知識點,建立知識間的聯(lián)系,最終牢固地掌握程序設(shè)計語言。
程序的調(diào)試既是學(xué)習(xí)程序設(shè)計的重點又是難點。數(shù)十行代碼就會引起很多錯誤和警告,應(yīng)該在教學(xué)中有意識地培養(yǎng)學(xué)生調(diào)試程序的能力,向?qū)W生介紹常見的錯誤類型和調(diào)試方法。因為教材中對此一般都是泛泛一說,所以教師需要對此著重補(bǔ)充。不會調(diào)試程序就談不上程序設(shè)計。
程序中出現(xiàn)的錯誤通??煞譃閮深?,“語法錯誤”和“邏輯錯誤”?!罢Z法錯誤”指程序代碼不符合該種程序設(shè)計語言的語法要求,程序調(diào)試出現(xiàn)錯誤時,一般都會在屏幕上提示出錯信息,調(diào)試者能否看懂這些信息是修改錯誤的關(guān)鍵,教師在教學(xué)初始階段需要較多的講解,此種錯誤相對容易查找。學(xué)生比較困難的是“邏輯錯誤”,教師在講解時需要綜合運用多種調(diào)試手段,如查看程序結(jié)構(gòu)、輸出關(guān)鍵變量值、黑箱模塊測試等。不論何種錯誤,這種程序調(diào)試能力的獲得都需要大量的訓(xùn)練。在教學(xué)的開始就需要將調(diào)試程序列入計劃,從編寫最簡單的程序就需要逐步地強(qiáng)調(diào)程序調(diào)試的方法。比如在學(xué)習(xí)流程控制語句時,就可以引入F8單步執(zhí)行,Shift+F8逐過程執(zhí)行,Ctrl+F8運行到光標(biāo)處,通過監(jiān)視窗口觀察變量值等方法;在講解循環(huán)時引入斷點的設(shè)置方法;在講解過程、函數(shù)時運用過程的調(diào)用和進(jìn)入函數(shù)執(zhí)行或者跳過函數(shù)執(zhí)行的調(diào)試方法。在教學(xué)的后期引入其他一些高級的程序調(diào)試方法(如函數(shù)調(diào)用棧等)。
典型的題目可以幫助學(xué)生更好更快地掌握程序設(shè)計的知識和方法。在講解新的知識點時所使用的示例要簡短精煉,并且能夠和學(xué)生所學(xué)的專業(yè)相結(jié)合,這樣做能夠極大地提高學(xué)生的學(xué)習(xí)興趣。
本文結(jié)合自身的教學(xué)體會,介紹了VisualBasic程序設(shè)計課程在學(xué)時較少的條件下教學(xué)的安排、教材的選擇、課堂教學(xué)的組織、程序調(diào)試能力的培養(yǎng)等。在實際的教學(xué)中證明這些方法是成功有效的。
[1]李進(jìn)霞,常軍鋒.高職院校程序設(shè)計一體化教學(xué)探討[J].中國現(xiàn)代教育裝備,2010,9
[2]劉應(yīng)成.新升本科院校學(xué)生程序調(diào)試能力的調(diào)查研究[J].現(xiàn)代計算機(jī)(專業(yè)版),2010,5
Abstract: VisualBasic programming language is one of basic courses in Lanzhou city university. This paper discusses about how to organize and design teaching forms in shortage class hour environment. The propositional choices of teaching methods are also made. The article focus on two points, the first is to discuss the teaching preparation and integrate several teaching methods in class such as teaching with multimedia, programming on-site; the second is to promote the student’s programming and debugging ability by using practical applications after-class. Our two objects are enhancing programming ability and laying the foundation for transfers the knowledge in self-learning process for students in the future.
Key words: VisualBasic programming language; teaching methods; programming and debugging ability
Cultivate students' programming ability in VisualBasic language course
Feng Zhongyi1, Dong Haitang2
1.Lanzhou city university, Lanzhou, 730070, China 2.Lanzhou jiaotong university, Lanzhou, 730070, China
2010-09-17
馮中毅,碩士,副教授。