王 瓊
(十堰廣播電視大學(xué),湖北 十堰 442000)
項(xiàng)目教學(xué)法在《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)踐教學(xué)環(huán)節(jié)中的應(yīng)用
王 瓊
(十堰廣播電視大學(xué),湖北 十堰 442000)
本文在分析了目前社會(huì)上主流軟件開發(fā)工具Visual C++沒有引起學(xué)員重視的基礎(chǔ)上,提出在完成教學(xué)大綱中規(guī)定的實(shí)驗(yàn)內(nèi)容之外,補(bǔ)充安排一些基于項(xiàng)目的實(shí)踐教學(xué)活動(dòng),培養(yǎng)學(xué)員使用Visual C++開發(fā)軟件的興趣,使學(xué)員初步具有利用Visual C++開發(fā)實(shí)用軟件的經(jīng)驗(yàn)和能力。
實(shí)踐教學(xué);Visual C++;項(xiàng)目;項(xiàng)目教學(xué)法
畢業(yè)設(shè)計(jì)是電大工科專業(yè)實(shí)踐教學(xué)十分重要的組成部分,在畢業(yè)設(shè)計(jì)過程中,學(xué)員利用所學(xué)的基礎(chǔ)知識(shí)和基本技能,結(jié)合實(shí)際應(yīng)用中的某一選題來(lái)進(jìn)行分析、研究和解決問題,最終撰寫總結(jié)性報(bào)告,即畢業(yè)論文,是提高學(xué)員綜合素質(zhì),為畢業(yè)后從事科學(xué)研究和技術(shù)開發(fā)工作打下良好基礎(chǔ)的一次全面訓(xùn)練。
按照中央電大的要求,《C語(yǔ)言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《Visual Basic程序設(shè)計(jì)》,《面向?qū)ο蟪绦蛟O(shè)計(jì)》都為必開課。從課程設(shè)置上看,學(xué)員采用Visual Basic作為開發(fā)工具確實(shí)是將所學(xué)知識(shí)與實(shí)踐相結(jié)合,但是從課程的實(shí)踐環(huán)節(jié)來(lái)看,《C語(yǔ)言程序設(shè)計(jì)》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》所使用程序設(shè)計(jì)平臺(tái)都是Visual C++,但是學(xué)員的畢業(yè)設(shè)計(jì)中鮮有用Visual C++作為開發(fā)工具的。從長(zhǎng)遠(yuǎn)的角度來(lái)看,現(xiàn)在計(jì)算機(jī)系統(tǒng)的支撐軟件多數(shù)都是按照面向?qū)ο蟮乃枷牒虲++語(yǔ)言開發(fā)的,掌握利用Visual C++開發(fā)系統(tǒng)的方法更有利于學(xué)員今后的發(fā)展。
下表圍繞中央廣播電視大學(xué)電大在線所提供的各類教學(xué)資源,從課程的任務(wù)與目的、實(shí)驗(yàn)內(nèi)容、程序類型等角度對(duì)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的《C語(yǔ)言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》、《Visual Basic程序設(shè)計(jì)》四門專業(yè)課程進(jìn)行了比較。
《C語(yǔ)言程序設(shè)計(jì)》《面向?qū)ο蟪绦蛟O(shè)計(jì)》 《數(shù)據(jù)結(jié)構(gòu)》 《Visual Basic程序設(shè)計(jì)》任務(wù)與目的主要任務(wù)是介紹C語(yǔ)言中的數(shù)據(jù)類型、數(shù)據(jù)表示、運(yùn)算規(guī)則、語(yǔ)句定義、函數(shù)調(diào)用、程序結(jié)構(gòu)、文件使用、編程方法等內(nèi)容。目的是使學(xué)員能夠利用一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言編寫出解決較簡(jiǎn)單的數(shù)值計(jì)算和數(shù)據(jù)處理問題的程序。主要介紹面向?qū)ο蟪绦蛟O(shè)計(jì)的方法和C++語(yǔ)言的基本概念。以C++語(yǔ)言中的面向?qū)ο髾C(jī)制為主。學(xué)習(xí)者在學(xué)習(xí)過程中可以通過大量的程序?qū)嵗拖嚓P(guān)練習(xí),逐步掌握C++的面向過程和面向?qū)ο蟮墓δ?,從而掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識(shí)和基本技能。主要任務(wù)是介紹集合、線性表、樹、圖等常用數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),順序、鏈接、散列、索引等常用存儲(chǔ)結(jié)構(gòu)的概念,插入、刪除、更新、查找、排序、遍歷等常用運(yùn)算的方法和算法。目的使學(xué)員通過該課程的學(xué)習(xí),具有進(jìn)行較復(fù)雜的基本程序設(shè)計(jì)和算法設(shè)計(jì)的能力。通過本課程的學(xué)習(xí),使學(xué)員掌握可視化程序設(shè)計(jì)方法和VB程序設(shè)計(jì)的編程技巧,具備用VB語(yǔ)言進(jìn)行系統(tǒng)開發(fā)的初步能力。
實(shí)驗(yàn)內(nèi)容側(cè)重于語(yǔ)法與知識(shí)點(diǎn)的講解,所提供的案例多、小、相互沒有聯(lián)系,多為練習(xí)語(yǔ)法而設(shè)計(jì)。側(cè)重于語(yǔ)法與知識(shí)點(diǎn)的講解,所提供的案例多、小、相互沒有聯(lián)系,多為練習(xí)語(yǔ)法而設(shè)計(jì)。側(cè)重于理論與算法設(shè)計(jì)的講解,所提供的程序都是與特定的理論知識(shí)相對(duì)應(yīng)。采用“任務(wù)驅(qū)動(dòng)”的教學(xué)方法,圍繞應(yīng)用程序開發(fā)展開教學(xué)內(nèi)容。實(shí)驗(yàn)內(nèi)容也為開發(fā)Windows應(yīng)用程序。程序類型在 Visual C++中創(chuàng)建的是Win32控制臺(tái)應(yīng)用程序。在 Visual C++中創(chuàng)建的是Win32控制臺(tái)應(yīng)用程序。在Visual C++中創(chuàng)建的是Win32控制臺(tái)應(yīng)用程序。在Visual Basic中創(chuàng)建的是Windows應(yīng)用程序。
從上表可以很清楚地看出《C語(yǔ)言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》三門課程采用的教學(xué)方法是“學(xué)中用”,先學(xué)習(xí)基本理論知識(shí),再針對(duì)理論知識(shí)設(shè)計(jì)案例,這種教學(xué)方法的優(yōu)點(diǎn)在于可以使學(xué)員系統(tǒng)掌握理論知識(shí),缺點(diǎn)在于學(xué)員解決實(shí)際問題的能力較差;《Visual Basic程序設(shè)計(jì)》采用的教學(xué)方法是“用中學(xué)”, 以程序設(shè)計(jì)為主題,以用為本,將理論知識(shí)融于程序設(shè)計(jì)當(dāng)中,不局限于VB語(yǔ)言本身,重點(diǎn)培養(yǎng)的是學(xué)員用VB語(yǔ)言進(jìn)行應(yīng)用系統(tǒng)開發(fā)的能力。
從上表還可以看出,《Visual Basic程序設(shè)計(jì)》中開發(fā)的都是Windows應(yīng)用程序,程序運(yùn)行為窗體界面,符合我們現(xiàn)在使用軟件的習(xí)慣;而《C語(yǔ)言程序設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》三門課程中編寫的程序都是控制臺(tái)應(yīng)用程序,程序運(yùn)行為DOS界面,不適用于目前所開發(fā)的系統(tǒng)。
通過分析,我們可以初步總結(jié)出學(xué)員不青睞于使用Visual C++作為開發(fā)工具的原因,一是在教學(xué)過程中沒有鍛煉學(xué)員解決實(shí)際問題的能力,二是我們?cè)趯W(xué)習(xí)中利用Visual C++開發(fā)的程序界面不適合現(xiàn)在對(duì)于軟件的需求,學(xué)員要利用Visual C++開發(fā)Windows應(yīng)用程序,還必須在課后專門自學(xué)Visual C++程序設(shè)計(jì)的相關(guān)教程。
3.1 教材中提供的實(shí)驗(yàn)內(nèi)容的局限性及解決辦法
《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程結(jié)合C++語(yǔ)言的語(yǔ)法、重要知識(shí)點(diǎn)共安排了12次實(shí)驗(yàn),通過認(rèn)真完成這些實(shí)驗(yàn),同學(xué)們可以達(dá)到熟練掌握 C++語(yǔ)言的語(yǔ)法知識(shí)并進(jìn)行簡(jiǎn)單程序設(shè)計(jì)的目的,但從長(zhǎng)遠(yuǎn)來(lái)說(shuō),還存在著以下局限性:
1)實(shí)驗(yàn)案例設(shè)計(jì)多以練習(xí)C++的語(yǔ)法知識(shí)為主,案例過小,而且彼此缺乏聯(lián)系,不能解決實(shí)際生活中比較復(fù)雜的問題。
2)教材前半部分的案例主要是介紹C++語(yǔ)言的基礎(chǔ)知識(shí),與面向?qū)ο蟪绦蛟O(shè)計(jì)無(wú)關(guān)。
3)采用的開發(fā)平臺(tái)為 VC6.0,編寫的是控制臺(tái)應(yīng)用程序,與目前社會(huì)上主要利用VS2005、VS2008開發(fā)Windows應(yīng)用程序相比,滯后于當(dāng)前軟件開發(fā)的實(shí)情。
針對(duì)實(shí)驗(yàn)內(nèi)容的局限性,在要求學(xué)員完成教學(xué)大綱中規(guī)定的實(shí)驗(yàn)內(nèi)容之外,我適當(dāng)?shù)靥砑恿艘恍?shí)驗(yàn)內(nèi)容,目的在于使學(xué)員熟悉VS2005、VS2008軟件開發(fā)平臺(tái),初步具有利用VC++開發(fā)實(shí)用軟件的經(jīng)驗(yàn)和能力,培養(yǎng)學(xué)員使用Visual C++開發(fā)程序的興趣,為最終畢業(yè)設(shè)計(jì)的順利實(shí)施打好基礎(chǔ)。
為保證補(bǔ)充實(shí)踐教學(xué)活動(dòng)的有效開展,我采用的是項(xiàng)目教學(xué)法。項(xiàng)目教學(xué)法是指在教學(xué)過程中以一個(gè)個(gè)項(xiàng)目為主線來(lái)展開,把相關(guān)的知識(shí)點(diǎn)融入到項(xiàng)目的各個(gè)環(huán)節(jié)中去,層層推進(jìn)項(xiàng)目。通過對(duì)問題的深化或功能擴(kuò)充,來(lái)拓寬知識(shí)的廣度和深度,直至得到一個(gè)完整的項(xiàng)目解決方案,從而達(dá)到學(xué)習(xí)知識(shí)、培養(yǎng)能力的目的,是一種典型的以學(xué)員為中心的教學(xué)方法。
3.2 項(xiàng)目教學(xué)法在實(shí)踐教學(xué)中需解決的問題
首先,無(wú)論教學(xué)采用何種形式,始終還是要圍繞《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程的教學(xué)大綱,教學(xué)效果要以達(dá)到教學(xué)大綱中提出的教學(xué)要求為主,不能額外增加在職成人學(xué)員的學(xué)習(xí)負(fù)擔(dān)。故在設(shè)計(jì)補(bǔ)充的實(shí)驗(yàn)時(shí),我把握了以下原則:
1)補(bǔ)充的實(shí)驗(yàn)要與教學(xué)大綱中要求的實(shí)驗(yàn)?zāi)繕?biāo)一致;
2)補(bǔ)充的實(shí)驗(yàn)最好配合教學(xué)大綱中安排的十二次實(shí)驗(yàn),在實(shí)驗(yàn)課上一同完成,便于老師同時(shí)指導(dǎo);
3)每個(gè)補(bǔ)充的實(shí)驗(yàn)完成時(shí)間最好控制在半小時(shí)內(nèi)。
Visual C++自1992年發(fā)布第一版到2010年,已經(jīng)有十幾個(gè)版本,其中Visual C++ 6.0發(fā)行至今一直被廣泛地用于大大小小的項(xiàng)目開發(fā),也是《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程推薦使用的版本,但是使用這一版本開發(fā)Windows應(yīng)用程序必須基于MFC,而MFC的入門門檻較高,很多初學(xué)者還沒有開始開發(fā)程序就會(huì)被系統(tǒng)生成的大量代碼嚇倒。.net 2003以后的Visual C++開發(fā)Windows應(yīng)用程序有兩種常用的方式:一種是使用MFC創(chuàng)建Windows應(yīng)用程序,另一種是使用Windows Forms創(chuàng)建Windows應(yīng)用程序,Windows Forms是一種基于窗體的開發(fā)機(jī)制,采用這種方式開發(fā)應(yīng)用程序簡(jiǎn)單方便,和使用Visual Basic類似。結(jié)合我對(duì)教學(xué)活動(dòng)的定位及目前軟件使用情況,我在教學(xué)中使用的項(xiàng)目開發(fā)平臺(tái)為Visual Studio 2008.net,創(chuàng)建Windows應(yīng)用程序采用的是第二種方式。
項(xiàng)目的設(shè)計(jì)和實(shí)施是項(xiàng)目教學(xué)法能否體現(xiàn)補(bǔ)充實(shí)踐教學(xué)活動(dòng)價(jià)值的關(guān)鍵,我們的最終目標(biāo)是通過這些項(xiàng)目的操作,能夠培養(yǎng)學(xué)員解決實(shí)際問題的能力,但同時(shí)又要保證這些項(xiàng)目能夠在較短的時(shí)間內(nèi)完成,每個(gè)項(xiàng)目不牽扯過多的知識(shí)點(diǎn),如何將這兩個(gè)相互矛盾的要求統(tǒng)一起來(lái),我在實(shí)際教學(xué)過程中采用的是這樣一條途徑:教學(xué)前,先將一個(gè)大項(xiàng)目進(jìn)行解體,發(fā)散成幾個(gè)小項(xiàng)目;教學(xué)過程中,按照教學(xué)大綱的安排,一一實(shí)現(xiàn)這些小項(xiàng)目,找時(shí)機(jī)將它們的功能逐步整合,在教學(xué)的最終還原這個(gè)大項(xiàng)目。項(xiàng)目的來(lái)源和實(shí)施主要有以下兩種方式。
第一種,教師引導(dǎo),學(xué)員補(bǔ)充。
教師憑借自己的教學(xué)經(jīng)驗(yàn)和對(duì)課程內(nèi)容的熟悉,構(gòu)思一些具有實(shí)用功能的大項(xiàng)目,結(jié)合每次實(shí)驗(yàn)課的內(nèi)容、目標(biāo)設(shè)計(jì)出能夠完成大項(xiàng)目某一部分功能的小項(xiàng)目,在指導(dǎo)學(xué)員完成這些項(xiàng)目的同時(shí),鼓勵(lì)學(xué)員對(duì)這些小項(xiàng)目進(jìn)行功能擴(kuò)充,最終師生共同實(shí)現(xiàn)最初構(gòu)思的項(xiàng)目。
第二種,學(xué)員構(gòu)思,教師指導(dǎo)。
教師鼓勵(lì)學(xué)員結(jié)合學(xué)習(xí)、生活中的經(jīng)歷,自己先構(gòu)思一些大項(xiàng)目,然后再與教師進(jìn)行討論;教師憑借自己的經(jīng)驗(yàn),指出學(xué)員利用現(xiàn)階段所學(xué)知識(shí)可完成的部分;通過這種與學(xué)員反復(fù)討論、指導(dǎo)的方式,最終實(shí)現(xiàn)學(xué)員構(gòu)思的項(xiàng)目。
3.3 項(xiàng)目教學(xué)法在實(shí)踐教學(xué)中的開展
目前,《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程補(bǔ)充實(shí)踐教學(xué)活動(dòng)的開展主要采用的是“教師引導(dǎo),學(xué)員補(bǔ)充”的實(shí)施辦法。在開展補(bǔ)充實(shí)踐教學(xué)活動(dòng)之前,我結(jié)合教材中各章節(jié)都存在數(shù)值運(yùn)算案例的情況,構(gòu)思實(shí)現(xiàn)一個(gè)功能完備的運(yùn)算器(大項(xiàng)目);結(jié)合教學(xué)大綱中安排的十二次實(shí)驗(yàn),針對(duì)每次一實(shí)驗(yàn)課的教學(xué)目標(biāo)細(xì)化成一個(gè)個(gè)小項(xiàng)目。每一次補(bǔ)充實(shí)驗(yàn)的內(nèi)容及目的如下表所示:
?
以項(xiàng)目1~4為例,項(xiàng)目3是在項(xiàng)目2的基礎(chǔ)之上,進(jìn)行了功能擴(kuò)充,而項(xiàng)目4是將前三個(gè)項(xiàng)目的功能整合在了一起,形成了一個(gè)在實(shí)際生活中大家都比較熟悉的應(yīng)用軟件——數(shù)字計(jì)算器。
項(xiàng)目7是在項(xiàng)目5的基礎(chǔ)之上進(jìn)行的功能擴(kuò)充。
項(xiàng)目8將項(xiàng)目4、6、7的功能進(jìn)行整合,形成了一個(gè)多功能的計(jì)算器。
通過這種安排方式,可以在教學(xué)最終實(shí)現(xiàn)一個(gè)功能比較完善、在現(xiàn)實(shí)生活中具有一定應(yīng)用價(jià)值的項(xiàng)目。
每個(gè)小項(xiàng)目的實(shí)施方法基本一致:先讓學(xué)員們自己設(shè)計(jì)界面,然后引導(dǎo)學(xué)員分析如何實(shí)現(xiàn)程序的功能,鼓勵(lì)學(xué)員們自己編寫代碼,當(dāng)學(xué)員們的操作出現(xiàn)問題時(shí),在講解問題原因的同時(shí)將重要知識(shí)點(diǎn)融入其中,最后指導(dǎo)學(xué)員完成正確代碼的編寫。
在實(shí)施過程中,補(bǔ)充的實(shí)驗(yàn)與中央電大安排的實(shí)驗(yàn)同時(shí)進(jìn)行,具體操作為每次實(shí)驗(yàn)課適當(dāng)加緊教學(xué)大綱中規(guī)定實(shí)驗(yàn)的進(jìn)度,以縮短實(shí)驗(yàn)時(shí)間,節(jié)省出的時(shí)間用于補(bǔ)充安排的實(shí)驗(yàn),每次實(shí)驗(yàn)課的時(shí)間會(huì)根據(jù)實(shí)際情況略長(zhǎng)于規(guī)定的課時(shí)。
為了保證補(bǔ)充實(shí)踐教學(xué)活動(dòng)的實(shí)施效果,一定要要求學(xué)員要聽從教師的安排,獨(dú)立完成每次課布置的項(xiàng)目,并認(rèn)真填寫項(xiàng)目實(shí)施記錄表;學(xué)員在實(shí)驗(yàn)過程中若遇到有疑問的地方,一方面要及時(shí)與教師討論解決,另一方面要將解決方法記錄在項(xiàng)目實(shí)施記錄表中。學(xué)員要對(duì)已完成的項(xiàng)目提出功能擴(kuò)充意見,并能在課后著手實(shí)現(xiàn)。
[1] 王萍.C++面向?qū)ο蟪绦蛟O(shè)計(jì)[M].清華大學(xué)出版社,2001.
[2] 徐孝凱.面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)[M].中央廣播電視大學(xué)出版社,2004.
G72
A
1008-7427(2011)01-0018-02
2010-10-09