姜 華,林加華,周萬府
(楚雄師范學院計算機科學系,云南 楚雄 675000)
《數據結構》是高等院校計算機專業的核心課程,也是從事軟件開發和應用人員必備的基礎課程,其研究思想和研究方法在計算機科學中許多有深度的研究領域得到廣泛的應用,為學生今后從事理論研究、應用開發和技術管理工作提供了堅實的理論基礎。[1]然而,由于課程內容本身具有一定的難度,既具有如抽象數據類型描述等的抽象性和存儲類型實現的多樣性,又具有算法設計的思想性和技巧性,還具有算法到源程序轉換的靈活性和具體調試運行的工程應用性和嚴密性,學習內容較為豐富,知識量較大,掌握和運用的技巧性要求也較高,加上課程內容涉及前導課程如程序設計語言、數學等方面知識,出現了教師在教的過程中難教,學生在學的過程中難學的兩難境地。[2]為了更好地培養學生的學習興趣,有效地激發學生的學習激情,顯著地提高學生的學習主動性,筆者在數據結構課程教學過程中,探索性地采用了一些新的教學方法。實踐結果表明,教學效果有明顯提高。
目前,高等院校大都選用清華大學嚴蔚敏的《數據結構》作為教材,該教材涉及高等數學,計算機硬件和軟件的相關知識。大多數學生在大一學習C語言的時候往往不能打下堅實的基礎,在閱讀、理解和上機實現類C語言算法時顯得特別困難。由于缺乏實際的應用經驗,許多同學在課后反映學完這些算法后不知道能用在什么地方、可以解決什么問題。即使有少數學生能夠完全掌握教材上所講的知識,但在遇到實際問題時,也不能抽象出待解決問題的數據模型,不能將所學的知識應用于實際。學生中普遍存在類似的困惑,在一定程度上阻礙了學習該課程的激情。
教學過程中大多采用多媒體課件教學,而課程涉及大量的概念和算法,理論性強并且抽象,特別是算法的描述和執行過程無法在課堂上詳細介紹和演示,缺乏有效的互動,學生似懂非懂,課后又無法及時地上機實踐,從而導致教師講的知識多,而學生吸收的較少,上機實踐時效果不明顯,久而久之,學生也對這門課失去了學習興趣。
高等院校普遍開設“C語言程序設計”課程,但上機實踐課時相對較少,課余時間主動練習的同學為數不多,因此學生對其中較難的知識點諸如結構體、指針和函數掌握得不夠熟練,在數據結構的實踐環節,學生很難用程序設計語言來實現鏈式存儲結構和編寫相關的算法,即使好一點的學生編碼完成后,反復調試但未能調試通過,久而久之對編程產生了畏懼心理,失去學習的積極性。
牢固的前導知識是學習好一門課程的前提條件,數據結構的前導課程主要有程序設計語言、高等數學、離散數學和概率論,其中離散數學和程序設計語言尤為重要。
離散數學有助于培養學生的抽象思維能力、邏輯思維能力和嚴謹規范的科學態度。在數據結構教學過程中,筆者對離散數學相關內容加以復習,使學生既感受到離散數學的重要性又建立起離散數學與數據結構的內在聯系,對學生學好數據結構課程起到積極良好的推動作用。
目前大部分數據結構教材都選用類C語言作為存儲結構和算法的描述語言。學生對C語言掌握的程度直接關系到課程的教學效果,因此,在上課前應充分了解學生對C語言掌握的情況,利用兩個課時復習相關的知識。從多年的經驗來看,重點復習的內容主要包括:(1)類型定義;(2)函數參數的傳值與傳地址引用的區別;(3)數組、指針和結構體的定義;(4)開發環境的調試。
實踐效果證明,重視離散數學和C語言前導課程的復習的班級整體效果,要比開門見山、直入課程的班級要好得多。
根據數據結構教學大綱及指定教材的要求,對教學內容去粗取精,提煉每個章節的知識體系,突出數據結構的邏輯結構、存儲結構和數據操作三個層次,按照先易后難的思想精心組織教學內容。線性表、數組、棧和隊列是學生首先學到的線性結構。這四種線性結構的順序存儲結構較為簡單,但鏈式存儲結構相對較難,因此,筆者改變了教材和傳統講授的順序,把四種結構的邏輯結構、順序存儲結構和鏈式存儲結構統一組織到三個教學單元,分三個周期講授,通過教師不斷的對比分析、歸納總結,學生既可鞏固所學的知識,又可達到溫故而知新。
在教師的引導下,以項目為主線,將課程知識點貫穿于項目的每個任務模塊中驅動學生通過模仿具體項目完成每個任務模塊。[3]這種方式使每個學生都參與到創造性的實踐活動中去,在實踐過程中理解和把握知識技能,基于此教學法,對于每一種數據結構,選取了學生通訊錄、停車場管理、五子棋游戲、文本壓縮和最短公交線路等5個基本能涵蓋教學知識點,既結合實際生活,又容易理解和接受的項目在課堂中講解分析,說明重點知識,給出設計的思路和算法的原型,然后讓學生自由組合分組實現完成。
端正學習態度,樹立必勝信念,是學生學好數據結構所必備的素質。學生在最初接觸數據結構時,會感到困難和吃力,此時,就要灌輸和要求保持一個良好的心態,樹立“我能行”、“堅持就是勝利”的信念,不斷努力,肯定能學好這門課程。特別是在實訓環節,將求解問題的算法用程序設計語言描述出來,交給計算機去執行,從而得到正確的解答結果的過程往往會相當枯燥乏味和漫長艱巨,因為在過程中的每一步都需要學生付出很大的努力才能完成。因此,要反復培養他們“我能行”、“堅持就是勝利”的信念至關重要,當他們取得了一小步進步要及時給予肯定和表揚,一旦發現知難而退,輕易放棄的學生要及時給予指導和鼓勵。只要樹立了自信心,學生就會靜下心來認真學習數據結構。通過學生自己反復摸索,逐步掌握每一個問題的求解,既要有克服困難的勇氣和毅力,也要會不斷改進學習方法,把握學習規律,靈活運用所學知識,最終必能透徹地學好數據結構這門課程。[2]
數據結構是高等計算機專業的重要基礎核心課程,也是很多高校研究生入學考試的必考專業課程之一,在整個計算機學科中具有舉足輕重的地位,然而,該課程理論性比較強,算法較為抽象,針對該課程的特點和教學中存在的問題,提出注重前導課程的復習、精心組織教學內容、項目驅動式教學和樹立堅持必勝的信念等多種措施改革教學活動,有效培養了學生的學習興趣,激發了學生的學習激情,提高了學生的學習主動性。
[1]胡志軍,王建國.《數據結構》課程教學改革與實踐[J].忻州師范學院學報,2007,(2):97—98.
[2]吳陳.提高“數據結構”課程教學質量的方法探討[J],中國電力教育,2012,(8):71—72.
[3]黃斌.對工學結合人才培養模式若干問題的探究[J].教育探索,2008, (3):83—84.