鐵菊紅 彭輝 李蕊 王嘉韻
摘? ?要:文章針對(duì)目前C語(yǔ)言教學(xué)中的弊端,提出了在CDIO教學(xué)理念下的“C語(yǔ)言程序設(shè)計(jì)”課程理論教學(xué)方法和實(shí)踐教學(xué)方法改革,旨在培養(yǎng)學(xué)生良好的編程思維、工程能力、團(tuán)隊(duì)協(xié)作和交流能力,介紹了支撐教學(xué)方法改革的C語(yǔ)言在線代碼演示和代碼仿寫(xiě)系統(tǒng)。
關(guān)鍵詞:C語(yǔ)言;CDIO;教學(xué)改革;代碼仿寫(xiě)
“C語(yǔ)言程序設(shè)計(jì)”課程是計(jì)算機(jī)類(lèi)專(zhuān)業(yè)學(xué)生接觸的第一門(mén)計(jì)算機(jī)編程語(yǔ)言課,對(duì)培養(yǎng)學(xué)生編程思維具有關(guān)鍵性的作用。計(jì)算機(jī)專(zhuān)業(yè)類(lèi)學(xué)生不僅要有良好的編程思維,還要具備出色的工程能力,以符合我國(guó)在“卓越工程師教育培養(yǎng)計(jì)劃”提出的培養(yǎng)目標(biāo):培養(yǎng)造就一大批創(chuàng)新能力強(qiáng)、適應(yīng)經(jīng)濟(jì)社會(huì)發(fā)展需要的高質(zhì)量各類(lèi)型工程技術(shù)人才[1] 。構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)作(Conceive-Design-Implement-Operate,CDIO)工程教育模式[2]是近年來(lái)國(guó)際工程教育改革的最新成果,讓學(xué)生以主動(dòng)的、實(shí)踐的、課程之間有機(jī)聯(lián)系的方式學(xué)習(xí)工程。在“C語(yǔ)言程序設(shè)計(jì)”課程中引入CDIO工程教學(xué)模式,對(duì)理論和實(shí)踐教學(xué)進(jìn)行改革,培養(yǎng)學(xué)生編程思維的同時(shí),讓學(xué)生獲得初步的工程能力,培養(yǎng)團(tuán)隊(duì)合作和交流能力,為后續(xù)的工程實(shí)踐課程和編程語(yǔ)言課打下牢固基礎(chǔ)。
1? ? 目前C語(yǔ)言教學(xué)存在的弊端
“C語(yǔ)言程序設(shè)計(jì)”課程既具有很強(qiáng)的理論性和實(shí)踐性,牽涉的概念也比較復(fù)雜,語(yǔ)法規(guī)范繁多。目前絕大部分C語(yǔ)言類(lèi)教材按基本語(yǔ)法知識(shí)為邏輯安排教材內(nèi)容,很多教師往往也是按教材的思維組織教學(xué)內(nèi)容,先講基本概念,再講語(yǔ)法格式,最后舉例說(shuō)明,線性的教學(xué)模式無(wú)法激發(fā)學(xué)生對(duì)C語(yǔ)言的興趣,更不利于促進(jìn)學(xué)生思考,很難鍛煉學(xué)生的邏輯思維和解決實(shí)際問(wèn)題的能力。課堂演示的例題知識(shí)點(diǎn)往往是獨(dú)立應(yīng)用,例題功能之間沒(méi)有相關(guān)聯(lián)系。實(shí)踐課程中的練習(xí)題也是功能缺乏實(shí)際聯(lián)系,每個(gè)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書(shū)上的題目,而且題目基本是驗(yàn)證性題目,這種實(shí)踐教學(xué)方法導(dǎo)致學(xué)生會(huì)做作業(yè),但是在工程中應(yīng)用該知識(shí)解決問(wèn)題時(shí),卻無(wú)法完成,不利于培養(yǎng)學(xué)生的實(shí)際解決問(wèn)題能力、工程能力和團(tuán)隊(duì)協(xié)助與交流能力。
2? ? CDIO理念下的理論教學(xué)方法改革
2.1? CDIO理念指導(dǎo)理論教學(xué)方案
CDIO作為一種新的工程教育理念,在教學(xué)過(guò)程中貫徹項(xiàng)目開(kāi)發(fā)的思路,旨在重點(diǎn)培養(yǎng)學(xué)生熟練運(yùn)用專(zhuān)業(yè)基礎(chǔ)知識(shí)的能力、工程分析和解決問(wèn)題的能力、團(tuán)隊(duì)協(xié)作和交流的能力。
CDIO模式提出了具有可操作性的能力培養(yǎng)大綱、全面實(shí)施以及檢測(cè)評(píng)測(cè)的12條標(biāo)準(zhǔn),有利于指導(dǎo)教學(xué)方法改革。
依據(jù)培養(yǎng)大綱,在該課程理論教學(xué)中完成以下兩個(gè)培養(yǎng)目標(biāo):(1)培養(yǎng)學(xué)生“C語(yǔ)言程序設(shè)計(jì)”基礎(chǔ)科學(xué)知識(shí)。(2)培養(yǎng)學(xué)生對(duì)產(chǎn)品“構(gòu)思—設(shè)計(jì)—實(shí)施—運(yùn)行”的概念理解,具備初步工程能力以及團(tuán)隊(duì)協(xié)作和交流能力。
2.2? CDIO理念下的理論教學(xué)方案實(shí)施
在理論教學(xué)中,依據(jù)CDIO工程教育理念,教師將C語(yǔ)言所有語(yǔ)法知識(shí)散射到一個(gè)完整工程項(xiàng)目中。項(xiàng)目為“圖書(shū)館管理系統(tǒng)”,學(xué)生對(duì)該項(xiàng)目功能和業(yè)務(wù)流程較熟悉,教師可將精力放在對(duì)項(xiàng)目“構(gòu)思—設(shè)計(jì)—實(shí)施—運(yùn)行”的講解上。在第一次開(kāi)課時(shí),給學(xué)生講解項(xiàng)目的整體功能,讓學(xué)生對(duì)該項(xiàng)目有整體的認(rèn)識(shí),有利于學(xué)生在后期學(xué)習(xí)中理解分解功能,否則會(huì)造成“只見(jiàn)樹(shù)木,不見(jiàn)森林”的局部意識(shí),不利于工程概念的培養(yǎng)。
在整個(gè)教學(xué)中,依據(jù)知識(shí)點(diǎn)增加項(xiàng)目子功能的難度和任務(wù)量,不僅能應(yīng)用當(dāng)前知識(shí)點(diǎn)解決實(shí)際問(wèn)題,還能應(yīng)用前期學(xué)過(guò)的知識(shí),形成知識(shí)的密集性連接,從而牢固掌握C語(yǔ)言的基礎(chǔ)知識(shí)。
項(xiàng)目分解中采用了模塊化程序設(shè)計(jì)思想,那么在設(shè)計(jì)和實(shí)施過(guò)程中就要應(yīng)用函數(shù)知識(shí)點(diǎn)。教師教學(xué)采用函數(shù)模塊化教學(xué)方法[3],項(xiàng)目分解的子功能都在自定義函數(shù)中實(shí)現(xiàn),每講完一章內(nèi)容,就將子函數(shù)集成起來(lái),形成一個(gè)小項(xiàng)目。指針是C語(yǔ)言的重點(diǎn)和難點(diǎn)知識(shí),函數(shù)模塊化教學(xué)方法和指針過(guò)程化教學(xué)方法結(jié)合[4],可以將指針很好地應(yīng)用在工程教學(xué)中。整個(gè)C語(yǔ)言學(xué)習(xí)過(guò)程中,學(xué)生滾動(dòng)學(xué)習(xí)C語(yǔ)言中的兩大難點(diǎn)知識(shí):函數(shù)和指針。整個(gè)C語(yǔ)言學(xué)完后,學(xué)生對(duì)函數(shù)和指針概念理解透徹,并能有效地利用指針設(shè)計(jì)簡(jiǎn)潔、緊湊和高效的程序和解決實(shí)際問(wèn)題。
3? ? CDIO理念下的實(shí)踐教學(xué)方法改革
培養(yǎng)學(xué)生編碼能力和工程能力,實(shí)踐課是非常關(guān)鍵的,實(shí)踐課為學(xué)生提供系統(tǒng)構(gòu)思、設(shè)計(jì)、實(shí)施和運(yùn)行環(huán)境。
(1)增量項(xiàng)目實(shí)踐教學(xué)。借鑒軟件開(kāi)發(fā)過(guò)程模型中的增量模型開(kāi)發(fā)思想[5],實(shí)踐教學(xué)中,學(xué)生每學(xué)完一章內(nèi)容,就要構(gòu)思、設(shè)計(jì)、實(shí)施和運(yùn)行“小學(xué)生數(shù)學(xué)計(jì)算練習(xí)軟件”項(xiàng)目,該項(xiàng)目隨著學(xué)生知識(shí)點(diǎn)的增加,功能不斷完善。因?yàn)橛泻瘮?shù)模塊化教學(xué)的支撐,學(xué)生增加功能時(shí)非常方便,主要以函數(shù)為單位增加項(xiàng)目代碼。指導(dǎo)該項(xiàng)目時(shí),教師為輔,學(xué)生為主。因?yàn)樵诶碚撜n堂上學(xué)生對(duì)工程有較好的認(rèn)識(shí),在實(shí)施過(guò)程中教師要把項(xiàng)目的構(gòu)思、設(shè)計(jì)和實(shí)施交給學(xué)生,不要過(guò)多講解,主要以回答學(xué)生問(wèn)題為主。在每一次項(xiàng)目功能增量中,學(xué)生都會(huì)對(duì)該項(xiàng)目進(jìn)行構(gòu)思、設(shè)計(jì)、實(shí)施和運(yùn)行。在整個(gè)C語(yǔ)言知識(shí)學(xué)完后,學(xué)生會(huì)完成功能較齊全的“小學(xué)生數(shù)學(xué)計(jì)算練習(xí)軟件”,而且對(duì)工程軟件開(kāi)發(fā)的全過(guò)程有了深度認(rèn)識(shí)。
(2)小組學(xué)習(xí)模式。在CDIO教育模式下更有利于培養(yǎng)學(xué)生團(tuán)隊(duì)精神和交流表述能力。在實(shí)踐教學(xué)中,將班內(nèi)一個(gè)宿舍內(nèi)的同學(xué)劃分為學(xué)習(xí)小組(一般為6人),方便學(xué)生交流和討論。為了對(duì)工程有全面認(rèn)識(shí),每個(gè)同學(xué)要單獨(dú)完成實(shí)踐課項(xiàng)目,學(xué)生增量開(kāi)發(fā)項(xiàng)目時(shí),只整合自己的程序功能模塊,會(huì)導(dǎo)致學(xué)生合作和交流僅限于對(duì)存在問(wèn)題的交流,而對(duì)企業(yè)中團(tuán)隊(duì)開(kāi)發(fā)一個(gè)項(xiàng)目的合作模式體會(huì)不到,而且這種交流方式不適合社交能力較弱的同學(xué),他們?nèi)狈涣鞯姆e極性,難以主動(dòng)和小組內(nèi)的同學(xué)交流。為了解決上述問(wèn)題,小組組長(zhǎng)收集每位同學(xué)開(kāi)發(fā)的一個(gè)子功能并將其整合起來(lái),形成一個(gè)小組項(xiàng)目包。在每次實(shí)踐課上小組每位成員講解已開(kāi)發(fā)的項(xiàng)目功能,教師帶領(lǐng)全班同學(xué)進(jìn)入討論和交流階段,引導(dǎo)學(xué)生對(duì)該項(xiàng)目存在的問(wèn)題積極發(fā)言,不僅培養(yǎng)了學(xué)生的表述能力,還培養(yǎng)了學(xué)生實(shí)際的團(tuán)隊(duì)合作和交流能力。
4? ? C語(yǔ)言在線代碼演示和代碼仿寫(xiě)系統(tǒng)
4.1? 在線代碼演示
CDIO模式下的課堂工程教學(xué)示例,是教師根據(jù)課堂知識(shí)點(diǎn)從大項(xiàng)目分解出來(lái)的,這些例子以C文件形式存儲(chǔ),數(shù)量較多(分解出的示例達(dá)70多個(gè)文件),教師難以管理。為此,開(kāi)發(fā)了一個(gè)在線系統(tǒng),將C語(yǔ)言所有的知識(shí)點(diǎn)按樹(shù)形管理,再將這些例子和知識(shí)點(diǎn)連接起來(lái),教師上課時(shí)按知識(shí)點(diǎn)可以快速找到示例代碼,并在線復(fù)制代碼一份,不破壞原示例的基礎(chǔ)上進(jìn)行在線編輯、編譯和運(yùn)行,課堂示例演示不僅能提高上課效率,而且減少了教師管理多個(gè)源代碼文件的平時(shí)工作量。教師對(duì)某個(gè)知識(shí)點(diǎn)下的示例,可以增加、刪除和修改,在線保存示例代碼,方便、快捷和安全。
4.2? 在線代碼仿寫(xiě)
據(jù)以往教學(xué)經(jīng)驗(yàn)得知,初學(xué)C語(yǔ)言者,有一定比例學(xué)生上課能聽(tīng)懂語(yǔ)法知識(shí),老師講解的編程例子也能聽(tīng)懂,但課后自己編寫(xiě)程序時(shí)卻無(wú)從下手,甚至老師課堂講過(guò)的代碼也無(wú)法重新編寫(xiě)出來(lái)。CDIO模式下的課堂教學(xué)例子是教師根據(jù)課堂知識(shí)點(diǎn)從大項(xiàng)目中分解出的知識(shí)點(diǎn)相關(guān)的子模塊,學(xué)生對(duì)這些示例必須熟練掌握,自己才能增量開(kāi)發(fā)項(xiàng)目。模仿編程對(duì)于初學(xué)編程者是一個(gè)較好的學(xué)習(xí)方法。學(xué)生課后模仿編程練習(xí)課堂示例的過(guò)程中,難免要參考教師上課演示的代碼。為了復(fù)現(xiàn)課堂示例,并且學(xué)生能方便管理示例文件,此在線系統(tǒng)能夠?yàn)閷W(xué)生提供仿寫(xiě)課堂代碼功能。
學(xué)生登錄后,按知識(shí)點(diǎn)能快速找到課堂示例,在示例的下方就是代碼仿寫(xiě)編輯框,在編輯過(guò)程中,示例代碼框可以“收起”或“展開(kāi)”方便參考。運(yùn)行時(shí),在輸入數(shù)據(jù)同樣的情況下,可以對(duì)比課堂示例和自己編寫(xiě)代碼的輸出結(jié)果,方便驗(yàn)證代碼是否寫(xiě)對(duì)。教師登錄后,可以查詢(xún)班上每位同學(xué)的代碼仿寫(xiě)練習(xí),及時(shí)掌握學(xué)生學(xué)習(xí)情況。
教師通過(guò)C語(yǔ)言在線代碼演示和代碼仿寫(xiě)系統(tǒng)能高效展開(kāi)C語(yǔ)言課堂工程教學(xué);學(xué)生通過(guò)該系統(tǒng),在初學(xué)C語(yǔ)言時(shí),通過(guò)模仿編寫(xiě)課堂工程示例,牢固掌握語(yǔ)法知識(shí)的同時(shí),打開(kāi)編程思維,鍛煉軟件開(kāi)發(fā)的工程能力,為實(shí)踐教學(xué)中的增量項(xiàng)目開(kāi)發(fā)奠定基礎(chǔ)。
5? ? 結(jié)語(yǔ)
在CDIO工程教育理念的指導(dǎo)下,研究了“C語(yǔ)言程序設(shè)計(jì)”課程的理論教學(xué)方法和實(shí)踐教學(xué)方法改革。實(shí)踐表明,該方法能有效激發(fā)學(xué)生對(duì)C語(yǔ)言的編碼興趣,較好地應(yīng)用C語(yǔ)言知識(shí)解決實(shí)際問(wèn)題,培養(yǎng)了學(xué)生一定的軟件開(kāi)發(fā)工程能力、團(tuán)隊(duì)合作和交流能力。C語(yǔ)言在線代碼演示和代碼仿寫(xiě)系統(tǒng)能較好地支撐CDIO模式下的教學(xué)方法改革。
[參考文獻(xiàn)]
[1]陳潤(rùn),琚生根.基于CDIO理念培養(yǎng)網(wǎng)絡(luò)工程“卓越工程師”[J].實(shí)驗(yàn)技術(shù)與管理,2016(11):189-192.
[2]彭輝,鐵菊紅,文立玉,等.基于CDIO的軟件工程專(zhuān)業(yè)工程實(shí)踐類(lèi)課程的改革與實(shí)踐[J].計(jì)算機(jī)教育,2017(5):30-33.
[3]陳高云,李蕊,王嘉昀.貫穿模塊化編碼的C語(yǔ)言教學(xué)過(guò)程[J].計(jì)算機(jī)教育,2012(12):86-89.
[4]鐵菊紅,彭輝.C語(yǔ)言指針過(guò)程化教學(xué)方法研究[J].計(jì)算機(jī)教育,2017(1):102-104.
[5]張海潘,牟永敏.軟件工程導(dǎo)論[M].6版.北京:清華大學(xué)出版社,2013.