
《數據結構》課程的現狀與反思
《數據結構》是計算機程序設計的重要理論和技術基礎,由于本課程的原理、算法較抽象,使很多學生難以理解。本文針對《數據結構》教學現狀,提出了相應的教學改革方法。
標簽:數據結構;教學方法;教學改革
一、引言
《數據結構》是計算機程序設計的重要理論和技術基礎,介于數學、計算機硬件和計算機軟件三者之間的一門十分重要的核心課。本課程不僅鍛煉學生的抽象思維和創造能力,更注重培養學生的實際編程能力,使學生設計出結構清晰、正確易讀、高效率的算法。但是本課程原理、算法較抽象,學生掌握難度大,遇到問題常無從下手。本人多年從事《數據結構》的教學工作,現從教學現狀出發分析問題產生的原因,并提出一些改革建議。
二、目前高職《數據結構》教學現狀
1、理論基礎薄弱
《數據結構》課程的特點是理論性強、知識點多,內容又高度抽象,而對于高職生源來說,理論演繹和邏輯思維往往是他們的普遍弱項。與此同時,高職培養模式造成的課程教學時數的壓縮,使得學生在課程的學習過程中不能充分理解消化教學內容,對理論知識一知半解,隨著理論與應用的不斷結合,就會感覺”越學越難”。
2、解決實際問題能力差
學生在面對具體的問題時,不知道應該如何應用學過的知識來給出切實可行的解決方案、編制出計算機程序并在計算機上調試,得出一個正確的結果。學生在理解課程內容與能夠較好地完成算法設計習題之間存在著一定的距離。
三、問題產生的主要原因
1、課程本身難度大。《數據結構》課程不僅邏輯性強,而且極具抽象性,即使利用課件也無法完全將理論知識很直觀地表現出來。另外《數據結構》課程內容較多,課時少,學生前面的知識還沒有完全理解,新的知識就接踵而至,使得存在的問題堆積,實驗內容很難完成。
2、學生對程序設計語言掌握的不好。《數據結構》課程具有較強的實踐性,其教學基本上都是在學過一門或幾門語言的基礎上進行的。因此程序設計語言掌握的好壞程度直接影響數據結構的教學效果。
3、學生的實踐機會少。一學期有限的上機實驗中,學生練習的題目一般針對《數據結構》中以章節劃分為主的知識點,規模較小、針對性較強,缺少一些連貫性和系統性,無法鍛煉學生處理復雜問題的能力,因此學生面對具體問題時,不能綜合地運用數據結構知識解決實際問題。
四、教學改革的意見
1、教學內容——體現簡單、實用和精練的特點,強調動手能力的培養
傳統的數據結構課程內容多而深奧,理論性非常強,教學的重點在理論方面。為了適應高職學生的實際情況,不講述算法的效率分析方法,對那些較復雜、深奧的算法,則只介紹其基本思想和實現過程,有一些比較晦澀、難懂又不實用的內容則被刪除;通過實例,重點講解少數實用算法,學生再通過上機來加深對這些算法的理解和掌握。所以,從教學內容方面看,體現了簡單、實用和精練的特點。
設計合適的實驗內容,改革實驗模式,有利于提高實驗課程質量。適當增加了上機實踐時間,并著手編寫了適合高職學生的上機實驗指導書。
2、教學方法和手段--打破傳統教學模式,構建綜合教學模式
(1)理論學習與解決實際問題相結合的教學
數據結構理論是從解決實際問題中產生、總結并提高的,那么它也必然以解決更多實際問題為其歸宿,所以數據結構的理論學習和解決實際問題是緊密結合的。例如,棧的應用:編譯器中表達式的處理、火車調度問題等; 隊列和堆棧的綜合應用:實現停車場管理; 二叉樹和樹的應用:哈夫曼樹編碼、下棋問題;圖的應用:地圖著色、旅游最短路徑問題、工程或網絡通訊造價問題等。這些程序的實現不僅有助于數據結構課程的學習, 更主要的是通過這些程序的實現,大大提高了學生編程能力和解決實際問題的能力。
(2)啟發式教學
創新思維是培養學生創造力的基礎,是學生進行創新活動的前提。在教學中,有意識地培養學生的創新思維能力,可以提高學生理論聯系實際的能力、發現問題以及靈活獨特地解決問題
的能力。因此,要從實際教學內容出發,適當引入難易適中的實例分析,采用啟發式教學方法--強調把教學內容設置到復雜的、有意義的實際問題環境中,讓學生通過解決實際問題,來理解和掌握隱含于問題背后的知識,提高解決問題的能力,從而提高創新思維能力。
(3)共性化與個性化相結合的教學
從教學形式上有以教師為主體的集中課堂教學形式,還有適合學生自學方式的分組學習形式。通過教師留討論題或課程設計的方式,讓學生撰寫自己的小論文或總結報告,分小組討論,并在上機實踐課上進行互相交流。由教師引導學生利用已有的知識、經驗建構新的相關知識。以此激發學生的學習潛能,進而取得良好的教學效果。共性化與個性化相結合,既可以起到教師主導作用,也可以滿足學生個別化學習的需求與肯定學生個別的表現。
(4)項目驅動式的教學
完成每章教學內容后,教師都給出比較大的習題作為練習,由幾個同學共同完成,通過資料的查詢,到設計方案、編程實現和調試,驅動學生主動學習。例如《數據結構》授課結
束后,進行綜合訓練,讓學生做一個小的系統,如《學生學籍管理系統》、《學生成績管理系統》等,培養學生針對實際問題選擇合適的數據結構和算法及綜合應用數據結構和算法解決實際問題的能力。
(5)與自學考試內容相結合的教學
與自學考試的內容相結合。《數據結構》是自學考試的重點內容之一。我們將歷年的試題整理,并將數據結構部分的試題按章分類。在教學過程結合相關內容,提高學生的學習興趣,使學生更加明確學習目標。
五、結束語
將上述方法應用于實踐,初步取得成效,但有些方法還有待于在實踐中改進,從而使學生的程序設計能力大幅度提高,滿足用人單位的需求。
【參考文獻】
[1]嚴蔚敏,吳偉民.數據結構(C語言)清華大學出版社,1997.
[2]李益民,鄧文華.數據結構(C語言版).電子工業出版社,2004
[3]SartajSahni.數據結構、算法與應用[M).北京:機械工業出版社,2000.
[4]殷人尾,陶永雷.數據結構(用面向對象方法與C++描述)[M).北京:清華大學出版社,1999.