張燕
摘要:先介紹了數(shù)據(jù)結(jié)構(gòu)課程的意義和重要性,接著闡述了用Java語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)的優(yōu)點(diǎn),然后著重介紹了根據(jù)課程需要及學(xué)生自身情況制定的數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)的實(shí)踐教學(xué)方案和實(shí)施效果,最后對(duì)全文做了總結(jié),提出了進(jìn)一步的教學(xué)實(shí)踐設(shè)想。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);實(shí)踐教學(xué);Java語(yǔ)言描述
一、引言
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)專業(yè)的核心基礎(chǔ)課程。該課為進(jìn)一步學(xué)習(xí)計(jì)算機(jī)科學(xué)專業(yè)的后續(xù)課程奠定了良好的基礎(chǔ)[1][2]。Java語(yǔ)言,這種經(jīng)典的面向?qū)ο笳Z(yǔ)言,非常適合應(yīng)用于信息管理與電子商務(wù)系的程序設(shè)計(jì)課程的教學(xué)中。用Java作為數(shù)據(jù)結(jié)構(gòu)這門課程的描述語(yǔ)言勢(shì)在必行。本文將從Java與數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)教學(xué)中出現(xiàn)的問題、數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)的設(shè)計(jì)方案、數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)所取得的效果以及對(duì)未來數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)的展望幾個(gè)方面展開討論。
二、數(shù)據(jù)結(jié)構(gòu)教學(xué)中出現(xiàn)的問題
數(shù)據(jù)結(jié)構(gòu)的教學(xué)課和實(shí)踐課相輔相成。數(shù)據(jù)結(jié)構(gòu)實(shí)踐課要運(yùn)用到理論課中所學(xué)的知識(shí),它可以檢驗(yàn)學(xué)生是否完全消化和吸收了數(shù)據(jù)結(jié)構(gòu)理論課中的內(nèi)容。同時(shí),數(shù)據(jù)結(jié)構(gòu)實(shí)踐課又不局限于對(duì)理論課上內(nèi)容的驗(yàn)證,它是培養(yǎng)學(xué)生用計(jì)算機(jī)解決實(shí)際問題的能力的一個(gè)過程。數(shù)據(jù)結(jié)構(gòu)的實(shí)驗(yàn)課是鍛煉學(xué)生獨(dú)立思考,訓(xùn)練學(xué)生的邏輯思維,培養(yǎng)其動(dòng)手能力的一門課程。在實(shí)際教學(xué)中,我們根據(jù)教學(xué)內(nèi)容制定了實(shí)踐課的教學(xué)方案。同時(shí),根據(jù)學(xué)生在課堂上表現(xiàn)出的問題,不斷調(diào)整著實(shí)踐課的實(shí)踐內(nèi)容。在擔(dān)任數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)過程中,我們發(fā)現(xiàn)了如下問題:
(1)學(xué)生基礎(chǔ)差、底子薄,對(duì)Java語(yǔ)言理解不深,甚至有的同學(xué)連類和接口的概念都無(wú)法理解。
(2)學(xué)生調(diào)試程序的能力很弱。
(3)數(shù)據(jù)結(jié)構(gòu)是一門邏輯性、連貫性非常強(qiáng)的課程,如果有某些環(huán)節(jié)沒有仔細(xì)聽或者有一點(diǎn)沒聽懂,就會(huì)影響學(xué)生后續(xù)學(xué)習(xí)情緒和積極性。
(4)學(xué)生沒有用計(jì)算機(jī)處理問題的習(xí)慣,欠缺從計(jì)算機(jī)的觀點(diǎn)來分析問題、處理問題的能力。
在數(shù)據(jù)結(jié)構(gòu)的實(shí)踐教學(xué)中,針對(duì)以上教學(xué)問題,制定了比較詳盡的教學(xué)方案。
三、數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)的設(shè)計(jì)方案
數(shù)據(jù)結(jié)構(gòu)的實(shí)踐教學(xué)主要是指學(xué)生的上機(jī)實(shí)踐。上機(jī)實(shí)驗(yàn)過程中,老師給定題目范圍,由學(xué)生自己解決。整個(gè)過程,以學(xué)生自主上機(jī)練習(xí)為主,老師指導(dǎo)為輔。設(shè)計(jì)方案主要分為實(shí)踐教學(xué)內(nèi)容、實(shí)踐教學(xué)組織方式、實(shí)踐教學(xué)評(píng)分方式三個(gè)部分。
(一)實(shí)踐教學(xué)內(nèi)容
目前,上機(jī)內(nèi)容以理論課中講解的各種數(shù)據(jù)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)以及算法為主線,把上機(jī)習(xí)題主要分為基礎(chǔ)題(以驗(yàn)證已學(xué)算法為目的的題目)和提高題(給定問題,利用所學(xué)方法求解的題目)。題目的設(shè)計(jì)分布在線性表、棧與隊(duì)列、串與數(shù)組、樹與二叉樹、圖、排序和查找等各個(gè)章節(jié)[4][5]。學(xué)生剛上數(shù)據(jù)結(jié)構(gòu)時(shí)對(duì)類、接口等概念不清楚,不會(huì)用面向?qū)ο蟮姆椒▉矸治鰡栴},老師就趕緊制定一些比較簡(jiǎn)單的上機(jī)例題,為學(xué)生講解如何用面向?qū)ο蟮姆椒ń鉀Q問題,從而進(jìn)一步引出數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)。
(二)實(shí)踐教學(xué)組織方式
在數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)中,我們針對(duì)不同的題目,用不同的教學(xué)組織方式。
基礎(chǔ)題主要用來驗(yàn)證已學(xué)過的算法邏輯,屬于必須掌握并且難度不大的內(nèi)容。針對(duì)這部分題目,上課時(shí),要求學(xué)生分別獨(dú)立完成自己的題目。通過練習(xí)基礎(chǔ)題,學(xué)生可以鞏固理論課上所學(xué)算法,查漏補(bǔ)缺,使學(xué)生盡早知道自己的不足,完善知識(shí)體系。
提高題需要學(xué)生通過已學(xué)的基礎(chǔ)內(nèi)容去解決復(fù)雜問題。因此提高題對(duì)學(xué)生的要求更高,需要學(xué)生有分析問題解和決問題的能力,需要學(xué)生養(yǎng)成用科學(xué)的方法和手段解決問題的習(xí)慣。所以,針對(duì)提高題,學(xué)生可以以3-5人為一組,分組完成題目。在完成提高題時(shí),需要進(jìn)行面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、面向?qū)ο鬁y(cè)試等步驟,并寫出完整書面報(bào)告。通過這樣的方式,一方面鞏固基礎(chǔ)知識(shí),一方面鍛煉學(xué)生的邏輯思維能力,使其能用科學(xué)的方法利用計(jì)算機(jī)來解決現(xiàn)實(shí)問題。
由于學(xué)生缺乏編程的經(jīng)驗(yàn),在編寫代碼和調(diào)試程序時(shí) ,學(xué)生經(jīng)常無(wú)從下手,看到報(bào)錯(cuò)后不會(huì)解決問題。這時(shí),老師就要總結(jié)學(xué)生的問題,指導(dǎo)學(xué)生如何調(diào)試程序,如何修改代碼,告訴他們調(diào)試程序的方法。
(三)實(shí)踐教學(xué)評(píng)分方式
實(shí)踐教學(xué)的評(píng)分分為兩個(gè)部分,基礎(chǔ)題占70%,提高題占30%。
每次上機(jī),當(dāng)堂課檢查學(xué)生基礎(chǔ)題的完成情況,根據(jù)其學(xué)生代碼書寫得是否規(guī)范、功能完成得是否完整、代碼是否健壯等方面給出評(píng)分。
提高題由于是小組內(nèi)成員共同完成,評(píng)分時(shí),首先讓小組成員描述自己的工作,接著成員之間互評(píng),老師根據(jù)學(xué)生表現(xiàn)、代碼及報(bào)告完成情況分別給每人評(píng)出成績(jī)。小組成員間互評(píng)的成績(jī)與老師給出的成績(jī)?nèi)∑骄担鳛樘岣哳}的成績(jī)。
最后,基礎(chǔ)題成績(jī)加上提高題成績(jī)即為學(xué)生上機(jī)實(shí)踐的分?jǐn)?shù)。
四、數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)所取得的效果
經(jīng)過對(duì)數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)課的設(shè)計(jì),我們了解了學(xué)生最薄弱的環(huán)節(jié),初步完成了實(shí)踐教學(xué)的題目設(shè)計(jì),并制定了教學(xué)組織方式和評(píng)分標(biāo)準(zhǔn)。為今后數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)的實(shí)踐教學(xué)打下了堅(jiān)實(shí)的基礎(chǔ)。
通過數(shù)據(jù)結(jié)構(gòu)實(shí)踐,學(xué)生對(duì)鞏固了Java語(yǔ)言的語(yǔ)法知識(shí),對(duì)面向?qū)ο蟮某绦蛟O(shè)計(jì)有了進(jìn)一步的理解。更重要的是,學(xué)生通過實(shí)踐逐漸開始從計(jì)算機(jī)的角度用數(shù)據(jù)結(jié)構(gòu)中所學(xué)的理論知識(shí)來分析和解決問題。
五、結(jié)論
數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)相關(guān)專業(yè)是非常重要的一門課程。只通過短暫的上課時(shí)間遠(yuǎn)遠(yuǎn)不能使學(xué)生非常深入地了解數(shù)據(jù)結(jié)構(gòu)這門課程的魅力和價(jià)值。我們可以進(jìn)一步設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的實(shí)踐教學(xué)方案,挑選信息系統(tǒng)和電子商務(wù)專業(yè)的典型問題作為研究對(duì)象,讓學(xué)生更深入理解數(shù)據(jù)結(jié)構(gòu)在自己所學(xué)領(lǐng)域的應(yīng)用價(jià)值,不斷培養(yǎng)學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)的興趣,不斷誘導(dǎo)其熱愛用計(jì)算機(jī)解決現(xiàn)實(shí)問題。
參考文獻(xiàn):
[1]徐翀,金潔潔.激、導(dǎo)、探、拓四步教學(xué)法在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用.計(jì)算機(jī)教育,2012,2(3):65-68.
[2]徐慧,郭榮祥,周建美. 多維一體的“數(shù)據(jù)結(jié)構(gòu)”實(shí)踐教學(xué)系統(tǒng)的構(gòu)建.http: //qkzz.net/article/1a17e3f4-e6b7- 4195-83fc-2574e86a7f2a.htm.2011,1.
[3]Bruce Eckel.Java編程思想(第五版).機(jī)械工業(yè)出版社.2011年8月.
[4]劉小晶.《數(shù)據(jù)結(jié)構(gòu)-Java語(yǔ)言描述》.清華大學(xué)出版社.2011年2月.
[5]劉小晶.《數(shù)據(jù)結(jié)構(gòu)實(shí)例解析與實(shí)驗(yàn)指導(dǎo)-java語(yǔ)言描述》. 清華大學(xué)出版社. 2013年2月.