馮瑩瑩
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236041)
基于EPT-CDIO的課程教學(xué)改革研究
——以C語言程序設(shè)計為例
馮瑩瑩
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236041)
C語言程序設(shè)計是一門既重理論知識,又重實踐能力的入門編程課程,在教學(xué)過程中如何培養(yǎng)學(xué)生的主動學(xué)習(xí)、解決實際問題的能力及團(tuán)隊協(xié)作能力至關(guān)重要.根據(jù)應(yīng)用型創(chuàng)新人才培養(yǎng)的目標(biāo),將Engineering quality(工程素養(yǎng))、Professionalism(職業(yè)素養(yǎng))和Team accomplishment(團(tuán)隊素養(yǎng))與CDIO理念有機(jī)融合,據(jù)此實現(xiàn)基于EPT-CDIO的全新的教學(xué)模式,從重置課程體系,靈活運用教學(xué)方法,加強(qiáng)實踐教學(xué)及改革考核方式等方面進(jìn)行了創(chuàng)新,教學(xué)效果得到了全面提升.
C語言;應(yīng)用型創(chuàng)新人才;EPT-CDIO
隨著計算機(jī)技術(shù)的飛速發(fā)展,人們的生活發(fā)生了翻天覆地的變化.作為21世紀(jì)的大學(xué)生,應(yīng)緊跟時代步伐,調(diào)整自己的知識儲備,做一個理論知識扎實、專業(yè)實踐能力強(qiáng)的復(fù)合型人才.這就要求在教學(xué)過程中應(yīng)遵循以下理念:面向應(yīng)用需要;采用多種模式;啟發(fā)自主學(xué)習(xí);重視實踐訓(xùn)練;加強(qiáng)創(chuàng)新意識;樹立團(tuán)隊精神,培養(yǎng)工程素養(yǎng).
C語言是各專業(yè)所開設(shè)的第一門編程語言,是學(xué)好其他高級編程語言(如C++,VisualBasic,Java等)的基礎(chǔ).由于學(xué)生在此之前基本上未接觸系統(tǒng)的編程知識的培訓(xùn),再加上C語言牽涉的概念繁多抽象,語法紛繁復(fù)雜,形式靈活多樣,程序設(shè)計的思路和方法難以掌握,不少首次接觸該知識的學(xué)生感到難以入手.教師在傳授過程中,課堂理論知識講解很詳細(xì),語法分析透徹,上機(jī)實踐安排過于簡單,基本上都是一些驗證性實驗,不注重培養(yǎng)學(xué)生的實際編程能力和項目解決能力,只是一味的照本宣科.另外,在上機(jī)實踐的過程中,學(xué)生并沒有系統(tǒng)的形成“編寫程序-編譯程序-調(diào)試程序-運行程序”的良好習(xí)慣,在每一環(huán)節(jié)出現(xiàn)問題后不能獨立的改正錯誤.
為了改變上述狀況,切實提高學(xué)生能夠利用程序解決實際問題的能力,并結(jié)合筆者多年的教學(xué)經(jīng)驗及應(yīng)用型人才培養(yǎng)的目標(biāo),在教學(xué)改革中引入了EPT-CDIO理念.EPT是Engineering quality(工程素養(yǎng))、Professionalism(職業(yè)素養(yǎng))和Team accomplishment(團(tuán)隊素養(yǎng))的縮寫,將EPT融入到CDIO教育理念,目的就是在解決項目的過程(構(gòu)思-設(shè)計-實現(xiàn))中培養(yǎng)學(xué)生的工程素養(yǎng)、職業(yè)素養(yǎng)和團(tuán)隊素養(yǎng).C程序設(shè)計作為理論與實踐并重的課程,采用EPT-CDIO的教學(xué)模式從課程體系重置,教學(xué)方法,實踐教學(xué)及考試方面進(jìn)行了改革.
2.1 構(gòu)建基于EPT-CDIO的課程體系
C語言程序設(shè)計課程是計算機(jī)專業(yè)開設(shè)的第一門重要的先導(dǎo)專業(yè)基礎(chǔ)課,后續(xù)課程比如C++、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)都跟C語言有著直接或間接的聯(lián)系.學(xué)生在學(xué)習(xí)編程過程中的一個良好開端,必須從整個培養(yǎng)體系中優(yōu)化、完善課程的內(nèi)容體系.
課程組依據(jù)EPT-CDIO思想重構(gòu)了本課程的課程體系.該課程體系的設(shè)置結(jié)構(gòu)合理,體現(xiàn)了以素質(zhì)、知識、能力為培養(yǎng)目標(biāo),以項目實踐為主線,能夠滿足本專業(yè)企業(yè)需求,如圖1所示:
圖1 C語言程序課程體系設(shè)置
在圖1中,將C語言的知識點劃分為4個模塊,分別為基礎(chǔ)知識模塊、邏輯編程模塊、高級應(yīng)用模塊以及面向?qū)ο蟪绦蛟O(shè)計模塊.每個模塊并不是孤立存在的,是層層遞進(jìn)的.基礎(chǔ)知識模塊要求學(xué)生掌握C程序的運行步驟、C的數(shù)據(jù)類型、表達(dá)式等并能編寫簡單的應(yīng)用程序;邏輯編程模塊要求學(xué)生掌握程序的三種基本結(jié)構(gòu)和數(shù)組的應(yīng)用,并能夠利用冒泡法解決學(xué)生成績排名問題;高級應(yīng)用模塊,主要涉及到函數(shù)、指針、結(jié)構(gòu)體的教學(xué),本部分是教學(xué)的重點也是難點,要求學(xué)生能夠利用函數(shù)調(diào)用、指針等方法解決學(xué)生成績排名問題并能夠利用結(jié)構(gòu)體學(xué)會制作學(xué)生成績單;面向?qū)ο蟪绦蛟O(shè)計模塊,是C語言的延伸階段,為學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計打下基礎(chǔ),在此階段要求學(xué)生繼續(xù)完善學(xué)生管理系統(tǒng)的設(shè)計.該課程體系的設(shè)置將實踐教學(xué)項目貫穿始終,既有簡單的基礎(chǔ)技能實驗,又有綜合性強(qiáng)的企業(yè)項目實踐,必要的時候需學(xué)生分組合作完成,體現(xiàn)了EPT-CDIO的教育理念,符合學(xué)生的認(rèn)知規(guī)律,提高了學(xué)生學(xué)習(xí)該課程的興趣.
2.2 教學(xué)方法改革
課題組在C語言程序設(shè)計課程的教學(xué)過程中對傳統(tǒng)的“老師為主,學(xué)生為輔”的灌輸式傳授方法進(jìn)行了革新,靈活運用各種教學(xué)方法,取得了較好的效果.
2.2.1 基于問題的啟發(fā)式教學(xué)
這是在基礎(chǔ)知識模塊與邏輯編程模塊階段采用的教學(xué)方法.該階段不能夠按照傳統(tǒng)的教學(xué)方式按部就班的對大量的語法做細(xì)致的講解,此階段重點培養(yǎng)學(xué)生學(xué)習(xí)該課程的興趣.如何培養(yǎng)學(xué)生的興趣呢?教師在講課的過程中,可以提出問題,學(xué)生通過討論、思考等方式找到問題的答案.實踐證明,帶著問題的啟發(fā)式教學(xué)方法調(diào)動了學(xué)生學(xué)習(xí)的積極性和主動性.
比如,在講解下面的實例時,
(1)首先會讓學(xué)生自己分析結(jié)果,絕大多數(shù)同學(xué)由于不知道變量的類型會決定變量的取值范圍,想當(dāng)然的認(rèn)為該程序運行結(jié)果是32767,32768.
(2)為了驗證學(xué)生的分析結(jié)果,運行此程序,結(jié)果顯示32767,-32768.顯然運行結(jié)果與學(xué)生的分析結(jié)果不一致,留給學(xué)生一定的討論時間.
(3)解析該程序,由于基本整型變量的取值范圍是-32768—32767,a的值加1之后超出了整型變量的取值范圍,所以結(jié)果不可能是32768.根據(jù)補碼知識得到-32768.問題解決,教師的教學(xué)目的也達(dá)到了.
2.2.2 程序設(shè)計方法為主的教學(xué)模式
在講解本課程的過程中,重點培養(yǎng)學(xué)生的邏輯思維能力和將實際問題轉(zhuǎn)換為程序設(shè)計的能力,這與學(xué)生的認(rèn)知和學(xué)習(xí)規(guī)律是一致的.
下面通過一個C語言教學(xué)實例闡述教學(xué)方法的實施.
用C語言編程實現(xiàn)求1×2×3×4×5
步驟一:分析問題 可以先求1×2,再用得到的結(jié)果乘以3,以此類推,求5!共需要4步.但是如果把題目換成求1000!,按照上述方法需要999步,所以此方法不可??!
通過觀察可以看出,參與運算的對象之間是有規(guī)律的,后一個數(shù)要比前一個數(shù)大1,我們可以假定變量t為被乘數(shù),變量i為乘數(shù),用循環(huán)算法求結(jié)果.
步驟二:畫傳統(tǒng)流程圖 如圖2所示:
從圖2可以看出,先對變量t,i分別賦初值1,2,然后把t*i的結(jié)果重新賦值給t,變量i自動加1,加1之后判斷i的值是否大于5,如果不大于5,繼續(xù)進(jìn)行t*i的結(jié)果重新賦值給t,直到i大于5成立,算法就結(jié)束了.
圖2 傳統(tǒng)流程圖
步驟三:改進(jìn)流程圖,如圖3所示:
圖3 改進(jìn)算法流程圖
傳統(tǒng)的流程圖由于對流程線的使用沒有嚴(yán)格限制,在解決一些復(fù)雜問題的時候顯得力不從心此流程圖要比傳統(tǒng)流程圖簡潔,閱讀方便.
步驟四:C語言編程實現(xiàn)
步驟五:問題延伸 假如要求10!,只需要把判斷條件(i<=5)改為(i<=10);假如要求1*3*5*7*9,只需要將變量t,i分別賦初值為1,3,將循環(huán)條件(i<=5)改為(i<=9),遞增表達(dá)式i=i+1改為i=i+2即可.
從上述實例的教學(xué)方法可以看出,學(xué)生不僅解決了一道題目,而且通過發(fā)散思維,掌握了解決同類問題的解題思路.
2.2.3 教學(xué)過程中引入競賽機(jī)制
為了培養(yǎng)學(xué)生學(xué)習(xí)該課程的興致,提高學(xué)生的動手實踐能力,在教學(xué)過程中我們選拔了部分同學(xué)參加全國“藍(lán)橋杯”軟件設(shè)計大賽與“飛思卡爾”智能汽車大賽,并取得了優(yōu)異成績,激發(fā)了學(xué)生的學(xué)習(xí)熱情.同時在組織、培訓(xùn)學(xué)生的過程中,教師的實戰(zhàn)能力有了進(jìn)一步的提升.這種以賽促學(xué)、以賽促教的教學(xué)方法使學(xué)生和教師受益匪淺.
2.2.4 項目引領(lǐng)、任務(wù)驅(qū)動
在實踐教學(xué)的過程中,以項目開發(fā)作為主線.按照企業(yè)項目的開發(fā)規(guī)范要求每個學(xué)生完成自己項目組中所分配的任務(wù),最終合作完成一個項目,比如,在開發(fā)“學(xué)生信息管理系統(tǒng)”時,首先要明確該信息系統(tǒng)包括成績信息管理模塊、課程信息管理模塊、班級信息管理模塊、學(xué)籍信息管理模塊以及系統(tǒng)管理模塊.各模塊之間存在什么樣的聯(lián)系,如何實現(xiàn)該系統(tǒng)的數(shù)據(jù)庫設(shè)計,模塊設(shè)計、程序?qū)崿F(xiàn)等等.在此階段培養(yǎng)學(xué)生的動手實踐能力與團(tuán)隊協(xié)作能力.
2.3 實踐教學(xué)改革
為了配合理論教學(xué),使教學(xué)效果達(dá)到最優(yōu),按照EPT-CDIO的思想,我們對實踐教學(xué)進(jìn)行了改革.實踐教學(xué)主要培養(yǎng)學(xué)生的動手實踐能力和綜合運用所學(xué)知識解決實際問題的能力及團(tuán)隊協(xié)作能力,為此,我們把實踐教學(xué)分為“兩個宗旨三個部分”:兩個宗旨旨在提高學(xué)生的程序設(shè)計能力和系統(tǒng)工程項目實踐能力;三個部分指的是實踐教學(xué)的安排包括(1)基礎(chǔ)和驗證型實驗,(2)設(shè)計和開發(fā)型實驗,(3)研究與創(chuàng)新型實驗.
在提高程序設(shè)計能力方面,由于C語言程序設(shè)計兼具“專業(yè)”與“基礎(chǔ)”兩個特點,故C語言本身的語法知識與程序結(jié)構(gòu)必須要掌握,除此之外,通過該門課程的學(xué)習(xí)能夠掌握一定的算法并解決一些實際問題比如數(shù)值計算和非數(shù)值計算等,為后續(xù)課程打好基礎(chǔ)基于上述因素,實踐教學(xué)的安排要體現(xiàn)學(xué)生編程能力的培養(yǎng).我們可以將編程能力進(jìn)一步分為基礎(chǔ)能力和可擴(kuò)展能力,“基礎(chǔ)能力”是學(xué)生在該門課程中必須掌握的能力,“可擴(kuò)展能力”是通過實踐活動進(jìn)一步提高的能力.
在系統(tǒng)工程實踐能力方面的培養(yǎng),要以實訓(xùn)項目的開發(fā)作為主線.實訓(xùn)項目的設(shè)計應(yīng)切合實際、由簡入深、不斷拓展,學(xué)生在實踐的過程中逐步培養(yǎng)起基礎(chǔ)的工程項目開發(fā)能力.對于特別感興趣又有著強(qiáng)烈求知欲的同學(xué),可以對實訓(xùn)項目繼續(xù)延伸或者把企業(yè)項目引入實踐活動中,進(jìn)一步提高他們的開發(fā)能力.
所涉及到的三個部分包括(1)基礎(chǔ)和驗證型實驗,主要涉及本課程的基礎(chǔ)知識,實驗?zāi)康氖鞘箤W(xué)生理解、驗證、鞏固并掌握課內(nèi)所學(xué)的教學(xué)內(nèi)容;(2)設(shè)計和開發(fā)型實驗,此類實驗有效的培養(yǎng)了學(xué)生的綜合應(yīng)用所學(xué)知識與技術(shù)的能力,培養(yǎng)學(xué)生自主學(xué)習(xí),帶著問題尋找答案的能力;(3)研究與創(chuàng)新型實驗,針對部分學(xué)習(xí)興趣高、編程能力強(qiáng)的學(xué)生,重點培養(yǎng)學(xué)生的科研創(chuàng)新能力.
將“兩個宗旨三個部分”引入到實踐教學(xué)活動中,教師在這個過程中僅起指導(dǎo)作用,項目的設(shè)計與實施以學(xué)生為主體,以市場需求為導(dǎo)向,分工合作完成,鍛煉了學(xué)生的科研創(chuàng)新能力、團(tuán)隊協(xié)作能力,真正提高了教學(xué)質(zhì)量.
3.1 以可編程智能車為實踐平臺
以可編程智能車為實踐平臺,這在現(xiàn)有C程序設(shè)計課程的實踐平臺方面具有獨到之處.本課程將“靜態(tài)”的編程語言與“運動”的智能小車結(jié)合,讓C程序的運行效果不再是“黑底白字”或簡單的圖形設(shè)計,讓學(xué)生在有趣、實用的嵌入式軟件項目開發(fā)過程中學(xué)習(xí)C語言,將學(xué)生的注意力從枯燥的程序代碼轉(zhuǎn)移到生動的程序?qū)崿F(xiàn)效果上來,很大程序上提高了學(xué)生對程序設(shè)計的興趣和自主學(xué)習(xí)能力,使學(xué)生將C程序設(shè)計在一個新的實用化領(lǐng)域——智能電子產(chǎn)品開發(fā)中學(xué)以致用,做到“軟硬結(jié)合”,培養(yǎng)學(xué)生利用編程技術(shù)解決實際應(yīng)用問題的能力和創(chuàng)新設(shè)計能力.
3.2 按企業(yè)軟件開發(fā)流程組織教學(xué)
按企業(yè)軟件開發(fā)流程組織教學(xué),在現(xiàn)有C程序設(shè)計課程的教學(xué)形式上具有鮮明的特色.嵌入式軟件開發(fā)是目前和將來就業(yè)的熱點方向,是C程序設(shè)計的重要應(yīng)用領(lǐng)域.本課程面向嵌入式軟件開發(fā)的工作過程,圍繞項目展開教學(xué),以解決實際應(yīng)用問題為目標(biāo),將學(xué)生組成項目開發(fā)團(tuán)隊,撰寫項目計劃書,劃分項目開發(fā)模塊并分配開發(fā)任務(wù),設(shè)計算法,編寫與調(diào)試程序,提交項目開發(fā)文檔,最終進(jìn)行產(chǎn)品展示和項目驗收,讓學(xué)生體驗基于C程序設(shè)計的企業(yè)軟件項目開發(fā)的完整流程和規(guī)范,培養(yǎng)了學(xué)生的就業(yè)技能、團(tuán)隊協(xié)作能力和產(chǎn)品開發(fā)能力.
〔1〕顧學(xué)雍.聯(lián)結(jié)理論與實踐的CDIO——清華大學(xué)創(chuàng)新性工程教育的探索[J].高等工程教育研究,2009(1):11-23.
〔2〕林海斌,葉汝軍,高樹昱.CDIO理論基礎(chǔ)綜述[J].商場現(xiàn)代化,2010(13):189.
〔3〕張興強(qiáng).CDIO高等工程教育模式的研究與應(yīng)用[J].中國科技信息,2008(23):55-56.
〔4〕查建中.論“做中學(xué)”戰(zhàn)略下的CDIO模式[J].高等工程教育研究,2008(3):1-6,9.
G642;TP312
A
1673-260X(2017)03-0216-04
2016-11-09
安徽省阜陽師范學(xué)院校級教研項目(2014JYXM49);阜陽師范學(xué)院教學(xué)研究項目(2014JYXM41);安徽省質(zhì)量工程項目(2014zjjh079);安徽省重大教學(xué)改革項目(2016jyxm0777);安徽省自然科學(xué)研究項目(2015FXTZK02);安徽省重大教學(xué)改革項目(2015xdjy196);安徽省教學(xué)研究項目(2015jyxm728)
赤峰學(xué)院學(xué)報·自然科學(xué)版2017年6期