摘要:結合教學實踐,在分析目前數據結構課程教學現狀的基礎上,以激發學生學習興趣入手,提出相關教學改革內容和教學改革手段。該文研究的成果通過在長期的教學實踐中的應用,在實踐教學中取得良好的效果,得到學生的好評。
關鍵詞:數據結構;教學現狀;教學改革;學習興趣
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2011)04-0954-02
Research Educational Reform about \"Data Structure\" Course
ZHAO Xiao, SUN Lian-shan, WANG Xiao-xia
(Electrical and Information Engineering College, Shaanxi university of Science Technology, Xi'an 710021, China)
Abstract: Depending on teaching practice, and on the base of analysis the present teaching construction of data structure course, stimulating the student's interest, we bring up educational reform about contents and methods. The achievement of this paper studies has a good shows in practice teaching, and Obtained many student's commendation.This article studies the achievement through in the long-term teaching practice's application, makes the good progress in the practice teaching, obtains student's high praise.
Key words: data structure; teaching present situation; educational reform; study interest
數據結構是計算機科學與技術專業的重要專業基礎課,在整個課程體系中處于承上啟下的核心地位,它一方面擴展和深化在離散數學、程序設計語言等課程學到的基本理論和技術,另一方面為進一步學習操作系統、編譯原理、數據庫等專業課奠定理論與技術基礎。
數據結構課程能夠培養學生的抽象思維能力、邏輯推理能力,鍛煉學生分析問題、解決問題的能力,使學生從對程序設計語言基本語法以及離散數學的抽象理論的學習逐漸過渡到對解決實際問題、進行大型、復雜軟件程序開發所需要的專業理論和技術的學習上來,是激發學生對專業課學習興趣,樹立專業自豪感的關鍵。如何激發學生的興趣,讓學生愛上學習《數據結構》,是目前數據結構教學中值得任課教師思考的問題,如何培養學生理論聯系實際,應用所學知識分析問題、提出方案、改進、總結提高再到創新,樹立創新意識和信心也是教師義不容辭的責任,所以有必要對該課程進行改革,讓學生學好《數據結構》,并能應用好《數據結構》。文章以目前該課程教學的現狀入手,提出教學改革的內容和方法,最后總結改革的成效。
1 課程教學研究的現狀
數據結構課程的學習非常重要,但目前本課程在教學和學習中存在很多需要解決的問題。我們在教學過程中發現,學生在剛剛接觸這門課的時候不知道怎么去學,對學過的知識也不知道怎么應用,而教師也在如何將抽象的概念和枯燥的算法如何準確、生動、高效地傳達給學生的問題上,通常是絞盡腦汁、費勁口舌、反復講解但效果卻并不理想。
通過實踐教學觀察、與學生談話交流以及理論分析等手段,我們發現造成這種現狀的原因大致來自三個方面:
1) 課程本身的特點。
在長期的教學過程,我們總結出如下的特點: ① 內容抽象且繁多。課程內容的抽象程度較高,主要體現在基本概念很多,而且比較抽象難以理解,抽象數據類型以及算法本身并不特定于某一個程序設計語言,且數據結構常常以數學符號表述,這都給學生理解和學習造成了障礙;② 課程內容的邏輯性強,各種數據結構之間存在許多內在的聯系,但又自成體系、較為獨立,如一方面樹、圖等以線性表、棧和隊列為基礎,又廣泛用于查找和排序之中;③ 綜合性強、技巧性強,數據結構課程綜合了計算機硬件、數學、以及計算機軟件的知識,各種算法中凝結了近半個世紀的大量杰出計算機科學家的智慧,綜合性和技巧性非常強,學生常常因為不能很快入門而喪失學習的信心。
2) 學生的知識和技能儲備不足。
主要體現在學生對前導課程的掌握不到位,目前大部分高校的數據結構的算法描述工具是C語言,所以前導課程一般為C程序設計,高等數學、離散數學等,尤以C程序設計為重,但在教學中發現每一屆學生都存在同樣的問題:C語言基礎薄弱。因此我們在教學過程中所面臨的現實挑戰是:一方面要在數據結構的教學過程中逐步培養和鞏固學生使用C語言動手編程、調試、閱讀程序的能力,另一方面,又要使得大部分學生在缺乏必要的C語言的基礎知識的前提下,理解數據結構的理論和神髓。
3) 教學手段單一、師生溝通渠道有限、教學工具和素材欠缺。
首先,傳統的教學方式以“一言堂”為主,教師講授是整個課堂教學活動的主線,雖然也有課堂練習、提問、鼓勵學生提問等形式活動的穿插,但由于課程內容有一定的難度,同學往往不能正確回答問題、或不能恰當地提出問題。其次,師生之間溝通的渠道非常有限,常常是課上學生不會提問、課下學生找不到教師提問。第三,教學工具只是簡單的黑板和粉筆以及少量幻燈片,缺少算法的動態演示和網絡學習等多媒體手段,教學素材仰賴于各個教師多年教學活動的積累,教師之間的經驗和素材的交流較少,教學素材的數量以及難度分級都非常隨意。
上述內容是《數據結構》課程教學中存在的一些現實問題,我們通過優化教學內容、改進教學手段、豐富師生溝通渠道、建設教學工具和教學素材庫、完善考試考核等方法,達到改善教學效果、提高學生綜合應用的能力。
2 本項目研究的內容
依據對陜西科技大學計算機科學與技術專業數據結構教學現狀的分析,我們從以下幾個方面實現對本課程的教學改革:
1) 優化教學內容和教學方法,提高面授效果。
針對數據結構基本概念多且抽象的特點,在教學中引入案例教學法,以學生已有知識結構和生活常識出發,形象生動的講解概念,這樣不僅學生容易接受而且開拓學生的思維。讓學生的學習做到有的放矢。
比如參考文獻[1]的第1章緒論里,基本概念一節中闡述的內容包括有:數據結構,邏輯結構、存儲結構等概念。學生剛剛接觸數據結構,教師如果對這些概念的講解處理不好的話,學生是難理解清楚這些概念以及它們之間的聯系與區別的,而且很容易讓學生產生畏難心理。實際教學中,我們引入學生熟悉的成績表,相信學生會在輕松的教學環境中學習新的知識。針對上面提到的三個概念,引入的案例是:學生成績表。有一張記錄某班學生各門課程成績的成績表,表中每一行(每條記錄)包括學號、姓名、性別和各門課程成績。容容 例如,有一張學生成績表記錄了某一例如,有一張學生成績表記錄了某一個班級的學生各門課程的個班級的學生各門課程的成績,這張表的每一成績,這張表的每一行(即每條記錄)包括學號行(即每條記錄)包括學號、姓名、性別及各門課程的成績。這張表是包含多條記錄的一個集合,每條記錄就是一個數據元素,各數據元素之間按照學號順序排列,所以這張就是數據結構。這里把數據元素用結點表示,分析整張表,第一個結點沒有前驅結點,最后一個結點沒有后繼結點外,其他的結點有且只有一個直接前趨和直接后繼。這種關系就這張表數據元素的邏輯結構。緊接著提出:如何把這張成績表中的數據元素存儲到計算機里,對于數據元素之間的邏輯關系用高級語言又該如何表示呢?是用一片連續的內存單元來存放這些記錄(如用數組表示)還是隨機存放各結點數據再用指針鏈接呢?這就是存儲結構所討論的問題。到此,學生對這3個概念有了一定的印象,教師及時總結并引入課本的概念,進一步加深學生的理解。
通過案例教學法,學生通過討論和老師的引導,在輕松的教學氛圍中快速掌握所學的知識。
對于算法的講解,根據數據結構在數據類型定義和算法設計中均采用類C形式描述這一特點,又因學生對C程序設計掌握的欠缺,故而對算法的理解和掌握有困難,單一的通過算法講解算法不如用圖形描述更直觀。為此引入算法的動態演示系統,增強算法的直觀性,提高教學效果。
2) 激發學生學習的興趣,鼓勵學生對教學內容提出問題,師生共同討論,提高教學和學習水平。
興趣是學習的動力,如果學生對本課程產生極大的興趣,學生學習的自主性自然就有了。由此可見,學生學習興趣的培養是至關重要的。培養學生興趣的方法很多,我們課題組將從以下幾個方面實現:① 將工程應用融入到教學中,讓學生了解到所學的內容在實際工程中的應用,消除學生不知為什么要學的疑慮;② 鼓勵學生在學習過程中不拘于以往的解法,對同一個問題可以提出不同的解法,深化對問題的理解;③ 將獎勵的方法應用于教學活動中,比如:布置給學生的實驗任務或課后思考題,對完成好的同學,在課堂上發一些諸如本子、圓珠筆等小禮品,以此鼓勵。對于大實驗做的好的同學采用加分的措施激發學生學習的興趣。對于一些教學任務事先將內容布置給學生,在課堂上以討論的方式讓學生參與到教學中來,相信會很好的調動學生的積極性。
3) 精心選擇習題和上機實驗題,著眼于基本知識的理解和基本編程能力的培養。
通過我們對同學的調查,發現很多同學存在課上聽懂了,課下不會做題的情況,另外學生最怕的是老師讓他們寫算法,以及上機調試程序。針對這一現象,我們通過一些精選的習題和實驗題,學生首先做題然后通過習題課對習題進行精講,對學生存在的問題集中解決。實驗題目要求上機前一定要寫好程序,甚至課下用自己的電腦對程序進行調試,上機時逐個給老師講解程序的實現算法及實現過程以及實驗的結果,并對結果進行解釋說明。通過這些方法提高學生對基本知識的理解水平,培養學生的編程能力。
4) 本著“精講多練”的原則,改進考核方式。
傳統的考試模式是閉卷考試,學生期末的考試成績=卷面成績的70%+實驗成績的20%+平時成績的10%。這種考試模式看似合理但還是存在一些弊端,主要體現在:一份試題很難做到對學生所掌握知識的全面考核,而且試卷內容可能偏重于理論知識的考核,很難反應出學生的實際水平;實驗成績給分僅憑借實驗報告顯然是不科學,應該加大學生實驗過程的考核。對考核方法的改革,我們打破傳統的考試模式,除了閉卷考試外,加入實際問題解決能力考核部分;對于實驗的考核采用實驗考核一對一的方法,教師更注重的是每位學生對實驗任務的分析過程,實現方法和結論的考核;同時加大對平時習題完成情況的考核力度,并將其考核的結果加入到最終的考試成績中,讓學生懂得考試僅僅是一種手段而不是學習的目的。
3 課程改革的成效
以上教學改革的方法,在我校兩屆學生數據結構課程實際教學活動中的應用,通過調查有85%的同學表示對該課程產生極大興趣;78%的同學認為案例教學、工程應用等多種手段引入到實際教學中,消除他們學習的盲目性,建立良好的學習自信心,提高了學習的積極性;通過精選習題的練習、講解以及實驗題目的上機,加大實踐教學的考核力度,公平公正的評判學生對課程的掌握程度。在傳統教學的基礎上,以學生作為教學活動的主體,形成學生自主學習、合作學習、研究性學習和探索性學習的氛圍,為學習后續課程打下堅實的基礎。
參考文獻:
[1] 嚴蔚敏.數據結構(C版)[M].北京:清華大學出版社,2006.
[2] 顧紅生,曲娟.關于數據結構課堂教學模式的研究[J].遼寧廣播電視大學學報,2007(4):44-45.
[3] 徐金梅,羅劉敏.《數據結構》教學方法研究和探討[J].現代計算機,2007(8):78-80.
[4] 徐建民.數據結構實驗教學ICAI系統的構建[J].實驗室科學,2008(3):93-94.
[5] 楊曉燕.“案例”驅動的“計算機網絡”課程教學改革探索[J].計算機教育,2007(18):89-90.