摘 要 文章根據數據結構課程理論性和實踐性強的特點,針對獨立學院學生普遍認為數據結構難學,從課堂教學模式、上機實踐內容設置等幾個方面介紹了數據結構課程教學體系的實施過程及實施效果。不僅有利于培養學生學習興趣,而且有利于培養學生分析問題與解決問題的能力,為學生奠定了扎實的軟件開發基礎。
關鍵詞 數據結構 教學模式 層次化教學
中圖分類號:G424 文獻標識碼:A
1 數據結構在本科生教學中的地位
數據結構是計算機學科本科教學中的核心課程,課程知識豐富,內容抽象,實踐性強,主要研究各種基本的數據結構在存儲器中的映像和各種基本操作在相應的存儲映像上的實現。學習本課程旨在使學生增強分析計算機所加工數據的數據結構特性,選擇合適的邏輯結構、存儲結構和相應的算法的能力,并初步掌握算法的時間效率分析和空間效率分析的技術,編寫出高效的程序。①
數據結構作為實踐性很強的計算機專業基礎課,在計算機科學教育中有著重要的地位和作用。美國IEEE和ACM的教學計劃均把算法與數據結構類課程列為計算機以及信息技術相關學科專業的本科必修基礎課程。②
2 數據結構教學體系的實施和效果
數據結構課程內容比較抽象,教學中長期存在一部分老師重理論輕實踐的現象,即使老師花費很多時間備課和授課,卻經常出現學生只能大致明白算法思想,而無法真正實現算法的情況,學生逐漸對這門課程的學習失去了興趣和信心。
由于我院的授課對象是三本學生,如果只是枯燥地介紹各種數據結構以及算法實現,學生很難理解并掌握相應知識點,最終只能勉強應付考試,而失去了學習該門課程的真正意義。為了實現課程的教學目標,使學生不但掌握數據結構的基本理論知識點,更要掌握各種經典算法,學會分析實際執行的算法,培養學生創造性地應用各種數據結構和算法,解決實際的應用問題的能力,以及探索和創新能力。針對我院學生的特點,在教學中采取層次化教學,既要培養多數應用型人才的實踐能力,又要培養少數研究型人才的科研能力。
2.1 強化實踐,注重培養能力
數據結構是一門理論性和實踐性都很強的課程,培養學生的實踐能力是教學的首要目的,理論知識的傳授是為提高實踐能力的,因此必須通過上機實驗來加強實踐能力。由于學生的學習主動性和學習能力各不相同,為了達到因材施教的目的,每個上機題目既要考慮學生總體的動手編程能力,又要考慮學生的個體差異,上機內容采取層次化思想。上機題目中包括了基礎性、設計性和綜合性實驗,各種類型的上機題目之間存在著承接關系。經實踐證明,采用由淺入深的上機實踐環節,既有全體學生都能順利完成的基礎驗證性題目,可以鞏固并深化理論內容,實現教學要結合實際應用的特點,又考慮到學生專業特點和個性的設計綜合題,培養了學生獨立運用所學知識解決實際問題的能力,最大程度挖掘自身潛能。
2.2 注重引導學生思考,采用多樣化的理論教學
課堂教學應把學生放在一種根本的、重要的位置上,從根本上確立以學生為主體的地位,把學生看成是積極的、富有創造性的程序語言使用者,而不是被動的接受者。為了避免傳統的學生被動地接受書本知識的教學模式,在數據結構的教學中,采用“問題”組織教學,包括問題設置、學生通過思考和討論提出解決方案、教師對學生的解決方案的評價并給出最佳解決方案。這樣可以把課程的知識點轉化為對某個問題的求解過程,使學生通過解決問題掌握知識。強調學生在學習和發展中的主體性和潛力的發揮,同時又不忽視教師的主導作用,通常采用小組協作式、個別化等教學形式或采用多種教學形式組合起來進行教學。數據結構教學的過程,實際上就是師生互相協作的一個過程。在課堂教學中充分發揮學生的主體性,讓學生主動積極地去學習。
在教學方式中,如果只通過傳統的黑板加粉筆的教學模式讓學生通過腦海中執行靜態的程序代碼來了解數據結構的動態變化,這種方式缺乏直觀性效果,難以充分展示算法的動態變化過程,學生難以想象數據之間的復雜關系。因此要充分利用多媒體教學課件動態地演示各種數據結構和算法,把知識生動、形象、動態地呈現給學生。
2.3 加強前導課程復習
學習本課程前學生雖已學過C語言程序設計與離散數學,但僅僅是初步掌握,并不精通,不能熟練運用程序設計語言進行編程。很難將算法轉化成程序設計語言中的函數并編寫出調用該函數的主函數,有的同學甚至直接將算法放到機器上運行,這是擺在學生面前的難題。針對以上情況,在開始講授數據結構前,都會將之前學習的C語言程序設計中的數組、指針、函數、結構體和離散數學中的樹和圖相關知識進行復習,然后再開始學習數據結構。對于課程中的算法,除了講解之外,部分算法在課上都會寫出完整的源程序并運行,使學生理解算法和源程序之間的關系。
2.4 激勵個性化學習,改革考核方式
在教學內容和實施上,適當考慮多樣性和靈活性,對于應用型人才著重培養學生通過典型數據結構和算法實現的學習和訓練,逐步掌握根據實際問題分析數據和數據結構,設計相應的運算和處理算法。對于研究型人才著重培養學生建立數據結構與算法的思維方法,形成數據結構和問題求解的知識體系,理解抽象的概念和復雜算法。對于能力較強的同學,可以選擇一些數據結構應用等高級主題予以介紹,例如紅黑樹、伸展樹、后綴樹等復雜結構。學生在將來的科學研究和工程項目實踐中將廣泛接觸到這些實用的數據結構和算法技術。
為了體現上機實踐對該課程的重要性,我們在數據結構課程考核中采取重視上機實踐成績的考核方式,即平時成績30%(其中上機占20%)+期末考試成績70%的形式對學生學習成績予以評價。
3 結語
以“學”為中心的教學設計,設計起來容易,因為那只是做一些決策。難在具體地教學實施。只有在教學實施過程中才會檢驗出教師是否真的堅持以“學”為中心的教學。教學過程中,以學生為主體,教師為主導,讓學生體會到數據結構是一門與實踐緊密聯系且非常有趣的課程。通過數據結構的學習提高了學生的邏輯思維能力和數據抽象能力,提高了設計高質量程序的能力,為學生奠定了扎實的軟件開發基礎。
注釋
① 季曉慧,王群,管建和.“數據結構”課程教學初探[J].中國地質教育,2009(1):149.
② 張銘,許卓群,楊冬青等.數據結構課程的知識體系和教學實踐[J].計算機教育,2004(2):89-91.