陜西服裝工程學院 付向艷
《數據結構》課程是計算機專業中一門重要的專業基礎必修課,用計算機來解決實際問題時,就要涉及到數據的表示存儲及其數據處理,而數據表示及數據處理正是《數據結構》課程的主要研究對象。它為操作系統、數據庫原理、編譯原理、單片機原理等后續專業課程的學習奠定了基礎。
《數據結構》課程的教學目標是全面系統地介紹數據的邏輯結構、存儲結構和算法實現,并介紹常用的非數值計算方法,如數據插入、刪除、排序、查找檢索等,使學生掌握各種數據結構的特點和算法思想,并能結合具體應用,運用各種數據結構和算法解決實際問題。但大部分高校《數據結構》課程的教學效果都不盡如人意,影響課程學習大致有如下原因:
1.基礎知識不扎實
現在各大高校選用的數據結構教材都是C 語言版,也就是說數據結構中的算法都是通過C 語言語法實現的,這就要求學生應該具有一定的C 語言語法知識,并且數據結構課程中算法的實現是對C 語言知識的綜合應用,所以C 語言就是數據結構課程的前導課。C 語言課程掌握程度的好壞直接決定數據結構的掌握程度,但是現在的各大高校對C 語言課程重視程度不夠,課時數不斷縮減,從而限制了授課內容。在數據結構中經常用到指針、數組、結構體等構造數據類型,但由于C 語言課程課時數的限制,致使往往不能深入地學習數組、指針與結構體,甚至結構體都講不到。因而每次開設數據結構課程時,第一節課我先了解C 語言的進度。C 語言學習的欠缺無疑給學生專業課程的學習設下了第一道屏障,從而對《數據結構》的學習興趣大大減弱。
2.實踐機會少,動手能力差
《數據結構》是一門理論與實踐并重的課程,在整個教學或學習過程中,解題能力和上機實訓是一個重要的環節。有些任課教師往往只重視理論教學,忽視實踐教學,給學生的實踐機會太少,學生學起來就比較枯燥乏味,不理解《數據結構》中抽象數據類型的定義及相應的存儲表示, 難以實現算法與程序之間的轉換。在面對實際問題時,更不能運用所學知識加以解決。
3.缺乏課外輔導,導致學生自學時障礙重重
現在學生學習的積極性普遍不高,尤其是自學能力較差,不善于自主學習,習慣于老師采用滿堂灌的方式。另外,即便有學生課外去學習,但是如果在學習的過程中遇到不理解或者讀不懂的算法,卻無從下手,從而有可能影響學生的學習積極性。
鑒于以上問題,可以從以下方面進行教學改革:
1.提高對先行課程的重視程度
首先增加C 語言課程的課時。學習計算機程序設計語言是提高學生計算機知識水平的重要步驟。C 語言是當今最為流行的程序設計語言之一,C 語言課程是數據結構課程的直接先行課,因此,本著“深入淺出,突出實用”的指導思想,在課堂教學過程中,對教學內容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。學好C 語言,為后續若干課程的學習打好堅實的基礎。另外,增加數學及線性代數課程的課時。學習算法離不開數學的思想,學習數組的存儲結構也離不開線性代數的應用。
2.實際操作方面
計算機專業要求有很高的實際操作技能,而我們的學生在長期被動的學習過程中卻養成了勤于動腦、懶于動手的學習習慣,這樣的學生將來是不能滿足實際工作要求的。因此,數據結構的實驗教學要緊密配合理論教學,通過相關實驗與課程設計,幫助學生加深對數據結構的整體理解,所以在本課程結束前安排兩周實踐,進行課程設計,不要求實現過多的項目,但每個學生都要動手操作,親身經歷從需求分析到算法分析、最后到代碼編寫與調試這樣的過程,從而更深刻地理解數據結構的邏輯結構、存儲結構以及在某種具體的存儲結構下的運算及其實現方法。
3.構建《數據結構》網絡視頻課程,加強師生互動環節
為了彌補課外輔導的欠缺,制作與《數據結構》課程內容相適應的視頻,尤其是該課程中典型的算法及其實現過程,學生在課外學習時遇到問題可隨時登錄校園網觀看視頻,進行查漏補缺,達到鞏固知識的效果。另外,在網站上可以設置在線答疑或留言功能,從而實現師生互動。
《數據結構》不僅是計算機科學與技術專業的專業基礎課,也是大多數院校研究生入學考試的必考課,因此,對《數據結構》課程教學的研討將會持續下去,最終能找到一條行之有效的教學方法。
[1]李春葆.數據結構(C語言版)[M].北京:清華大學出版社,2013
[2]嚴蔚敏.數據結構(C語言)[M].北京:清華大學出版社,2011