紀(jì) 穎,周 欣,劉彥君
(哈爾濱理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150080)
數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
紀(jì) 穎,周 欣,劉彥君
(哈爾濱理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150080)
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)專(zhuān)業(yè)中一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課程,在分析數(shù)據(jù)結(jié)構(gòu)教學(xué)中主要存在的問(wèn)題及原因的基礎(chǔ)上,根據(jù)教學(xué)實(shí)踐經(jīng)驗(yàn),結(jié)合目前的計(jì)算機(jī)專(zhuān)業(yè)課教學(xué)改革方法,闡述了在教學(xué)改革上的一些創(chuàng)新的認(rèn)識(shí)。
數(shù)據(jù)結(jié)構(gòu);教學(xué)改革;教學(xué)模式;實(shí)踐能力
數(shù)據(jù)結(jié)構(gòu)課程不僅是計(jì)算機(jī)科學(xué)與技術(shù)的核心基礎(chǔ)課程之一,也是操作系統(tǒng)、數(shù)據(jù)庫(kù)、軟件工程和人工智能等課程的基礎(chǔ),是一門(mén)實(shí)踐性很強(qiáng)的課程,廣泛應(yīng)用于信息科學(xué)、應(yīng)用數(shù)學(xué)以及各種工程技術(shù)領(lǐng)域。數(shù)據(jù)結(jié)構(gòu)課程理論性強(qiáng),教學(xué)重點(diǎn)部分比較抽象,難以理解。針對(duì)數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中存在的問(wèn)題,提出了改革的方案,教學(xué)實(shí)踐表明,該方案的實(shí)施已取得了明顯的教學(xué)效果。
1.先行課程不扎實(shí)。C語(yǔ)言程序設(shè)計(jì)是《數(shù)據(jù)結(jié)構(gòu)》的前導(dǎo)課程之一。學(xué)生對(duì)它的熟悉、掌握程度,直接關(guān)系到數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果。由于 C語(yǔ)言是學(xué)生最先接觸的程序設(shè)計(jì)語(yǔ)言,編程思想與以往的思維方式不同,教學(xué)難度比較大,使得教學(xué)時(shí)間大部分花費(fèi)在基本概念上。而學(xué)生對(duì)數(shù)組、結(jié)構(gòu)體、指針這三種數(shù)據(jù)類(lèi)型的認(rèn)識(shí)和理解不深,甚至印象模糊;對(duì)函數(shù)、函數(shù)的參數(shù)、函數(shù)的返回值、函數(shù)調(diào)用的理解也不夠;對(duì)遞歸及遞歸過(guò)程更是難以理解。然而,這些內(nèi)容是數(shù)據(jù)結(jié)構(gòu)課程的重要基礎(chǔ),在數(shù)據(jù)結(jié)構(gòu)課程中使用頻率很高。因此授課教師在數(shù)據(jù)結(jié)構(gòu)教學(xué)中需要花費(fèi)大量的時(shí)間重新介紹這些知識(shí),但學(xué)生仍然模糊不清,致使教學(xué)效果不理想,最終使得學(xué)生喪失對(duì)該課程學(xué)習(xí)的興趣和信心。
2.本課教學(xué)難度高。數(shù)據(jù)結(jié)構(gòu)課程的理論性和抽象性使學(xué)生學(xué)起來(lái)很困難。首先,學(xué)生對(duì) C語(yǔ)言中的函數(shù)、指針和結(jié)構(gòu)體等知識(shí)點(diǎn)本身理解就不夠,一下子跨度到數(shù)據(jù)結(jié)構(gòu),學(xué)生難以接受。其次,本課程要求學(xué)生在理解數(shù)據(jù)邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)等基本概念的基礎(chǔ)上建立算法,最終掌握對(duì)數(shù)據(jù)以及數(shù)據(jù)之間關(guān)系的處理方法。但是這些基本概念和數(shù)據(jù)在內(nèi)存中的表示等知識(shí)非常抽象,學(xué)生很難建立起概念。
3.理論教學(xué)與實(shí)際應(yīng)用脫節(jié)。數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容抽象、瑣碎、龐雜,涉及很多概念和技術(shù)。所有這些內(nèi)容均自成體系,相互之間的銜接線索很少,總體感覺(jué)內(nèi)容零散,沒(méi)有一個(gè)整體的知識(shí)框架體系,這些內(nèi)容在實(shí)際應(yīng)用中又都很重要。而現(xiàn)行的教學(xué)計(jì)劃實(shí)踐課時(shí)普遍不足,實(shí)驗(yàn)課安排的實(shí)驗(yàn)項(xiàng)目很難涵蓋課程的所有知識(shí)點(diǎn)。同時(shí)實(shí)驗(yàn)內(nèi)容的設(shè)置,往往都是大量的驗(yàn)證性實(shí)驗(yàn),缺乏對(duì)實(shí)際問(wèn)題的解決,學(xué)生在實(shí)驗(yàn)之后仍然不知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)在解決實(shí)際問(wèn)題的時(shí)候能對(duì)編程有什么指導(dǎo)意義。
1.鞏固前導(dǎo)課程,培養(yǎng)學(xué)生興趣。針對(duì)學(xué)生前導(dǎo)課程學(xué)習(xí)不扎實(shí)的問(wèn)題,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí)穿插復(fù)習(xí)前導(dǎo)課程的內(nèi)容,幫助學(xué)生鞏固程序設(shè)計(jì)基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)主要講授數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)以及不同存儲(chǔ)結(jié)構(gòu)下算法的實(shí)現(xiàn)。大量的算法都是由類(lèi) C或 C++編寫(xiě)的。數(shù)據(jù)結(jié)構(gòu)的算法中經(jīng)常要用到指針、函數(shù)和結(jié)構(gòu)體這些知識(shí)點(diǎn),而這些知識(shí)點(diǎn)卻都是C程序設(shè)計(jì)語(yǔ)言的難點(diǎn),大多數(shù)學(xué)生在學(xué)習(xí)C語(yǔ)言時(shí)都沒(méi)很好的掌握,在講授數(shù)據(jù)結(jié)構(gòu)中的算法時(shí),復(fù)習(xí) C語(yǔ)言中的相關(guān)知識(shí)點(diǎn),有利于學(xué)生對(duì)算法的理解和應(yīng)用。教師在復(fù)習(xí)前導(dǎo)課程時(shí)不用面面俱到,只需要復(fù)習(xí)和數(shù)據(jù)結(jié)構(gòu)課程相關(guān)的內(nèi)容就可以了。復(fù)習(xí)了數(shù)據(jù)結(jié)構(gòu)中相關(guān)前導(dǎo)課程的知識(shí)點(diǎn),鞏固了程序設(shè)計(jì)的基礎(chǔ),學(xué)生在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí)就能較快理解大量的算法,有助于消除學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)的恐懼感,培養(yǎng)學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的興趣。興趣是最好的老師,是學(xué)習(xí)的動(dòng)力。學(xué)生有了興趣,學(xué)習(xí)就會(huì)由被動(dòng)轉(zhuǎn)為主動(dòng),取得事半功倍的教學(xué)效果。
2.變“單向”的教學(xué)模式為“雙向”。增加課堂的互動(dòng)環(huán)節(jié),使學(xué)生很好地參與到課堂教學(xué)中來(lái)。在傳統(tǒng)的教學(xué)模式中,一般以教師的講解為主,可適當(dāng)?shù)卦谡n堂上增加一些提問(wèn),如果這些問(wèn)題難度適中的話,既可以增強(qiáng)學(xué)生們的自信心,又能激發(fā)他們的求知欲望[1]。另外,還可以課堂討論的方式,結(jié)合某種實(shí)際問(wèn)題(如交通燈問(wèn)題),從問(wèn)題的分析入手,用數(shù)據(jù)結(jié)構(gòu)理論幫助解決問(wèn)題,從而培養(yǎng)學(xué)生靈活運(yùn)用所學(xué)理論知識(shí)分析問(wèn)題、解決問(wèn)題的能力,提高他們思維的活躍性。同時(shí)以實(shí)例的方式使學(xué)生明白通過(guò)“數(shù)據(jù)結(jié)構(gòu)”課程的學(xué)習(xí),可以深入理解計(jì)算機(jī)軟硬件的理論基礎(chǔ),做到知其然更知其所以然,從而能夠更好地運(yùn)用計(jì)算機(jī)解決各種實(shí)際問(wèn)題。
3.強(qiáng)化范例教學(xué)法在教學(xué)中的應(yīng)用。范例教學(xué)在數(shù)據(jù)結(jié)構(gòu)的算法思想講解中能發(fā)揮其無(wú)法比擬的優(yōu)勢(shì)。對(duì)數(shù)據(jù)結(jié)構(gòu)中的主要算法和一些抽象的概念,可以盡量先從直觀意義或具體實(shí)例解釋著手,通過(guò)多畫(huà)圖、多舉例讓學(xué)生更容易理解。這種從特殊到一般,從具體到抽象的方法在數(shù)據(jù)結(jié)構(gòu)中的很多內(nèi)容都可以這樣處理[2]。例如:講解隊(duì)列的概念時(shí),可通過(guò)日常生活中的購(gòu)物排隊(duì)的過(guò)程來(lái)反映隊(duì)列中插入、刪除的原則,再結(jié)合計(jì)算機(jī)中的操作隊(duì)列、打印隊(duì)列的應(yīng)用來(lái)闡明隊(duì)列先進(jìn)先出的特點(diǎn)。對(duì)二叉樹(shù)的遍歷的算法過(guò)程可通過(guò)一個(gè)特定的二叉樹(shù)的例子說(shuō)明其遍歷思想,再推廣到一般的二叉樹(shù)的情況等等。
4.利用現(xiàn)代化多媒體技術(shù)進(jìn)行教學(xué)。數(shù)據(jù)結(jié)構(gòu)教學(xué)復(fù)雜和困難的一個(gè)主要因素是學(xué)生必須通過(guò)腦海中執(zhí)行靜態(tài)的程序代碼來(lái)了解數(shù)據(jù)結(jié)構(gòu)的動(dòng)態(tài)變化,而這很難通過(guò)傳統(tǒng)的黑板加粉筆的教學(xué)模式予以實(shí)現(xiàn)。因此必須充分利用多媒體教學(xué)課件、算法動(dòng)態(tài)演示系統(tǒng)等先進(jìn)教學(xué)手段,把多種媒體組合起來(lái),以生動(dòng)、形象、靈活、全方位、立體化的方式把知識(shí)呈現(xiàn)給學(xué)生。但是,另一方面,我們認(rèn)為在講授有關(guān)算法復(fù)雜度的推導(dǎo),尤其是遞歸函數(shù)的推導(dǎo)時(shí),應(yīng)盡量使用傳統(tǒng)的板書(shū)教學(xué)模式,以方便學(xué)生掌握推導(dǎo)思想及推導(dǎo)過(guò)程。總之,現(xiàn)代化多媒體教學(xué)與傳統(tǒng)教學(xué)方式的綜合使用已成為深化教學(xué)改革的一種有效手段,在數(shù)據(jù)結(jié)構(gòu)的教學(xué)過(guò)程中應(yīng)予以充分利用。
5.加強(qiáng)實(shí)踐環(huán)節(jié),實(shí)施教學(xué)方法多樣化。加強(qiáng)實(shí)踐環(huán)節(jié)??梢酝ㄟ^(guò)三種實(shí)踐方式:一是做習(xí)題,二是上機(jī)實(shí)踐,三是課程設(shè)計(jì)。習(xí)題主要限于章節(jié)的內(nèi)容,使學(xué)生加深對(duì)各章節(jié)主要的理論、概念、方法、結(jié)構(gòu)等的理解。要學(xué)好“數(shù)據(jù)結(jié)構(gòu)”,只“看”不“練”肯定是不行的,習(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)。
上機(jī)實(shí)踐則不僅能進(jìn)一步提高學(xué)生靈活運(yùn)用數(shù)據(jù)結(jié)構(gòu)的能力,而且使學(xué)生在編程、上機(jī)操作、程序調(diào)試與正確性驗(yàn)證等基本技能方面受到嚴(yán)格的訓(xùn)練。在上機(jī)題的選擇上,要體現(xiàn)分析設(shè)計(jì)能力的培養(yǎng)。由于數(shù)據(jù)結(jié)構(gòu)課程不具有明顯的整體性,各種數(shù)據(jù)結(jié)構(gòu)之間相對(duì)獨(dú)立,所以首先要選擇一些單一數(shù)據(jù)結(jié)構(gòu)的上機(jī)題來(lái)進(jìn)行基本的訓(xùn)練,然后再選擇一些綜合運(yùn)用的上機(jī)題來(lái)進(jìn)行拓展訓(xùn)練。給學(xué)生布置的綜合運(yùn)用上機(jī)題不宜過(guò)細(xì),應(yīng)留有余地,并把握好難度,不要事先指定使用某種數(shù)據(jù)結(jié)構(gòu),而是要求學(xué)生從實(shí)際出發(fā),在具體、真實(shí)的環(huán)境中分析研究數(shù)據(jù)對(duì)象的特性,構(gòu)造合理的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的算法[3]。通過(guò)上機(jī)實(shí)踐,可以進(jìn)一步鍛煉學(xué)生的編程能力,要求學(xué)生編制的程序一定要有完整的數(shù)據(jù)結(jié)構(gòu)說(shuō)明和注釋,要有容錯(cuò)處理,要能正常運(yùn)行。上機(jī)結(jié)束后要求學(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)告后,對(duì)學(xué)生的上機(jī)實(shí)習(xí)情況作及時(shí)總結(jié),指出成功之處和不足之處。
課程設(shè)計(jì)是培養(yǎng)實(shí)踐能力的重要環(huán)節(jié),只有認(rèn)真學(xué)習(xí),勤于實(shí)踐,并且理論聯(lián)系實(shí)踐,才能將所學(xué)知識(shí)和解決問(wèn)題的能力融為一體。課程設(shè)計(jì)的題目選擇要結(jié)合實(shí)際,應(yīng)根據(jù)學(xué)生的實(shí)際能力和興趣安排課題,以學(xué)生經(jīng)過(guò)努力能完成課題為度,太難和太容易都不能達(dá)到預(yù)期的教學(xué)目標(biāo)。課程設(shè)計(jì)是以學(xué)生自主設(shè)計(jì)為主的教學(xué)過(guò)程,學(xué)生在設(shè)計(jì)過(guò)程中難免會(huì)遇到一些困難和問(wèn)題,大多數(shù)學(xué)生正是在解決這些問(wèn)題的過(guò)程中學(xué)習(xí)和積累能力的。指導(dǎo)教師應(yīng)及時(shí)而適度地指導(dǎo)以保證教果。由于專(zhuān)業(yè)課程的理論與技術(shù)往往表現(xiàn)出較強(qiáng)的綜合性、前沿性、探索性,是發(fā)展中的科學(xué)。通過(guò)課程設(shè)計(jì)讓學(xué)生撰寫(xiě)自己的小論文或總結(jié)報(bào)告,使學(xué)生時(shí)刻跟蹤本課程的最新動(dòng)態(tài)。
本文認(rèn)真研究和分析了數(shù)據(jù)結(jié)構(gòu)當(dāng)前的教學(xué)現(xiàn)狀,提出了數(shù)據(jù)結(jié)構(gòu)教學(xué)改革的具體方案。通過(guò)教學(xué)改革和教學(xué)實(shí)踐,提高學(xué)生的邏輯思維能力和數(shù)據(jù)抽象能力,掌握軟件設(shè)計(jì)領(lǐng)域科學(xué)的思維方式,提高設(shè)計(jì)高質(zhì)量程序的能力,奠定扎實(shí)的軟件開(kāi)發(fā)基礎(chǔ)。
[1]黃翔.《教據(jù)結(jié)構(gòu)》教學(xué)改革探討 [J].福建電腦,2009, (7):29.
[2]梁娟,馬同偉.淺談數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)改革 [J].河南機(jī)電高等專(zhuān)科學(xué)校學(xué)報(bào),2008,(7):32.
[3]金萍,宗瑜.數(shù)據(jù)結(jié)構(gòu)教學(xué)改革初探[J].皖西學(xué)院學(xué)報(bào), 2007,(4):26.
(責(zé)任編輯:侯秀梅)
G420
A
1001-7836(2010)05-0055-02
2010-03-11
紀(jì)穎 (1965-),女,黑龍江哈爾濱人,副教授,從事數(shù)據(jù)結(jié)構(gòu)及算法設(shè)計(jì)與分析研究;周欣 (1968-),女,黑龍江哈爾濱人,講師,從事網(wǎng)絡(luò)程序設(shè)計(jì)及網(wǎng)絡(luò)安全研究;劉彥君 (1964-),男,黑龍江肇源人,副教授,從事網(wǎng)絡(luò)程序設(shè)計(jì)及網(wǎng)絡(luò)安全研究。
黑龍江教育學(xué)院學(xué)報(bào)2010年5期