李興娟 劉明銘 師文軒
摘 要:針對高校夏季學(xué)期教學(xué)普遍存在的問題,結(jié)合高級語言編程教學(xué)實(shí)踐,提出了符合夏季學(xué)期時(shí)長的實(shí)訓(xùn)課教學(xué)改革方案。在實(shí)踐中以CDIO教育理念為指導(dǎo),以基于項(xiàng)目的學(xué)習(xí)為技術(shù)手段,重點(diǎn)培養(yǎng)學(xué)生工程思維和編程能力,設(shè)計(jì)多層次多類型的實(shí)訓(xùn)題目,鼓勵(lì)學(xué)生以團(tuán)隊(duì)的方式積極參與,并利用代碼評估工具進(jìn)行質(zhì)量評估。實(shí)踐證明,新模式下的實(shí)訓(xùn)課提高了教學(xué)效果。
關(guān)鍵詞:實(shí)訓(xùn)課程;CDIO;PBL;教學(xué)改革
DOI:10. 11907/rjdk. 192170 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:G434文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2020)002-0176-04
英標(biāo):The Reform of Teaching of High-level Programming Language Training Course Based on CDIO
英作:LI Xing-juan1, LIU Ming-ming2
英單:(1.College of Computer Science,Nankai University; 2. College of Software,Nankai University, Tianjin 300350,China)
Abstract:In view of the widespread problems of summer semester teaching in colleges and universities, combined with the practice of high-level language programming, this paper proposes the teaching reform of training course in line with the summer semester. In practice, under the guidance of the concept of CIDO education, project-based learning is used as the technical means. The emphasis is developing students engineering thinking and programming skills, designing multi-level and multi-type practical topics, encouraging students to participate in teams, and using code evaluation tools for quality assessment. Practice has proved that the new model of training courses improves the teaching effect and realizes the aim of summer semester.
Key Words: training course; CDIO; PBL; teaching reform
0 引言
我國高校一直在人才培養(yǎng)模式、課程體系、教學(xué)內(nèi)容等方面進(jìn)行改革,以跟上世界高等教育的發(fā)展步伐,其中一個(gè)重要改革就是“小學(xué)期”制度。“小學(xué)期”也稱為“夏季學(xué)期”,主要安排在緊隨春季學(xué)期的3-4周中,是很多世界名校普遍采用的學(xué)期制度。南開大學(xué)從2012-2013學(xué)年開始實(shí)施“夏季學(xué)期”制度。增加夏季學(xué)期后,原來的兩學(xué)期制改為“兩長一短”三學(xué)期制,即18周秋季學(xué)期+18周春季學(xué)期+4周夏季學(xué)期[1]。學(xué)期改革的目的是推動(dòng)“大班上課、小班討論”,通過“講一練二考三”的教學(xué)改革,進(jìn)一步提升教育教學(xué)水平和人才培養(yǎng)質(zhì)量。經(jīng)過幾年的實(shí)施,夏季學(xué)期在教學(xué)設(shè)置、豐富課程形式、深化實(shí)踐教學(xué)、加強(qiáng)國際交流方面發(fā)揮了獨(dú)特作用[1]。在實(shí)施過程中也暴露出一些問題,主要集中在“課程分散效率低”、“夏季學(xué)期課程安排不緊湊”及“修學(xué)分”方面,同時(shí)與企業(yè)實(shí)習(xí)時(shí)間沖突是普遍問題。熊丙奇[2]認(rèn)為:“形式上的教學(xué)創(chuàng)新有,但實(shí)質(zhì)性的教學(xué)突破依舊缺乏。”
針對高級編程語言課程(C++)而言,該課程是計(jì)算機(jī)相關(guān)專業(yè)的必修課,共開設(shè)兩個(gè)學(xué)期,每個(gè)學(xué)期都配有上機(jī)課時(shí),最終考核形式是閉卷考試和上機(jī)編程。從課時(shí)來看,實(shí)踐教學(xué)所占比重并不小,但課程結(jié)束后,根據(jù)評教調(diào)查發(fā)現(xiàn),在上機(jī)實(shí)驗(yàn)教學(xué)中,學(xué)生只是按照教師布置的作業(yè)內(nèi)容或者知識點(diǎn)按部就班練習(xí),欠缺分析、解決實(shí)際問題訓(xùn)練。學(xué)生普遍反映“能夠看懂書,聽懂課,考試分?jǐn)?shù)也好,但在編寫規(guī)模稍大的C++程序時(shí)無從下手”[3]。同時(shí),在培養(yǎng)優(yōu)秀工程人才的過程中,高校工程教育也存在一些問題,如模式趨同化、教學(xué)中缺乏實(shí)踐環(huán)節(jié)、教學(xué)體系不適應(yīng)工程特點(diǎn)、創(chuàng)新與創(chuàng)業(yè)教育重視不足、學(xué)生綜合能力素質(zhì)薄弱等[4]?;谏鲜霈F(xiàn)狀,筆者學(xué)校開設(shè)了“高級語言編程實(shí)訓(xùn)課”作為培養(yǎng)學(xué)生工程實(shí)踐能力的途徑,基于CDIO理念和PBL模式[5]對課程進(jìn)行教學(xué)改革與實(shí)踐。
1 CDIO理念與PBL模式
CDIO工程教育模式是麻省理工學(xué)院和瑞典皇家工學(xué)院提出的教育理念,代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate),以現(xiàn)代工業(yè)產(chǎn)品的生命全過程指導(dǎo)工程教學(xué)過程。CDIO是近年來普遍采用的工程教育理念,許多世界著名大學(xué)都采用了CDIO教育理念,國內(nèi)一些大學(xué)和教師也開展了CDIO研究、實(shí)驗(yàn)和探索。如南開大學(xué)王慶人[6]探討了如何借鑒歐美的CDIO模式,走適合中國國情的計(jì)算機(jī)教育之路;韓智等[7]探討了如何在軟件工程教學(xué)中采用CDIO理念進(jìn)行教學(xué)改革;孫凌宇等[8]研究了CDIO標(biāo)準(zhǔn)和工程教育理念在培養(yǎng)創(chuàng)新型軟件工程人才中的作用;廖湘林等[9]在計(jì)算機(jī)專業(yè)實(shí)驗(yàn)教學(xué)中采用了CDIO;馬麗等[10]采用CDIO理念構(gòu)建了軟件工程在線開放課程。
基于項(xiàng)目的學(xué)習(xí)(PBL)是一種以學(xué)生為導(dǎo)向、由教師推動(dòng)的學(xué)習(xí)方法。教師提出一個(gè)項(xiàng)目,學(xué)生在教師的指導(dǎo)下通過研究完成該項(xiàng)目,將整個(gè)研究和項(xiàng)目階段實(shí)施的流程系統(tǒng)化。孔平[11]、邊亞琳[12]、李杰[13]、王哲[14]和毛勝利[15]等分別在課程教學(xué)和人才培養(yǎng)方面應(yīng)用了PBL模式。實(shí)踐表明PBL模式能激發(fā)學(xué)生獨(dú)立思考、主動(dòng)探究、規(guī)劃學(xué)習(xí),提升解決現(xiàn)實(shí)世界中問題的能力。PBL不僅是學(xué)習(xí)的補(bǔ)充活動(dòng),而且是科學(xué)類課程的基礎(chǔ)。
CDIO大綱涵蓋了工程教育基礎(chǔ)知識掌握、個(gè)人專業(yè)技能和素質(zhì)發(fā)展、團(tuán)隊(duì)協(xié)作能力和產(chǎn)品或系統(tǒng)開發(fā)必須經(jīng)過的4個(gè)階段,如表1所示。筆者學(xué)校參考CDIO的工程教學(xué)理念和教學(xué)大綱,在實(shí)訓(xùn)中強(qiáng)調(diào)對學(xué)生能力的培養(yǎng),從層面能力和具體能力進(jìn)行工程思維訓(xùn)練。學(xué)生要在完成特定項(xiàng)目的過程中學(xué)習(xí)一系列編程技能,在設(shè)計(jì)、實(shí)施和操作階段貫穿CDIO構(gòu)思。在PBL教學(xué)模式實(shí)施中,減少教師講授時(shí)間,大幅增加學(xué)生動(dòng)手編程時(shí)間。學(xué)生在項(xiàng)目參與過程中,自由組織團(tuán)隊(duì)、自主分工,選擇要解決的問題,形成自己的邏輯思維和解決方案。在項(xiàng)目中利用自己的經(jīng)驗(yàn)、能力,形成自己的學(xué)習(xí)風(fēng)格。項(xiàng)目結(jié)束時(shí),演示成果并接受評估。 實(shí)踐證明,基于CDIO理念、采用PBL模式的實(shí)訓(xùn)課程取得了很好的教學(xué)效果。
2 教學(xué)改革與實(shí)踐
本實(shí)訓(xùn)課的核心目標(biāo)是提高學(xué)生利用C++語言編程解決實(shí)際問題的能力,將項(xiàng)目開發(fā)中的經(jīng)驗(yàn)和先進(jìn)工具教授給學(xué)生,培養(yǎng)工程素養(yǎng)和團(tuán)隊(duì)合作能力,以求更接近“實(shí)訓(xùn)項(xiàng)目”。從軟件工程師角度出發(fā),結(jié)合CDIO培訓(xùn)大綱,實(shí)訓(xùn)課要求學(xué)生掌握的知識點(diǎn)和技能涵蓋如下內(nèi)容:
(1)專業(yè)基礎(chǔ)知識與應(yīng)用能力。需要掌握C++基礎(chǔ),包括數(shù)據(jù)類型和運(yùn)算、運(yùn)算符重載、IO流和文件操作、異常處理;掌握C++進(jìn)階,包括函數(shù)模板和類模板、繼承、多態(tài)、STL標(biāo)準(zhǔn)模板庫、常用設(shè)計(jì)模式;掌握常用數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、隊(duì)列、鏈表、棧、容器、集合等。
(2)個(gè)人專業(yè)能力和職業(yè)素質(zhì)。需要掌握Visual Studio集成開發(fā)環(huán)境,包括多種類型項(xiàng)目的建立、編譯、調(diào)試和運(yùn)行;熟練使用調(diào)試工具和技巧;掌握QT5集成開發(fā)環(huán)境,包括GUI項(xiàng)目的建立,消息和事件機(jī)制。
(3)團(tuán)隊(duì)協(xié)作與溝通能力。需要組成團(tuán)隊(duì)、選擇項(xiàng)目、自由分工、計(jì)劃開發(fā)進(jìn)度并以文檔形式管理開發(fā)流程。
(4)工程系統(tǒng)能力。學(xué)生需要在項(xiàng)目完成后,提交可執(zhí)行系統(tǒng)并答辯演示,教師進(jìn)行效果評估,同時(shí)要求使用工具軟件評估C++代碼質(zhì)量。
2.1 題目設(shè)計(jì)
梳理和調(diào)整實(shí)訓(xùn)課教學(xué)內(nèi)容,不再沿習(xí)傳統(tǒng)的知識點(diǎn)練習(xí)模式,而是以完整題目為單位進(jìn)行編程實(shí)踐。在設(shè)計(jì)實(shí)訓(xùn)題目時(shí),要認(rèn)真考慮題目的難度級別。如果級別太高,部分學(xué)習(xí)能力較差的學(xué)生會(huì)產(chǎn)生畏難情緒,喪失編程興趣;如果級別太低,會(huì)形同“水課”,無法真正提升學(xué)生實(shí)踐能力。為此設(shè)計(jì)了不同難度級別的編程題目,總體分為3大類5個(gè)難度級別:基礎(chǔ)類、綜合類和提高類,如表2所示,其中星號表示難度級別,從1級到5級,星號越多,難度越高。
在設(shè)計(jì)實(shí)訓(xùn)題目時(shí),考慮目前流行的VisualStudio 2015(VS)和QT 集成開發(fā)環(huán)境。VisualStudio 2015功能強(qiáng)大,支持多種開發(fā)模式和開發(fā)語言,是業(yè)界進(jìn)行C++應(yīng)用程序開發(fā)的主流IDE。QT是跨平臺(tái)的C++圖形用戶界面(GUI)應(yīng)用程序框架,支持開源,完全面向?qū)ο螅瑥V泛應(yīng)用于GUI程序開發(fā)。
在基礎(chǔ)訓(xùn)練類別中,要求學(xué)生在VS環(huán)境下編寫基于Console窗口的命令行程序,完成C++基礎(chǔ)編程能力訓(xùn)練。代表性的題目包括字典程序、圖片處理和各種編碼算法,這3種類型題目涵蓋了C++中的基本數(shù)據(jù)類型和運(yùn)算、文件操作、輸入輸出、函數(shù)以及異常處理等。在綜合訓(xùn)練類別中,要求學(xué)生編寫GUI程序,掌握消息事件機(jī)制和面向?qū)ο缶幊谈拍?。Visual Studio提供了MFC類庫,方便開發(fā)人員自定義應(yīng)用程序框架,但MFC的封裝過程復(fù)雜,學(xué)生很難掌握這些類庫,并且無法在調(diào)試中精確定位問題位置。
因此,采用Visual Studio QT插件創(chuàng)建GUI Application項(xiàng)目,利用VS的編譯、調(diào)試和運(yùn)行環(huán)境,同時(shí)不限制學(xué)生單獨(dú)使用QT5完成這部分實(shí)訓(xùn)題目。在提高訓(xùn)練類別中,要求學(xué)生編寫應(yīng)用級別程序,掌握復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法,考慮用戶友好性。這部分題目是經(jīng)典的迷宮類、棋類和射擊類游戲,學(xué)生在完成基本功能之外可以自行增加一些特色,如背景音樂、動(dòng)畫渲染、游戲關(guān)卡等元素。為培養(yǎng)學(xué)生的工程思維,提高編程效率,允許使用第三方類庫。在教學(xué)實(shí)踐中,這3類題目可以靈活調(diào)整和擴(kuò)充,提升學(xué)生解決實(shí)際問題的能力。例如CMD模式下的某編碼算法,曾要求學(xué)生實(shí)現(xiàn)廣泛使用的base64編碼,在編碼和解碼算法都正確的基礎(chǔ)上,鼓勵(lì)學(xué)生嘗試對多種類型的文件進(jìn)行編碼解碼處理。這種從點(diǎn)到面的擴(kuò)展讓學(xué)生能看到更多的實(shí)訓(xùn)成果,增強(qiáng)了編程信心,極大提升了學(xué)生的編程能力。以此類推,上述3大類9小類的題目可以根據(jù)實(shí)訓(xùn)課進(jìn)度和學(xué)生學(xué)習(xí)能力擴(kuò)展到20多個(gè)具體題目。
2.2 實(shí)訓(xùn)實(shí)施
高級編程語言實(shí)訓(xùn)課課時(shí)為32學(xué)時(shí),每周8課時(shí)。為保證教學(xué)效果,實(shí)訓(xùn)課采用小班教學(xué)模式,每個(gè)班人數(shù)控制在30人以內(nèi),課時(shí)分配如下:
(1)在編程基礎(chǔ)環(huán)節(jié),以教師實(shí)操演示為主、學(xué)生練習(xí)為輔,共分配4課時(shí)。內(nèi)容為配置VS和QT5開發(fā)環(huán)境,掌握調(diào)試工具和技巧,能夠定位并改正程序中的錯(cuò)誤。
(2)在編程實(shí)訓(xùn)環(huán)節(jié),以學(xué)生編程實(shí)踐為主、教師講解為輔,對普遍出現(xiàn)的典型問題作出指導(dǎo),共分配24課時(shí)。具體分配為:基礎(chǔ)題目分配4課時(shí),綜合題目分配10課時(shí),提高題目分配10課時(shí)。基礎(chǔ)題目由每個(gè)學(xué)生獨(dú)立完成,教師逐一檢查,之后評分。綜合題目和提高題目以小組形式完成,學(xué)生自由組成開發(fā)團(tuán)隊(duì),每組2-3人。要求成員分工明確,確保工作量,遵循軟件開發(fā)工程規(guī)范。
(3)在評估驗(yàn)收環(huán)節(jié),各個(gè)項(xiàng)目小組以答辯形式展示項(xiàng)目構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)行各環(huán)節(jié),闡述核心技術(shù)和代碼。教師根據(jù)各小組演示效果,采用通用軟件質(zhì)量框架模型對軟件項(xiàng)目的上層質(zhì)量特征進(jìn)行評估。質(zhì)量特征主要包括功能特征、可靠特征、易用特征和效率特征。同時(shí)采用代碼分析工具CppDepend對所有項(xiàng)目代碼進(jìn)行定量化的度量因子評估。CppDepend能夠?qū)++程序進(jìn)行60多個(gè)指標(biāo)測量,如class、namespace的數(shù)量、注釋比例、內(nèi)聚性、穩(wěn)定度等。該工具還能直觀顯示程序模塊、類、函數(shù)之間的依賴性,給出程序質(zhì)量等級。
2.3 實(shí)訓(xùn)效果
在新實(shí)訓(xùn)方案實(shí)施過程中,學(xué)生選課積極性得到了極大提升,每個(gè)小班的選課人數(shù)都是滿員。遵循CDIO能力培養(yǎng)大綱,教學(xué)主體由教師轉(zhuǎn)變?yōu)閷W(xué)生,學(xué)生能夠有更多的時(shí)間和更大的自由度進(jìn)行工程能力訓(xùn)練。以項(xiàng)目為導(dǎo)向的編程訓(xùn)練培養(yǎng)了學(xué)生工程推理和解決實(shí)際問題能力,貫穿構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)行各個(gè)階段。同時(shí)分組模式鍛煉了學(xué)生的團(tuán)隊(duì)協(xié)作與交流溝通能力,讓學(xué)生更貼近企業(yè)開發(fā)環(huán)境。對學(xué)生完成的綜合題目和提高題目進(jìn)行運(yùn)行演示和代碼審查,發(fā)現(xiàn)開發(fā)質(zhì)量有明顯提升。項(xiàng)目運(yùn)行情況如圖1所示。
實(shí)踐結(jié)束后也發(fā)現(xiàn)了一些問題,如有些項(xiàng)目小組存在前松后緊情況,學(xué)生缺乏主動(dòng)學(xué)習(xí)、克服困難的心理準(zhǔn)備,缺少軟件技術(shù)、工程開發(fā)以及文檔寫作方面的經(jīng)驗(yàn),工作不是很細(xì)致,抓不住重點(diǎn);部分組內(nèi)分工及工作量不平衡,好的學(xué)生做得多一些,基礎(chǔ)不好的學(xué)生做得少一些,影響項(xiàng)目最終質(zhì)量。原因是部分教師在指導(dǎo)項(xiàng)目小組時(shí)側(cè)重宏觀指導(dǎo),未深入到各個(gè)小組內(nèi)部,動(dòng)態(tài)了解他們的具體問題和進(jìn)度。筆者計(jì)劃采用某些過程管理軟件解決上述問題,希望在后續(xù)課程中能有所改善。
3 結(jié)語
本文分析了南開大學(xué)夏季學(xué)期學(xué)制施行的特殊性和存在的問題,針對高級語言編程實(shí)訓(xùn)課教學(xué)實(shí)踐,提出基于CIDO和PBL的教學(xué)模式。這種開放式的編程實(shí)踐給予學(xué)生更多的編程時(shí)間,鍛煉了學(xué)生的綜合素質(zhì),改變了夏季學(xué)期“修學(xué)分”的選課狀態(tài)。針對存在的不足,考慮加強(qiáng)實(shí)訓(xùn)過程控制的節(jié)奏和力度。拓展學(xué)生工程思維、培養(yǎng)創(chuàng)新型人才教育任重道遠(yuǎn)。
參考文獻(xiàn):
[1] 舒高磊. 三學(xué)期制下學(xué)生夏季學(xué)期生活狀況探究——以南開大學(xué)為例[J]. 思想政治課研究,2015(5):61-65.
[2] 成炘儒,李攀,史一棋.? 高校小學(xué)期點(diǎn)贊與吐槽并存 小學(xué)期該如何升級[EB/OL]. http://edu.people.com.cn/n1/2017/0727/c1006-29430 793.html
[3] 張波. C++程序設(shè)計(jì)案例遴選[J]. 計(jì)算機(jī)教育,2010 (18):49-50.
[4] 朱高峰. 中國工程教育的現(xiàn)狀和展望[J]. 清華大學(xué)教育研究,2015(1):13-20.
[5] EDSTR?M K,KOLMOS A.PBL and CDIO: complementary models for engineering education development[J]. European Journal of Engineering Education,2012,39(5): 539-555.
[6] 王慶人. 我國計(jì)算機(jī)教育如何借鑒歐美 CDIO模式[J]. 計(jì)算機(jī)教育,2010(11):8-12.
[7] 韓智,張振虹,李興娟. 基于CDIO理念的軟件工程課程教學(xué)改革[J]. 計(jì)算機(jī)教育,2010(11):56-57.
[8] 孫凌宇,冷明. 基于CDIO的創(chuàng)新型軟件工程人才培養(yǎng)模式研究[J]. 山西財(cái)經(jīng)大學(xué)學(xué)報(bào),2011(S1):48-52.
[9] 廖湘琳,余曉晗,張所娟,等. 基于CDIO理念的計(jì)算機(jī)專業(yè)實(shí)驗(yàn)教學(xué)改革[J]. 計(jì)算機(jī)教育,2018(2):47-52.
[10] 馬麗,李真,何偉娜,等. 基于CDIO理念的軟件工程在線開放課程建設(shè)探索[J]. 軟件導(dǎo)刊(教育技術(shù)),2018(10):14-17.
[11] 孔平,張建青,候麗英,等. 基于PBL教育理念的數(shù)學(xué)建模課程的教與學(xué)[J]. 上海理工大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2018(3):267-271.
[12] 邊亞琳. 基于項(xiàng)目驅(qū)動(dòng)的大學(xué)生創(chuàng)新能力培養(yǎng)模式探析[J]. 大學(xué)教育,2018(9):20-23.
[13] 李杰,李爽,舒廣文. 基于PBL模式的統(tǒng)計(jì)學(xué)課程教學(xué)設(shè)計(jì)——以“中心極限定理”為例[J]. 高教學(xué)刊, 2018 (5):106-108.
[14] 王哲,張鈺,袁同山. 基于PBL教學(xué)法的高校計(jì)算機(jī)課程教學(xué)改革與研究[J]. 信息與電腦,2017 (8):245-246.
[15] 毛勝利,馮運(yùn)仿,程細(xì)才,等. 基于PBL的數(shù)據(jù)結(jié)構(gòu)教學(xué)模式研究與探討[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015 (17):10-13.
(責(zé)任編輯:杜能鋼)