徐艷
摘 要:本文在分析C語言與數(shù)據(jù)結(jié)構(gòu)兩門課程傳統(tǒng)教學(xué)的弊端及其相互關(guān)系的基礎(chǔ)之上,探索該兩門課程基于CDIO的以項目驅(qū)動、以問題驅(qū)動和以實戰(zhàn)為動力的教學(xué)方法,并將兩門課程有機地結(jié)合起來進行教學(xué)改革實踐。實踐證明,兩門課程配合教學(xué)有利于提高學(xué)生的學(xué)習興趣,提高學(xué)習效率,培養(yǎng)學(xué)生程序設(shè)計能力、程序閱讀的能力及應(yīng)用和設(shè)計數(shù)據(jù)結(jié)構(gòu)的能力,教學(xué)效果良好。
關(guān)鍵詞:教學(xué)改革;CDIO;C語言;數(shù)據(jù)結(jié)構(gòu);項目實戰(zhàn)教學(xué)
一、前言
CDIO代表構(gòu)思(Conceive)、設(shè)計(Design)、實現(xiàn)(Implement)和運作(Operate),是以從產(chǎn)品研發(fā)到產(chǎn)品運行的生命周期為載體,讓學(xué)生以主動的、實踐的、課程之間有機聯(lián)系的方式學(xué)習工程,CDIO培養(yǎng)大綱將工程畢業(yè)生的能力分為工程基礎(chǔ)知識、個人能力、人際團隊能力和工程系統(tǒng)能力四個層面。目前,國內(nèi)的大多數(shù)理工科高校在學(xué)生教育教學(xué)培養(yǎng)方面多受傳統(tǒng)蘇聯(lián)模式的影響,學(xué)生理論基礎(chǔ)相對扎實,但是缺少項目及團隊工作的實踐操作訓(xùn)練。
C語言和數(shù)據(jù)結(jié)構(gòu)作為嵌入式專業(yè)的兩門重要專業(yè)基礎(chǔ)課,同時也是培養(yǎng)我系該專業(yè)學(xué)生軟件開發(fā)基礎(chǔ)能力的重要課程,C語言和數(shù)據(jù)結(jié)構(gòu)掌握的程度直接關(guān)系著學(xué)生分析問題、解決問題的能力以及程序設(shè)計理念的形成。但目前教學(xué)中存在的以下問題制約了學(xué)生軟件開發(fā)基礎(chǔ)能力的培養(yǎng)。
(1)在目前的培養(yǎng)過程中,實踐教學(xué)的驗證性內(nèi)容較多,但是綜合性、設(shè)計性和創(chuàng)新性實驗內(nèi)容較少,學(xué)生探討問題的積極性和實踐創(chuàng)新能力得不到提高。
(2)教育體系中對理論課程的重視程度普遍高于實踐課程,導(dǎo)致學(xué)生基本是在任課教師的安排下進行學(xué)習,缺乏學(xué)習的主動性和創(chuàng)新性。
(3)學(xué)生在解決問題的過程中常常采用純程序設(shè)計的方法,不能很好地將理論的邏輯結(jié)構(gòu)跟實際的存儲結(jié)構(gòu)和程序算法設(shè)計結(jié)合起來,對數(shù)據(jù)結(jié)構(gòu)的理解在很大程度上具有片面性。
(4)教學(xué)中只單純講教材的書本知識或做實驗,沒有及時將一些前沿的、新穎的知識引入課堂;沒有更加有效的方式激發(fā)學(xué)生的編程興趣,使學(xué)生獲得學(xué)習樂趣和成就感。
(5)學(xué)生能力的培養(yǎng)不明確也不明顯。
由于傳統(tǒng)的教學(xué)過程中存在著以上這些弊端,再加上學(xué)生自身存在的一些因素的影響,導(dǎo)致學(xué)生在學(xué)習過程中普遍反映C語言難學(xué),而數(shù)據(jù)結(jié)構(gòu)則更難學(xué)。
二、CDIO模式下C語言教學(xué)方法探索
以項目作為主線,以學(xué)生作為主體,以教師作為主導(dǎo),把培養(yǎng)應(yīng)用型創(chuàng)新人才當做最終目標,強調(diào)“學(xué)中做,做中學(xué)”的理念。
對于C語言知識點的教學(xué),以項目教學(xué)為主線,將各知識點的教學(xué)融合在項目中,所有學(xué)生以四至六人為單位分成項目組,每組完成一個小型信息管理系統(tǒng)的開發(fā)。學(xué)生項目組的題目可以從教師指定的題目中選擇,也可以自行選擇題目。管理系統(tǒng)的開發(fā)分為四個版本,將C語言基礎(chǔ)、簡單C函數(shù)和C程序的三種基本結(jié)構(gòu)的教學(xué)融入Version1.0;將一維數(shù)組、二維數(shù)組、字符數(shù)組、指針、復(fù)雜C函數(shù)的教學(xué)融入Version2.0;將結(jié)構(gòu)體、結(jié)構(gòu)體數(shù)組、文件的教學(xué)融入Version3.0;將鏈表的教學(xué)融入Version4.0。后兩個版本屬于C語言高級應(yīng)用,隨著項目開發(fā)版本的升級,學(xué)生對C語言課程知識的學(xué)習也越來越深入。將 C語言課程的教學(xué)目標設(shè)定為具有熟練編寫C語言程序的能力,最基本的要求是面對實際問題能夠編程解決,不追求理論知識的完整性,但求會熟練使用。教學(xué)中淡化語法細節(jié),以項目開發(fā)為目標,以分專題研究與實踐操作作為手段,把知識融入到課程體系中。
三、CDIO模式下數(shù)據(jù)結(jié)構(gòu)教學(xué)方法探索
開展問題驅(qū)動的實踐教學(xué),以問題求解為主線索是實踐內(nèi)容的核心思路,體現(xiàn)分析能力和設(shè)計能力的培養(yǎng)。針對每個教學(xué)環(huán)節(jié)的重要知識點,選擇難易適中、具有代表性的綜合性典型算法,合理地設(shè)計教學(xué)“問題”,從而在面對實際問題時,使學(xué)生學(xué)會分析問題并能設(shè)計解決問題的方法,通過上機、編程、調(diào)試,在實驗中掌握基于某種算法和數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)組織、加工和處理方法,從而使學(xué)生進一步理解程序算法的設(shè)計思想,鍛煉程序編寫和調(diào)試的能力,增強創(chuàng)新意識。
開展以實戰(zhàn)為動力的實踐教學(xué),教師要講解電子設(shè)計競賽、ACM競賽的典型例題,幫助學(xué)生提高比賽成績,以此提高學(xué)生進行程序編寫和開展實踐的熱情,使學(xué)習生動有趣。
鑒于電子設(shè)計競賽和ACM競賽試題本身的趣味性、實用性和價值,結(jié)合嵌入式C語言和數(shù)據(jù)結(jié)構(gòu)創(chuàng)新型實驗的要求,從電子設(shè)計競賽試題和ACM競賽試題中挑選相關(guān)題目,或?qū)⒃蓄}目進行合理改造,形成與嵌入式C語言和數(shù)據(jù)結(jié)構(gòu)實驗要求相匹配的試題集。這樣學(xué)生就可以在平時的學(xué)習和實驗過程中逐步接觸到電子設(shè)計競賽試題和ACM試題,這對提高學(xué)生的編程能力和將來參加實際比賽都非常有利。
四、CDIO模式下C語言與數(shù)據(jù)結(jié)構(gòu)課程整合方法實踐
我系之前都是采用模塊化教學(xué),C語言和數(shù)據(jù)結(jié)構(gòu)是分別在兩個學(xué)期由不同的教師進行授課。由于課時安排的問題,C語言后面的章節(jié)講不完,比如指針、結(jié)構(gòu)體、文件、鏈表等知識點沒時間講;而數(shù)據(jù)結(jié)構(gòu)課程教學(xué)內(nèi)容多而且難,沒有過多的時間回顧和補充講解太多C語言的知識內(nèi)容,使得這兩門課不能進行良好銜接,學(xué)生覺得數(shù)據(jù)結(jié)構(gòu)更加難學(xué)。
在教改實踐過程中,可以將教學(xué)計劃進行更改,構(gòu)建嵌入式技術(shù)專業(yè)軟件開發(fā)基礎(chǔ)能力課程群。嵌入式技術(shù)專業(yè)軟件開發(fā)基礎(chǔ)能力課程群主要以C語言、C語言課程設(shè)計、數(shù)據(jù)結(jié)構(gòu)三門課程為主構(gòu)成。C語言在改革實施過程中調(diào)整為30節(jié)理論課,30節(jié)實踐課,只學(xué)習順序、選擇和循環(huán)等基礎(chǔ)編程知識,教學(xué)目標設(shè)定為具有熟練編寫C程序的能力;C語言課程設(shè)計調(diào)整為45節(jié)實踐課,鑒于嵌入式專業(yè)特點,其中只簡單學(xué)習C語言課程的指針、結(jié)構(gòu)體、鏈表等后續(xù)知識,重點在項目實戰(zhàn)教學(xué);數(shù)據(jù)結(jié)構(gòu)調(diào)整為30節(jié)理論課,30節(jié)實踐課。我系嵌入式專業(yè)對數(shù)據(jù)結(jié)構(gòu)學(xué)習的要求主要在線性表、棧、隊列、數(shù)組、二叉樹、查找、排序部分,因此理論教學(xué)可按此要求壓縮,其中教學(xué)重點在線性表和查找、排序。針對數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中驗證性內(nèi)容偏多,而綜合性、設(shè)計性和創(chuàng)新探索性實踐內(nèi)容偏少的情況,增加實踐教學(xué)30課時,仍然以項目實戰(zhàn)教學(xué)方式實施。
教學(xué)以培養(yǎng)學(xué)生編程能力、軟件過程的控制能力、項目管理能力、版本控制能力、需求管理能力、團隊協(xié)作能力、人際溝通能力為目標,分三層由易到難激發(fā)學(xué)生學(xué)習動力。第一層,分團隊,培養(yǎng)學(xué)生團隊意識,使其了解編程過程,培養(yǎng)學(xué)習興趣;第二層,規(guī)范軟件開發(fā)流程,以虛擬項目培養(yǎng)學(xué)生CDIO能力;第三層,以實際項目或綜合項目考查學(xué)生是否具備該專業(yè)軟件開發(fā)的基礎(chǔ)能力。
考核過程中重建以能力為主的考核方式,在C語言、C語言課程設(shè)計、數(shù)據(jù)結(jié)構(gòu)課程群中試行理論知識考試占總成績的30%,個人能力占總成績的20%,人際團隊能力占總成績的20%,項目完成占總成績的20%。學(xué)生必須按課程群體系中規(guī)定的能力培養(yǎng)層級依次完成。
五、結(jié)束語
我們應(yīng)用CDIO教學(xué)模式進行C語言和數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)改革,經(jīng)過一個學(xué)期的教學(xué)實踐,達到了較為理想的教學(xué)效果。學(xué)生的學(xué)習興趣顯著提高,對項目的運作過程有了更多的實踐機會,學(xué)生之間的團隊合作意識和溝通交流能力都得到了培養(yǎng),形成了比較良好的學(xué)習氛圍。今后,我們還將不斷地探索和完善相關(guān)課程的教學(xué)改革方案,推動教學(xué)改革的深入開展,進一步提高工程教育質(zhì)量。
參考文獻:
[1]鐘金明,張慧文.基于CDIO理念的C語言教學(xué)改革實踐[J].實驗科學(xué)與技術(shù),2014(1).
[2]盧冰.高校計算機專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革的探索與實踐[J].成人教育,2011(9).
[3]王靜.高職院校C語言與數(shù)據(jù)結(jié)構(gòu)教學(xué)方法探討[J].科技信息,2009(34).
[4]韓雁,馮興杰,梁志星,張婧.CDIO工程教育模式下的教學(xué)效果分析[J].中國民航大學(xué)學(xué)報,2012(4).