摘要:《數據結構》是計算機專業的核心課程,通過對《數據結構》教學的研究與探討,提出了一些可供參考的教學思路,在近年來的教學實踐中,取得了較好的效果。
關鍵詞:數據結構;教學模式;程序設計
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)17-21498-02
1 課程概述
《數據結構》涉及數據在計算機中的表示、組織和處理, 以及相應結構上的算法設計和初步的算法性能分析技術。數據的表示是計算機科學的基礎。在實際工程應用領域中,大多數計算機程序的實現目標與其說是完成運算,倒不如說是組織、存儲和檢索數據。從運行時間和存儲空間兩個方面分析,這些程序都必須合理地組織數據,以支持高效的信息處理過程。因此,《數據結構》在計算機科學中是一門綜合性的專業基礎課,也是一門核心課程。它不僅是一般程序設計的基礎,而且也是設計和實現編譯程序、操作系統、數據庫系統及其它系統程序和大型應用程序的重要基礎。這門課程對于培養學生利用計算機解決現實問題的能力,以及理解計算機的實質,都有極其重要的意義。因此,《數據結構》的教學就顯得尤為重要。
2 《數據結構》在我校的教學現狀
《數據結構》不僅作為我校計算機專業的必修課程,也是電子商務,信息管理與信息系統,信息與計算科學,電氣等專業必修或選修課程。通過作者近幾年對我校上述各專業的教學發現,很多學生反映課程難度比較大,課程內容比較抽象,不易掌握。因此,在新形勢下,《數據結構》教學內容與方式必須進行相應的改革與更新,從而不斷促進教學質量的提高。
3 課程教學學習過程中存在的問題
3.1 教學模式單一
在傳統教學模式下,主要強調教師對課程的講授作用,學生坐在講臺下面,目光注視講臺上的教師,教師的講授是學生獲取知識的主要途徑。在這種教學模式下,學生只是被動地接受知識,對知識的掌握基本上是依靠記憶的方式,對所學內容的理解非常膚淺。學生很可能在課堂上表面上聽懂了,但下課后或者關上書,學生可能又不知道自己到底學到了什么。《數據結構》課程內容較多,靈活性很強,內容也比較抽象,該門課程不僅僅要求學生掌握書本上的知識,而是需要培養學生分析問題,解決問題的能力。并且能夠運用所學到的理論知識解決現實中的問題。因此,僅僅依靠傳統的教學模式,顯然很難取得較好的效果。
3.2 實踐編程能力不強
算法是《數據結構》的重要組成部分,在教材中的每一小節都有多個算法,這些算法通常采用類C語言等某種高級語言的偽代碼形式描述,學生首先需要在理解教材上偽代碼描述的算法基礎上,然后再將這些偽代碼轉換為計算機上能運行的程序。通過多個班級的教學實踐證明,很多學生理解教材上的偽代碼往往比較容易,但要將這些算法轉換為能在計算機上運行的程序往往比較困難。
3.3 基礎理論掌握不扎實
在《數據結構》的教學內容中,很多內容的掌握都需要數學的推導過程,例如對算法時間復雜度和空間復雜度的分析,數組,樹,圖等章節的很多內容都涉及到高等數學,線性代數,離散數學,概率論等的知識。部分學生對前述數學課程的內容不熟悉,因此,在學習《數據結構》的過程中很多涉及到數學推導的部分往往很難理解。
3.4 課程考核方式不太合理
課程的考核方式往往過分強調最終的卷面成績,而造成學生對平時實驗,平時作業等往往不夠重視。使得一部分學生平時不認真學習,僅僅依靠考前突擊幾天的形式來應付考試,這樣即便這部分學生能通過考試,但實際上并沒有學到應該掌握的知識。
3.5 學生自我學習能力不強
很多學生的學習過程往往是一個被動的過程,過分依賴于教師,被動的完成教師布置的作業和實驗,缺乏自主學習的能力,更談不上和他人共同探討,互相溝通了。這樣的學習過程使得學生學習熱情不高,自身能力很難得到提高。
4 課程教學方法的改進與探討
數據結構的課程性質對學生的理論學習和實踐動手能力都提出了很高的要求。因此,要使學生較好地掌握《數據結構》的知識,需要教師充分利用好課堂教學時間,不斷改進教學方法,還需要學生在課后認真鉆研,和教師充分互動,才能獲得較好的效果。在此,結合作者近年來對多個班級《數據結構》的教學經驗,針對以上提出的問題,進行以下探討。
4.1 改進傳統教學模式
以教師講授為主,學生作為“聽眾”的傳統教學模式顯然很難獲得較好的教學效果。在新形勢下,教師應發揮自身的聰明才智,采取如討論式、啟發式,案例式等多種教學手段,充分發揮學生學習的主動性,改善教學效果。如在講授一個比較復雜的算法時,在講清楚教材上的算法后,讓學生分析這個算法的優點和缺點,讓學生思考還有沒有更好的解決這個問題的算法,并且在課堂上盡量多抽一部分學生表述出自己的想法,最后教師給出相應的點評。通過這種啟發式的教學方式,可以促使學生的思維活躍起來,學生不但可以充分表達出自己的想法,還可以從別人的想法中得到收獲。在課堂上,教師通過與學生之間的互動,不但可以培養學生分析問題和解決問題的能力,而且也可以改善傳統教學方式下比較枯燥的課堂氣氛,增強學生的學習興趣。
下課后,教師可以通過當面詢問,電子郵件等方式盡量和學生多交流,了解學生對課程內容的掌握情況,使得教師對學生的學習情況做到心中有數,從而促使自身的教學更有針對性。
4.2 重視實驗環節,加強學生實踐編程能力
將《數據結構》教材上的偽代碼轉換成計算機上可以執行的程序是教學中的基本要求。通過近幾年的教學發現,這一環節往往是很多學生感覺最困難的地方。很多學生對教材上的基礎知識覺得都掌握了,但一旦要求上機完成程序設計時,經常不知道如何下手。究其原因,主要是由于學生對《數據結構》的先導課《高級語言程序設計》的所學的內容不精通或有所淡忘所致,學生在學習《數據結構》以前,已經系統學習了《高級語言程序設計》的主要內容,但由于學時數或時間跨度的原因,部分學生對《高級語言程序設計》中的較難的內容:如函數、指針、結構體等,沒能很好掌握,但這些恰恰是《數據結構》實驗中經常需要涉及的內容。因此,在實驗課的前期階段,首先應督促學生復習《高級語言程序設計》的相關內容。并針對教材上的某個算法,給出相應的實現程序,作為學生完成程序設計時的參考,學生首先通過這種模仿,比較的方式,就能對《數據結構》的程序設計開始知道該怎樣入手。通過實驗地不斷進行,學生的實際編程能力也就慢慢得到提高了。
針對不同專業的學生計算機基礎不同,能力和水平差別較大,因此,實驗題目的安排可以分開層次,注意難易搭配。比如在安排某一章實驗題目的時候,可以給出簡單,中等,較難的難易程度不同的幾個題目,供學生選做。學生可以根據自身的情況,選擇較難或者較易的題目。通過這種方式,可以使每一位學生都能夠上機編程,完成相應的題目,從而提高自己實際編程能力。
對于部分基礎比較好,能力較強的學生,可以開設“數據結構”興趣小組,對于興趣小組的成員,可以安排難度更大的課程設計供其完成。小組成員通過互相溝通,共同探討,可以達到共同提高的目的。通過這種方式,不但可以使優秀學生的編程能力得到進一步提高,而且培養了學生的團隊協作精神,為以后的工作和學習打下了基礎。
4.3 加強基礎理論教學,培養學生研究能力
《數據結構》教學內容中有很多理論性較強的內容,如算法的復雜度分析,Hanoi塔問題,數組,樹與等價問題,樹的計數,圖論等相應內容。這些內容很多都是后續課程,如《算法分析與設計》、《計算復雜性》、《圖論》等的基礎理論知識。因此,教師一定要重視《數據結構》中基礎理論的教學,對比較復雜的理論知識認真加以講解和推導,使得學生能夠熟練掌握這些內容,為今后的進一步學習打下堅實的基礎。針對這些理論知識,教師可以鼓勵學生多看其他的參考書和學術論文,增強學生的自我學習能力。甚至可以鼓勵比較優秀的學生寫出學術論文發表,培養學生的科研素養,為今后的深造打下堅實的基礎。
4.4 改革考核方式
改革以往過于強調最終卷面成績的考核方式,加大平時實驗,課后作業,半期考試等在最終成績中的比重。使得平時不認真學習的學生很難通過考試,促使學生平時更加努力學習。在卷面考核時,除了進行教材上基礎知識的考核外,還要有一些比較靈活的題目,這樣可以培養學生分析問題,解決問題的能力,而不僅僅是對教材上一些知識的簡單記憶。
5 結論
《數據結構》作為一門非常重要的專業基礎課,其教學質量的好壞直接影響了計算機及其相關專業人才培養的素質。作者針對課程理論性,實踐性均較強等特點,結合近幾年來的教學實踐,提出了一些可供參考的教學思路。這些思路在近年來的教學中加以應用,學生的各方面能力都得到了提高,取得了較好的效果。
參考文獻:
[1] 夏英. 數據結構課程教學改革探析[J]. 重慶郵電大學學報(社會科學版),增刊,2007(6):171-172.
[2] 王力, 侯燕玲. 計算機專業《數據結構》考核方案設計與實踐[J]. 中國成人教育,2007(12):161-162.
[3] 顧紅生, 曲娟. 關于數據結構課堂教學模式的研究[J]. 遼寧廣播電視大學學報,2007(4):44-45.
[4] 唐浩坤, 劉宴兵. “數據結構”課程教學改革與實踐[J]. 重慶郵電大學學報(社會科學版),增刊,2007(6):168-170.
[5] 張麗, 崔斌, 劉寶旨, 宋國建. 中國科教創新導刊,2007(475):32.
[6] 嚴蔚敏, 吳偉民. 數據結構(C語言版)[M]. 北京:清華大學出版社,1997.