3 加強實驗環節,以提高學生的編程能力
數據結構是一門理論和實踐性都很強的課程,學習它的主要目的是提高學生的編程能力,而學會編程、提高編程的能力並不是輕而易舉的,要通過長時間的實踐鍛煉,要學生自己多動手去體驗,有些問題隻有通過實踐後才能明白,也隻有實踐才能把教師和書本上的知識變成自己的。因此我們在教學過程中針對每個環節都布置一定數量的上機實踐題目,有基礎題、有綜合題,還有結合實際的綜合應用題。例如基礎題有順序表、鏈表的創建、查找、插入、刪除;棧、隊列的操作;二叉樹的遍曆;圖的存儲實現;查找;排序等。綜合題有一種結構上的綜合操作題如兩個鏈表的合並操作就是查找、插入和刪除基本操作的綜合,還有多種結構上的綜合操作題,遍曆搜索演示實驗,它可綜合考查學生對字符串、鏈表、棧、隊列、圖的遍曆和遞歸算法等的理解和綜合應用能力,這種實驗題知識點覆蓋了數據結構的絕大部分內容,具有較強的綜合性。我們舉幾個結合實際應用的例題。
例1:用二叉排序樹與單鏈表相結合來實現學生成績管理。
用二叉排序樹存放成績,用鏈表存放學生信息,相同成績的學生連在一個鏈表中並由二叉排序樹相應結點指向,具體鏈表結點形式:
二叉樹結點形式:
程序具有前序、中序、後序遍曆瀏覽所有信息功能、有各信息查詢功能、有統計成績功能、有鏈表結點插入和樹結點插入功能,有鏈表結點刪除和樹結點刪除等功能,對編程基礎好的學生還要求將二叉排序樹改為平衡樹來完成。
例2:用棧解決算術表達式求值演示。根據算符優先關係,實現算術四則混合運算表達式的求值,演示在求值中運算符棧、操作數棧、輸入字符和主要操作的變化過程。
例3:用棧隊列進行停車場管理。以棧模擬停車場,以隊列模擬車場外的通道,從輸入的數據序列進行模擬管理。
例4:用圖進行上海導遊谘詢。以頂點表示上海各主要景點,存放景點名稱、代號、簡介等,以邊表示路徑,存放路徑長度等相關信息,程序具有為遊客提供各景點相關信息的查詢,有查詢任意兩個景點之間的最短路徑等功能。
為了達到預期實驗效果,在做每個實驗時,要求學生上機運行所編程序,教師認真檢查程序運行結果及程序的測試數據,必要時查看學生所編寫的程序,了解他們的編程思想;將編程風格好、解決方案好的程序作為例子給學生講解,鼓勵他們多觀察、分析、比較、積累,遇到問題時多想幾種解決方案;通過分析這些程序,培養學生良好的編程習慣,讓他們明白編程風格的好壞在很大程度上影響程序的質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。我們經過這樣大量的上機實踐,使學生的編程能力、上機調試能力得到很大的提高。
4 結束語
本文探討了提高學生編程能力的具體教學措施,這些措施需要結合教學方法靈活地加以運用。我們積累了大量的教學實驗用例,幫助學生開闊視野,增強學習的動力,進而提高學生學習的自覺性,使他們的學習過程走向良性循環的軌道。我們經過幾年的數據結構教學實踐,學生的編程能力普遍提高,證明了上述教學方法是有效的。
參考文獻:
[1] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].清華大學出版社,2011.
[2] 許自龍.關於《數據結構》的教學實踐和體會[J].信息技術教學與研究,2012.4.
[3] 呂國英.算法設計與分析(第二版)[M].清華大學出版社,2011.
[4] 嚴蔚敏,吳偉民.數據結構題集[M].清華大學出版社,2011.
[5] 嚴蔚敏,陳文博.數據結構及應用算法教程[M].清華大學出版社,2009.