宋 穎 劉思遠 畢明超
文章編號:1672-5913(2009)08-0050-02
摘要:“數(shù)據(jù)結構”是計算機專業(yè)課程體系中的一門較重要的必修課程,但因其理論性強、思維抽象、理解難度較大等特點,實際教學效果往往不夠理想,因此,本文對“數(shù)據(jù)結構”課程教學過程中存在的問題進行了分析,并就如何提高“數(shù)據(jù)結構”課程的教學效果,提出在教學改革方面的一些設計。
關鍵詞:高等職業(yè)教育;數(shù)據(jù)結構;教學方法
中圖分類號:G642
文獻標識碼:B
1引言
“數(shù)據(jù)結構”是計算機專業(yè)一門重要的必修課,是高職專升本、本科考研的必考課程之一,在整個課程體系中處于承上啟下的核心地位。一方面擴展和深化在“離散數(shù)學”、“程序設計語言”(目前以C、C++語言居多)等課程學到的基本技術和方法,另一方面為進一步學習“操作系統(tǒng)”、“數(shù)據(jù)庫原理”、“軟件工程”、“編譯原理”等專業(yè)課奠定堅實的理論基礎,可以說,對“數(shù)據(jù)結構”課程的掌握程度直接影響到學生對計算機專業(yè)知識的學習。因此,我們有必要探討“數(shù)據(jù)結構”課程教學中存在的問題,并且結合高職學生的實際情況,總結設計出一套有效的教學方法。
2 “數(shù)據(jù)結構”課程教學中存在的問題
學生在學習“數(shù)據(jù)結構”這門課程時,普遍對課本內(nèi)容理解困難,對算法設計題感到無從下手,上機調(diào)試程序時更不知如何操作。對此情況我們進行了認真分析,得出如下結論:
(1) 學生對本門課程的誤解,造成學習積極性不高。“數(shù)據(jù)結構”課程是專業(yè)基礎課,但是它既不像網(wǎng)頁設計那樣生動有趣,又不像Visual Foxpro等課程直接可以應用于將來的工作中。在學習過程中,學生感到“數(shù)據(jù)結構”不過是一些理論和程序的堆砌,常常問老師:“‘數(shù)據(jù)結構學完后有什么用?”,由于學生不能正確認識該課程的作用,故學習的積極性不高。
(2)“C語言”(或其它程序設計語言)課程開設不足,為“數(shù)據(jù)結構”課程教學埋下隱患?!癈語言”(或其它程序設計語言)為“數(shù)據(jù)結構”的前導課程之一,學生對它的熟悉及掌握程度直接關系到“數(shù)據(jù)結構”課程的教學效果。
特別是對“數(shù)據(jù)結構”中使用頻率最高的C語言中的結構體、指針的認識和理解不深,對函數(shù)參數(shù)、函數(shù)調(diào)用的知識點不熟練。這些內(nèi)容在“數(shù)據(jù)結構”的教學過程中,盡管老師費勁唇舌,學生仍然模糊不清,致使教學效果不理想,部分學生還產(chǎn)生畏難和厭學情緒,甚至喪失對該課程學習的興趣和信心。
(3) 課程自身問題,導致教學效果不佳?!皵?shù)據(jù)結構”的邏輯性強、內(nèi)容抽象、瑣碎、概念多,所有內(nèi)容均自成體系,相互之間的銜接線索很少,總體感覺內(nèi)容零散,沒有一個整體的知識框架體系,特別是部分知識點和算法難于理解,大部分學生常常覺得教科書中的內(nèi)容與具體的算法相距甚遠,無從下手,甚至在課程學習結束以后,都不知道自己到底學了些什么。
(4) 實踐教學課時少,導致學生動手能力差?!皵?shù)據(jù)結構”是一門理論與實踐并重的課程,現(xiàn)在的上機課時僅為20課時,實踐教學嚴重不足。還有些教師往往只注重理論教學,把實踐教學的課時全部變?yōu)榱死碚摻虒W,這樣學生學起來更是枯燥乏味,對程序與算法之間的轉(zhuǎn)換就更難以實現(xiàn)。
3教學改革設計的實施
通過對上述存在的問題總結分析后,我們從以下幾個方面對“數(shù)據(jù)結構”課程進行了改革設計。
(1) 運用聯(lián)系的觀點闡述課程作用,激發(fā)學生學習的興趣?!皵?shù)據(jù)結構”課程是計算機體系中不可或缺的一個重要環(huán)節(jié)。在教學中我們采用聯(lián)系的觀點,把“數(shù)據(jù)結構”課程納入整個計算機體系教學,學生就能認識到課程的重要性,從而激發(fā)學習興趣。例如我們講到鏈表時,可以有意把內(nèi)容延伸到操作系統(tǒng)中計算機內(nèi)存分配;講樹型結構時,可以與文件夾結構聯(lián)系在一起;講圖結構的最小生成樹,可以聯(lián)系局域網(wǎng)的設計;講查找技術,可以涉及網(wǎng)絡的搜索引擎等等。這樣不僅講課活潑生動,而且還能引起學生聯(lián)想,刺激學生學習的興趣,收到良好的教學效果。
(2) 解決C語言的不足?!皵?shù)據(jù)結構”課程教學過程中主要運用的是C語言的指針、函數(shù)、數(shù)組作為函數(shù)參數(shù)以及結構體類型來分析和解決問題。對于大部分學生來說,C語言運用能力不是很強,如果在上課時直接切入主題,就會使學生有云山霧罩的感覺。要解決這個問題,應該在教學中注意做到以下兩點:一是與“C語言”的授課教師做好教學的溝通工作,統(tǒng)籌安排各部分的授課時間,保證指針、函數(shù)、及結構體等內(nèi)容有足夠的時間,并將其作為重點講授并加強上機實踐,讓學生掌握C語言的精華。二是在學習“數(shù)據(jù)結構”課程初期,指導學生有針對性地復習指針、函數(shù)、及結構體等知識點,并強調(diào)它們在數(shù)據(jù)結構課程中的重要性。例如在課堂上以一個實例的形式對這些知識點進行復習,尤其指出學生難理解、易混淆和犯錯誤的地方,另外布置大量涉及這些知識點的作業(yè),通過批改作業(yè)發(fā)現(xiàn)存在的問題然后反復進行講解。
(3) 注意課堂語言的藝術性、趣味性,以激發(fā)學生的求知欲?!皵?shù)據(jù)結構”是一門理論性很強的課程,其概念特別抽象。高職學生的理論基礎普遍較弱,所以如果像本科教學一樣,單純地用課堂語言教學,高職學生理解起來有一定難度,而且會感到枯燥,因此,教師在授課時要講究語言的藝術性,結合學生的實際,使用更加通俗、形象、生動、直觀的教學語言進行講授。例如堆棧的結構和運算可以和生活中的洗碗結合起來;隊列可以和學生去食堂排隊買飯結合起來;無向圖可以和城市的公路交通網(wǎng)(若無單行道)結合起來,有向圖可以和來水主管網(wǎng)結合起來。通過這樣的比喻說明,學生不僅聽起來有興趣,易于理解,而且效果也比只單純地“照本宣科”講定義要強的多,能夠達到事半功倍的效果。
(4) 抓好實踐環(huán)節(jié),提高算法設計能力?!皵?shù)據(jù)結構”是實踐很強的一門課程,不僅要學習理論知識,更要注重上機實踐。通過上機實踐來驗證理論內(nèi)容并加深對各種算法的透徹理解,結合高職學生學習能力不足的實際情況,我們從以下三個方面加強和改進了實踐教學:一是學期初兩周內(nèi)給出適當?shù)纳蠙C實驗題目復習C程序語言中的指針、結構體和函數(shù)等知識點,并根據(jù)上機實驗的情況對數(shù)據(jù)結構中常用及易出錯的地方進行集體重點講解,為后面算法的上機實驗打好編程語言基礎。二是為打消學生實現(xiàn)類C語言算法描述和C語言源程序的轉(zhuǎn)換的畏難情緒,前兩次上機實驗時,教師可以先給出完整的源程序,讓學生在主函數(shù)中添加語句來體驗數(shù)據(jù)結構的基本操作的執(zhí)行,再逐步過渡到自己編寫完整的源程序。三是精心設計上機習題同時注意進行分層次的個性化教學。從不同學生的實際水平、基礎出發(fā),來設計不同難度的實驗題目,給出不同的實驗條件和要求,盡量讓所有學生通過自己的努力獲得實驗的成功并掌握基本知識,從而最大程度地提高學生實驗的積極性。例如,對堆??梢栽O計建棧、出棧、入棧和后綴表達式求值實驗;關于樹可以設計二叉樹的建立和遍歷及給定一棵二叉樹,打印指定結點的雙親和所有的孩子結點實驗?;静僮鲗嶒瀸W生可以根據(jù)自己的實際情況來選擇完成。另外對于難度小的實驗要求每個學生獨立完成,而對實驗難度稍大的允許以2到3人以小組形式完成或給出部分代碼或提示。
(5) 對教學內(nèi)容進行優(yōu)化和歸納提煉。由于高職學生自學能力薄弱,再加上“數(shù)據(jù)結構”課程內(nèi)容繁多、零散,不具備一個整體性,因此在教學中要求做到如下兩點:一是教師要分析清楚數(shù)據(jù)結構的知識體系結構,在授課時始終貫穿“一中心、四結構、兩存儲”的原則。“一中心”是算法設計建立于邏輯結構,算法實現(xiàn)依賴與邏輯結構?!八慕Y構”是指集合結構、線性結構、樹型結構、圖形結構?!皟纱鎯Α笔侵疙樞虼鎯Α㈡溄哟鎯?。二是把握重點。在貫穿“一中心、四結構、兩存儲”的原則講授內(nèi)容時,要把握好重點,有選擇有層次地教學。例如,線性表是最常用且最簡單的一種數(shù)據(jù)結構,棧和隊列是操作受限的線性表,樹和圖往往要做線性化處理,因此要把線性表作為重中之重的內(nèi)容進行透徹的剖析。對于線性表的兩種存儲結構順序表和單鏈表,把單鏈表作為重點和難點來講授和上機實驗。再如,二叉樹的遍歷操作為重點來講授和上機實驗,而哈夫曼算法作為可選的上機實驗內(nèi)容。
4結束語
由于“數(shù)據(jù)結構”是計算機專業(yè)的核心課程,以理論為主,而高職教學是以實踐教學為主的教學。因此,如何將這門理論性很強的課程同高職的實踐性教學相結合,值得我們進一步研究。在高職課程改革進行的如火如荼的今天,可以相信,只要我們從思想上重視“數(shù)據(jù)結構”課程改革與設計,不斷提高自身的教學能力,采用合理的教學方法,“數(shù)據(jù)結構”課程的教學必將取得良好的效果。
參考文獻:
[1] 嚴蔚敏,吳偉民.《數(shù)據(jù)結構(C語言版)》[M]. 北京:清華大學出版社,2001.
[2] 顧翔. 數(shù)據(jù)結構實踐教學探討[J]. 信息技術,2005,(30):110-112.
[3] 揭安全,李云清,楊慶紅,等. “數(shù)據(jù)結構”課程教學改革與創(chuàng)新[J]. 計算機教育,2008,(10):132-133.
[4] 連進. 數(shù)據(jù)結構教學方法的研究[J]. 湖北經(jīng)濟學院學報,2008,(5):183-184.