□徐天為
(山西林業職業技術學院,山西 太原 030009)
《數據結構》在計算機專業中是一門邏輯性強、抽象性高的專業基礎課,是介于數學、計算機硬件和計算機軟件之間的一門綜合性核心課程,主要研究非數值計算的程序設計問題中計算機操作對象以及它們之間的關系和操作等。《數據結構》也是一門理論性很強的課程,學習《數據結構》可以為理解程序、應用和開發程序提供技術和方法支持,進而使學生學會使用計算機有效地組織、存儲和處理數據來解決實際問題的方法。
高職教學的主要目標是培養高級技術應用型人才,實踐能力的培養是重中之重,《數據結構》卻重在理論。而高職學生的自身特點決定了理論性課程的教學難度較大,其概念的抽象性、算法的經典性和復雜性、描述語言的先進性,導致在教學中,理論教學和實踐教學不能很好的結合起來,加上學生的基礎薄弱,學習起來難度特別大,被認為是高職計算機課程中最難學習的課程之一。
“C語言程序設計基礎”是數據結構的前導課程之一,學生對C語言程序設計的掌握程度直接關系到數據結構課程的課堂授課和上機實驗的教學效果。“程序設計基礎與C語言”是學生接觸到的第一門編程語言,編程思想與以往的思維方式不同。其中,指針、結構體和數組等知識點是“程序設計基礎與C語言”中的教學難點。通過一學期的學習難以熟練掌握融會貫通并具有較高的編程能力,對函數、函數的返回值、函數的參數、調用的理解也不夠深入,對遞歸及遞歸過程更是難以理解。致使教學效果不理想,學生甚至喪失對該課程學習的興趣和信心。這些知識點在數據結構課程中會頻繁應用,而熟練掌握這些知識點是在數據結構課程中理解理論算法和完成上機實驗的重要保證。
《數據結構》課程本身邏輯性強、抽象性高。因此在多年的教學實踐中發現, 學生認為這門課程理論性太強、不好學,學了不知有什么用、怎么用;當面對具體問題時,不知該如何應用學過的知識來給出切實可行的解決方案以及編制程序,得到正確的結果。
要解決上述問題, 首先要加強理論教學,教師在教學過程中盡量多采用一些動態效果來描述算法的思想,使學生易于接受和理解, 并加深印象;其次盡可能多地將前后內容聯系起來從中尋找一些規律進行歸納提煉和使其系統化,使學生能較好地理解各個知識點間的聯系,從而“削減”課程的復雜度;最后通過合理、有效地設計實驗內容,來強化理論教學的效果。具體措施如下:
熟悉相關課程的知識點。授課前要了解學生的前導課程“程序設計基礎與C語言”的學習掌握情況。應與“程序設計基礎與C語言”的授課教師做好教學的溝通工作,做好課程之間的銜接,將數據結構課程中經常用到的知識點重點講授并加強上機實踐。在講數據結構算法之前復習C語言中的指針、結構體和函數等知識點;布置涉及這些知識點的課外編程作業,通過作業批改發現學生存在的問題然后集體重點講解;要求學生在課余時間認真復習C語言,在本課程的教學過程中,同時設置、討論、檢查C語言相關內容題目,穿插教學、溫故知新。
采用授課與設問相結合的教學方法,提升學生的學習興趣。教學中強調學生思考,針對基礎不同的學生采用不同提示和設問,提高學生的學習信心。除此之外,還應根據學生對基礎內容的掌握情況來設計上機實踐內容,采用對不同學生進行不同提示和設問的教學方法,在實驗過程中充分發揮每個學生的思維能力和實踐能力,通過實驗, 使每個學生都有不同程度的收獲,以提高他們對該課程學習的自信心。
通過實例教學調動學生學習興趣。所謂“實例教學”,就是對課程中的重點、難點內容,選配適當的例題、運用恰當的比喻進行演示和說明,把抽象的內容具體化、形象化,幫助學生理解掌握這些內容,并適當加以引申,引導并激發學生作進一步的思考和探索。在教學過程中, 應結合學生實際,結合日常生活中實例的現象進行比喻說明,使用更加通俗、形象、生動、直觀的教學語言和教學方法進行講授,注重激發學生的學習興趣,更有效地幫助學生理解和掌握課程內容。通過比較有趣的實例,學生可以較容易地理解一個較復雜的知識點,在理解的過程中獲得成就感,從而更大程度地激發他們的求知欲望,逐步形成一個良性循環的學習過程,激發繼續學習的欲望。
例:在講解棧和隊列的概念時,分別舉出日常生活中的事例。如棧的例子,穿、脫衣服時, 一層一層往身上穿相當于進棧,脫衣服時,又反過來一層一層地向外脫相當于出棧。隊列的例子,在公交車進站時, 按照先后順序依次進行排隊等候,相當于進隊;公交車出站時,又從站內一個接一個地出站,相當于出隊。人們為了購物時所排的隊就是一個隊列,新來購物的人接到隊尾( 即進隊),站在隊首的人購到物品后離開( 即出隊),當最后一人離隊后,則整個隊列為空。
設計綜合性實驗內容, 提高學生實踐創新能力。綜合理論教學和實踐教學的結果, 組織學生以小組為單位,布置綜合性的題目, 或者由學生自己尋找感興趣的題目,教師引導學生全面、綜合地運用所學的基礎知識來解決實際問題, 如開發一套具有借書、還書、查詢、統計等功能的圖書管理系統;或編一個學生愛玩的游戲等,使學生進一步掌握數據結構的應用和軟件開發的方法, 提高學生分析問題、組織數據、解決實際問題的能力。學生在整個過程中,可以相互討論、交流,充分發揮學習積極性, 發揮團隊精神,共同進步。實驗過程中,及時了解學生對知識的掌握情況、題目的完成情況和學生意見, 有利于及時調整教學方法,提高教學效果。
注重知識點的分類比較、適時總結。《數據結構》課程中很多內容是具有類比性的, 在具體教學過程中需要把握這個特點, 充分挖掘出內容相關的知識點進行分類對比。如對于《數據結構》內部排序的學習,總共要講述近十種排序方法,對于每一種排序方法都要講清楚排序算法的執行原理、算法的執行效率、算法的執行步驟以及所需存儲空間的情況。在教學過程中可以對所有算法從時間復雜度、空間復雜度、穩定性等方面進行列表、歸類、對比;然后給出具體的一組待排序數值序列用不同的排序方法通過多媒體演示的方法分別進行排序,學生就可以輕松掌握各種排序方法。《數據結構》課程中有很多內容是層層遞進, 前后聯系的, 應做到舉一反三,適時總結。這就要求在教學過程中要承前啟后、不斷總結、及時復習、注重理解,把有聯系的內容相互串聯起來形成一個完整的知識體系。
就業為主導,推行證書教育。高職學生的教育是以就業為主旨的,從“一切為了學生的學習和就業”的角度出發,應努力推行證書教育,為學生的高質量就業增加一個砝碼。目前計算機行業中最權威的認證就是“全國計算機技術與軟件專業技術資格(水平)考試”, 而《數據結構》是考試的重要內容,因此可以推薦學生參加此類資格考試。考試中的大量算法均來自《數據結構》這門課程。所以在《數據結構》教學過程中,根據資格考試的大綱要求,切合學生實際,增加部分教學內容,讓學生為參加資格考試提前準備。
由于《數據結構》課程在計算機專業課程中的重要性,及其較強的理論性和實踐性,通過進行合理、有效、系統地組織教學及實驗,形成一個以教學方法、內容和手段為一體的教學體系的改革,才能有效地提高教學效果,進一步提升學生學習《數據結構》的積極性,提高分析問題和解決問題的能力。
參考文獻:
[1]嚴蔚敏,吳偉民.數據結構(C 語言版)[M].北京:清華大學出版社,1997.
[2]嚴蔚敏,吳偉民.數據結構習題集(C 語言版)[M].北京:清華大學出版社,1999.
[3]李春葆.數據結構教程(第3版)[M].北京:清華大學出版社,2009.