◆呂雅麗
(河南中醫(yī)藥大學(xué))
“數(shù)據(jù)結(jié)構(gòu)”課程實(shí)驗(yàn)教學(xué)的研究與探索
◆呂雅麗
(河南中醫(yī)藥大學(xué))
“數(shù)據(jù)結(jié)構(gòu)”課程是高等院校理工科專業(yè)的一門必修課程,其實(shí)驗(yàn)教學(xué)環(huán)節(jié)不僅幫助學(xué)生理解數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎(chǔ)算法,而且培養(yǎng)學(xué)生良好的算法編寫技能,鍛煉學(xué)生通過編程解決實(shí)際問題的能力。本文針對“數(shù)據(jù)結(jié)構(gòu)”課程實(shí)驗(yàn)教學(xué)環(huán)節(jié)中存在的問題,將整個實(shí)驗(yàn)教學(xué)分成基礎(chǔ)篇、提高篇、專項(xiàng)篇等三個階段,設(shè)計(jì)和實(shí)現(xiàn)了與實(shí)例緊密結(jié)合的分層次的實(shí)驗(yàn)教學(xué)模式。這一教學(xué)模式由易到難、由單一到綜合,逐步培養(yǎng)學(xué)生的算法編寫能力,在教學(xué)過程中也取得了良好的效果。
數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn)教學(xué) 實(shí)例
“數(shù)據(jù)結(jié)構(gòu)”課程是高等院校理工科專業(yè)的一門必修課程,是計(jì)算機(jī)科學(xué)領(lǐng)域中的一門重要基礎(chǔ)課。該課程主要介紹如何利用算法實(shí)現(xiàn)各種數(shù)據(jù)在計(jì)算機(jī)中的存儲和處理,其重點(diǎn)學(xué)習(xí)內(nèi)容包括:順序表、鏈表、棧和隊(duì)列、數(shù)組、樹與森林、圖、查找、排序等。通過本課程的學(xué)習(xí),使學(xué)生深透地理解數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎(chǔ)算法,培養(yǎng)學(xué)生良好的程序設(shè)計(jì)技能,鍛煉學(xué)生通過編程解決實(shí)際問題的能力。為后續(xù)相關(guān)專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ),為從事計(jì)算機(jī)科學(xué)領(lǐng)域的研究和開發(fā)打下理論和實(shí)驗(yàn)的基礎(chǔ)。
“數(shù)據(jù)結(jié)構(gòu)”的課程實(shí)驗(yàn)不僅幫助學(xué)生理解數(shù)據(jù)結(jié)構(gòu)的基本概念和基礎(chǔ)算法,而且培養(yǎng)學(xué)生良好的算法技能,鍛煉學(xué)生通過編程解決實(shí)際問題的能力。
在大多數(shù)院校,按照教學(xué)大綱和實(shí)驗(yàn)大綱安排,“數(shù)據(jù)結(jié)構(gòu)”課程一般在大學(xué)期間的第三學(xué)期或者第四學(xué)期開設(shè),并且前期已開設(shè)一門程序設(shè)計(jì)基礎(chǔ)課程。其總教學(xué)學(xué)時72學(xué)時,其中理論教學(xué)54學(xué)時,實(shí)驗(yàn)教學(xué)18學(xué)時。目前,在實(shí)驗(yàn)教學(xué)的整個過程中存在以下幾個問題。
1.學(xué)生對實(shí)驗(yàn)教學(xué)重視程度不夠?!皵?shù)據(jù)結(jié)構(gòu)”課程的理論知識多是用偽代碼寫的,學(xué)生往往側(cè)重于算法的理解,忽略了算法的實(shí)現(xiàn)。教材中的算法往往是偽代碼或者是程序段,學(xué)生要想將算法實(shí)現(xiàn),就需要把偽代碼或者程序段放到帶有數(shù)據(jù)的實(shí)例中,用正確的、可執(zhí)行的程序?qū)崿F(xiàn),然后調(diào)試運(yùn)行,查看算法結(jié)果。而這一過程,一方面,比較復(fù)雜;另一方面,不是“數(shù)據(jù)結(jié)構(gòu)”課程的重點(diǎn),所以往往會被老師和學(xué)生忽略。但是這一過程恰恰是幫助學(xué)生透徹理解算法,幫助學(xué)生把算法與實(shí)際應(yīng)用結(jié)合。
2.實(shí)驗(yàn)項(xiàng)目設(shè)置關(guān)聯(lián)性。每一個實(shí)驗(yàn)項(xiàng)目對應(yīng)一定的理論知識,實(shí)驗(yàn)項(xiàng)目之間不相關(guān),學(xué)生做完做不完都不會影響下次實(shí)驗(yàn),導(dǎo)致很多學(xué)生對一些實(shí)驗(yàn)不夠重視,主動性不高。有一些學(xué)生在個別實(shí)驗(yàn)項(xiàng)目沒有做完的情況下,沒有主動的在課下完成,在下次實(shí)驗(yàn)課上也沒有主動積極的補(bǔ)做,時間久了,越積越多,最終導(dǎo)致這門課程學(xué)得不好,也必然影響后續(xù)課程的學(xué)習(xí)。
3.實(shí)驗(yàn)項(xiàng)目內(nèi)容設(shè)置缺乏與實(shí)例的結(jié)合。實(shí)驗(yàn)不僅僅是理論知識鞏固,更是知識總結(jié)和能力的提高。實(shí)驗(yàn)內(nèi)容的設(shè)置不能僅僅考慮理論知識體現(xiàn),更應(yīng)考慮如何讓學(xué)生在理解理論的同時和實(shí)際應(yīng)用相結(jié)合,培養(yǎng)學(xué)生把理論應(yīng)用于實(shí)際的主動性。目前,大多數(shù)學(xué)生學(xué)習(xí)態(tài)度是被動的,不愿意去多想,不愿意去擴(kuò)展。教師在設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目時要引導(dǎo)他們?nèi)ヂ?lián)系實(shí)際,去擴(kuò)展內(nèi)容。這樣持續(xù)下去,學(xué)生才會在掌握理論知識的同時,和實(shí)際應(yīng)用相結(jié)合,掌握算法的精髓。
針對以上存在的問題,在“數(shù)據(jù)結(jié)構(gòu)”實(shí)驗(yàn)教學(xué)中我們設(shè)計(jì)了與實(shí)例緊密結(jié)合的分層次的實(shí)驗(yàn)教學(xué)模式。這一教學(xué)模式由易到難、由單一到綜合,逐步培養(yǎng)學(xué)生的算法編寫能力。我們將整個實(shí)驗(yàn)教學(xué)分成基礎(chǔ)篇、提高篇、專項(xiàng)篇等三個階段,每個階段完成一定的知識目標(biāo)和理論目標(biāo)。
多數(shù)高校的教學(xué)計(jì)劃中,“數(shù)據(jù)結(jié)構(gòu)”課程的實(shí)驗(yàn)教學(xué)是18學(xué)時,我們將18學(xué)時分為9個實(shí)驗(yàn)項(xiàng)目,分別為:順序表的操作、單鏈表的操作、棧的操作、隊(duì)列的操作、數(shù)組的操作、二叉樹的操作、圖的操作、查找操作、排序操作。不同實(shí)驗(yàn)項(xiàng)目結(jié)合不同的實(shí)例,劃分到不同的層次,具體實(shí)施如下。
1.基礎(chǔ)篇?!皵?shù)據(jù)結(jié)構(gòu)”實(shí)驗(yàn)教學(xué)的初級階段屬于基礎(chǔ)篇的內(nèi)容,是對教材的理論知識點(diǎn)的簡單實(shí)現(xiàn)。實(shí)驗(yàn)項(xiàng)目中順序表的操作、單鏈表的操作、棧的操作、隊(duì)列的操作等屬于基礎(chǔ)篇的實(shí)驗(yàn),這一階段的實(shí)驗(yàn)實(shí)例相對簡單,重點(diǎn)在于讓學(xué)生掌握基本的數(shù)據(jù)結(jié)構(gòu)類型。這一階段的順序表實(shí)驗(yàn)和單鏈表實(shí)驗(yàn)用的實(shí)例是學(xué)生成績管理系統(tǒng),這里對學(xué)生的信息只存儲學(xué)號和姓名,成績信息可以存儲一門到三門課程的成績。這樣數(shù)據(jù)比較簡單,著重讓學(xué)生掌握線性表的順序存儲和鏈?zhǔn)酱鎯?。對于棧的操作采用的是火車車廂重排問題的案例,這里要求學(xué)生也要通過順序和鏈?zhǔn)絻煞N存儲方式實(shí)現(xiàn)。對于隊(duì)列操作的實(shí)驗(yàn)采用的實(shí)例是銀行排隊(duì)叫號系統(tǒng)。在銀行排隊(duì)叫號系統(tǒng)這一實(shí)例中要求學(xué)生不能僅僅使用一個隊(duì)列,一次簡單的先進(jìn)先出操作實(shí)現(xiàn),需要學(xué)生考慮到一個排號隊(duì)列,多個叫號隊(duì)列的情況,讓學(xué)生有所思考,從而實(shí)現(xiàn)對隊(duì)列操作的深入理解。
2.提高篇。通過基礎(chǔ)篇實(shí)驗(yàn)的學(xué)習(xí),學(xué)生對線性表、棧、隊(duì)列等基本數(shù)據(jù)結(jié)構(gòu)有了深刻的認(rèn)識,對順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的使用有了一定的基礎(chǔ)。接下來要學(xué)習(xí)的是較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu):數(shù)組、樹和圖。數(shù)組的操作、二叉樹的操作、圖的操作等實(shí)驗(yàn)就是提高篇要完成的實(shí)驗(yàn)內(nèi)容。這一階段接觸的是復(fù)雜的數(shù)據(jù)結(jié)構(gòu),但核心還是運(yùn)用基礎(chǔ)篇學(xué)習(xí)的基本數(shù)據(jù)結(jié)構(gòu),實(shí)例的選擇也會較為復(fù)雜。數(shù)組操作的實(shí)驗(yàn)選擇的實(shí)例是超市物品購買數(shù)據(jù)存儲系統(tǒng)。這個實(shí)例中要處理的數(shù)據(jù)不是簡單的數(shù)組,其需要的數(shù)組較大,但存儲的數(shù)據(jù)較少,這就是典型的系數(shù)矩陣。在現(xiàn)實(shí)生活中這類數(shù)據(jù)經(jīng)常遇到,對這類數(shù)據(jù)的存儲和操作就要通過數(shù)組操作的實(shí)驗(yàn)進(jìn)行學(xué)習(xí)和掌握。樹操作通過二叉樹實(shí)現(xiàn)的,所以樹這一章節(jié)的實(shí)驗(yàn)設(shè)置的是二叉樹的操作,結(jié)合的實(shí)例是磁盤文件的記錄系統(tǒng),著重是運(yùn)用線索二叉樹的知識。圖操作的實(shí)驗(yàn)用的實(shí)例是高速公路交通網(wǎng)這一經(jīng)典案例。這一實(shí)例不僅運(yùn)用了圖的遍歷操作,還用了最短路徑等經(jīng)典算法。通過這些提高篇的實(shí)驗(yàn)項(xiàng)目學(xué)生對復(fù)雜的數(shù)據(jù)結(jié)構(gòu)有所掌握,也對數(shù)據(jù)結(jié)構(gòu)的復(fù)雜應(yīng)用有所了解。
3.專項(xiàng)篇。對于大多數(shù)數(shù)據(jù)的處理都會用到兩種典型的操作:查找和排序。數(shù)據(jù)結(jié)構(gòu)課程的后期都會講到這兩項(xiàng)內(nèi)容,同樣也會有兩項(xiàng)專門的實(shí)驗(yàn)來對應(yīng)。查找操作和排序操作采用的實(shí)例分別是奧運(yùn)會獎牌的排行榜的查詢和排名,著重讓學(xué)生掌握不同的查找方法和排序方法。需要學(xué)生熟記一些經(jīng)典的查找算法和排序算法,會對不同的算法比較優(yōu)劣,同時也對時間復(fù)雜度和空間復(fù)雜度有所了解。
基礎(chǔ)篇、提高篇、專項(xiàng)篇這三個實(shí)驗(yàn)階段,由易到難,相輔相承,讓學(xué)生逐步掌握不同數(shù)據(jù)結(jié)構(gòu)的定義和使用,進(jìn)而培養(yǎng)學(xué)生的算法編寫能力。具體在實(shí)施過程中根據(jù)學(xué)生的實(shí)際接受情況和掌握情況對具體實(shí)驗(yàn)內(nèi)容進(jìn)行增減。
我們在2012級學(xué)生的“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中開始探索這一實(shí)驗(yàn)教學(xué)模式,在2013級學(xué)生的“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中進(jìn)一步完善,效果很好。學(xué)生學(xué)習(xí)的積極性明顯提高,學(xué)習(xí)效果也有了明顯的提高。
經(jīng)過一系列的實(shí)驗(yàn)教學(xué)實(shí)踐,我們針對“數(shù)據(jù)結(jié)構(gòu)”課程,探索出了由基礎(chǔ)篇、提高篇、專項(xiàng)篇這個三個階段組成的與實(shí)例緊密結(jié)合的實(shí)驗(yàn)教學(xué)模式。這一教學(xué)模式由易到難,逐步培養(yǎng)學(xué)生的算法編寫能力。今后,我們將繼續(xù)結(jié)合教學(xué)實(shí)際進(jìn)一步完善實(shí)驗(yàn)教學(xué)文件、豐富“數(shù)據(jù)結(jié)構(gòu)”課程實(shí)驗(yàn)內(nèi)容和課程設(shè)計(jì)的內(nèi)容,從而提升“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)效果。
[1]黃賢英.計(jì)算機(jī)專業(yè)實(shí)驗(yàn)教學(xué)體系建設(shè)思考[J].實(shí)驗(yàn)技術(shù)與管理,2009,(10):94-100.
[2]馬彬.三維一體化的計(jì)算機(jī)實(shí)驗(yàn)教學(xué)建設(shè)體系[J].實(shí)驗(yàn)室研究與探索,2013,(10):163-165.
[3]孫愛東,楊秋妹,肖媚燕.多層次的“數(shù)據(jù)結(jié)構(gòu)”實(shí)驗(yàn)教學(xué)模式探討[J].教學(xué)改革與研究,2009.