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