劉勇 魏光澤
摘要:數(shù)據(jù)結(jié)構(gòu)是一門理論性強(qiáng)、思維抽象、難度較大的課程,是基礎(chǔ)課和專業(yè)課之間的橋梁。該文研究了“數(shù)據(jù)結(jié)構(gòu)”的起源和課程體系,并基于多年的教學(xué)實(shí)踐就教學(xué)方法、教學(xué)手段等方面提出了多方面改革的思路。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué)研究;教學(xué)方法
中圖分類號:G424 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)05-0134-02
Abstract: data structure is a theoretical, abstract and difficult course. It is a bridge between basic courses and specialized courses. This paper studies the origin and course system of "data structure", and puts forward a number of reforms in teaching methods and teaching methods based on years of teaching practice.
Key words: data structure; teaching research; teaching method
“數(shù)據(jù)結(jié)構(gòu)”是研究非數(shù)值類計(jì)算問題中數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及其操作的學(xué)科,主要培養(yǎng)學(xué)生進(jìn)行復(fù)雜程序設(shè)計(jì)和數(shù)據(jù)抽象的能力,是計(jì)算機(jī)程序設(shè)計(jì)的重要理論和實(shí)踐基礎(chǔ)。該課程源于程序設(shè)計(jì),服務(wù)于程序設(shè)計(jì),在專業(yè)的課程體系中起著承上啟下的作用。學(xué)生學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”的最終目的是為了獲得數(shù)據(jù)抽象和算法設(shè)計(jì)的能力。
“數(shù)據(jù)結(jié)構(gòu)”的教學(xué)在計(jì)算機(jī)學(xué)科教學(xué)中有著舉足輕重的地位,如果該門課程學(xué)不好,將直接影響后續(xù)課程的學(xué)習(xí),也將直接影響學(xué)生的深造。筆者多年來一直從 事“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué),在教學(xué)實(shí)踐中總結(jié)出了針對“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段各方面改革的思路,并在實(shí)際教學(xué)中取得了良好的教學(xué)效果[1]。
1 課程簡介
1.1 課程起源
“數(shù)據(jù)結(jié)構(gòu)”源于程序設(shè)計(jì),它是隨著大型程序的出現(xiàn)而出現(xiàn)。上個世紀(jì)60年代初期,“數(shù)據(jù)結(jié)構(gòu)”有關(guān)的內(nèi)容散見于操作系統(tǒng)、編譯原理和表處理語言等課程。1968美國唐·歐·克努特(Donald Ervin Knuth)教授開創(chuàng)了數(shù)據(jù)結(jié)構(gòu)的最初體系。他在29歲提出了”算法”與”數(shù)據(jù)結(jié)構(gòu)”的概念,他所著的《The Art of Computer Programming 》第一卷《Fundamental Algorithms 》是第一本較系統(tǒng)地闡述數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)及其操作的著作。同年,“數(shù)據(jù)結(jié)構(gòu)”被列入美國一些大學(xué)計(jì)算機(jī)科學(xué)系的教學(xué)計(jì)劃。我國在20世紀(jì)80年代初開設(shè)《數(shù)據(jù)結(jié)構(gòu)》課程。
1.2 課程的知識體系
所謂數(shù)據(jù)結(jié)構(gòu),就是把一批數(shù)據(jù)按照某種邏輯結(jié)構(gòu)組織起來,找到合適的存儲結(jié)構(gòu)存儲于計(jì)算機(jī)中,設(shè)計(jì)相應(yīng)的算法(或者稱為運(yùn)算)通過計(jì)算機(jī)來處理這些數(shù)據(jù)。因此“數(shù)據(jù)結(jié)構(gòu)”不僅僅研究數(shù)據(jù)及其結(jié)構(gòu),還要研究基于數(shù)據(jù)和結(jié)構(gòu)的算法。概括地說,“數(shù)據(jù)結(jié)構(gòu)”包括三個方面的內(nèi)容:數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)和基于存儲結(jié)構(gòu)和邏輯結(jié)構(gòu)的算法(或者稱為運(yùn)算)。
通常,數(shù)據(jù)的邏輯結(jié)構(gòu)分為四種:線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖結(jié)構(gòu)和集合,這四種邏輯結(jié)構(gòu)貫穿于大多數(shù)教材始終。存儲結(jié)構(gòu)主要分為兩種:順序存儲結(jié)構(gòu)、鏈?zhǔn)酱鎯Y(jié)構(gòu)。大多數(shù)邏輯結(jié)構(gòu)都有兩種存儲結(jié)構(gòu),而數(shù)組只有順序存儲結(jié)構(gòu),這與數(shù)組的操作特點(diǎn)有關(guān),數(shù)組只有引用型操作,沒有加工型操作。常見的基本操作有:創(chuàng)建數(shù)據(jù)結(jié)構(gòu)、銷毀數(shù)據(jù)結(jié)構(gòu)、插入一個元素、刪除一個數(shù)據(jù)元素、修改某個數(shù)據(jù)元素、查找某個元素、取出某個元素的值、對元素進(jìn)行排序等。
2 教學(xué)方法改革
1)采用案例教學(xué)方法:因?yàn)楸菊n程抽象度比較高,采用案例教學(xué)方法的目的就是將抽象的理論實(shí)例化,降低課程的難度。案例教學(xué)的基本方法是每講解一種數(shù)據(jù)結(jié)構(gòu),教師先給出一個案例讓學(xué)生進(jìn)行預(yù)習(xí),然后教師解釋案例,引出教學(xué)的內(nèi)容。學(xué)生根據(jù)案例學(xué)習(xí)相關(guān)知識,再把相關(guān)知識應(yīng)用于案例當(dāng)中。
2)采用啟發(fā)式教學(xué)方法:與案例教學(xué)法相結(jié)合,我們在教學(xué)過程中不是單純由教師灌輸知識,而是注重啟發(fā)學(xué)生的思維,采用循循善誘的方式引導(dǎo)學(xué)生自己發(fā)現(xiàn)問題,并逐步解決問題。每講解一個知識點(diǎn)我們會先把問題提出來,讓學(xué)生思考解決方案并進(jìn)行討論,最后教師對學(xué)生討論的結(jié)果進(jìn)行點(diǎn)評,然后講解課本的知識點(diǎn)。
3)共性化與個性化相結(jié)合的教學(xué)方法:在學(xué)生中總有一部分學(xué)習(xí)比較超前的學(xué)生,對他們我們會給予難度較大的學(xué)習(xí)內(nèi)容和實(shí)驗(yàn)內(nèi)容,最后在考核的時候給予加分。
4)理論與實(shí)驗(yàn)相結(jié)合:為了加深學(xué)生對算法的理解,需要通過一種程序設(shè)計(jì)語言對算法加以描述并在計(jì)算機(jī)上實(shí)現(xiàn)。通過實(shí)驗(yàn),不但加深了學(xué)生對于理論課的理解,而且提高了學(xué)生程序設(shè)計(jì)的能力,培養(yǎng)了學(xué)生靈活運(yùn)用知識的能力。
3 教學(xué)手段改革
1)多媒體授課:在教學(xué)過程中,采用多媒體手段,利用多媒體教學(xué)課件和“數(shù)據(jù)結(jié)構(gòu)”算法多媒體演示程序,大大降低了課程的難度,提高了學(xué)生學(xué)習(xí)的興趣,取得很好的教學(xué)效果。
2)網(wǎng)絡(luò)授課:本課程組正在建設(shè)本課程專用教學(xué)網(wǎng)站,形成集課堂教學(xué)、實(shí)踐教學(xué)、課外輔導(dǎo)功能于一體的多功能教學(xué)網(wǎng)站、將教學(xué)大綱、實(shí)驗(yàn)大綱、教學(xué)課件、教輔材料等資源上網(wǎng),使學(xué)生方便地下載教學(xué)相關(guān)資料,了解本課程的有關(guān)教學(xué)安排、計(jì)劃和要求,便于學(xué)生課下的復(fù)習(xí)自學(xué)。
3)動畫演示教學(xué):學(xué)生都說“數(shù)據(jù)結(jié)構(gòu)”這門課難,是因?yàn)橹豢吹搅恕拜斎搿焙汀拜敵觥?,而看不到算法運(yùn)行的過程。為了使抽象的理論具體化,便于學(xué)生理解和記憶,我們借助 FLASH 等軟件設(shè)計(jì)了動畫,將經(jīng)典算法中的設(shè)計(jì)思想以動畫形式展現(xiàn),將看不到的抽象的設(shè)計(jì)思想形象化,讓學(xué)生能看到算法執(zhí)行的過程,增強(qiáng)了教學(xué)的直觀性和趣味性。
4 總結(jié)
本文從“數(shù)據(jù)結(jié)構(gòu)”的起源、課程體系、教學(xué)方法、教學(xué)手段等幾個方面闡述了作者探究“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)模式的心得體會,這些模式在“數(shù)據(jù)結(jié)構(gòu)”課程數(shù)年的教學(xué)實(shí)踐中取得了很好的效果。“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)學(xué)科的主干課程,也是學(xué)生普遍反映難學(xué)的課程,所以對教師的教學(xué)有較高的要求,要求教師在教學(xué)實(shí)踐中不斷進(jìn)行改革,提高學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生進(jìn)行復(fù)雜程序設(shè)計(jì)和數(shù)據(jù)抽象的能力,為后續(xù)課程的學(xué)習(xí)和就業(yè)打下堅(jiān)實(shí)的基礎(chǔ)[1]。
參考文獻(xiàn):
[1] 李冬梅,孟偉.“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)改革與教材建設(shè)[J].計(jì)算機(jī)教育,2012(14):38-41.
[2] 王方石.關(guān)于數(shù)據(jù)結(jié)構(gòu)教學(xué)模式的探討與實(shí)踐[J].山東農(nóng)業(yè)教育,2006(1).
[3] 邱 勁等.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革與實(shí)踐探索[J].西南師范大學(xué)學(xué)報:自然科學(xué)版,2013(1):139-141.
[4] 呂加國.“數(shù)據(jù)結(jié)構(gòu)”教學(xué)模式的研究與應(yīng)用[J].教育與教學(xué)研究,2009(4):82-85.
[5]嚴(yán)蔚敏,李冬梅,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:人民郵電出版社,2011:18-236.