羅富貴+唐鳳仙
摘 要:數(shù)據(jù)結(jié)構(gòu)主要學(xué)習(xí)用計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)組織和數(shù)據(jù)處理的方法,它在計(jì)算機(jī)科學(xué)課程體系中起到了重要的作用。但由于這門課程抽象度高,內(nèi)容不易理解,學(xué)生學(xué)習(xí)起來感覺非常困難,導(dǎo)致教學(xué)效果非常不好。本文通過分析了在數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的問題,在理論教學(xué)和實(shí)踐教學(xué)方面提出了一些改進(jìn)的教學(xué)措施。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 案例教學(xué) 啟發(fā)式教學(xué) 實(shí)踐教學(xué)
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)及相關(guān)專業(yè)的專業(yè)基礎(chǔ)課之一,是一門十分重要的核心課程,它也為計(jì)算機(jī)專業(yè)的后續(xù)課程如操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理和軟件工程等學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)課程主要研究?jī)?nèi)容是各種數(shù)據(jù)的邏輯結(jié)構(gòu)(數(shù)據(jù)元素之間的關(guān)系)、存儲(chǔ)結(jié)構(gòu),以及建立在這些結(jié)構(gòu)的算法及其性能分析,其主要學(xué)習(xí)目標(biāo)對(duì)這些內(nèi)容的掌握和理解。但由于《數(shù)據(jù)結(jié)構(gòu)》這門課程理論性強(qiáng)、抽象度高,使得學(xué)生學(xué)習(xí)起來感覺非常困難,學(xué)生普遍反應(yīng)該課程不易理解,導(dǎo)致教學(xué)效果非常不好。本文分析了在數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的問題,教學(xué)內(nèi)容,教學(xué)方法,教學(xué)手段以及實(shí)踐教學(xué)等四個(gè)方面進(jìn)行研究,提出了一些改進(jìn)的方法和措施,從而提高教學(xué)質(zhì)量。[1]
一、課程教學(xué)目前存在的問題
1.課程本身難度大
數(shù)據(jù)結(jié)構(gòu)主要學(xué)習(xí)用計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)組織和數(shù)據(jù)處理的方法,該課程理論性和邏輯性都比較強(qiáng),而且數(shù)據(jù)的邏輯結(jié)構(gòu)以抽象數(shù)據(jù)類型進(jìn)行表述,抽象度高,內(nèi)容相對(duì)來說枯燥無味、知識(shí)點(diǎn)也比較多,不花足夠的時(shí)間研究很難理解。往往前面所學(xué)的知識(shí)還沒有完全理解,又開始學(xué)習(xí)新的知識(shí),遇到的問題不能及時(shí)解決,這使得問題不斷堆積,造成學(xué)生心理上感到恐懼,學(xué)習(xí)難度大,從而失去了學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的興趣,最終導(dǎo)致教學(xué)質(zhì)量差。[2]
2.先導(dǎo)課程基礎(chǔ)不扎實(shí)
高等數(shù)學(xué)、高級(jí)程序設(shè)計(jì)語言和離散數(shù)據(jù)等課程是數(shù)據(jù)結(jié)構(gòu)的先導(dǎo)課程,學(xué)生對(duì)先修課程掌握不扎實(shí)。例如在分析算法時(shí)需要一定的數(shù)學(xué)知識(shí),理解和實(shí)現(xiàn)算法時(shí)則需要高級(jí)程序設(shè)計(jì)語言。目前大部分高校的數(shù)據(jù)結(jié)構(gòu)的算法描述工具是C語言,其算法經(jīng)常需要用到先修課程C語言里的函數(shù)、指針、結(jié)構(gòu)體等知識(shí),而學(xué)生對(duì)這些知識(shí)普遍掌握不好,導(dǎo)致其在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí)對(duì)知識(shí)的理解和算法實(shí)踐受到阻礙。
3.實(shí)踐動(dòng)手能力弱
在多年的教學(xué)中發(fā)現(xiàn)每一屆學(xué)生都存在同一問題:由于先修課程C語言程序設(shè)計(jì)的基礎(chǔ)薄弱,學(xué)生對(duì)問題的分析能力不足,對(duì)算法的理解程度差,動(dòng)手編程、調(diào)試、閱讀程序的能力差。所以,上機(jī)時(shí)自然無從下手,學(xué)生無法體會(huì)數(shù)據(jù)結(jié)構(gòu)課程在計(jì)算機(jī)軟件開發(fā)領(lǐng)域的價(jià)值,也就無法體會(huì)數(shù)據(jù)結(jié)構(gòu)課程的作用,使得學(xué)習(xí)沒有興趣。
二、課程教學(xué)與實(shí)踐的改革
1.組織好教學(xué)內(nèi)容
《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)內(nèi)容主要包含有基本的數(shù)據(jù)結(jié)構(gòu):線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖形結(jié)構(gòu)以及數(shù)據(jù)結(jié)構(gòu)的應(yīng)用,面對(duì)多而繁雜的內(nèi)容,可以通過以下的方式來有效地設(shè)計(jì)好教學(xué)內(nèi)容,如圖1所示。
基本數(shù)據(jù)結(jié)構(gòu)的教學(xué)組織內(nèi)容可以劃分以下三部分:一是數(shù)據(jù)的抽象數(shù)據(jù)類型(邏輯結(jié)構(gòu)和基本運(yùn)算描述);二是數(shù)據(jù)在計(jì)算機(jī)的存儲(chǔ)結(jié)構(gòu):主要包括順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);三是基本運(yùn)算在兩種存儲(chǔ)結(jié)構(gòu)上算法的實(shí)現(xiàn)及算法性能分析。數(shù)據(jù)結(jié)構(gòu)的應(yīng)用包含查找技術(shù)和排序技術(shù)兩方面。我們就可以根據(jù)課程的教學(xué)目標(biāo),依照?qǐng)D1所示進(jìn)行內(nèi)容設(shè)計(jì),以知識(shí)單元為基點(diǎn)由簡(jiǎn)單到復(fù)雜分階段組織實(shí)施教學(xué),不僅增加教學(xué)的靈活性,降低教學(xué)難度,而且學(xué)生課后可以按照這條主干線自主學(xué)習(xí),提高學(xué)習(xí)效果。[3]
2.改變教學(xué)方法
由于該課程抽象度高,內(nèi)容不易理解,使得教學(xué)難度增大,一方面需要教師講授,另一方面需要學(xué)生參與其中。因此,在教學(xué)中,可以將案例教學(xué)法和啟發(fā)式教學(xué)法相結(jié)合進(jìn)行教學(xué)。
所謂案例教學(xué)是根據(jù)范例“個(gè)體”的知識(shí)特點(diǎn),分析掌握整個(gè)“類別”事物的特征,使對(duì)“個(gè)體”的認(rèn)識(shí)上升為對(duì)“類別”的認(rèn)識(shí),從而掌握其規(guī)律和范疇。在數(shù)據(jù)結(jié)構(gòu)的教學(xué)中,采用案例教學(xué)法通過實(shí)例講解抽象的理論知識(shí),讓學(xué)生更加容易理解。例如針對(duì)學(xué)生剛剛接觸數(shù)據(jù)結(jié)構(gòu)比較陌生,在緒論中介紹數(shù)據(jù)結(jié)構(gòu)課程時(shí)都會(huì)介紹數(shù)據(jù)結(jié)構(gòu)的作用以及研究的內(nèi)容,我們可以通過一個(gè)簡(jiǎn)單案例的講解來深入介紹數(shù)據(jù)結(jié)構(gòu)中的術(shù)語及其數(shù)據(jù)之間的關(guān)系。在講解到算法的實(shí)現(xiàn)時(shí),也可以引入一個(gè)現(xiàn)實(shí)生活中的實(shí)例來分析算法實(shí)現(xiàn)的具體步驟。對(duì)于數(shù)據(jù)結(jié)構(gòu)中的算法描述工具是C語言,可以通過簡(jiǎn)單的學(xué)生成績(jī)管理程序和學(xué)生共同復(fù)習(xí)C語言中的函數(shù),結(jié)構(gòu)體,指針等知識(shí)應(yīng)用。通過案例教學(xué),使抽象的理論知識(shí)具體化,讓學(xué)生更加容易理解抽象的理論知識(shí)和復(fù)雜的算法。[4]
啟發(fā)式教學(xué)的核心就是要培養(yǎng)學(xué)生獨(dú)立思考和創(chuàng)新思維。實(shí)現(xiàn)啟發(fā)式教學(xué)的關(guān)鍵是高質(zhì)量、創(chuàng)新性、啟發(fā)式“問題”的設(shè)計(jì)。在數(shù)據(jù)結(jié)構(gòu)教學(xué)中,采用啟發(fā)式教學(xué)方法,可以將課本上的平面知識(shí)、技能點(diǎn)以問題的形式呈現(xiàn)給學(xué)生, 培養(yǎng)學(xué)生分析問題的能力。例如我們?cè)诜治鏊惴〞r(shí)可以設(shè)計(jì)許多問題,在講到線性表的插入一個(gè)新元素時(shí),如何操作才能把新元素插入到正確的位置,并且保持表的邏輯結(jié)構(gòu)不變。在講最短路徑時(shí),首先提出去某市旅游應(yīng)怎樣安排行程使花費(fèi)最少這一問題,讓學(xué)生發(fā)表自己的意見,進(jìn)而引導(dǎo)他們使用Dijkstra算法來解決這個(gè)問題。通過啟發(fā)式教學(xué)法不但給學(xué)生提供了充分思考、探究的空間,而且學(xué)生邊學(xué)邊做,可以更加深入理解所學(xué)的知識(shí)。
3.優(yōu)化教學(xué)手段
在具體的教學(xué)過程中,為了使得數(shù)據(jù)結(jié)構(gòu)抽象的理論知識(shí)形象化,復(fù)雜的算法易于理解,可以綜合使用多種教學(xué)手段。在講解算法的執(zhí)行過程時(shí),例如線性表的插入、刪除,棧和隊(duì)列的動(dòng)態(tài)執(zhí)行,樹、圖的遍歷,各種查找排序算法等,可以利用現(xiàn)代化多媒體教學(xué)手段,將算法執(zhí)行的過程用動(dòng)畫演示出來,學(xué)生通過演示觀察數(shù)據(jù)的變化,更加容易理解算法的執(zhí)行過程,從而掌握好算法的原理。此外,還可以搭建網(wǎng)絡(luò)教學(xué)平臺(tái)來輔助學(xué)生課后學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和自測(cè)。目前微課也是一種很好的教學(xué)手段,選擇重點(diǎn)難點(diǎn)的知識(shí)點(diǎn),學(xué)生不易理解的算法,然后針對(duì)每個(gè)知識(shí)點(diǎn)制作相應(yīng)的微課,將其上傳到課程的教學(xué)網(wǎng)絡(luò)平臺(tái)上,方便學(xué)生下載觀看,方便學(xué)生預(yù)習(xí)、復(fù)習(xí)??傊?,多種教學(xué)手段在教學(xué)過程中的應(yīng)用,可以使教學(xué)內(nèi)容變得更直觀、形象、生動(dòng),從而提高教學(xué)效果。
4.重視實(shí)踐教學(xué)
實(shí)踐教學(xué)在數(shù)據(jù)結(jié)構(gòu)課程起到非常重要的作用,學(xué)生通過上機(jī)實(shí)現(xiàn)算法,能夠更好的理解算法的原理,掌握數(shù)據(jù)和數(shù)據(jù)之間的關(guān)系。因此,要重視實(shí)踐教學(xué)環(huán)節(jié),就要設(shè)計(jì)好實(shí)踐環(huán)節(jié)。要設(shè)計(jì)好實(shí)踐教學(xué)環(huán)節(jié),應(yīng)做到以下兩點(diǎn):
(1)要精心安排好實(shí)踐內(nèi)容。對(duì)于實(shí)驗(yàn)環(huán)節(jié)的設(shè)計(jì),應(yīng)由淺到深的思路設(shè)計(jì)。一開始先從簡(jiǎn)單的算法入手,并且給出程序框架,有利于學(xué)生進(jìn)行編程,在程序出問題時(shí)先分析原因再修改,這樣學(xué)生編出的程序得出結(jié)果就獲得成就感,增強(qiáng)自信心。接下來對(duì)每種邏輯結(jié)構(gòu)的每個(gè)知識(shí)點(diǎn)進(jìn)行擴(kuò)展,要求學(xué)生進(jìn)行驗(yàn)證性的設(shè)計(jì)練習(xí),從而達(dá)到加深對(duì)理論知識(shí)理解的目的。
(2)要策劃好實(shí)踐項(xiàng)目。根據(jù)實(shí)驗(yàn)內(nèi)容,合理策劃好實(shí)驗(yàn)項(xiàng)目,從而培養(yǎng)學(xué)生靈活運(yùn)用多種知識(shí)進(jìn)行實(shí)踐設(shè)計(jì)的能力。在實(shí)踐課中,將實(shí)驗(yàn)內(nèi)容轉(zhuǎn)化為一個(gè)個(gè)子項(xiàng)目,通過子項(xiàng)目的完成,進(jìn)而能夠匯總成一個(gè)完整的綜合性項(xiàng)目,從而培養(yǎng)了學(xué)生綜合利用各種知識(shí)解決具體問題的能力。
結(jié)語
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)關(guān)專業(yè)的一門非常重要的核心基礎(chǔ)課程,但是該門課程抽象度高,算法比較復(fù)雜,學(xué)生學(xué)習(xí)起來感覺非常吃力,從而導(dǎo)致教學(xué)效果不佳。本文歸納總結(jié)數(shù)據(jù)結(jié)構(gòu)在教學(xué)過程中存在的問題和困難,在分析問題產(chǎn)生的原因基礎(chǔ)上,從教學(xué)內(nèi)容,教學(xué)方法,教學(xué)手段以及實(shí)踐教學(xué)等四個(gè)方面進(jìn)行研究,提出了如何組織好教學(xué)內(nèi)容,如何將案例教學(xué)方法和啟發(fā)式教學(xué)方法相結(jié)合進(jìn)行理論教學(xué),如何利用好多種教學(xué)手段,如何設(shè)計(jì)好實(shí)踐教學(xué)環(huán)節(jié)等方面的改革方案,讓學(xué)生更好地參與教學(xué)過程當(dāng)中,從而提升教學(xué)質(zhì)量。
參考文獻(xiàn):
[1]邱勁,王平,徐展.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革與實(shí)踐探索[J]。西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2013(1):139-142.
[2]董麗薇.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)方法的改進(jìn)[J].沈陽師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(2):307-309.
[3]賈丹,周軍.基于創(chuàng)新應(yīng)用型人才培養(yǎng)模式的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革[J].遼寧工業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2015(2):132-134.
[4]高廣銀,姜楓,丁勇.應(yīng)用型人才培養(yǎng)過程中《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革[J].現(xiàn)代計(jì)算機(jī),2015(33):9-12.
作者簡(jiǎn)介
羅富貴(1984-),女,廣西來賓人,講師,研究方向:目標(biāo)跟蹤,圖像識(shí)別。
唐鳳仙(1977-),女,廣西都安人,副教授,研究方向:模式識(shí)別與圖像處理。