鄒曉兵
(重慶教育學(xué)院計(jì)算機(jī)科學(xué)系,重慶400067)
C#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。它是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的語(yǔ)言,是由C和C++衍生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性,比如指針。C#綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持成為.NET開(kāi)發(fā)的首選語(yǔ)言[1]。目前很多高校的計(jì)算機(jī)相關(guān)專(zhuān)業(yè)都開(kāi)設(shè)了《C#程序設(shè)計(jì)》這門(mén)課,但是采用的教學(xué)方法仍然是傳統(tǒng)的教學(xué)方法,學(xué)習(xí)過(guò)程中主要強(qiáng)調(diào)基本語(yǔ)法,沒(méi)有將學(xué)生的能力培養(yǎng)放在首位。其次,學(xué)生在學(xué)習(xí)《C#程序設(shè)計(jì)》之前大多學(xué)習(xí)過(guò)C語(yǔ)言,C#語(yǔ)言和C語(yǔ)言在內(nèi)容上有很多相似之處,但是也有很多內(nèi)容差異較大,比如數(shù)組、類(lèi)、結(jié)構(gòu)體等。因此,如果在《C#程序設(shè)計(jì)》這門(mén)課程中仍然采用傳統(tǒng)的教學(xué)方式,學(xué)生容易將C#與C語(yǔ)言混淆,而且需要重復(fù)一些基本的語(yǔ)法知識(shí),達(dá)不到學(xué)習(xí)C#的真正目的。在傳統(tǒng)的教學(xué)模式中,也有一些項(xiàng)目或?qū)嵗?,但是這些項(xiàng)目或?qū)嵗欠稚⒌模瑢W(xué)生學(xué)習(xí)起來(lái)也是孤立地,缺乏系統(tǒng)性和對(duì)課程整體的把握。有許多學(xué)者已經(jīng)對(duì)項(xiàng)目教學(xué)法進(jìn)行了研究[2-6],本文主要討論項(xiàng)目驅(qū)動(dòng)教學(xué)法在《C#程序設(shè)計(jì)》課程中的應(yīng)用。
項(xiàng)目驅(qū)動(dòng)法來(lái)源于建構(gòu)主義學(xué)習(xí)理論[7]。項(xiàng)目驅(qū)動(dòng)教學(xué)法,就是運(yùn)用構(gòu)建主義的思想,并將整個(gè)學(xué)習(xí)過(guò)程分解為一個(gè)個(gè)具體的工程項(xiàng)目,設(shè)計(jì)出一個(gè)個(gè)項(xiàng)目教學(xué)方案,并認(rèn)真設(shè)計(jì)出教學(xué)思路,不僅傳授給學(xué)生理論知識(shí)和操作技能,更重要的是培養(yǎng)他們的職業(yè)能力,這里的能力已不僅僅是知識(shí)能力或者是專(zhuān)業(yè)能力,而是涵蓋了如何解決問(wèn)題的能力[8]。
項(xiàng)目驅(qū)動(dòng)教學(xué)法是一種靈活多樣,且生動(dòng)的教學(xué)方法,它打破了傳統(tǒng)的教學(xué)觀念,對(duì)學(xué)生進(jìn)行全方位的培養(yǎng),使學(xué)生從被動(dòng)的學(xué)習(xí)知識(shí)轉(zhuǎn)變?yōu)橹鲃?dòng)地探索知識(shí)。在這種模式中,關(guān)注的重點(diǎn)是學(xué)生的能力培養(yǎng),而不是知識(shí)本身。教師的任務(wù)是根據(jù)學(xué)生已有的知識(shí)、經(jīng)驗(yàn)和專(zhuān)業(yè),選擇適合他們的項(xiàng)目,然后對(duì)學(xué)生進(jìn)行指導(dǎo),讓學(xué)生置身于探索知識(shí)的情境中,從根本上解決傳統(tǒng)教學(xué)中的滿(mǎn)堂灌。學(xué)生在學(xué)習(xí)過(guò)程中通過(guò)對(duì)項(xiàng)目的分析、設(shè)計(jì)和實(shí)現(xiàn),從而將理論和實(shí)踐進(jìn)行有機(jī)結(jié)合,學(xué)生在學(xué)習(xí)過(guò)程中由被動(dòng)的知識(shí)接受者轉(zhuǎn)變?yōu)橹鲃?dòng)參與者,而且通過(guò)項(xiàng)目的實(shí)現(xiàn)即既可以提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力,又可以增強(qiáng)他們的自信。
《C#程序設(shè)計(jì)》是一門(mén)實(shí)踐性很強(qiáng)的專(zhuān)業(yè)技能課,該課程注重的是學(xué)生能力的培養(yǎng)和提高,因此,改革傳統(tǒng)教學(xué)方法,在《C#程序設(shè)計(jì)中》合理運(yùn)用項(xiàng)目驅(qū)動(dòng)教學(xué)方法,以全面提高學(xué)生的分析問(wèn)題和解決問(wèn)題的能力、創(chuàng)新能力、團(tuán)隊(duì)協(xié)作能力等。
在項(xiàng)目驅(qū)動(dòng)教學(xué)中,項(xiàng)目是核心,整個(gè)教學(xué)過(guò)程都圍繞項(xiàng)目展開(kāi)。學(xué)生通過(guò)學(xué)習(xí),可以體會(huì)實(shí)際項(xiàng)目的開(kāi)發(fā)過(guò)程,可以為以后的實(shí)際項(xiàng)目開(kāi)發(fā)積累經(jīng)驗(yàn)。因此,項(xiàng)目的選擇將直接影響教學(xué)效果。
首先,項(xiàng)目要具有一定的代表性,最好是和學(xué)生生活、學(xué)習(xí)相關(guān)的一些項(xiàng)目。只有選擇學(xué)生感興趣的項(xiàng)目,學(xué)生的學(xué)習(xí)積極性才高,參與意識(shí)才強(qiáng)。選擇項(xiàng)目前,教師必須仔細(xì)分析學(xué)生的情況,比如已有的基礎(chǔ)知識(shí)、專(zhuān)業(yè)技能、實(shí)際動(dòng)手能力等。選擇項(xiàng)目時(shí),根據(jù)學(xué)生的實(shí)際情況選擇難度適中的項(xiàng)目。如果項(xiàng)目太簡(jiǎn)單,達(dá)不到培養(yǎng)學(xué)生能力的目的;如果項(xiàng)目太難,學(xué)生學(xué)習(xí)時(shí)難于完成項(xiàng)目規(guī)定的任務(wù),就會(huì)失去學(xué)習(xí)的動(dòng)力和興趣。根據(jù)學(xué)生的情況和學(xué)校的實(shí)際背景,我們可以選擇“圖書(shū)館管理信息系統(tǒng)”作為教學(xué)項(xiàng)目(當(dāng)然也可以選擇其它的項(xiàng)目,只要能讓學(xué)生在學(xué)習(xí)知識(shí)的同時(shí),能力得到提高就行)。選擇該項(xiàng)目的目的是學(xué)生對(duì)圖書(shū)的借閱流程熟悉,而且該系統(tǒng)所涉及的知識(shí)包括軟件設(shè)計(jì)的需求分析過(guò)程、系統(tǒng)平臺(tái)的搭建、系統(tǒng)實(shí)施、系統(tǒng)調(diào)試,在系統(tǒng)的具體實(shí)現(xiàn)過(guò)程中將用到C#語(yǔ)言的主要知識(shí),包括窗體設(shè)計(jì)、基本語(yǔ)法、類(lèi)、數(shù)據(jù)庫(kù)編程等相關(guān)知識(shí)。學(xué)生通過(guò)該項(xiàng)目的學(xué)習(xí),即可以掌握C#的基本知識(shí),又可以培養(yǎng)其分析問(wèn)題和解決問(wèn)題的能力,尤其是可以提高學(xué)生開(kāi)發(fā)實(shí)際項(xiàng)目的能力。
其次,對(duì)項(xiàng)目進(jìn)行合理分解,以檢驗(yàn)項(xiàng)目及其內(nèi)容設(shè)置的合理性。C#涉及的知識(shí)較多,從基本語(yǔ)法、類(lèi)的定義、類(lèi)的繼承與多態(tài)、窗體設(shè)計(jì)、控件使用、數(shù)據(jù)庫(kù)連接與訪(fǎng)問(wèn)到文件的輸入輸出。因此,在選擇好項(xiàng)目后,就需要重點(diǎn)考慮如何將項(xiàng)目分解為多個(gè)小模塊,使得每個(gè)小模塊恰好能夠覆蓋C#的一個(gè)知識(shí)點(diǎn)。這部分工作主要檢驗(yàn)項(xiàng)目的合理性和內(nèi)容的適當(dāng)性。將項(xiàng)目分解為多個(gè)小模塊后,每個(gè)模塊對(duì)應(yīng)相關(guān)的知識(shí)點(diǎn),它既能檢驗(yàn)項(xiàng)目?jī)?nèi)容是否覆蓋了相關(guān)的知識(shí),又能對(duì)項(xiàng)目的合理性進(jìn)行檢驗(yàn)。在這部分工作中,如果發(fā)現(xiàn)項(xiàng)目的不合理部分,或者項(xiàng)目?jī)?nèi)容沒(méi)有覆蓋主要知識(shí),就需要對(duì)項(xiàng)目?jī)?nèi)容適當(dāng)調(diào)整,從而保證知識(shí)覆蓋的全面性。在項(xiàng)目的分解過(guò)程中,也不一定非要將相關(guān)的知識(shí)都放到一個(gè)模塊中??梢愿鶕?jù)學(xué)生的基礎(chǔ)和已學(xué)的內(nèi)容將一個(gè)知識(shí)點(diǎn)分布到幾個(gè)小模塊中。這樣,學(xué)生通過(guò)各模塊的學(xué)習(xí),既掌握了相關(guān)的理論知識(shí),又增強(qiáng)了學(xué)生的成就感,從而提高了學(xué)生的學(xué)習(xí)興趣,充分調(diào)動(dòng)了學(xué)生學(xué)習(xí)的激情。
最后,對(duì)學(xué)生進(jìn)行分組,以培養(yǎng)學(xué)生的團(tuán)隊(duì)協(xié)作能力。一般來(lái)說(shuō),一個(gè)完整的項(xiàng)目涉及的模塊多,結(jié)構(gòu)復(fù)雜,此時(shí)就需要多人合作完成一個(gè)項(xiàng)目。在項(xiàng)目驅(qū)動(dòng)的教學(xué)中,教師事先已經(jīng)選好了一個(gè)項(xiàng)目,為培養(yǎng)學(xué)生解決實(shí)際問(wèn)題的能力,仍然提倡讓學(xué)生自己選擇項(xiàng)目。學(xué)生首先采取自由結(jié)合的方式進(jìn)行分組,然后教師根據(jù)分組的情況進(jìn)行小范圍調(diào)整,調(diào)整時(shí)需要考慮優(yōu)差生的搭配。為保證教學(xué)的順利實(shí)施,組數(shù)不能太多。
在課堂教學(xué)一開(kāi)始,教師從軟件工程的角度講解軟件開(kāi)發(fā)的五個(gè)階段,每個(gè)階段應(yīng)該做的工作,然后引導(dǎo)學(xué)生分組選擇項(xiàng)目。教師一定要注意引導(dǎo)學(xué)生選擇和他們密切相關(guān)的項(xiàng)目。這個(gè)階段看起來(lái)與我們的教學(xué)矛盾。既然我們已經(jīng)選擇了項(xiàng)目,就可以根據(jù)項(xiàng)目模塊的劃分,學(xué)生在教師的指導(dǎo)下完成項(xiàng)目,這也是絕大多數(shù)項(xiàng)目驅(qū)動(dòng)教學(xué)的采用的方法[9-11]。但是這樣做沒(méi)有體現(xiàn)出“以生為本”的思想,學(xué)生還是以被動(dòng)接受為主,學(xué)習(xí)的主動(dòng)性不能得到有效的提高。針對(duì)這一問(wèn)題,我們倡導(dǎo)讓學(xué)生自己找項(xiàng)目,然后分組討論,在多個(gè)項(xiàng)目中選擇比較合理的項(xiàng)目。在討論中對(duì)學(xué)生提出的觀點(diǎn)予以肯定,并對(duì)一些比較好的觀點(diǎn)進(jìn)行鼓勵(lì),并從中發(fā)現(xiàn)教師事前準(zhǔn)備項(xiàng)目存在的一些不足。在討論和確定項(xiàng)目的過(guò)程中,教師要盡量引導(dǎo)學(xué)生選擇教師事前準(zhǔn)備的項(xiàng)目。項(xiàng)目確定后,引導(dǎo)學(xué)生對(duì)項(xiàng)目進(jìn)行模塊劃分,并討論劃分的合理性和科學(xué)性,覆蓋知識(shí)的全面性,最終確定出項(xiàng)目的小模塊。
傳統(tǒng)的教學(xué)模式是教師先講理論,然后學(xué)生上機(jī)操作。由于學(xué)生在理論課前沒(méi)有相應(yīng)理論知識(shí)的感性認(rèn)識(shí),導(dǎo)致上機(jī)時(shí)教師又要重復(fù)相關(guān)的理論。為此,我們探索了一種先上機(jī),后理論的教學(xué)方式。這種教學(xué)方式讓學(xué)生先上機(jī),完成項(xiàng)目中的相應(yīng)模塊,在完成模塊的過(guò)程中,學(xué)生就可以了解模塊中涉及的相應(yīng)知識(shí),以及他們對(duì)該部分知識(shí)的掌握和理解情況,教師也可以通過(guò)學(xué)生的上機(jī)情況了解學(xué)生存在的問(wèn)題,以便在理論教學(xué)中強(qiáng)調(diào)相關(guān)知識(shí)。在這種教學(xué)模式中,學(xué)生是主體,教師是主導(dǎo)。學(xué)生總是帶著問(wèn)題來(lái)學(xué)習(xí),通過(guò)這種不斷強(qiáng)化和訓(xùn)練,既可以提高學(xué)生的實(shí)際動(dòng)手能力,又可以培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的能力。在項(xiàng)目的實(shí)現(xiàn)過(guò)程中,教師應(yīng)該對(duì)問(wèn)題進(jìn)行適當(dāng)延伸(比如數(shù)據(jù)庫(kù)操作部分對(duì)表和視圖的操作處理判斷等),以培養(yǎng)學(xué)生的創(chuàng)新能力。
表1 考核評(píng)價(jià)標(biāo)準(zhǔn)
傳統(tǒng)C#程序課程的考核方式主要是紙質(zhì)試卷,考核學(xué)生對(duì)基本語(yǔ)法的掌握情況。項(xiàng)目驅(qū)動(dòng)教學(xué)是以培養(yǎng)學(xué)生的能力為主,強(qiáng)調(diào)對(duì)學(xué)生分析問(wèn)題、解決問(wèn)題能力的培養(yǎng),而傳統(tǒng)考核方式關(guān)注的是學(xué)生對(duì)書(shū)本知識(shí)的掌握情況,很少關(guān)注學(xué)生的實(shí)際能力。為更好的測(cè)試學(xué)生對(duì)C#程序的掌握情況,可以將測(cè)試分為5個(gè)部分:(1)出勤;(2)小組合作情況;(3)各小模塊完成情況;(4)答辯;(5)期末考試。每個(gè)部分考核的內(nèi)容和權(quán)重如表1所示。由表1的評(píng)價(jià)內(nèi)容和評(píng)價(jià)方式可以看出,通過(guò)這種評(píng)價(jià),學(xué)生參與度較高,從而保證了考核的公正、公開(kāi)和公平,并且評(píng)價(jià)結(jié)果能夠真實(shí)反映學(xué)生的實(shí)際能力。
傳統(tǒng)的教學(xué)方法已經(jīng)不能適應(yīng)專(zhuān)業(yè)技能課的教學(xué),它制約了學(xué)生分析問(wèn)題和解決問(wèn)題能力的培養(yǎng),而項(xiàng)目驅(qū)動(dòng)教學(xué)方法更加關(guān)注學(xué)生分析問(wèn)題和解決問(wèn)題能力的培養(yǎng),同時(shí)關(guān)注學(xué)生創(chuàng)新能力的培養(yǎng)。本文對(duì)項(xiàng)目驅(qū)動(dòng)教學(xué)法在《C#程序設(shè)計(jì)》中的教學(xué)模式進(jìn)行了探索,提出了以生為本的教學(xué)模式,以一個(gè)完整的項(xiàng)目為教學(xué)主線(xiàn),相對(duì)獨(dú)立的小模塊為教學(xué)內(nèi)容,先上機(jī)后理論的教學(xué)方法。從而提高學(xué)生的學(xué)習(xí)主動(dòng)性,增強(qiáng)學(xué)生的主體意識(shí),避免了傳統(tǒng)教學(xué)中的被動(dòng)學(xué)習(xí)模式。
[1]崔群法,唐有明,王俊偉.Visual C#2008從入門(mén)到精通[M].北京:電子工業(yè)出版社,2009.
[2]吳立春.項(xiàng)目教學(xué)法在高職《辦公自動(dòng)化》教學(xué)中的應(yīng)用[J].重慶教育學(xué)院學(xué)報(bào),2008,21(3):135-136.
[3]蔣述東.高職旅游管理專(zhuān)業(yè)建構(gòu)項(xiàng)目課程體系的思考[J].重慶教育學(xué)院學(xué)報(bào),2010,23(3):45-47.
[4]王荻.項(xiàng)目驅(qū)動(dòng)教學(xué)探索[J].2007,36:17-18.
[5]沈維政,蘇中濱,趙潔.項(xiàng)目驅(qū)動(dòng)教學(xué)法在Java語(yǔ)言程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2010,2:66-67.
[6]陸蕓婷.基于工作過(guò)程的《數(shù)據(jù)庫(kù)基礎(chǔ)》課程教學(xué)設(shè)計(jì)[J].中國(guó)科技信息,2009,15:269-270.
[7]王明金.基于構(gòu)建主義的項(xiàng)目教學(xué)法的拓展[J].安徽科技學(xué)院學(xué)報(bào),2010,24(3):73-75.
[8]胡必波.項(xiàng)目驅(qū)動(dòng)教學(xué)法應(yīng)用研究[J].合作經(jīng)濟(jì)與科技,2008,14:77-78.
[9]陳玉發(fā).項(xiàng)目驅(qū)動(dòng)教學(xué)法在《Visual Basic可視化程序設(shè)計(jì)》課程教學(xué)中的應(yīng)用[J].時(shí)代教育,2010,12:57.
[10]袁桂霞.“C語(yǔ)言程序設(shè)計(jì)”課程創(chuàng)新教學(xué)法研究[J].中國(guó)電力教育,2009,151:131-132.
[11]張志杰.“項(xiàng)目驅(qū)動(dòng)教學(xué)法”在高職程序設(shè)計(jì)類(lèi)課程教學(xué)中的應(yīng)用[J].山西經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2009,17(4):111-113.