摘 要 本文從數據結構課程的性質和內容作了介紹,強調了課程的重要性。文章指出目前授課過程中存在的幾個問題,從教學對象,教學方法以及教學效果幾個方面進行分析。根據分析的現象和情況,提出了“一核心,二存儲,三結構”的教學主線,針對課程特點從幾個方面進行教學改革以及實踐教學方面的有益探索。
關鍵詞 數據結構 教學改革 實踐教學
中圖分類號:G424 文獻標識碼:A
1 課程性質
數據結構作為計算機專業的一門專業基礎課,它的專業基礎地位重要,內容抽象而又要求能將抽象的思維轉化為具體的實踐,它是理論性強而又實踐性強,它與其它課程關系密切,本課的前期課程是C++程序設計語言,后續課程包括操作系統、編譯原理、計算機網絡以及數據庫原理等的重要的基礎課程,它不僅是構筑這些課程體系與知識結構的核心課程之一,同時對奠定學生計算機專業的基礎具有重要意義。
在數據結構課程的教學中,既有理論知識的傳授,又有實踐性教學環節的指導,同時還有理論如何在實際程序設計中應用。因此,數據結構是計算機專業及其相關專業學生必須掌握的重要專業基礎課。
2 課程內容
課程主要介紹如何合理地組織各種數據, 有效地存儲和處理數據,正確地設計算法以及對算法進行分析和評價。該課程是計算機軟件編程技術很重要的基礎, 尤其是培養高水平的應用程序人員和系統程序人員不可或缺的。該課程注重培養學生的數據抽象能力, 學習數據結構的最終目的是為了獲得求解問題的能力。①
對于整個課程設計來講,從邏輯結構出發,對于每種邏輯結構設計相應的存儲結構,并針對存儲結構設計對應的算法,并最終應用C++程序設計語言來具體的將算法給予實現。然后應用對應的基本算法,來解決一些相對復雜的在實際中遇到的問題。
3 存在問題
數據結構總是被認為是一門深奧、抽象,難理解的課程,一門理論性很強的課程。由于課程的性質和特點,致使在授課過程中存在以下幾個方面的問題:
3.1 教學對象
對于數據結構課,主要開課在第2學期,即大一學生為主要授課對象,學生剛剛接觸計算機專業,對于計算機的整體并沒有從內部理解,而本課程正是要真正理解計算機的內部組織,對各種算法要求進行有效的數據組織和整理,因此對于學生在理解上有很大的困難。另外,本課程需要使用前期的語言基礎,對于剛接觸計算機編程的學生,要從整體上進行算法分析并且進行最終的計算機實現,需要很好的編程基礎,因此對于學生的編程能力有很高的要求。
3.2 教學方法
在教學上主要分為課堂教學和實驗教學兩個方面,在課堂教學上,大多數認為本課程主要是以板書為教學的主要手段,主要因為數據結構課程的很多內容都是在講解算法過程,因此基本都是以板書為主。也有一些教師,認為要使用多媒體手段,以至于整個課程都是在念課件,或者操作課件動畫為主,對于算法的講解也是通過課件的形式。②
在實驗教學方面,基本都是以具體實驗課堂講解的偽代碼為主要的任務,學生將老師在課堂上講解的基本的算法進行實現,使得學生在整個學習過程中,都不理解為什么要將這些算法實現,都有什么作用,應該用在什么地方。
3.3 教學效果
在學習完數據結構課程后,對學生進行一些調查,很多人認為該課程很難,在課堂上老師講解的算法難,在實驗中調試代碼難,在學習后不知道學習這門課的意義在什么地方,也不知道會在什么情況下用到這些算法和思想。因此這門在計算機方面如此重要的科目,對于學生而言卻是一個很難理解的課程。
4 改革模式
通過對數據結構課程的一些總結和思考,針對上述問題以及根據課程自身特點,可以做如下幾方面的課程教學改革和探索。
4.1 明確課程路線,整合教學資源
首先對于學生在學習本門課程之前,一定要重點強調高級語言課程的學習和復習,對于本門課程的重要性質要在上課之初重點強調。對于課程的內容介紹,從總體上進行把握,明確一核心,兩存儲,三結構的思想。其中,一核心是以算法為核心,兩存儲為“順序存儲,線性存儲”,三結構分別為“線性,樹形,圖形”結構,按照這樣的路線來進行本門課程的授課和講解。
提倡學生多看一些國外的數據結構方面的資料,對于課程進行課外的補充,并不是單純地擴展算法,主要是讓學習了解本門課程的實際意義,讓學生可以對課程有個感性的認識。而且鼓勵學生,多多利用網絡資源,重點了解數據結構的重要地位,以及重要的應用等方面。
4.2 結合教學手段,增強實踐能力
對于所有課程而言都沒有固定的教學方法,但是要找到最合適的方法。筆者認為,就數據結構這門課應該以多媒體和板書相結合的方法。其中,重點應該以板書為主,因為課程中的很多時候都是在進行算法的介紹,而算法應該多數用偽代碼進行實現,特別是一些思想需要進行逐步的講解,所以板書對于本門課程是特別合適的。但是有些部分應該配合多媒體手段,例如對三種結構線性,數,圖的介紹,可以輔助課件進行直觀的表示。③但是根據特點,在黑板上雖然講解速度慢,但比多媒體對學生的影響更深刻。當然,這樣講解只是對某些點上講深講透,然后還應再借助于多媒體,由點及面展開。這樣結合,可發揮兩者的長處。
在實踐教學方面,主要以實驗為主要手段。而本課程的特點是根據理論知識的介紹,重點結合實驗進行算法的最終實現。在設計實驗上,一是以基礎實驗為主,特別是對于前期的入門結構線性表的實現上,需要多些內容和課時,讓學生在基礎問題上理解透徹,排除懼難的心理,爭取所有的學生都能調試成功。而后的實驗中大同小異,找到共同的特點,逐漸發現課程中的內容都有著很強的共通性。二是對于每次的實驗,都會安排1~2道應用類型的題目,便于不同層次的同學進行選做,爭取做到個性發展,按需所求。
4.3 突出重點內容,加強興趣指導
由于課程的學時有限,而本課程需要講解和學習的算法以及抽象的概念非常多,因此在安排內容時要重點突出,講解上要有輕重緩急。每種結構要針對重要的或者特殊的算法進行講解,要給學生留一定的思考空間,鍛煉學生從思考問題,到寫偽代碼,再到具體的程序實現的全過程。數據結構的程序往往比較復雜且龐大,且實驗學時有限,不允許也不可能完成所有結構及算法。建議采用重點內容作為必做題目,一些內容作為選做題目,并且鼓勵同學課后相互討論方法。
課程結束后期,以課程設計為主要的后續內容,選取題目時要有針對性,不要太空太大,要讓學生從整體上對數據結構進行理解,從中體會本門課程的意義所在。目的是培養學生綜合運用所學知識進行分析和解決實際問題的能力。通過讓學生解決一個實際問題,將他們學習的理論內容融入到具體問題中,使學生不僅學習到解決問題的辦法,同時加深理論的理解與掌握,使理論教學與實踐緊密結合,④⑤從而加強對學生的興趣指導,讓學生消除懼難的心理。
5 結束語
數據結構在計算機專業學科中具有特殊地位及顯著特點,該學科的教學實施活動是值得我們任課教師不斷探索、創新的。可以圍繞“ 一核心、兩存儲、三結構”的路線,更好地實施數據結構教學。讓我們大家共同努力,將數據結構教學的實施不斷發展與完善。
注釋
① 王紅梅等.數據結構(C++版)(第2版)[M].北京:清華大學出版社,2012.
② 楊種學.研究型教學法在數據結構課程中的應用研究[J].計算機教育,2007(2).
③ 葛云生.《數據結構》課程教學改革與探索[J].高教論壇,2010(1).
④ 蔣秀英.《數據結構》與《程序設計》的融合教學模式研究[J].山東師范大學學報(自然科學版),2008(3).
⑤ 青宇航.關于《數據結構》現代教學方法的探索[J].教育與職業,2007(9).