【摘 要】依據(jù)“數(shù)據(jù)結(jié)構(gòu)”課程的特點,結(jié)合教學(xué)中的一些經(jīng)驗,從教學(xué)實踐出發(fā),對“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)方法的改進提出了一些意見和建議,以期加強“數(shù)據(jù)結(jié)構(gòu)”課程建設(shè),提高學(xué)生實踐能力和創(chuàng)新能力。
【關(guān)鍵詞】數(shù)據(jù)結(jié)構(gòu) 教學(xué)方法 課程建設(shè)
【中圖分類號】G642【文獻(xiàn)標(biāo)識碼】A【文章編號】1006-9682(2009)03-0061-02
一、引 言
“數(shù)據(jù)結(jié)構(gòu)”是計算機程序設(shè)計的重要理論技術(shù)基礎(chǔ),是軟件工程專業(yè)的核心課程?!皵?shù)據(jù)結(jié)構(gòu)”主要研究的內(nèi)容包括數(shù)據(jù)在計算機中的表示和組織,進而研究對數(shù)據(jù)的處理方式。因此,這門課程要求學(xué)生會分析計算機中各種數(shù)據(jù)結(jié)構(gòu)的特性,并且初步掌握算法的時間分析和空間分析技術(shù),以便遇到實際應(yīng)用問題時會選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)及相應(yīng)的算法。而該課程內(nèi)容多、綜合性、實踐性強,如何取得良好的教學(xué)效果,本文就該課程教學(xué)方法的改進做一探討。
二、存在的問題及改革方法
傳統(tǒng)的教學(xué)方法過分偏重講授,導(dǎo)致學(xué)生通過學(xué)習(xí),雖然能夠掌握各種數(shù)據(jù)結(jié)構(gòu)的一些基本知識,會做題,能通過卷面考試,但由于缺乏自己的思考和運用,對數(shù)據(jù)結(jié)構(gòu)課程的意義并不理解,甚至不知道不同的數(shù)據(jù)結(jié)構(gòu)如何運用,如何變化,在實踐過程中更不能靈活運用。
本文所討論的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)方法改革的主旨就是要加強培養(yǎng)學(xué)生的創(chuàng)新精神和創(chuàng)造能力,采用啟發(fā)式、討論式、研究式的教學(xué)方法,這需要我們從課程的一開始就著手培養(yǎng)學(xué)生的興趣,引導(dǎo)學(xué)生發(fā)現(xiàn)問題、解決問題,最后能有創(chuàng)新的運用,具體采用以下幾點做法:
1.提高學(xué)生的學(xué)習(xí)興趣,第一堂課很重要。
俗話說:“良好的開端,是成功的一半。”因此,數(shù)據(jù)結(jié)構(gòu)課程的第一堂課,不要急于給學(xué)生灌輸基礎(chǔ)的理論知識,而應(yīng)從學(xué)生身邊的一些有趣的應(yīng)用入手,激發(fā)學(xué)生們的學(xué)習(xí)興趣和主動性,引導(dǎo)學(xué)生從宏觀上了解數(shù)據(jù)結(jié)構(gòu)的知識在日常生活中的運用,并大致掌握各種數(shù)據(jù)結(jié)構(gòu)的意義,理解課程的安排,找到教師的講授和自己的學(xué)習(xí)線索。比如,計算機如何才能與人對弈,如何應(yīng)對變化的情況給出考慮周全的相應(yīng)對策,實現(xiàn)靈活對弈,用一棵倒著生長的“樹”就可以解決這樣的問題;打印機的速度比CPU慢,那么,怎么解決可能出現(xiàn)的數(shù)據(jù)丟失或者打印次序混亂的問題,用“隊列”這個數(shù)據(jù)結(jié)構(gòu)就可以解決這樣的問題;智能漢字輸入法是如何實現(xiàn)把常用的字排在候選輸入的最前面的,用課程中涉及到的查找的方法去解決;還有圖書館的書目檢索系統(tǒng)涉及到線性表,多叉路口交通燈的管理涉及到圖的染色等等。所有這些問題都是同學(xué)們所熟悉的、貼近生活的問題,因此可以激發(fā)同學(xué)們探索問題的解決方法,渴望掌握相應(yīng)的數(shù)據(jù)結(jié)構(gòu)知識。這樣便形成了一個良好的開端,帶著興趣和愿望去學(xué)好數(shù)據(jù)結(jié)構(gòu)這門課程。
2.采用問題驅(qū)動的啟發(fā)式教學(xué)方法
通過幾輪數(shù)據(jù)結(jié)構(gòu)課程教學(xué)實踐,發(fā)現(xiàn)多數(shù)同學(xué)可以掌握數(shù)據(jù)結(jié)構(gòu)本身的相關(guān)理論知識,能讀懂書本上的算法,但是遇到實際問題,要求設(shè)計一個算法,就感到無從下手。這個問題的原因是來自各方面的,其中可能包括同學(xué)們的程序設(shè)計語言學(xué)得不夠扎實,但更重要的是教師講授得太多,而給同學(xué)們思考和練習(xí)的時間太少。教師在教學(xué)過程中可以先提出問題,啟發(fā)式地講解解決問題的思路和方法,調(diào)動學(xué)生積極思考,使他們主動去掌握知識。教師需要注意的是,在提出問題的時候引導(dǎo)學(xué)生分析問題,找出適合的數(shù)據(jù)結(jié)構(gòu)解決問題,然后再引出學(xué)生需要學(xué)習(xí)和掌握的新知識,并深入詳細(xì)地講解重點知識和相關(guān)算法。算法的分析需要注意突出重點,分散難點,并在適當(dāng)?shù)臅r候設(shè)置一些問題,引導(dǎo)學(xué)生自己去積極思考,尋找解決途徑,使課堂活躍,使學(xué)生在課堂上收獲更多。當(dāng)然,不少教師認(rèn)為教學(xué)任務(wù)重,如果在課堂上給學(xué)生太多時間,教學(xué)任務(wù)可能無法完成。這就需要在給學(xué)生更多的思考機會的同時,權(quán)衡教學(xué)內(nèi)容的取舍,不求廣,但求精。只要學(xué)生掌握了分析問題的方法,便可以解決課堂上即使沒有覆蓋的問題,引導(dǎo)學(xué)生掌握方法一定比在課堂上羅列問題解決問題效果更好,畢竟實際生活中的問題是永遠(yuǎn)無法被窮舉的。
3.加強實踐教學(xué)
除了在課程開始時給出應(yīng)用例子,設(shè)計好每一知識單元的實驗和綜合性的課程設(shè)計環(huán)節(jié),是提高學(xué)生程序設(shè)計能力非常關(guān)鍵的一步。在課程的理論教學(xué)中,教師為主,學(xué)生為輔,在實踐教學(xué)中一定要打破這個角色定位,實現(xiàn)學(xué)生為主,教師為輔。教師在給出實驗任務(wù)后,要引導(dǎo)同學(xué)們分析解決問題,自己編寫程序。在實驗過程中,教師對個別同學(xué)存在的特殊問題可進行個別輔導(dǎo),隨時總結(jié),對具有共性的問題,應(yīng)給予集體輔導(dǎo)。在學(xué)生編寫完自己的程序之后,教師應(yīng)給出一個示范程序,以便學(xué)生們可以參照示范程序發(fā)現(xiàn)自己思路的缺陷或者不足,以及完善改進自己的程序。
在期末設(shè)置綜合性的課程設(shè)計環(huán)節(jié),要求學(xué)生分成若干小組,精心設(shè)計一些難度系數(shù)不同的綜合性問題,每小組據(jù)不同難度,組員3~5人不等,組內(nèi)成員分工合作完成分析設(shè)計和實現(xiàn),最后提交規(guī)范的課程設(shè)計報告。教師除給出題目外,需要同時引導(dǎo)學(xué)生分析問題的方法和角度,使學(xué)生積極參與,調(diào)動學(xué)生的主動性,激發(fā)學(xué)生的創(chuàng)造力,不斷培養(yǎng)學(xué)生發(fā)現(xiàn)問題、分析問題的能力。最后要求學(xué)生采用軟件工程的思想,按照軟件工程的要求,從需求分析、總體設(shè)計、詳細(xì)設(shè)計、編程實現(xiàn)到用戶使用說明和測試結(jié)果等方面組織成標(biāo)準(zhǔn)化文檔。這種規(guī)范有利于提高學(xué)生的基本程序設(shè)計素質(zhì)和形成良好的程序設(shè)計習(xí)慣,同時也可以完善學(xué)生軟件開發(fā)的能力。另外,建議在制定成績考核機制時,加大實踐教學(xué)的權(quán)重,讓學(xué)生重視能力的培養(yǎng),培養(yǎng)學(xué)生將理論知識靈活應(yīng)用于解決實際問題的能力,適應(yīng)高等教育中應(yīng)用型人才的培養(yǎng)需求。
4.注意多媒體課件的使用
通過多媒體課件,可以為許多原本對學(xué)生來說抽象的算法制作動態(tài)演示過程,如鏈表的插入、刪除、二叉樹的遍歷、圖遍歷、各種查找排序等等。通過動態(tài)演示,學(xué)生很容易理解各種操作過程,事半功倍。通過多媒體課件,可以很清晰地給學(xué)生展示授課思路、回顧歷史知識等。但同時使用多媒體課件也存在一些弊端。由于它信息量大,呈現(xiàn)速度快,如果教師不及時把握學(xué)生對知識的理解情況,極可能導(dǎo)致學(xué)生不能接受過多的信息。另一方面,由于有了電子課件,許多學(xué)生不做筆記,在課堂上就只是“聽”課,不動腦,不動手,往往有時課堂上以為自己懂了,實際卻不然,課后遇到相似甚至相同的問題仍然無法編寫出算法。因此,教師在使用多媒體課件時,一定要注意與板書結(jié)合,并多給學(xué)生創(chuàng)造思考的機會,不要把所有內(nèi)容都展示在課件中。
5.隨時掌握教學(xué)效果
教師應(yīng)不定期設(shè)置課堂小測驗,通過測驗發(fā)現(xiàn)問題,找出原因并解決;不定期安排學(xué)生討論,發(fā)揮學(xué)生的主動性,鼓勵學(xué)生大膽發(fā)言,學(xué)生在聽與辯的過程中得以修正和完善自己的知識;教師應(yīng)認(rèn)真批改課后作業(yè),對作業(yè)中存在的典型問題,應(yīng)集中加以解決;做好課后輔導(dǎo),課堂時間畢竟有限,安排一周或隔周一次答疑,不僅可以及時發(fā)現(xiàn)和解決學(xué)生問題,也可以及時收集學(xué)生對課程教學(xué)的意見和建議;對實驗題目的完成情況檢查工作最好在機房進行,除了檢查運行結(jié)果,還可以隨機詢問學(xué)生設(shè)計思路、出錯處理,甚至源程序語句說明等,以確認(rèn)學(xué)生獨立或合作完成了實驗任務(wù),達(dá)到培養(yǎng)實踐能力的目的。總之,教學(xué)方法不是一成不變的,而應(yīng)當(dāng)根據(jù)不同的學(xué)生,掌握不同的教學(xué)效果,動態(tài)地調(diào)整和改進。
三、結(jié)束語
數(shù)據(jù)結(jié)構(gòu)是一門理論性和實踐性都很強的課程。教師在加強理論教學(xué)的同時,應(yīng)重視學(xué)生在教學(xué)活動中的地位,充分調(diào)動學(xué)生的積極性、主動性和創(chuàng)造性。對教學(xué)方法的改革應(yīng)有利于加強學(xué)生的自學(xué)能力、分析問題、解決問題能力的培養(yǎng),有利于學(xué)生創(chuàng)新思維和創(chuàng)新能力的培養(yǎng),有利于學(xué)生個性和才能的全面發(fā)展。
參考文獻(xiàn)
1 嚴(yán)蔚敏、吳偉民.數(shù)據(jù)結(jié)構(gòu).北京:清華大學(xué)出版社,2007
2 劉亞波、劉大友、高 瀅.以實驗教學(xué)深化“數(shù)據(jù)結(jié)構(gòu)”理論教學(xué).吉林大學(xué)學(xué)報(信息科學(xué)版),2005
3 董軍軍、陳 陽.數(shù)據(jù)結(jié)構(gòu)教學(xué)方法初探.科技資訊,2007(15)