金豪 肖夢瓊 劉曉華
摘 要:本文主要探討今年來國際上通行的CDIO教育理念在高校程序設(shè)計基礎(chǔ)課程中的引入和實踐,通過分析傳統(tǒng)教學(xué)方法的利弊和針對學(xué)生工程能力的培養(yǎng)目標(biāo),探討了以項目和任務(wù)驅(qū)動為核心的一系列教改措施,使學(xué)生能通過一系列專業(yè)實踐更好地掌握和應(yīng)用程序設(shè)計的一般方法學(xué)。
關(guān)鍵詞:CDIO 程序設(shè)計 工程能力 項目驅(qū)動 評價體系
一、引言
IT業(yè)一直是國家優(yōu)先發(fā)展的重點行業(yè),也是國內(nèi)人才需求量最大的行業(yè)之一,而軟件開發(fā)在其中占據(jù)了相當(dāng)大的比例??陀^來說,高等教育在計算機專業(yè)傳統(tǒng)的教育理論型、研究型人才培養(yǎng)上有較大的優(yōu)勢,但在應(yīng)用型人才的培養(yǎng)上存在層次單一,理論與實踐脫節(jié)的情況,使得不少畢業(yè)生理論有余,而在專業(yè)應(yīng)用和編程綜合能力方面存在著明顯不足。[1]
CDIO工程教育模式是由麻省理工學(xué)院和瑞典皇家工學(xué)院等大學(xué)通過多年研究、探索與教學(xué)實踐建立起的一種基于工程教育的先進教學(xué)模式[2,3],其核心理念是以“做中學(xué)”和“基于項目的學(xué)習(xí)”為基礎(chǔ)的教學(xué)模式。筆者在多年教學(xué)實踐和分析本校程序設(shè)計基礎(chǔ)課教學(xué)現(xiàn)狀的基礎(chǔ)上,結(jié)合CDIO教學(xué)理念和工程教育標(biāo)準(zhǔn),以培養(yǎng)學(xué)生的編程綜合能力為目標(biāo),探討了一種針對程序設(shè)計基礎(chǔ)課的教學(xué)改革方案。
二、程序設(shè)計課程的教學(xué)現(xiàn)狀
程序設(shè)計綜合能力的評判并沒有統(tǒng)一的評判標(biāo)準(zhǔn)。一般認(rèn)為以下幾種能力是必須的:①自頂向下分析問題的能力;②編碼實現(xiàn)問題求解的能力;③良好的代碼編寫習(xí)慣;④調(diào)試錯誤的能力;⑤閱讀、理解和優(yōu)化別人代碼的能力。
這些能力的培養(yǎng)需要經(jīng)過大量的編程和項目開發(fā)實踐,是一個需要長期投入時間和精力的過程。目前一般高校的培養(yǎng)計劃中對于低年級本科生編程能力的培養(yǎng)主要是通過開設(shè)一兩門C語言相關(guān)課程。這些課程的開設(shè)對于引導(dǎo)學(xué)生進入程序設(shè)計這種領(lǐng)域和培養(yǎng)基本的編程技能是必要的,但傳統(tǒng)的“課堂+實驗”教學(xué)中也存在不少問題:[2]
1.C語言本身的特點是比較靈活,相關(guān)知識點比較多。部分學(xué)生只是機械地學(xué)習(xí)語法,對很多知識點的掌握采取死記硬背的方法,缺乏對程序設(shè)計基本思想方法的理解和掌握。
2.一些教師的理論教學(xué)采用填鴨式教學(xué)方法,依次講解教材中的知識點,實驗課上讓學(xué)生按照實驗教材進行實踐。導(dǎo)致的一個典型問題是學(xué)生聽課時往往覺得枯燥。
3.學(xué)生忽視對于一些重要的基礎(chǔ)性算法的理解和掌握,而這些算法是編寫更復(fù)雜程序的一個基礎(chǔ),也是學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》、《算法分析》等后續(xù)課程的基礎(chǔ)。
4.做習(xí)題的方式對于加深局部知識點的理解和掌握是必要的,但對于程序設(shè)計整體思維和綜合能力的培養(yǎng)是不夠的。不少同學(xué)僅僅滿足于掌握作業(yè)中的習(xí)題,忽視自己在編程實踐方面的訓(xùn)練,導(dǎo)致的一個嚴(yán)重問題是筆試往往能通過甚至得高分,但實際編程能力很弱,尤其是對于應(yīng)用型問題的處理,反映出對于程序設(shè)計一般方法學(xué)尚未掌握。這樣培養(yǎng)出的學(xué)生往往會考試不會編程。
綜合上述情況,可以知道傳統(tǒng)的課堂教學(xué)對于學(xué)生程序設(shè)計綜合能力的培養(yǎng)是有所欠缺的。這其中最主要的原因是學(xué)生在“分析問題→構(gòu)思→設(shè)計→編碼實現(xiàn)”這整個環(huán)節(jié)上的訓(xùn)練不夠。
三、基于CDIO理念的教學(xué)改革
針對現(xiàn)有教學(xué)方式對學(xué)生編程綜合能力的培養(yǎng)效果不明顯的情況,我們結(jié)合CDIO工程教育模式 “做中學(xué)”和“基于項目的學(xué)習(xí)”兩個核心理念,施行了一系列教改措施。其目的是進一步增強學(xué)生編程綜合能力的培養(yǎng),而不僅僅滿足于語法和知識點的講授。具體課程的培養(yǎng)能力指標(biāo)結(jié)合CDIO工程模式和理念對已有的教學(xué)大綱進行了修改,圍繞學(xué)生工程能力的培養(yǎng),給出了各項能力培養(yǎng)指標(biāo)。
1.項目驅(qū)動的教學(xué)方式
在課程的設(shè)計中強調(diào)以項目為導(dǎo)向的方式。在課堂教學(xué)方面,主要圍繞程序設(shè)計方法學(xué)講授最基本的知識點,淡化一些應(yīng)用場合不多又較為細(xì)枝末節(jié)的知識點;在實驗教學(xué)方面,以一個個具體的小型項目為依托來強化從問題分析到編碼實現(xiàn)這個過程中的程序思維培養(yǎng),并在其中融入相關(guān)的重要知識點。在整個教學(xué)過程中,學(xué)生通過項目開發(fā)將各項瑣碎的知識點串聯(lián)起來來深化理解和應(yīng)用。
2.多維度評價體系
在課程成績評定上,采用多維度考核的方式:
(1)傳統(tǒng)的筆試成績僅占據(jù)40%。這部分主要考核學(xué)生對于基本語法和各項重要的局部知識點的掌握情況。
(2)實驗方面采用項目考核的方式,占40%。在課程結(jié)束之際,由教師給出一系列難度適中的小型項目由學(xué)生選題進行設(shè)計開發(fā),最終以小組答辯的形式來進行考核。教師會綜合以下幾方面來進行評判給分:①設(shè)計構(gòu)思的可行性;②代碼風(fēng)格和友好性;③運行結(jié)果的正確性;④代碼健壯性;⑤算法的效率。
(3)平時成績占20%,主要由兩部分組成:①平時的作業(yè)情況;②學(xué)生對案例項目的分析講解,教師以分組形式組織學(xué)生討論并發(fā)言。
3.教學(xué)效果的延續(xù)性
以往的教學(xué)計劃編排,課程與課程之間獨立性較強,導(dǎo)致很多同學(xué)學(xué)完程序設(shè)計課程后就再不接觸編程相關(guān)的內(nèi)容。這帶來的問題是課堂教學(xué)效果再好,課程后續(xù)的加強、鞏固和深入仍然遠(yuǎn)遠(yuǎn)不夠,使得四年期間的整體培養(yǎng)效果大打折扣。
因此,將相關(guān)性較強的多門講授和實踐類課程組成相互關(guān)聯(lián)的課程群,從整體上考慮課程的后繼學(xué)習(xí),以保證教學(xué)效果有較好的延續(xù)性。例如,本專業(yè)學(xué)生在《程序設(shè)計基礎(chǔ)》課程之后設(shè)置有“基礎(chǔ)軟件綜合設(shè)計”和“網(wǎng)絡(luò)應(yīng)用軟件綜合設(shè)計”兩個課程設(shè)計。這兩個課程設(shè)計圍繞C語言程序設(shè)計的教學(xué),在項目內(nèi)容的深度和廣度上加以一定的擴展,要求學(xué)生自己查閱相關(guān)文獻資料和教師講解所需專業(yè)知識的基礎(chǔ)上,自己從零開始進行整個項目的規(guī)劃、構(gòu)思、設(shè)計和實現(xiàn),從而對所學(xué)內(nèi)容進行鞏固加強,并進一步激發(fā)課余編程的興趣。
參考文獻
[1]顧佩華,沈民奮,陸小華,譯. 重新認(rèn)識工程教育—國際 CDIO 培養(yǎng)模式與方法[M].北京:高等教育出版社,2009.
[2]顧佩華,沈民奮,李升平等.從CDIO到EIP-CDIO汕頭大學(xué)工程教育與人才培養(yǎng)模式探索[J]. 高等工程教育研究,2008( 1) : 12-20.