摘要:傳統(tǒng)的程序設(shè)計類課程教學與實驗案例不利于計算機專業(yè)學生工程能力的培養(yǎng)?;贑DIO教學模式的框架,提出程序設(shè)計類課程教學與實驗案例的設(shè)計原則,并結(jié)合鹽城師范學院課程體系的具體情況,設(shè)計相應(yīng)的實施方案。實踐結(jié)果表明,基于CDIO的教學與實驗案例的實施,激發(fā)了學生學習主動性,訓練了學生的工程思維,幫助學生積累了必要的開發(fā)經(jīng)驗,從而培養(yǎng)了工程能力。
關(guān)鍵詞:CDIO;教學改革;程序設(shè)計類課程;案例設(shè)計
長期以來,程序設(shè)計類課程教學強調(diào)語法知識,輕視設(shè)計、編碼以及團隊協(xié)作能力的培養(yǎng),忽視工程經(jīng)驗的積累。大部分程序設(shè)計類課程相關(guān)教材、實驗指導(dǎo)書以及教學參考書中的案例設(shè)計以輔助講解語法規(guī)則為目的,案例雖簡單易理解,但無益于學生工程能力的培養(yǎng)。從我院幾年的程序設(shè)計類課程教學效果反饋以及跟蹤調(diào)查結(jié)果可以看出,大部分學生雖然系統(tǒng)地掌握了程序設(shè)計語言基礎(chǔ)知識,但不能很好地完成后續(xù)實踐課程與各級軟件競賽中原型系統(tǒng)的開發(fā)。因此,我院以CDIO工程教育模式為指導(dǎo)思想,以C++程序設(shè)計課程為龍頭,改革程序設(shè)計類課程的教學模式,探索教學環(huán)節(jié)與實踐環(huán)節(jié)案例的設(shè)置策略與方案,實踐結(jié)果表明,在具有較強工程背景與應(yīng)用價值的案例的學習與實踐中,學生增強了主動學習的意識與能力,積累了必要的開發(fā)經(jīng)驗,培養(yǎng)了工程能力。
1CDIO工程教育模式
上世紀90年代末,MIT(Massachusetts Institute of Technology,麻省理工學院)航空航天系教師著手在小范圍內(nèi)探討如何能把理論知識的傳授和實踐能力的培養(yǎng)結(jié)合起來,開始推動CDIO(Conceive構(gòu)思、Design設(shè)計、Implement實施、Operate運作)教育改革計劃。1999—2000學年,MIT開展了小型的預(yù)研究。2000年10月,MIT聯(lián)合瑞典3所大學,合作組成跨國研究組,啟動CDIO工程教育改進計劃[1]。近年來,國內(nèi)包括清華大學[2]、中南大學[3]等在內(nèi)多所高校關(guān)注CDIO教學模式,并結(jié)合自身專業(yè)與課程的特點,進行了一系列有益的探索。CDIO的觀點是教師在構(gòu)思—設(shè)計—實施—運作真實世界中的系統(tǒng)與產(chǎn)品過程中教授工程原理[4]。
課程改革是CDIO四大主題之一[5],也是學生學習構(gòu)思與設(shè)計復(fù)雜系統(tǒng)相關(guān)知識、技能的重要保證。CDIO的課程改革必須解決兩個問題:什么是工程類學科學生應(yīng)該掌握的完整的知識、技能以及意識體系;如何改革才有助于學生更好地掌握這些技能。為了解決這兩個問題,CDIO提出了包括一體化課程設(shè)計(Integrated Curriculum Design)、設(shè)計—實施經(jīng)驗(Design-Implement Experiences)、建立工程工作區(qū)(Engineering Workspace)等一系列措施[6]。其中設(shè)計—實施經(jīng)驗是CDIO計劃的主要特點,也是實現(xiàn)一體化課程的最重要措施[5]。本文借鑒設(shè)計—實施經(jīng)驗的基本思想,結(jié)合程序設(shè)計類課程的特點,提出了程序設(shè)計類課程教學與實驗案例設(shè)計原則與方案。
2教學與實驗案例的設(shè)計原則
2.1案例的真實性與實用性
長期以來,程序設(shè)計類課程的教師以幫助學生熟練掌握語法規(guī)則為指導(dǎo)思想進行教學與實驗案例的設(shè)計,案例雖能夠清晰地描述相關(guān)語言的語法規(guī)則,且簡單易實現(xiàn),但無益于學生工程能力的培養(yǎng)。這種狀況一定程度上造成了學生的能力、經(jīng)驗和鉆研精神相對不足。
同時,隨著社會信息化程度的不斷提高,計算機應(yīng)用軟件已經(jīng)深入到各個行業(yè)與領(lǐng)域,這為教師進行教學與實驗案例的選取提供了大量的資源。選取真實的并正在得到廣泛使用的軟件應(yīng)用系統(tǒng)作為案例有助于學生了解計算機軟件的應(yīng)用現(xiàn)狀,也有助于激發(fā)學生的學習興趣與積累領(lǐng)域經(jīng)驗。需要說明的是,為了避免學生浪費大量時間學習相關(guān)領(lǐng)域知識,教師應(yīng)盡量選取學生比較熟悉的領(lǐng)域及其應(yīng)用系統(tǒng)。
2.2案例的難度適中
選取難度適中的案例是教學有效性的重要保證。如果案例太難,結(jié)果很可能是教師成為設(shè)計者與重要環(huán)節(jié)的實施者,學生只能完成一些簡單的實施工作。相反,如果案例太簡單,很難激發(fā)學生的積極性,也無法幫助學生建立面對挑戰(zhàn)的自信。因此,教師應(yīng)根據(jù)學生專業(yè)、學科基礎(chǔ)、學習能力等具體情況,適當調(diào)整案例難度。
2.3案例應(yīng)用的多樣性
為了鞏固學習效果,在教學與實驗環(huán)節(jié),學生需要接觸到多個的應(yīng)用系統(tǒng)的設(shè)計與開發(fā)。教師應(yīng)注意盡量選取不同類型的應(yīng)用系統(tǒng),可以幫助學生開拓視野,積累不同類型應(yīng)用的設(shè)計與開發(fā)經(jīng)驗。以C++程序設(shè)計課程為例,我院同學在學習該課程前已經(jīng)修完數(shù)據(jù)結(jié)構(gòu),并同時在學習計算機網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫原理與應(yīng)用等課程。因此,在案例選擇時,我們在網(wǎng)絡(luò)應(yīng)用、圖像處理、管理系統(tǒng)等領(lǐng)域都有涉及。這種方式既契合了CDIO強調(diào)的多門課程內(nèi)容與能力的交織[6],又在平時訓練中幫助學生融合貫通學科知識。
2.4案例的可擴展性
教師選取與設(shè)計的案例應(yīng)該是有生命力的,能夠不斷地改進與擴展功能。以C++程序設(shè)計課程為例,我院在低年級同學中開設(shè)這門課程。學習這門課程時,學生的專業(yè)知識比較有限,能夠完成的原型系統(tǒng)功能比較簡單,但隨著專業(yè)知識與工程能力的不斷積累,學生可以在后繼的多個實踐課程環(huán)節(jié)中不斷完善原型系統(tǒng),優(yōu)秀的作品可以參加各類軟件設(shè)計競賽以及申請軟件著作權(quán)保護。
2.5案例設(shè)計開發(fā)過程的完整性與規(guī)范性
現(xiàn)代軟件開發(fā)是一個有標準可依的規(guī)范的過程,在平時的教學與實踐中,教師應(yīng)注意對學生規(guī)范意識與習慣的培養(yǎng),增強他們的職業(yè)素養(yǎng)。因此在案例的選取與設(shè)計過程中,應(yīng)盡量選取各類文檔齊全、編碼規(guī)范的案例。在教學環(huán)節(jié)中,教師應(yīng)按照軟件工程的規(guī)范過程開展案例的分析與講解,并借助于目前軟件業(yè)主流工具軟件完成包括需求分析、設(shè)計、測試等階段的任務(wù)。在實驗環(huán)節(jié)中,教師應(yīng)指導(dǎo)與監(jiān)督學生按照規(guī)范流程完成系統(tǒng)設(shè)計開發(fā),并將規(guī)范性作為重要的考核指標。
3教學與實驗案例的實施方案
基于上文提出的基本原則,我院制定了一套程序設(shè)計類課程教學與實驗案例實施方案,對程序設(shè)計類課程改革進行探索。
我院的程序設(shè)計類課程基本包括:課堂教學、課程實驗、課程設(shè)計、開放實驗項目等多個環(huán)節(jié)。課堂教學、課程實驗、課程設(shè)計一般在低年級開設(shè),開放實驗項目一般設(shè)置在三年級。時間上的跨度為案例設(shè)計、開發(fā)、改進的延續(xù)性提供了條件。
3.1課堂教學環(huán)節(jié)以案例貫穿基礎(chǔ)知識,訓練工程思維
由于學生是在課堂教學中首次接觸相關(guān)程序設(shè)計語言及其開發(fā)的應(yīng)用,為了幫助學生更好地體驗軟件設(shè)計開發(fā)的過程,課堂教學環(huán)節(jié)中選取的案例是幾個環(huán)節(jié)中相對簡單的。需要說明的是,課堂教學中選用2~3個案例同時展開,以便于學生有更多的機會理解與掌握相關(guān)知識。課堂教學按照需求分析、系統(tǒng)概要設(shè)計、詳細設(shè)計、編碼、測試的軟件開發(fā)流程展開。除集成開發(fā)環(huán)境外,課程還借助于Rational Rose等軟件業(yè)主流工具完成案例的設(shè)計與測試,在課程展開過程中,補充必要的UML、測試等知識,這種基于問題的課程組織形式已經(jīng)在丹麥奧爾堡大學[6]等多所院校得到成功的運用。
以C++程序設(shè)計課程為例,我們在案例的設(shè)計與編碼過程中穿插講解面向?qū)ο蟮幕驹?、C++語言的語法規(guī)則與編程規(guī)范,并以提綱的方式引導(dǎo)學生總結(jié)相關(guān)的規(guī)則與規(guī)范,該提綱也是學生在設(shè)計與編碼過程中查詢的技術(shù)手冊之一。在案例的展開過程中,我們引導(dǎo)學生積極思考,允許學生提出不同的設(shè)計方案;當一個功能模塊具有多種實現(xiàn)方案時,我們采用課內(nèi)討論,課后分組討論等方式分析各種方案的優(yōu)劣,并借機向?qū)W生介紹典型的編程模式以及相關(guān)參考資料。對于一些經(jīng)典的編程模式與常見編程錯誤,教師會主動引導(dǎo)學生思考、討論、查閱資料。實踐表明,這種教學方式激發(fā)了學生主動學習的意識,其效果遠好于傳統(tǒng)“填鴨式”的知識點傳授。
3.2課程實驗與課程設(shè)計環(huán)節(jié)中引導(dǎo)與鼓勵學生“模仿”工程設(shè)計開發(fā)過程
課程實驗環(huán)節(jié)是學生將知識轉(zhuǎn)化為能力的第一個環(huán)節(jié)。在實驗環(huán)節(jié)中,我們將同學分為5人一組的團隊,團隊內(nèi)的同學需要充分交流,協(xié)作完成各階段工作與相關(guān)文檔。每個班給出3個實驗選題以供選擇,在案例完成后,我們安排在全班范圍內(nèi)對相同選題的團隊作品從規(guī)范性、有效性、實用性等多個方面討論評估,這種方式充分發(fā)揮學生的創(chuàng)造性,也加深了學生對工程規(guī)范、設(shè)計方法的理解。
課程設(shè)計一般安排在課程結(jié)束后,集中一周時間完成一個選題的設(shè)計與實現(xiàn)。與實驗環(huán)節(jié)不同的是,課程設(shè)計選題難度、廣度高于課堂教學與實驗環(huán)節(jié),團隊之間的選題不能相同。團隊內(nèi)分工協(xié)作更為規(guī)范,小組長充當項目經(jīng)理的角色,制定項目進度,分配與協(xié)調(diào)組員工作。課程設(shè)計環(huán)節(jié)培養(yǎng)了學生對學科知識的綜合運用能力,也加深了學生對于項目開發(fā)過程的認識。
3.3通過開放實驗項目激發(fā)學生創(chuàng)造性
開放實驗項目的案例設(shè)計要求緊跟新技術(shù)、新應(yīng)用的發(fā)展,開放實驗項目同樣以團隊方式完成,人數(shù)不限,時間控制在2個月內(nèi)。在項目開展中,激發(fā)學生發(fā)揮創(chuàng)新精神,開發(fā)已有應(yīng)用的新功能、改進已有算法或設(shè)計模式等。對于比較好的作品,鼓勵學生參加各種軟件設(shè)計比賽。
4結(jié)語
我院的程序設(shè)計類課程教學與實驗案例的改革已開展了一段時間,從問卷調(diào)查的反饋情況看,90%的同學給予了肯定意見,80%同學認為調(diào)動了學習主動性,90%同學認為有助于工程能力的培養(yǎng),80%同學認為程序設(shè)計能力有明顯提高。另一方面,也存在一些不足。首先,由于學生在實驗過程中需要熟悉使用多種工具,學生的實驗選題多樣,這無疑增加了教師的工作負擔,實驗過程中容易出現(xiàn)無法兼顧全部同學的情況。其次,團隊的實驗容易造成部分惰性較大、程序設(shè)計能力差的同學“坐享其成”的情況。最后,現(xiàn)有的成績評估體系不能完成適用于新教學模式的考核。下一步,我們將著力于改進實驗指導(dǎo)方案,保證實踐環(huán)節(jié)的學習效果,并探索新的成績評價體系。
參考文獻:
[1] 王剛. CDIO工程教育模式的解讀與思考[J]. 中國高