陳鈞 劉愛華
摘 要:針對(duì)VB課程教學(xué)中存在案例覆蓋知識(shí)點(diǎn)較少的問題,本文提出了教學(xué)中增加貫穿于整個(gè)教學(xué)過程的項(xiàng)目式案例。通過對(duì)完整的項(xiàng)目式案例進(jìn)行拆分為與各知識(shí)點(diǎn)內(nèi)容相關(guān)的小案例,學(xué)生逐步完成分解案例并最后整合成為一個(gè)完整的軟件系統(tǒng),能更加理解各章節(jié)的知識(shí)點(diǎn)在項(xiàng)目中的應(yīng)用。學(xué)生能夠更全面地了解如何自主開發(fā)簡(jiǎn)單的軟件系統(tǒng),提高計(jì)算機(jī)編程的興趣和能力。
關(guān)鍵詞:VB課程;項(xiàng)目式案例;拆分與整合
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
Visual Basic(以下簡(jiǎn)稱VB)是在Basic語言的基礎(chǔ)上發(fā)展起來的一種可視化、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的高級(jí)程序設(shè)計(jì)語言,它接近于自然語言和人類的邏輯思維方式,是目前所有開發(fā)語言中最簡(jiǎn)單、最容易使用的語言[1]。因此Visual Basic程序設(shè)計(jì)被許多高校作為培養(yǎng)學(xué)生編程能力的首選課程,但是在實(shí)際教學(xué)過程中存在著諸多問題。主要是兩個(gè)方面:首先,VB語言不僅要掌握程序設(shè)計(jì)的常用控制結(jié)構(gòu)(順序、選擇和循環(huán))、常用算法、模塊調(diào)用等內(nèi)容,而且要掌握很多控件的屬性、方法和事件等簡(jiǎn)單的面向?qū)ο缶幊谭椒?。其次傳統(tǒng)教材都是按照理論講解、案例分析、實(shí)踐練習(xí)的教學(xué)模式,各章節(jié)的內(nèi)容基本獨(dú)立,學(xué)生容易形成“只見樹木不見森林”的感覺,不了解各個(gè)知識(shí)點(diǎn)的實(shí)際應(yīng)用,在遇到課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)等稍大的項(xiàng)目時(shí)經(jīng)常完全不知所措。
2 項(xiàng)目式教學(xué)案例(Project-based teaching case)
傳統(tǒng)的教學(xué)模式中,案例的選取往往根據(jù)章節(jié)的知識(shí)內(nèi)容選取。例如講解基本控制結(jié)構(gòu)時(shí)采用四則運(yùn)算考試程序作為案例,講解控件數(shù)組時(shí)采用計(jì)算器作為案例[2]。案例簡(jiǎn)單、靈活,也具有一定的趣味性,但是問題是案例之間往往關(guān)聯(lián)不大,學(xué)生不能把它們整合在一起。這樣的案例能讓學(xué)生初步了解和掌握本門課程中的基本知識(shí),卻不能系統(tǒng)、全面地認(rèn)識(shí)和應(yīng)用所學(xué)知識(shí)。學(xué)生學(xué)完該課程只能孤立地做簡(jiǎn)單的小案例,而欠缺將各章節(jié)知識(shí)結(jié)合起來開發(fā)一個(gè)完整的項(xiàng)目的能力[3]。
因此本文提出在VB課程的教學(xué)中增加實(shí)戰(zhàn)練習(xí)的環(huán)節(jié),引入一到兩個(gè)貫穿于整個(gè)教學(xué)過程的項(xiàng)目式案例。采用項(xiàng)目式案例的教學(xué)方式,可以使學(xué)生通過項(xiàng)目式的完整案例學(xué)習(xí)到各章節(jié)的知識(shí)點(diǎn)如何運(yùn)用到一個(gè)完整的軟件系統(tǒng),如打字游戲、模擬(溫度)監(jiān)控程序、學(xué)生信息管理軟件等,讓學(xué)生學(xué)會(huì)自主開發(fā)簡(jiǎn)單的軟件系統(tǒng),全面提高學(xué)生計(jì)算機(jī)編程的興趣和能力。
項(xiàng)目式案例的核心內(nèi)容就是將案例中的主要任務(wù)就是根據(jù)VB課程的教學(xué)內(nèi)容進(jìn)行拆分,分解到各章節(jié)成為適合本章節(jié)知識(shí)點(diǎn)的小案例,逐步引導(dǎo)學(xué)生由簡(jiǎn)到繁,由易到難,循序漸進(jìn)地去完成;最后所有章節(jié)講解結(jié)束,各個(gè)案例也整合成為一個(gè)完整的項(xiàng)目。在完成項(xiàng)目的過程中,學(xué)生不斷地接近完整的程序,逐步獲得成就感,并且不斷提高發(fā)現(xiàn)問題、分析問題、解決問題的能力,調(diào)試技能的提高有利于培養(yǎng)學(xué)生自主思考、勇于開拓的精神。
2.1 項(xiàng)目式教學(xué)案例的選擇
如何選擇合適的項(xiàng)目作為VB課程的教學(xué)案例是決定教學(xué)效果的重要因素。首先要根據(jù)課程教學(xué)內(nèi)容,選擇知識(shí)點(diǎn)盡量覆蓋較多章節(jié)的項(xiàng)目,如果不夠可以選取另一個(gè)案例相互補(bǔ)充,然后才能有效地將項(xiàng)目中任務(wù)分布到各章節(jié)進(jìn)行拆解。其次要根據(jù)學(xué)生的學(xué)習(xí)特點(diǎn),選擇學(xué)生學(xué)習(xí)或生活中能看到的生動(dòng)有趣的項(xiàng)目,才能激發(fā)學(xué)生的編程熱情。最后要根據(jù)應(yīng)用型本科的特點(diǎn)“學(xué)以致用”,選擇學(xué)生專業(yè)特點(diǎn)有關(guān)的項(xiàng)目,才能讓學(xué)生感受到編程能力的提高與本專業(yè)的學(xué)習(xí)也是息息相關(guān),相互促進(jìn)。
下面就以打字游戲軟件的開發(fā)為例介紹如何在教學(xué)過程中將項(xiàng)目式教學(xué)案例拆分成若干與章節(jié)知識(shí)點(diǎn)相關(guān)的小案例,最終整合為完整的軟件系統(tǒng)的過程。實(shí)際教學(xué)中可以根據(jù)學(xué)生特點(diǎn)增加項(xiàng)目,例如工科類學(xué)生可以引入模擬(溫度、壓力)監(jiān)控程序,文科類學(xué)生可以引入學(xué)生信息管理軟件等。
2.2 項(xiàng)目式教學(xué)案例的拆分
VB教材需要包含的知識(shí)點(diǎn)主要包括基本控件、語言基礎(chǔ)、三種控制結(jié)構(gòu)、數(shù)組、過程、常用控件、界面設(shè)計(jì)、文件、圖形技術(shù)、數(shù)據(jù)庫(kù)技術(shù)[1]。數(shù)據(jù)庫(kù)技術(shù)需要涉及SQL語句,通常非計(jì)算機(jī)專業(yè)的課時(shí)不夠,一般作為演示了解內(nèi)容,為下一步學(xué)習(xí)做個(gè)鋪墊。
首先對(duì)于各章節(jié)的知識(shí)點(diǎn)應(yīng)該非常了解。根據(jù)完整的項(xiàng)目中需要用到的知識(shí)點(diǎn)定位到各章節(jié),然后根據(jù)知識(shí)點(diǎn)的要求做成適合于講解進(jìn)度的小案例。例如打字游戲是學(xué)生熟悉又實(shí)用的一款游戲。游戲規(guī)則是用戶根據(jù)屏幕上下落的字符在鍵盤上按鍵,如果輸入的字符匹配,字符消失;如果輸入的字符錯(cuò)誤,正確率下降。所有的統(tǒng)計(jì)信息均在游戲界面的右側(cè)欄顯示[4]。正確按鍵數(shù)達(dá)到一定程度將會(huì)增加游戲難度,并獎(jiǎng)勵(lì)生命值。字符下落至窗口底部時(shí)將減去生命值,當(dāng)生命值等于零時(shí)游戲結(jié)束,如果打字速度進(jìn)到了前10名,程序會(huì)自動(dòng)彈出對(duì)話框要求輸入姓名,以記入排行榜。正確率低于30%時(shí)將自動(dòng)結(jié)束游戲。作為拓展可以增加時(shí)限模式,游戲開始時(shí)不設(shè)生命值而是設(shè)置10秒鐘時(shí)間限制,依據(jù)字符下落至窗口底部時(shí)將減去2%的正確率,當(dāng)正確率等于0時(shí)游戲結(jié)束;時(shí)間限制中正確按鍵數(shù)沒達(dá)到要求,游戲結(jié)束,若達(dá)到了就增加游戲難度,并獎(jiǎng)勵(lì)一定量的時(shí)間。
第一個(gè)知識(shí)點(diǎn)是基本控件,講解結(jié)束可以完成案例1,相關(guān)功能有:建立主界面窗體和游戲窗體;設(shè)計(jì)程序中的基本控件;設(shè)計(jì)初始化的字符標(biāo)簽;對(duì)象屬性的設(shè)置;調(diào)用窗體的Hide、Show、Print等方法實(shí)現(xiàn)窗體的隱藏、彈出、顯示內(nèi)容。為了提高案例的趣味性,可以增加拓展內(nèi)容:如嘗試編寫鍵盤事件,把屏幕上的字母去掉,知識(shí)點(diǎn)可以參考函數(shù)和后面章節(jié)中的鍵盤事件。
第二個(gè)知識(shí)點(diǎn)是VB語言基礎(chǔ),講解結(jié)束可以完成案例2,相關(guān)功能有:聲明所有要用到的公共變量(為以后介紹變量的作用域作為鋪墊)和常量;用轉(zhuǎn)換函數(shù)實(shí)現(xiàn)變量的轉(zhuǎn)換;用數(shù)學(xué)函數(shù)Randomize實(shí)現(xiàn)初始隨機(jī)字符;用Format()輸出游戲指定格式的信息如正確率等。endprint
第三個(gè)知識(shí)點(diǎn)是控制結(jié)構(gòu),講解結(jié)束可以完成案例3,相關(guān)功能有:編寫主程序代碼實(shí)現(xiàn)隨機(jī)生成字符出現(xiàn)在隨機(jī)的位置(此時(shí)還沒有學(xué)習(xí)Timer控件,暫時(shí)不實(shí)現(xiàn)下降);修改鍵盤事件,消掉字母同時(shí)增加擊鍵正確率;點(diǎn)擊空格鍵可以暫停游戲,并顯示提示信息。
第四個(gè)知識(shí)點(diǎn)是數(shù)組,講解結(jié)束可以完成案例4,主要是改進(jìn)案例3:以前用26個(gè)標(biāo)簽充當(dāng)字母的方法可以使用控件數(shù)組來改進(jìn)。這種方法使同類型同功能的控件具有相同的名字,只需用下標(biāo)來區(qū)分,不僅能夠動(dòng)態(tài)創(chuàng)建,還可以改進(jìn)字符匹配的算法,程序更加簡(jiǎn)潔;對(duì)隨機(jī)產(chǎn)生的字母,需要進(jìn)行校驗(yàn),確保字母不重復(fù)出現(xiàn)在屏幕上。引入數(shù)組同時(shí)加強(qiáng)了對(duì)循環(huán)結(jié)構(gòu)的應(yīng)用和理解。
第五個(gè)知識(shí)點(diǎn)是過程,講解結(jié)束可以完成案例5,主要是繼續(xù)改進(jìn)案例4:將重用代碼或者功能獨(dú)立的代碼放入函數(shù)或過程中,并將一些公共函數(shù)和過程放到公共模塊PublicMethod中,如字符添加過程CharAdd、字符清空過程CharClear、背景載入過程LoadBG等。
第六個(gè)知識(shí)點(diǎn)是常用控件,講解結(jié)束可以完成案例6,主要是設(shè)置窗體中應(yīng)用常用控件如單選框、復(fù)選框、列表框等并同時(shí)修改相關(guān)代碼;加入時(shí)鐘控件可以實(shí)現(xiàn)字符下落,且字符的增加和信息的輸出均改由時(shí)鐘控件控制。
第七個(gè)知識(shí)點(diǎn)是界面設(shè)計(jì),重點(diǎn)內(nèi)容是通用對(duì)話框。案例7是把通用對(duì)話框的幾個(gè)常用功能融合到設(shè)置窗體的背景圖片選項(xiàng)中去;設(shè)置中增加背景和字體選項(xiàng);增加彈出菜單,可以選擇繼續(xù)游戲、重新開始、返回主界面、退出等選項(xiàng)。
第八個(gè)知識(shí)點(diǎn)是文件,重點(diǎn)是文本文件、二進(jìn)制文件的訪問和幾個(gè)常用的文件操作功能,案例8是繼續(xù)增加設(shè)置的配置文件讀取保存功能和排行榜顯示和保存功能。
第九個(gè)知識(shí)點(diǎn)是圖形,本案例幾乎沒有涉及。建議補(bǔ)充模擬溫度監(jiān)控程序,可以根據(jù)模擬量繪制溫度的動(dòng)態(tài)變化過程,而實(shí)際監(jiān)控系統(tǒng)中,利用傳感器采集參數(shù),然后將模擬量轉(zhuǎn)換為數(shù)字量并傳送給監(jiān)控計(jì)算機(jī)[4]。
這樣就完成了整個(gè)項(xiàng)目式案例的拆分。教材的編寫遵循固定的順序,但在實(shí)際拆分為小案例的過程中,根據(jù)項(xiàng)目的特點(diǎn)及教學(xué)需要進(jìn)行適當(dāng)?shù)恼{(diào)整,可以將涉及后面章節(jié)的知識(shí)點(diǎn)提前滲透到案例中。前提是涉及內(nèi)容不多,知識(shí)點(diǎn)單一不易單獨(dú)舉例的內(nèi)容。比如函數(shù)、變量的作用域等。等講解到相關(guān)知識(shí)點(diǎn)后,可以再介紹一些復(fù)雜的應(yīng)用,這樣順其自然地領(lǐng)會(huì)一些比較枯燥的知識(shí)點(diǎn)的應(yīng)用場(chǎng)景。
2.3 項(xiàng)目式教學(xué)案例的整合
所有知識(shí)點(diǎn)講解結(jié)束后,整個(gè)項(xiàng)目就完成了。各知識(shí)點(diǎn)在完整項(xiàng)目中的應(yīng)用也在實(shí)戰(zhàn)訓(xùn)練中讓學(xué)生感受得更加明確。
實(shí)際教學(xué)過程中需要首先將完整的項(xiàng)目式案例演示給學(xué)生,相當(dāng)于軟件工程中的原型系統(tǒng),作為學(xué)生參考的實(shí)例。完成案例的過程中也可以鼓勵(lì)學(xué)有余力的同學(xué)進(jìn)一步的拓展,或者根據(jù)自己的興趣拓展或者選擇其他的項(xiàng)目式案例。
3 結(jié)論(Conclusion)
本文針對(duì)高校VB課程教學(xué)中存在的問題,提出了貫穿于整個(gè)教學(xué)過程的項(xiàng)目式案例的教學(xué)方法。選擇知識(shí)點(diǎn)覆蓋主要教學(xué)內(nèi)容的項(xiàng)目,對(duì)項(xiàng)目根據(jù)各章的知識(shí)點(diǎn)拆分為與教學(xué)進(jìn)程相適應(yīng)的小案例,然后隨著教學(xué)進(jìn)程的開展,逐步擴(kuò)充改進(jìn),最后完成整個(gè)項(xiàng)目。各章節(jié)既有適合本章知識(shí)點(diǎn)的小案例,又有項(xiàng)目式的完整案例,學(xué)生在學(xué)習(xí)理論知識(shí)的同時(shí)就能了解實(shí)用場(chǎng)景,學(xué)習(xí)過程更加具有趣味性和實(shí)用性,有利于調(diào)動(dòng)學(xué)生的學(xué)習(xí)熱情,激發(fā)創(chuàng)新精神,提高解決問題的能力。
參考文獻(xiàn)(References)
[1] 龔沛曾,等.Visual Basic程序設(shè)計(jì)教程(第4版)[M].北京:高等教
學(xué)出版社,2013.
[2] 譚瑛.基于驅(qū)動(dòng)式案例教學(xué)法的VB案例設(shè)計(jì)策略[J].計(jì)算機(jī)
教育,2012(13):53-57.
[3] 姚彬.淺談案例教學(xué)法在VFP教學(xué)中的應(yīng)用[J].湖北廣播電視
大學(xué)學(xué)報(bào),2008,28(6):127-128.
[4] 王棟.Visual Basic課程設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.
作者簡(jiǎn)介:
陳 鈞(1976-),男,講師,碩士.研究領(lǐng)域:多媒體技術(shù).
劉愛華(1972-),女,講師,本科.研究領(lǐng)域:網(wǎng)絡(luò)技術(shù).endprint