劉美麗 周俊杰
(1、新疆克拉瑪依廣播電視大學,新疆 克拉瑪依 834000 2、鄭州大學,河南 鄭州 450001)
“數據結構”是計算機程序設計的重要理論技術基礎,它不僅是計算機學科的核心課程,而且已成為其它理工專業的熱門選修課,同時是研究生入學考試常考的一門基礎課。它要求學生能根據所學的理論完成較典型的程序設計。而程序設計能力的提高需要日積月累的學習、設計、觀摩、借鑒和實踐的過程,在不斷循環中提高實踐能力和動手能力。
盡管學生在學習《數據結構》課程時,已學過程序設計語言,但由于抽象的數據類型、動態分配存儲空間等概念,比較難理解,一直學習的難點。如何理解數據存儲結構,消化算法,將算法轉化成程序設計語言的函數并能編寫出運行該函數的主程序,往往是擺在他們面前的一道難關。針對上述問題,結合自己的教學經驗,提出自己的思路。
本人多次講授《數據結構》課程,所用教材為清華大學出版社的嚴蔚敏、吳偉民編著的《數據結構》(C語言版)(以下簡稱為教科書)。該教科書內容全面,有較高的深度,但在敘述一些基本概念和算法時過于精練,使學生在理解上有一定的困難。另外,本課程的教學不僅注重學生對理論的理解,鍛煉學生的抽象思維和創造能力,更注重培養學生的實踐能力。筆者在多年的教學實踐中發現,學生認為這門課程理論性太強,太枯燥,不好學,學了不知有什么用,怎么用,當面對具體問題時,不知該如何應用學過的知識來給出切實可行的解決方案以及編制程序,得出正確的結果。
針對以上問題,可以看出數據結構教學除了加強理論知識的講授外,更應注重實踐環節的教學,提高上機實驗課的教學效果。
有些教師在教學的過程中,重點給學生講授數據對象的特性,數據的組織方法,數據的邏輯結構和存儲結構以及相應的運算(操作),對實驗不夠重視,認為可有可無。在實際教學中,教師只介紹各種操作的算法,而忽視將算法轉換為具體程序設計語言中的函數以及編寫出運行該函數的主程序。這種教學方式,勢必導致多數學生對算法和程序概念的混淆,再加上教科書中也僅僅是將算法轉換成程序設計語言中的函數,學生在上機實驗中往往編制不出完整的程序,得出正確的結果。
上機實驗是對學生全面綜合素質進行訓練的一種基本方法,是課堂教學的一種延伸,是必不可少的一個教學環節。實驗起到深化理解和靈活掌握教學內容的目的,同時,也是對學生軟件設計綜合能力的訓練。所以本人要求學生在上機實驗前,必須運行所學程序設計語言編寫完整的程序,上機過程中,先讓學生自行調試自已所編寫的程序,實在不能解決的問題,再在老師指導下完成。通過幾次這樣的嚴格要求,學生掌握了技巧、產生了興趣,增強了信心。
在“數據結構”課程堆棧的教學中,針對教科書中進制轉換的問題,筆者除了詳細講授教科書中堆棧的順序存儲結構及其基本運算的實現算法與函數外,還在課堂上編制出運行該函數的主程序,包括數據的輸入與輸出。
程序運行如下:
將十進制整數n轉換為b進制數,請輸入n與b:13,2通過多次實踐,學生清楚地認識到程序不僅僅是算法,更應注重程序總體結構設計、用戶界面設計、軟件開發規范等方面的學習和鍛煉。
一本好的實驗指導書能給學生的上機實驗帶來事半功倍的效果。現在有關《數據結構》課程的實驗指導書較少,而且其中大部分都沒有提供具體的上機實驗操作過程。筆者認為一本好的實驗指導書應該能和教科書有機結合起來,學生在理論課學習的基礎上,通過閱讀該書,應該能夠解決實際問題。筆者在《數據結構》課程的教學中,建議在編實驗指導書時要考慮到以下三個方面:
(1)明確具體實驗步驟
為了培養學生良好的工作作風和方法,并且為后續課程做準備,書中按軟件工程方法要求學生遵循相應的實驗步驟,先進行需求分析,抽象出數據結構,再明確數據類型,詳細設計,最后進行編碼及調試。
(2)明確每個實驗的具體要求
有了具體要求,學生實驗時才有章可循。書中對每個實驗都提出具體要求。開始部分的實驗除給出要求外,還給出問題的需求分析、設計以及完整的程序,學生上機主要是驗證性試驗程序,在此基礎上要求學生獨立設計算法,編制并調試程序。
(3)預習實驗指導書中的內容
實驗指導書與教材有機結合,高于教材,上機實驗學時有限,這就要求學生在上機實驗前必須預習實驗指導書中的內容,給出了一些與本實驗有關的思考題,讓學生在閱讀中思考,同時列出相應的參考資料或參考書,讓學生在上機之前通過查閱參考資料或參考書,加深對實驗內容的理解。自己先經過分析、思考、設計編寫程序源代碼,而不能上機時才進行編寫程序,這樣上機效率非常,時間較緊。
課程的教學最終是由一線教師來完成的,一線教師隊伍的素質決定了教學的質量。
實驗教學能力的培養有一個過程。作為一名教師,應具備鉆研和創新精神,提高自己的知識水平和實驗教學能力。同時,在教學過程中,也應該吸收其他優秀教師的教育思想,學習其他教師的教學方法,在實驗教學方面,一線教師更應注重相互之間的溝通,取長補短,共同提高。學校、院系在條件允許下,還應定期組織教師進行培訓或進修。
由于“數據結構”課程在計算機專業課程中的重要性,必須加強實踐環節的教學。可以相信,只要我們思想上重視實踐環節的教學,學生積極配合預習,結合良好的實驗指導書,不斷提高自身實踐教學的能力加上采用合理的教學方法,《數據結構》課程的實踐教學必將取得良好的教學效果。
[1]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[2]嚴蔚敏,吳偉民.數據結構題集[M].北京:清華大學出版社,1999.
[3]高一凡.《數據結構》算法實現及解析[M].陜西:西安電子科技大學出版社,2004.