吳海濤 郝慧珍
南京工程學(xué)院 江蘇南京 211167
數(shù)據(jù)結(jié)構(gòu)課程教學(xué)方法探討
吳海濤 郝慧珍
南京工程學(xué)院 江蘇南京 211167
在分析了數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中存在問(wèn)題的基礎(chǔ)上,將基于MFC的編程思想和方法運(yùn)用到數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)中,此方法不但激發(fā)了學(xué)生的學(xué)習(xí)興趣,強(qiáng)化了編程能力,而且還加深了學(xué)生對(duì)算法的理解程度,達(dá)到了課程教學(xué)的目的。
數(shù)據(jù)結(jié)構(gòu);教學(xué)方法;面向?qū)ο笏枷?/p>
數(shù)據(jù)結(jié)構(gòu)課程一直是計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)中的一門(mén)專(zhuān)業(yè)基礎(chǔ)課程,以抽象難懂,理論性強(qiáng),學(xué)習(xí)難度大而著稱(chēng)。但是,從筆者幾年來(lái)講授該課程的經(jīng)驗(yàn)來(lái)看,學(xué)習(xí)不好該課程還有一個(gè)主要原因,那就是缺乏對(duì)實(shí)驗(yàn)環(huán)節(jié)的重視。數(shù)據(jù)結(jié)構(gòu)的教學(xué)實(shí)驗(yàn)主要是利用C語(yǔ)言在Turbo C的開(kāi)發(fā)環(huán)境中進(jìn)行,這與當(dāng)前流行的面向?qū)ο蠹夹g(shù)、組件技術(shù)等有較大的差距。所以,我們考慮采用主流的面向?qū)ο蠹夹g(shù)進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程的教學(xué),將基于MFC(Microsoft Foundation Classes)的編程思想和方法運(yùn)用到該課程的教學(xué)中。實(shí)踐證明,該方法教學(xué)效果良好。
數(shù)據(jù)結(jié)構(gòu)課程在整個(gè)專(zhuān)業(yè)教學(xué)體系中占有重要地位,是計(jì)算機(jī)科學(xué)的算法理論基礎(chǔ)和軟件設(shè)計(jì)基礎(chǔ),它含有問(wèn)題求解的理論、抽象和設(shè)計(jì)的方法論,其課程內(nèi)容體系結(jié)構(gòu)分為概念表述、構(gòu)建數(shù)據(jù)模型、設(shè)計(jì)算法3個(gè)層面,突出數(shù)據(jù)組織方法與實(shí)現(xiàn)技術(shù)構(gòu)成,主要以抽象數(shù)據(jù)類(lèi)型為中樞,展示了信息結(jié)構(gòu)轉(zhuǎn)換的3個(gè)重要階段:數(shù)學(xué)模型→抽象數(shù)學(xué)模型→數(shù)據(jù)結(jié)構(gòu)。該課程的學(xué)習(xí)對(duì)其他專(zhuān)業(yè)課程的學(xué)習(xí)具有承前啟后的作用,它執(zhí)行的好壞影響是非常重大的。
數(shù)據(jù)結(jié)構(gòu)課程一直是教學(xué)的難點(diǎn)課程,執(zhí)行難,學(xué)生理解難,老師講授難。從筆者幾年的教學(xué)情況來(lái)看,該課程在教學(xué)中主要存在幾大難點(diǎn)問(wèn)題,總結(jié)如下:
1.學(xué)生畏學(xué)心理,需簡(jiǎn)單入門(mén)
數(shù)據(jù)結(jié)構(gòu)課程知識(shí)體系復(fù)雜,涉及的內(nèi)容多,概念抽象,理論性強(qiáng),這使得大部分學(xué)生在學(xué)習(xí)本課程時(shí)感覺(jué)到困難重重,對(duì)于一些復(fù)雜的算法設(shè)計(jì)題,更是無(wú)從下手,因此產(chǎn)生畏學(xué)心理,感覺(jué)學(xué)習(xí)中是難上加難。針對(duì)這一問(wèn)題,需要教師在講授的初始階段,需簡(jiǎn)單入門(mén),先讓學(xué)生接受,然后再由淺入深的學(xué)習(xí),克服畏學(xué)和厭學(xué)心理,為課程的后續(xù)進(jìn)行打下一個(gè)良好的開(kāi)端。
2.理論抽象難理解,需具體實(shí)例化
學(xué)生在利用高級(jí)語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的問(wèn)題構(gòu)建中,對(duì)于不夠形象直觀的數(shù)據(jù)結(jié)構(gòu)抽象理論,理解非常困難,在諸如數(shù)值計(jì)算、結(jié)構(gòu)計(jì)算及項(xiàng)目管理系統(tǒng)的編程中如何構(gòu)建數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)出相應(yīng)的算法,同樣也困擾著學(xué)習(xí)者。對(duì)于此問(wèn)題,需要教師在講解抽象難懂的算法的同時(shí),借助于具體的實(shí)例進(jìn)行講解,由抽象到具體再到抽象的過(guò)程,此方法能起到事半功倍之效果。
3.實(shí)驗(yàn)環(huán)節(jié)薄弱,需強(qiáng)化此環(huán)節(jié)
在數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)中,復(fù)雜算法理解困難,一般學(xué)生在經(jīng)過(guò)多次練習(xí)才能掌握一點(diǎn)兒基礎(chǔ)知識(shí),而在相隔不久的時(shí)間后,又基本忘記,學(xué)生普遍反應(yīng)效果不好。產(chǎn)生此現(xiàn)象的原因主要是實(shí)驗(yàn)環(huán)節(jié)薄弱,只有經(jīng)過(guò)上機(jī)練習(xí)的實(shí)踐環(huán)節(jié),才能掌握實(shí)質(zhì),才能對(duì)算法記憶深刻,所以記憶算法的主要辦法是從實(shí)踐中得到,而非簡(jiǎn)單記憶。
4.編程基礎(chǔ)薄弱,需強(qiáng)化語(yǔ)言編程
我們實(shí)踐的目的是運(yùn)用簡(jiǎn)明的語(yǔ)言驗(yàn)證和體會(huì)數(shù)據(jù)結(jié)構(gòu)理論方法。目的是算法,工具是語(yǔ)言,所以要想實(shí)現(xiàn)算法,必須過(guò)語(yǔ)言這一關(guān),經(jīng)過(guò)了語(yǔ)言的驗(yàn)證,才能加深對(duì)算法的理解,進(jìn)一步求證算法的正確性。從以往的教學(xué)過(guò)程來(lái)看,學(xué)生普遍存在編程基礎(chǔ)薄弱的現(xiàn)象,有思路而用程序去驗(yàn)證較難。所以我們應(yīng)該以數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)為契機(jī),仔細(xì)研讀課本上的程序,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的同時(shí),提高學(xué)生編寫(xiě)和運(yùn)用程序的能力,進(jìn)一步強(qiáng)化語(yǔ)言編程。
基于上述教學(xué)難點(diǎn)分析,我們知道,學(xué)生畏學(xué)是因?yàn)榕聦W(xué)不好,而學(xué)不好的原因在于理論抽象,而想把難理解的抽象問(wèn)題化解的主要方法是借助于實(shí)驗(yàn)環(huán)節(jié),加深理解,所以歸根到底,出現(xiàn)問(wèn)題的根源在于實(shí)踐環(huán)節(jié)。忽略了該環(huán)節(jié),就相當(dāng)于忽略了激發(fā)學(xué)生學(xué)習(xí)興趣的機(jī)會(huì),忽略了學(xué)生的學(xué)習(xí)興趣,就難以掌握學(xué)生學(xué)習(xí)主動(dòng)性,所以要想學(xué)好該門(mén)課程,實(shí)踐環(huán)節(jié)是至關(guān)重要的。下面就這一環(huán)節(jié)而展開(kāi)一種新的教改思路,從而進(jìn)一步學(xué)好和教好該門(mén)課程。
1.改革語(yǔ)言工具
眾所周知,微軟的操作系統(tǒng)由DOS升級(jí)到圖形化的Windows后,人們?cè)隗w會(huì)其方便性能的同時(shí),還有一種全新的感受,那就是賞心悅目,對(duì)于美的、方便的事物人們一般不會(huì)拒絕,所以從改革實(shí)踐環(huán)節(jié)來(lái)說(shuō),選擇一種可視化的方便的編程工具是實(shí)現(xiàn)教改的第一步。Visual C++是一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問(wèn)世,Visual C++已成為專(zhuān)業(yè)程序員進(jìn)行軟件開(kāi)發(fā)的首選工具。
2.引入基于MFC的編程思想
MFC,微軟基礎(chǔ)類(lèi),是由微軟提供的用于在C++環(huán)境下編寫(xiě)應(yīng)用程序的一個(gè)框架和引擎,MFC對(duì)WindowsAPI進(jìn)行了封裝,大大簡(jiǎn)化了編程者的工作。
在數(shù)據(jù)結(jié)構(gòu)課堂和實(shí)驗(yàn)教學(xué)中,我們大量采用了基于MFC的編程思想,編寫(xiě)了基于MFC的程序框架,用MFC強(qiáng)大的用戶(hù)界面功能,來(lái)直觀表現(xiàn)程序結(jié)果。這一方法,能極大激發(fā)學(xué)生的學(xué)習(xí)熱情。試想,如果描述一個(gè)簡(jiǎn)單的樹(shù)型結(jié)構(gòu),在Turbo C中我們需要連續(xù)輸入一串原始數(shù)據(jù)作為輸入項(xiàng),處理后結(jié)果以黑屏顯示輸出,而在VC++中可以通過(guò)控件編程,以樹(shù)型控件來(lái)表達(dá),直觀而方便。
3.重視實(shí)踐,深化理論學(xué)習(xí)
實(shí)踐出真知,數(shù)據(jù)結(jié)構(gòu)課程重在理論,可是理論必須經(jīng)過(guò)實(shí)驗(yàn)的驗(yàn)證而獲得。如果可視化的編程學(xué)習(xí)很容易激發(fā)學(xué)生的學(xué)習(xí)熱情,容易產(chǎn)生成就感,那么學(xué)生會(huì)變被動(dòng)接受為主動(dòng)學(xué)習(xí),由厭學(xué)怕學(xué)到愛(ài)學(xué)主動(dòng)學(xué),這一轉(zhuǎn)變?cè)谡n程講授中是引發(fā)質(zhì)變的主推動(dòng)力。所以重視實(shí)驗(yàn)環(huán)節(jié),激發(fā)學(xué)習(xí)興趣,在實(shí)驗(yàn)的過(guò)程中,深化理論學(xué)習(xí),達(dá)到了教學(xué)的最終目的和目標(biāo)。
4.執(zhí)行效果與評(píng)價(jià)
學(xué)習(xí)方法很重要,只要方法得當(dāng),難的東西也就變的容易了,復(fù)雜的東西也變得簡(jiǎn)單了。所以,從根本上講,良好的教學(xué)方法是解決數(shù)據(jù)結(jié)構(gòu)教學(xué)難點(diǎn)問(wèn)題的關(guān)鍵所在。
此種教改方法運(yùn)用到具體的教學(xué)和實(shí)驗(yàn)中后,執(zhí)行效果很明顯。對(duì)于學(xué)生,從一開(kāi)始的語(yǔ)言改變的適應(yīng),到中期的可視化控件帶來(lái)的方便,到后期對(duì)編程產(chǎn)生濃厚的興趣,變被動(dòng)學(xué)習(xí)為自主學(xué)習(xí)的過(guò)程來(lái)看,此教學(xué)改革方式是可行的,不但激發(fā)了學(xué)生的編程熱情,提高了編程能力,而且在強(qiáng)化語(yǔ)言學(xué)習(xí)的過(guò)程中,深入地領(lǐng)會(huì)了算法的內(nèi)涵,使抽象的理論算法變得越來(lái)越簡(jiǎn)單、容易,深化了理論的學(xué)習(xí)。
總之,通過(guò)對(duì)數(shù)據(jù)結(jié)構(gòu)課程教學(xué)難點(diǎn)分析,給出了一些行之有效的對(duì)策,在此基礎(chǔ)上,分析了出現(xiàn)問(wèn)題的根源在于,實(shí)踐環(huán)節(jié)重視不夠。通過(guò)改革以往的語(yǔ)言工具,尋求一種新的基于MFC的編程思想,用良好直觀的表現(xiàn)方式來(lái)驗(yàn)證實(shí)驗(yàn)結(jié)果。實(shí)踐證明,該方法激發(fā)了學(xué)習(xí)的學(xué)習(xí)熱情,鍛煉了編程能力,同時(shí)也加深了對(duì)理論問(wèn)題的理解,教學(xué)效果良好。
[1]肖四友.面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的創(chuàng)新教學(xué)[J].電腦知識(shí)與技術(shù),2005,35:223~225
[2]劉文強(qiáng),顧澤元.在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的若干問(wèn)題及其對(duì)策分析[J].中國(guó)現(xiàn)代教育裝備,2009,3:89~91
[3]馮玉平.加強(qiáng)教學(xué)反思,增強(qiáng)教學(xué)效果[J].四川教育學(xué)院學(xué)報(bào),2005,4:71~73
[4]Scott G. Paris,培養(yǎng)反思力[M].北京:中國(guó)輕工業(yè)出版社,2001
[5]夏英.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革探析[J].重慶郵電大學(xué)學(xué)報(bào),2007,19:171~172
Abstract: Based on the analysis of the occurred questions in data structure curriculum instruction, applies the MFC programming idea and method to the teaching in data structure instruction, not only arises it the student’s interest and strengthens their programming ability but also it deepens their apprehend about the algorithm, the result proves that it arrived at the teaching goal.
Key words: data structure; teaching method; object-oriented idea
A probe into the teaching methods of data structure
Wu Haitao, Hao Huizhen
Nanjing institute of technology, Nanjing, 211167, China
2010-03-10
吳海濤,碩士,講師。郝慧珍,碩士,講師。