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