摘 要: 《數據結構》課程是計算機及相關學科的一門重要的專業基礎課,也是一門鍛煉程序設計能力的實踐課程。本文從幾個方面闡述了如何對《數據結構》進行教學改革。
關鍵詞: 教學方法改革 降低理論性程度 增強直觀性
《數據結構》課程是計算機及相關學科的一門重要的專業基礎課,也是一門鍛煉程序設計能力的實踐課程。它相對于其他應用性課程來說抽象、枯燥,學生學習起來有一定的難度,教師講起來也比較難。那么如何降低理論性程度,增強直觀性,提高學生的學習興趣呢?我在教學中盡量做到以下幾點:
1.講好第一堂課,以調動學生的學習興趣
《數據結構》雖然包含了較多的理論內容,但具有實踐應用的特點。“興趣是最好的老師”。因此在進行數據結構課的第一次授課中,我并不急于介紹理論,而是強調應用,通過介紹數據結構在實際中的應用來激發學生的學習興趣。如圖書館的書目檢索系統,如何組織圖書的登錄號、書名、分類號等數據,才能快速實現查找、插入、刪除操作;旅游線路設計問題,如想去北京、上海、天津等地旅游,怎樣安排線路以求花費最少;在鐵路建設中,如何施工以求花費最少,等等。以上應用貼近生活,學生都比較熟悉,興趣就能夠被激發起來,形成想學好這門課的愿望。其實上述例子就已經囊括了本門課中涉及的幾大類數據結構——線性表、樹和圖,這樣教師就可以水到渠成地歸結出數據結構的概念,以及本章涉列的幾種數據結構的類型,為后續章節的講解打下了良好的基礎。
2.解決C語言的不足
《C語言程序設計》是數據結構的前導課程之一,學生對它的熟悉掌握程度直接關系到數據結構課程的教學效果。C語言本身極具靈活性,剛剛學完C語言程序設計的學生運用不是很自如。另外,C語言的難點是指針、函數、數組作為函數參數,以及結構體類型等,而數據結構課程教學過程中主要運用這些知識點來分析、解決問題。對于大部分學生來說,C語言運用能力不是很強,如果上課時直接切入主題,他們就會有“云遮霧罩”的感覺。如何解決這個問題呢?我們可以利用一兩次課的時間來復習C語言的相關知識,即數組、指針、函數和結構體等。可以將這些學時納入到教學進度表中,教師在復習并不是面面俱到,而是將與本課相關的內容加以歸納總結,這樣既可以復習以前的知識,加深印象,強化理解,又可以為數據結構課程的教學作鋪墊。
3.教學內容的歸納提煉
不少教師常說《數據結構》這門課難講,學生也反映這門課不好學,這是因為《數據結構》不但有很強的理論性,而且具有一定的抽象性。同時《數據結構》課程又有較強的實踐性,要求學生能夠使用一種語言(PASCAL、C、C++或Java),對算法進行程序設計,并且能夠進行上機調試,對于基礎薄弱的學生這就好似“雪上加霜”。既然“教”與“學”都有困難,那么在“教”與“學”的過程中就應該首先解決教師應該怎么“教”的問題。教師首先應對理論概念和算法思想進行處理,避免“照本宣科”,教師自己要熟悉教材、精通教材,把握本課程的重點和難點,能夠將前后內容聯系起來分析思考,盡量從中尋找共性的、規律性的東西進行歸納與提煉,并將其系統化、具體化。例如從數據結構的定義出發包含三方面的內容:邏輯結構、存儲結構和算法。在講到每種數據結構(線性表、棧、隊列、樹、圖)都會涉及它的邏輯結構、存儲結構和算法。我在講授的過程中用數據結構包含的三方面內容作為一條主線貫穿整本書,每講到一種新的數據結構時都可以拿出這條主線來闡明其上的三方面內容,這樣,學生學起來就會覺得有系統性,容易把握。綜觀全書,不論是線性表、樹還是圖,最基本的、典型的存儲結構就是兩類:順序存儲結構、鏈式存儲結構,只要把它們掌握好,整個課程學習的難度就不覺得大。所以在教學過程中,我一方面緊扣課程的主脈(即各種數據結構的基本概念、邏輯結構、存儲結構、主要算法與相關應用),把基本的概念與術語解釋清楚,把各種數據結構與操作運算分析清楚,把有關算法的設計思路與實現方法講解清楚。另一方面,我更注重有關內容的前后呼應,把握其內在聯系,對各種相關結構的特點與操作,進行相應的歸納、總結與對比。
4.教學模式的更新
“問題”是創新的起點,是引發學生興趣、誘發學生動機的理想載體。《數據結構》教學中,特別是算法設計中可以設計許多問題。我在備課時,不僅消化教材內容,深入探究知識的奧秘,更精心設計課堂情景,準備好“問題”;課堂教學時不僅生動詳盡地講解知識,更努力激發學生思維;教學過程中不僅要求學生認真聽,更引導學生積極思考,逐步培養學生發現問題、分析問題、解決問題的能力。例如,在講到棧時,為了讓學生掌握棧的特點,我讓學生先用數組來編寫算法,然后用棧進行編寫,最后我來進行點評,讓學生清楚了解什么情況下使用棧比較方便。這樣既有助于講清問題,又能提高學生的積極性。
5.加強實踐環節
為使學生真正學好《數據結構》,我除了在課堂上采用行之有效的教學方法外,還讓學生多做習題。要學好《數據結構》,只“看”不“練”肯定是不行的,習題的作用是極其重要的,學生不僅要做,而且必須交作業,這樣我才能知道學生的掌握情況,然后對出現的問題進行總結、歸納、講評。講評時我細講解題思路,規范解題方法,并強調有關的注意事項,同時,對于作業中的可取之處加以表揚,鼓勵學生開拓創新。
當然實踐還包括上機實驗。上機實驗不僅能進一步鞏固對有關內容的理解,而且能提高學生靈活運用數據結構和算法的能力,使學生在編程、上機操作、程序調試與正確性驗證等基本技能方面得到訓練。
以上就是我在《數據結構》教學中的教學方法改革,有不當之處希望廣大同仁多多指點。
參考文獻:
[1]嚴蔚敏,吳偉民.數據結構.北京:清華大學出版社,1992.
[2]陳小平.數據結構.南京:南京大學出版社,1994.