前言:尋找寫作靈感?中文期刊網用心挑選的軟件工程數據結構課程教學研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
一、課堂教學
(一)重視前導課程
編程和數學是學習數據結構的基礎,例如學習數據結構(C語言版)就必須先學習C語言程序設計和離散數學。如果學生沒有很好的掌握C語言程序設計的基本功,當需要編碼實現數據結構的算法,學生就覺得很難,容易產生畏難情緒,影響學習效果。軟件工程專業選用教學效果良好的教師來開設C語言程序設計和離散數學并開設C語言程序設計實驗,給學生提供一個良好的編程環境和平臺,使學生具有較好的程序設計方法和實際編程能力。這不僅有助于學生對專業課產生很好興趣,而且可以通過閱讀代碼來加深對算法思想的理解。
(二)教學化抽象為具體
《數據結構》這門課涉及數理邏輯、圖論、集合論和代數系統的基礎,很多內容比較抽象不易理解,比如鏈表中節點的增減、二叉樹的遍歷、圖的遍歷和各種排序方法,對于初學者來說是有難度的,教師如果在教學中照本宣科地講解算法和理論,很容易使得學生覺得枯燥乏味,喪失學習興趣。為了化抽象為具體,降低學習難度,我們往往綜合制作或直接利用教材配套的動畫來演示算法運行的過程,利用多媒體和計算機模擬技術,將深奧、抽象的概念和原理用生動的圖片,以現代化的幻燈片和多媒體等教學工具,結合傳統的板書來講解相關算法,演示編寫算法程序命令行等,給學生更加直觀的印象和認識。
(三)注重互動
在教學中,教師如果只是單方面的講解,而不考慮學生的接受能力,短時間內講授的內容過多,就很有可能形成填鴨式的灌輸。如果不注意引導學生主動思考,教師拋出的提問學生則很少會主動回答,學生還容易走神開小差,課堂效果就不會理想。因此在教學過程中,每介紹一種數據結構,我們都先給出生活中的應用實例,并請學生思考日常生活類似的實例,以此激發學生未知的欲望;例如在講解圖的最小生樹算法時,給出了快遞員選擇送貨路徑的例子。在講授知識點前,先引導學生根據所給問題認真思考,然后再給出經典解決方案的思想,并請同學們討論該思想與他們所想的異同,然后進行點評。
(四)CDIO工程教育模式
EdwardCarwley教授領導的跨國高等工程教育改革研究組,創立了工程教育模型CDIO(Conceive構思、Design設計、Implement實現、Operate運行),與軟件開發流程(需求分析、概要設計、詳細設計、編碼實現和測試運行)正好相吻合。在講授數據結構和算法時,先與學生一起仔細分析問題,問題所涉及的數據類型和數據間的邏輯關系,再分析解決問題算法的思想,然后探討算法步驟,最后水到渠成地講解對應的代碼。漸進式地將CDIO思維能力培養融入課程教學中,有助于培養學生數據抽象能力和算法設計能力。
二、注重實踐
實踐編程可幫助學生進一步理解課本上的數據結構和算法,促進其將理論知識應用實際編程中,提高學生編程能力,激發其進一步學習的興趣。引入碩士入學考試,國家軟件水平考試,軟件開發崗位的招聘考試等試題作為上機實訓練習題,在編寫和調試程序的過程中,學生的動手能力會自然而然的得到提高;一旦程序調試成功,順利運行獲得正確結果,可給學生帶來成就感,增強其學習的信心和興趣。同學們一起實踐時,可對算法的不同實現方法在時間和空間上進行比較。給出不同難度的題供學生選擇,不同難度的題對應于不同的起評分,這樣既不打擊基礎差的那些學生的信心,也可進一步挖掘學有余力的那些同學的潛力。為了彌補課時的不足,課后讓學生在本校教學平臺上,仿照ACM競賽模式,兩人或三人組成一隊,在規定時間內團隊協作完成指定程序設計題目的算法設計和代碼實現,提交正確程序,這種教學方式可以促進學生之間相互交流與學習,達到自主學習的目的。
三、完善考核方法,注重能力培養
考試的方式和內容,有時可以說是學習的指揮棒,因此科學完善的考核,不僅可檢驗學生學習的效果,也可調動學生的學習主動性?!稊祿Y構》課程要求學生掌握眾多數據結構的特點,透徹地理解各種數據對象的特點和關系,掌握數據邏輯組織和物理組織的基本方法,不同的數據結構所對應的數據處理算法,此課程實踐性強,實用范圍廣,傳統的閉卷考試很難反映出學生真實的編程能力,往往只能反映出學生對基本概念的掌握程度,不利引導學生將理論和實踐相結合。因此,我們采用平時實驗、期末理論考試和課程設計相結合的方式來檢查學生的學習情況。平時上機實驗報告作為一個重要的考核依據,引導學生注重學習過程。課程設計采用三人一組,協同完成一個小型系統的開發。學生通過先導課《C程序設計》的學習,再經過《數據結構》課程的訓練,已經具備了一定的程序設計知識和能力,因此課程設計一般以考察學生是否具備較復雜的程序設計能力為主要目的,要求獨立完成程序的編寫和調試,并按時提交設計報告。學生分組講解課程設計的成果,再采取教師評價、學生自評、小組互評和組內互評等多種方式進行評比,這進一步培養學生程序設計、算法分析及軟件開發的能力,提高學生的團隊合作和溝通水平。
四、結束語
《數據結構》課程內容比較抽象,是軟件工程專業一門極其重要的課程,一些學生難以透徹掌握該課程的內容,為此,我們積極探索有效的方法來提高理論課堂教學效果,加強實踐訓練來培養學生動手能力,激發學生的學習興趣。促進學生主動學習的意識,引導學生將數據結構的基本理論和算法思想應用到實際編程中來。通過幾年的努力,取得了學生滿意的教學效果。
作者:陳榮元 陳海軍 徐雪松 申立智 陳浪 單位:湖南商學院計算機與信息工程學院管理工程研究所 國防科學技術大學計算機學院