摘要:本文介紹了數據結構在計算機專業課中的重要地位,根據應用技術型大學的主要任務,總結了數據結構課程在以往教學過程中存在的問題,提出了改進的辦法,并在教學實踐中取得了較好的效果。
關鍵詞:應用技術型大學 數據結構 教學方法改進
一、以往教學中存在的主要問題
1、前導課程不扎實
目前大多數高校選擇c語言作為數據結構的前導課程。學生對c語言的掌握和熟練程度,直接關系到數據結構課程的教學效果。同時,c語言也是計算機專業新生學習的第一門程序設計課。對于初入大學的新生來說,一方面他們還沒有完全轉變高中時代的思維模式、適應大學的學習方法,另一方面由于c語言本身具有相當的復雜性,使得c語言對他們來說,也是一門學習難度大,不易掌握的課程。
2、實踐環節重視程度不夠、缺少反饋機制
數據結構的教學主要包括線性表、棧和隊列、樹、圖、排序和查找這5大知識模塊,在使學生理解各類數據結構的邏輯結構的基礎上,還涉及到順序存儲結構、鏈式存儲結構及其上的各種相關操作的實現。理論教學任務量大且內容抽象,原有培養方案沒有配置足夠的實踐課時,一方面教師無法給予每個學生足夠的指導,影響學生動手能力的培養,學生難以真正理解課堂上的知識點。另一方面教師無法及時對學生提交的作業給出反饋,最終導致學生學習興趣下降、教學效果不理想。
3、考核方式單一
數據結構課程的考核方式大多為期末筆試加平時成績,平時成績則以上課出勤、課后作業及實驗報告組成。由于不少學生在學習方法上存在問題,遇到困難時采取抄襲的方式,而不是通過思考來解決問題。因此,傳統的考核方式的單一性、不公平性也影響了課程教學效果,導致學生學習動力下滑。
二、當前課程教學改進
要使學生學好數據結構,首要解決的問題應是:“數據結構有什么用”。只有這個問題得到解決,學生才有學習的動力和興趣。因此,在課程教學中要始終貫穿一個主線:“有什么用”以及“怎么用”。運用靈活的教學方式,精心組織教學內容,特別加強實踐教學,引導學生從被動接受轉變為主動學習。
1、鞏固前導課程,探索一體化教學新模式
針對學生c語言基礎差的問題,可以在數據結構開課初期,利用實驗課進行c程序設計專題復習,鞏固數據結構算法中常用到的例如:數組、函數、指針、結構體這些知識點。教學實踐證明這種有針對性的專題復習對學生后續的學習幫助很大,例如學生理解了為什么用typedef關鍵字,為什么要用結構體,它和數組有什么不同,引入結構體數組能解決什么樣的問題,動態分配內存的malloc函數是怎么運作的,有了這些基礎知識,學生在閱讀代碼時變得輕松了很多,對算法的理解和應用能力也隨之提高。
2、改進教學方法和教學手段,突出實用性
數據結構這門課程主要介紹線性結構、樹形結構和圖形結構這三大基本結構的邏輯結構、存儲結構和基本操作,這些理論知識涉及的概念、算法比較多,自成體系并且很抽象。學生如果不理解這些概念則很難記住,更談不上應用,很快失去學習信心。因此,上好第一節課非常關鍵。通過引用和學生生活聯系緊密的、有趣的問題,闡明數據結構研究的對象,激發學生的學習熱情。
3、變“宣講課”為“互動課”,增強主動性,強調協作性
許多學生對于理論性強的內容會很快失去學習興趣。教師如果不注意學生的反應,只在講臺上進行“宣講”,學生既沒有學會知識,又浪費了寶貴的課堂教學時間。為了使學生能夠保持學習注意力,需要增加課堂互動環節,讓學生參與到課堂教學中來,可以采用例如教師提出問題,引導學生分析問題,讓學生解決問題,最后由教師總結。又例如,由教師布置任務,學生單獨或組成小組完成任務,再由教師評價效果,激勵式教學。
4、增加口試環節,增強靈活性
專業課口試,是國外很多大學最常使用的考試方法之一。口試不但可以檢驗學生最真實的學習效果,同時也鍛煉了學生應變能力和口頭表達能力,對學生將來升學和就業面試是一個很好的鍛煉。口試的時間一般在10至30分鐘,采取一對一或一對多的方式進行,但一組最多不超過5人。口試時,由教師隨機提出問題,指定學生回答,或由學生自由回答,教師進行記錄。對有分歧的答案,教師請學生進行辯論和說服,最后由教師進行評價。
5、運用多媒體手段,增強生動性
制作精良的課件可以生動、形象、靈活的呈現算法執行的過程和數據結構的動態變化。例如:鏈表的插入、刪除過程,二叉樹的構造過程,圖的最短路徑等,可以通過動畫將每一步的變化表示出來,并且配合上與這個變化相對應的關鍵c語句操作。通過視覺的刺激進一步增強學生對概念的理解,將抽象的內容具體化,讓學生明白每一個操作可以用怎樣的c語句來實現,而不是一段枯燥的、靜態的代碼。除了電子課件,教師還應指導學生使用網絡資源,擴充知識面,深化知識點,跟蹤學科發展前沿。
三、結束語
本文根據應用技術型大學對計算機專業人才培養的要求,提出了數據結構教學改進的具體方案,并且在實際教學加以應用,實踐證明該方案顯著提高了教學效果。在今后的教學工作中,還將不斷進行探索,進一步提高教師的教學水平,使學生掌握軟件設計領域的思維方式,形成良好的程序設計習慣和扎實的軟件開發基礎。