摘 要: 本文從教學(xué)角度出發(fā),探討了現(xiàn)代數(shù)據(jù)結(jié)構(gòu)教學(xué)存在的難點(diǎn)和解決方法,并對(duì)《數(shù)據(jù)結(jié)構(gòu)》課堂教學(xué)的組織與設(shè)計(jì)、實(shí)驗(yàn)教學(xué)設(shè)計(jì)等方面作了詳細(xì)的討論。
關(guān)鍵詞: 《數(shù)據(jù)結(jié)構(gòu)》 教學(xué)方法 改進(jìn) 實(shí)踐
《數(shù)據(jù)結(jié)構(gòu)》是研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)操作對(duì)象(數(shù)據(jù)),以及它們之間的關(guān)系(結(jié)構(gòu))和操作(算法)等的一門(mén)科學(xué)。它不僅是一般程序設(shè)計(jì)的基礎(chǔ),而且是設(shè)計(jì)和實(shí)現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)及其它系統(tǒng)程序和大型應(yīng)用程序的重要基礎(chǔ)。《數(shù)據(jù)結(jié)構(gòu)》課程是計(jì)算機(jī)及相關(guān)學(xué)科的一門(mén)重要的專業(yè)基礎(chǔ)課,也是一門(mén)鍛煉程序設(shè)計(jì)能力的實(shí)踐課程。然而,由于以下原因,這門(mén)課學(xué)習(xí)起來(lái)相當(dāng)困難。
(1)本課程高度抽象,枯燥,學(xué)生剛開(kāi)始不容易產(chǎn)生興趣;
(2)與C語(yǔ)言有直接的關(guān)系,而C語(yǔ)言大部分同學(xué)并沒(méi)有學(xué)好;
(3)教學(xué)內(nèi)容較多,且相互聯(lián)系,沒(méi)有明顯的重點(diǎn)次重點(diǎn);
(4)數(shù)據(jù)結(jié)構(gòu)算法比較靈活,傳統(tǒng)教學(xué)方法不利于拓展學(xué)生思路;
(5)具體實(shí)踐需要考慮各方面因素。
那么如何解決上述問(wèn)題,降低理論性程度,增強(qiáng)直觀性,提高學(xué)生的學(xué)習(xí)興趣呢?我從自己的教學(xué)體會(huì)出發(fā),探討《數(shù)據(jù)結(jié)構(gòu)》的一些教學(xué)方法,希望起到拋磚引玉作用,與同仁共同提高教學(xué)水平,以推動(dòng)《數(shù)據(jù)結(jié)構(gòu)》課程不斷向前發(fā)展。
1.講好第一堂課,調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣
《數(shù)據(jù)結(jié)構(gòu)》雖然包含了較多的理論內(nèi)容,但具有實(shí)踐應(yīng)用的特點(diǎn)。“興趣是最好的老師”。因此在進(jìn)行數(shù)據(jù)結(jié)構(gòu)課的第一次授課中,我并不急于介紹理論,也不順著內(nèi)容講解,而是強(qiáng)調(diào)應(yīng)用,先講幾個(gè)容易結(jié)合實(shí)際的定義。比如,在介紹邏輯結(jié)構(gòu)這個(gè)定義時(shí),教師要結(jié)合實(shí)際中的應(yīng)用來(lái)激發(fā)學(xué)生的學(xué)習(xí)興趣。如圖書(shū)館的書(shū)目檢索系統(tǒng),如何組織圖書(shū)的登錄號(hào)、書(shū)名、分類號(hào)等數(shù)據(jù),才能快速實(shí)現(xiàn)查找、插入、刪除操作;如一個(gè)單位的人事管理系統(tǒng),怎么說(shuō)明上下級(jí)關(guān)系,怎么添加刪除;如通信網(wǎng)絡(luò)設(shè)計(jì)問(wèn)題,如在一個(gè)市里到縣區(qū)之間架設(shè)通信網(wǎng)絡(luò),怎樣安排線路以求花費(fèi)最少;再如計(jì)算機(jī)如何解決迷宮問(wèn)題,等等。這些應(yīng)用貼近生活,學(xué)生都比較熟悉,興趣就能夠被激發(fā)起來(lái),形成想了解具體問(wèn)題到底怎么實(shí)現(xiàn)的愿望。而且實(shí)踐證明,當(dāng)學(xué)生有了足夠的興趣,并能感覺(jué)到具體知識(shí)在實(shí)際生活中的價(jià)值,就越能吸引學(xué)生產(chǎn)生對(duì)知識(shí)的向往與追求的意向。這樣就可以讓學(xué)生從“要我學(xué)”變?yōu)椤拔乙獙W(xué)”。同時(shí),以上例子就已經(jīng)囊括了本門(mén)課中涉及的三大類數(shù)據(jù)結(jié)構(gòu)——線性表、樹(shù)和圖,這樣教師就可以水到渠成地歸結(jié)出數(shù)據(jù)結(jié)構(gòu)的概念和本章涉及的幾種數(shù)據(jù)結(jié)構(gòu)的類型,為后續(xù)章節(jié)的講解打下良好的基礎(chǔ)。
2.解決學(xué)生對(duì)C語(yǔ)言掌握的不足
C語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)結(jié)構(gòu)的前導(dǎo)課程之一,學(xué)生對(duì)它的掌握程度,直接關(guān)系到數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果。C語(yǔ)言非常靈活,對(duì)于剛剛學(xué)完該課程的學(xué)生而言,運(yùn)用不一定很自如。另外,數(shù)據(jù)結(jié)構(gòu)課程教學(xué)過(guò)程中主要運(yùn)用指針、函數(shù)、數(shù)組作為函數(shù)參數(shù),以及結(jié)構(gòu)體類型來(lái)分析、解決問(wèn)題,而這正是C語(yǔ)言的難點(diǎn)內(nèi)容。對(duì)于大部分學(xué)生來(lái)說(shuō),C語(yǔ)言運(yùn)用能力不是很強(qiáng),如果上課時(shí)直接講程序,學(xué)生就會(huì)感覺(jué)很吃力,也聽(tīng)不明白。如何來(lái)解決這個(gè)問(wèn)題呢?我們可以利用一兩次課的時(shí)間來(lái)復(fù)習(xí)C語(yǔ)言的相關(guān)知識(shí),即數(shù)組、指針、函數(shù)和結(jié)構(gòu)體等。教師可以將這些學(xué)時(shí)納入到教學(xué)進(jìn)度表中,在復(fù)習(xí)時(shí)不需要講得太詳細(xì),只要把數(shù)據(jù)結(jié)構(gòu)課需要用到的內(nèi)容涵蓋即可,這樣學(xué)生就能循序漸進(jìn)地過(guò)渡到數(shù)據(jù)結(jié)構(gòu)教學(xué)之中了。
3.教學(xué)內(nèi)容的歸納提煉
部分教師認(rèn)為《數(shù)據(jù)結(jié)構(gòu)》這門(mén)課難講,學(xué)生也反映這門(mén)課不好學(xué)。這是因?yàn)椤稊?shù)據(jù)結(jié)構(gòu)》不但有很強(qiáng)的理論性,而且有一定的抽象性。既然“教”與“學(xué)”都有困難,那么就應(yīng)該尋找切入點(diǎn),而在“教”與“學(xué)”過(guò)程中首先應(yīng)該突破的就是教師應(yīng)該怎么“教”。教師首先自己要熟悉教材、精通教材,把握本課程的重點(diǎn)和難點(diǎn),能夠?qū)⑶昂髢?nèi)容聯(lián)系起來(lái)分析思考,盡量從中尋找共性的、規(guī)律性的東西進(jìn)行歸納與提煉,并將其系統(tǒng)化、具體化,避免“照本宣科”。例如從數(shù)據(jù)結(jié)構(gòu)的定義出發(fā)包含三方面的內(nèi)容:邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和算法。在講到每種數(shù)據(jù)結(jié)構(gòu)(線性表、棧、隊(duì)列、樹(shù)、圖)都會(huì)涉及到它的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和算法。教師在講授的過(guò)程中可以用數(shù)據(jù)結(jié)構(gòu)包含的三方面內(nèi)容作為一條主線貫穿整本書(shū),每講到一種新的數(shù)據(jù)結(jié)構(gòu)時(shí)都可以拿出這條主線來(lái)闡明其上的三方面內(nèi)容。這樣,學(xué)生學(xué)起來(lái)就會(huì)覺(jué)得有系統(tǒng)性,容易把握。綜觀全書(shū),不論是線性表、樹(shù)還是圖,最基本的的存儲(chǔ)結(jié)構(gòu)就是兩類:順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),只要把它們掌握好,整個(gè)課程學(xué)習(xí)的難度就不大。所以在教學(xué)過(guò)程中,教師一方面要緊扣課程的主脈,把基本的概念與術(shù)語(yǔ)解釋清楚,把各種數(shù)據(jù)結(jié)構(gòu)與操作運(yùn)算分析清楚,把有關(guān)算法的設(shè)計(jì)思路與實(shí)現(xiàn)方法講解清楚。另一方面要注重有關(guān)內(nèi)容的前后呼應(yīng),把握其內(nèi)在聯(lián)系,對(duì)各種相關(guān)結(jié)構(gòu)的特點(diǎn)與操作,進(jìn)行相應(yīng)的歸納、總結(jié)與對(duì)比。
4.教學(xué)方法的改進(jìn)
教學(xué)方法是需要特別注意的問(wèn)題,傳統(tǒng)的教學(xué)方法并不適合現(xiàn)在的教學(xué),教師應(yīng)該對(duì)教學(xué)方法進(jìn)行革新。在《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中,教師應(yīng)該注意讓學(xué)生的交流互動(dòng),其中“提問(wèn)題”非常重要,特別是算法設(shè)計(jì)中可以設(shè)計(jì)許多“問(wèn)題”。教師在備課時(shí),不僅要消化教材內(nèi)容,深入探究知識(shí)的奧秘,而且要精心設(shè)計(jì)課堂情景,準(zhǔn)備好“問(wèn)題”;數(shù)據(jù)結(jié)構(gòu)本身算法是比較靈活的,往往一個(gè)算法可以有多種實(shí)現(xiàn)方法。這樣,教師在課堂教學(xué)時(shí)不僅要生動(dòng)詳盡地講解知識(shí),而且要努力激發(fā)學(xué)生思維;不僅要求學(xué)生認(rèn)真聽(tīng),而且要引導(dǎo)學(xué)生積極思考,逐步培養(yǎng)學(xué)生舉一反三,主動(dòng)分析問(wèn)題、解決問(wèn)題的能力。在課堂教學(xué)中,教師除了通過(guò)提問(wèn)增加教師與學(xué)生之間的交流互動(dòng),還要設(shè)置一些機(jī)會(huì),鼓勵(lì)學(xué)生之間進(jìn)行交流與溝通。例如,講到拓?fù)渑判驎r(shí),教師應(yīng)該先把基本原理講清楚,然后講一種常見(jiàn)的實(shí)際解決辦法,再由學(xué)生自由討論,看有沒(méi)有其他辦法可以同樣解決問(wèn)題,由學(xué)生描述,教師進(jìn)行點(diǎn)評(píng)。這樣既有助于活躍課堂氣氛,提高學(xué)生的積極性,又能增強(qiáng)競(jìng)爭(zhēng)意識(shí),鍛煉學(xué)生的表達(dá)能力。
5.加強(qiáng)實(shí)踐環(huán)節(jié)
為使學(xué)生真正學(xué)好《數(shù)據(jù)結(jié)構(gòu)》,除了在課堂上要采用行之有效的教學(xué)方法外,教師還要讓學(xué)生勤動(dòng)手,多實(shí)踐。只有通過(guò)實(shí)踐才能發(fā)現(xiàn)“教”與“學(xué)”中存在的問(wèn)題。實(shí)踐的首要環(huán)節(jié)是多做習(xí)題。學(xué)生不僅要做,而且要求交作業(yè)。教師則要進(jìn)行全面檢查與批改,對(duì)出現(xiàn)的問(wèn)題要及時(shí)進(jìn)行總結(jié)、歸納、講評(píng)。在講評(píng)時(shí),教師要細(xì)講解題思路,規(guī)范解題方法,并強(qiáng)調(diào)有關(guān)的注意事項(xiàng)。同時(shí),對(duì)于作業(yè)中的可取之處要加以表?yè)P(yáng),鼓勵(lì)他們開(kāi)拓創(chuàng)新。其次是上機(jī)實(shí)驗(yàn)。實(shí)驗(yàn)可分兩部分,一是驗(yàn)證性實(shí)驗(yàn),主要結(jié)合課堂理論教學(xué)內(nèi)容展開(kāi),學(xué)生可以對(duì)在課堂上學(xué)到的基本算法進(jìn)行驗(yàn)證;二是運(yùn)用性實(shí)驗(yàn),堅(jiān)持“學(xué)以致用”的原則,目的是讓學(xué)生充分利用所學(xué)的理論知識(shí)進(jìn)行相對(duì)復(fù)雜的應(yīng)用設(shè)計(jì);三是進(jìn)行系統(tǒng)的設(shè)計(jì)。上機(jī)結(jié)束后教師應(yīng)要求學(xué)生完成實(shí)習(xí)報(bào)告,寫(xiě)出自己調(diào)試過(guò)程中遇到的問(wèn)題是如何解決的,以及對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析,算法的時(shí)空分析,測(cè)試結(jié)果,以及經(jīng)驗(yàn)體會(huì),并附上源程序代碼,從而寫(xiě)出完整的實(shí)習(xí)報(bào)告。批改學(xué)生實(shí)習(xí)報(bào)告后,教師應(yīng)對(duì)學(xué)生的上機(jī)實(shí)習(xí)情況作及時(shí)總結(jié),指出成功之處和不足之處。
參考文獻(xiàn):
[1]嚴(yán)尉敏,吳偉民.數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言描述.清華大學(xué)出版社,1997.
[2]嚴(yán)尉敏,吳偉民,米寧.數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版).清華大學(xué)出版社,1999.
[3]嚴(yán)尉敏.編寫(xiě)數(shù)據(jù)結(jié)構(gòu)的回顧和體會(huì).教學(xué)與研究,1994.