技術(shù)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果_第1頁(yè)
技術(shù)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果_第2頁(yè)
技術(shù)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果_第3頁(yè)
技術(shù)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果_第4頁(yè)
技術(shù)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)劃類別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱 項(xiàng)目主持人 承擔(dān)單位 題目:數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計(jì)的重要理論和實(shí)踐基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)是軟件系統(tǒng)設(shè)計(jì)的基礎(chǔ)和核心。本文分析了目前數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的主要問(wèn)題,提出了教學(xué)前開發(fā)數(shù)據(jù)結(jié)構(gòu)類庫(kù),課堂教學(xué)中采用項(xiàng)目驅(qū)動(dòng)的方法,實(shí)驗(yàn)環(huán)節(jié)中使用結(jié)對(duì)編程的教學(xué)改革方案。在學(xué)校相關(guān)專業(yè)實(shí)施后的效果表明,我們的教學(xué)改革方案提高了學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的興趣、積極性,提升了學(xué)生算法設(shè)計(jì)和算法實(shí)現(xiàn)的能力,增強(qiáng)了學(xué)生的合作能力和責(zé)任心。關(guān)鍵詞:類庫(kù);項(xiàng)目驅(qū)動(dòng);結(jié)對(duì)編程The Teaching Reform Scheme and Applicat

2、ion Effect of Data StructureZHANG Anqin,YE Wenjun,TIAN Xiuxia,PENG Yuan(School of Computer Science and Technology,Shanghai University of Electric Power,Shanghai 200090,China)Abstract:Data structure is an important theoretical and practical basis for software design.Data structure design and the algo

3、rithm design are the basis and core of software system design.This paper analyzes the main problems existing in the teaching of data structure at present,and puts forward the teaching reform scheme of the development of the data structure class library before teaching,the project driven method used

4、in classroom teaching,and the pair programming used in practice teaching.The implementation effect in the relevant majors in the authors school shows that the teaching reform scheme proposed in this paper promotes the students interest and enthusiasm in learning data structure,improves the ability o

5、f algorithm design and algorithm implementation,and enhances the students ability of cooperation and responsibility.Keywords:class library;project driven;pair programming1 引言(Introduction)數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計(jì)的重要理論和實(shí)踐基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)課程討論的知識(shí)內(nèi)容是軟件設(shè)計(jì)的理論基礎(chǔ),介紹的技術(shù)方法是軟件設(shè)計(jì)中使用的基本方法1。數(shù)據(jù)結(jié)構(gòu)課程主要是培養(yǎng)學(xué)生程序設(shè)計(jì)的邏輯思維和數(shù)據(jù)抽象能力。在課程教學(xué)中需要讓學(xué)生深刻理解相

6、同的數(shù)據(jù)對(duì)象,使用的數(shù)據(jù)結(jié)構(gòu)不同,效率差別很大。高效的程序設(shè)計(jì)不僅要進(jìn)行充分的算法設(shè)計(jì),還要選擇合適的數(shù)據(jù)結(jié)構(gòu)2。數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容多,概念抽象,理論深?yuàn)W,部分算法難度大,是計(jì)算機(jī)專業(yè)最難學(xué)的課程之一。2 數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的問(wèn)題(Problems existing inthe teaching of Data Structure)(1)學(xué)生的編程基礎(chǔ)差,容易陷入編程的具體實(shí)現(xiàn)細(xì)節(jié)目前數(shù)據(jù)結(jié)構(gòu)教學(xué)中主要采用的是基于面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)教學(xué),例如C+和Java。代碼復(fù)用是面向?qū)ο缶幊痰膬?yōu)點(diǎn)之一,但是在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中沒(méi)有充分體現(xiàn)或很少體現(xiàn)這一優(yōu)點(diǎn)。學(xué)生在編程時(shí)很少考慮或涉及代碼的復(fù)用

7、3。這樣不僅編程的效率低下,很容易陷入編程的具體實(shí)現(xiàn)細(xì)節(jié),不容易充分理解算法的思想,而且由于程序細(xì)節(jié)中存在問(wèn)題,程序不能成功運(yùn)行也會(huì)挫敗學(xué)生的學(xué)習(xí)積極性。(2)學(xué)生編程能力參差不齊數(shù)據(jù)結(jié)構(gòu)課程一般安排在第二學(xué)年。在前一學(xué)年中,學(xué)生只學(xué)過(guò)一門編程語(yǔ)言,編程訓(xùn)練時(shí)間短,缺乏編程經(jīng)驗(yàn)。每個(gè)同學(xué)的編程水平差別較大,有的同學(xué)編程能力很強(qiáng),有的不會(huì)編程,甚至寫不出一個(gè)完整的main函數(shù)。(3)教學(xué)內(nèi)容抽象,難度較大,教學(xué)方法單一數(shù)據(jù)結(jié)構(gòu)課程難度較大,內(nèi)容比較抽象,學(xué)生理解困難。在過(guò)去的教學(xué)過(guò)程中,主要以教師的課堂講授、學(xué)生聽記為主。課程教學(xué)內(nèi)容和現(xiàn)實(shí)應(yīng)用脫節(jié),這種“填鴨式”教學(xué)方法,不能有效調(diào)動(dòng)學(xué)生的學(xué)習(xí)

8、主動(dòng)性和積極性。3 數(shù)據(jù)結(jié)構(gòu)教學(xué)改革方案(The teaching reformscheme of data structure)我們的教學(xué)改革方案主要有三個(gè)方面:課外老師提前開發(fā)基本數(shù)據(jù)結(jié)構(gòu)的類庫(kù),課堂教學(xué)采用項(xiàng)目驅(qū)動(dòng)的方法,實(shí)驗(yàn)教學(xué)環(huán)節(jié)中使用敏捷開發(fā)方法中的結(jié)對(duì)編程方法。圖1是教學(xué)改革方案的框架圖。(1)開發(fā)基本數(shù)據(jù)結(jié)構(gòu)的類庫(kù)在數(shù)據(jù)結(jié)構(gòu)教材和教學(xué)中,數(shù)據(jù)的結(jié)構(gòu)和算法采用偽代碼表示。偽代碼的可操作性差,學(xué)生需要進(jìn)行調(diào)整和修改才能運(yùn)行。編程基礎(chǔ)差的同學(xué),很難在短時(shí)間內(nèi)調(diào)試和修改成功,因此容易給學(xué)生帶來(lái)消極心理4。為了提高學(xué)生的學(xué)習(xí)積極性,防止學(xué)生因?yàn)榇鞌「袔?lái)的消極影響,團(tuán)隊(duì)老師開發(fā)了基本數(shù)據(jù)

9、結(jié)構(gòu)的類庫(kù)。endprint對(duì)于基于C+的數(shù)據(jù)結(jié)構(gòu)課程,團(tuán)隊(duì)老師開發(fā)常用的基本數(shù)據(jù)結(jié)構(gòu)的類庫(kù),例如順序表類、單鏈表類、順序棧類、鏈棧類、循環(huán)隊(duì)列類、鏈隊(duì)列、二叉樹的二叉鏈表類,圖的鄰接矩陣類和鄰接表類5。對(duì)于基于Java的數(shù)據(jù)結(jié)構(gòu)課程,在課程中相應(yīng)章節(jié)中,介紹Java語(yǔ)言所提供的類庫(kù)1。在此基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)面向C+和面向Java的數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)系統(tǒng),讓基于C+的數(shù)據(jù)結(jié)構(gòu)課程學(xué)生和基于Java的數(shù)據(jù)結(jié)構(gòu)課程的學(xué)生學(xué)會(huì)理解、選擇和使用合適的數(shù)據(jù)結(jié)構(gòu)進(jìn)行軟件開發(fā)。該數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)系統(tǒng)的用戶分為普通用戶和高級(jí)用戶。對(duì)普通用戶,可以運(yùn)行課內(nèi)實(shí)驗(yàn),觀察實(shí)驗(yàn)運(yùn)行的結(jié)果,系統(tǒng)提供實(shí)驗(yàn)的所有類及主函數(shù)

10、的代碼。對(duì)于高級(jí)用戶,需要編寫主函數(shù)來(lái)調(diào)用系統(tǒng)提供的類庫(kù)。這樣可以為不同編程水平的用戶提供一個(gè)實(shí)驗(yàn)平臺(tái),提高代碼的復(fù)用性和實(shí)驗(yàn)的效率。(2)項(xiàng)目驅(qū)動(dòng)的教學(xué)方法項(xiàng)目驅(qū)動(dòng)的教學(xué)方法,主要就是在講授理論知識(shí)之前,教師首先給出一個(gè)具體項(xiàng)目,然后引導(dǎo)學(xué)生思考應(yīng)用以前所學(xué)的知識(shí)能不能解決問(wèn)題,以前的方法存在什么問(wèn)題。最后運(yùn)用數(shù)據(jù)結(jié)構(gòu)中的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和相關(guān)算法來(lái)解決問(wèn)題。讓學(xué)生在具體項(xiàng)目中體會(huì)數(shù)據(jù)結(jié)構(gòu)課程中選擇合適的數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)的重要性,以及如何把所學(xué)的課程內(nèi)容應(yīng)用到實(shí)際項(xiàng)目中。例如,對(duì)于圖數(shù)據(jù)結(jié)構(gòu)的教學(xué),筆者在具體教學(xué)過(guò)程中首先給出了一個(gè)項(xiàng)目:基于圖結(jié)構(gòu)的社會(huì)網(wǎng)絡(luò)分析系統(tǒng)。要求同學(xué)思考如何從E

11、mail數(shù)據(jù)中提取出社會(huì)網(wǎng)絡(luò)中的個(gè)體信息和個(gè)體間的關(guān)系信息,以及如何把這些信息存儲(chǔ)到計(jì)算機(jī)中去,如何設(shè)計(jì)算法求出社會(huì)網(wǎng)絡(luò)中的核心人物、活躍人物和小團(tuán)體等功能。和實(shí)際生活相聯(lián)系的項(xiàng)目6充分調(diào)動(dòng)了學(xué)生思考的積極性,并對(duì)如何應(yīng)用圖的方法解決所提出的問(wèn)題充滿了期待。學(xué)習(xí)完圖的相關(guān)內(nèi)容后,絕大部分的同學(xué)已經(jīng)能夠在團(tuán)隊(duì)合作的情況下,完成這個(gè)項(xiàng)目。圖2是學(xué)生完成的項(xiàng)目運(yùn)行結(jié)果截圖。項(xiàng)目驅(qū)動(dòng)方法使得學(xué)習(xí)、思考和動(dòng)手相結(jié)合,老師引導(dǎo)學(xué)生邊學(xué)邊做,實(shí)現(xiàn)“學(xué)中做”“做中學(xué)”,使學(xué)生不會(huì)覺得所學(xué)知識(shí)枯燥無(wú)味,還能更好地理解一些復(fù)雜的問(wèn)題,讓學(xué)生真正掌握知識(shí)和相應(yīng)技能7。(3)結(jié)對(duì)編程實(shí)驗(yàn)教學(xué)方法結(jié)對(duì)編程技術(shù)是指兩位同

12、學(xué)坐在同一臺(tái)電腦前開發(fā)軟件。結(jié)對(duì)編程是敏捷開發(fā)方法中一種提高程序質(zhì)量和效率的常用方法之一。由于簡(jiǎn)單易行,效果明顯,受到業(yè)界的推崇。結(jié)對(duì)編程在具體操作過(guò)程中有如下好處8:可以提高學(xué)生的合作和交流能力,與別人合作會(huì)增加責(zé)任感和紀(jì)律性。兩個(gè)學(xué)生同時(shí)有相同的盲點(diǎn)的可能性比較小,結(jié)對(duì)編程可以給出更好的解決方案。另外在結(jié)對(duì)編程過(guò)程中,一位同學(xué)編寫代碼,另一位同學(xué)邊看邊思考,給出設(shè)計(jì)思想,而且容易觀察出代碼是否有問(wèn)題,結(jié)構(gòu)是否有問(wèn)題。代碼編寫后,相當(dāng)于已經(jīng)完成了一遍代碼評(píng)審,這樣大大提高了代碼的質(zhì)量。兩個(gè)同學(xué)一起編程時(shí),水平較差的同學(xué)會(huì)潛移默化地受水平略好的同學(xué)影響,學(xué)到一些新的東西。而水平好的同學(xué)同樣因?yàn)?/p>

13、不斷地把自己的想法說(shuō)出來(lái)而整理了自己的思路。4 數(shù)據(jù)結(jié)構(gòu)教學(xué)成效(Reform effects of theteaching of data structure)在計(jì)算機(jī)科學(xué)技術(shù)學(xué)院的軟件工程專業(yè)、計(jì)算機(jī)卓越工程師班、計(jì)算機(jī)創(chuàng)新創(chuàng)業(yè)班和信息安全專業(yè)四個(gè)班級(jí)通過(guò)實(shí)施一年開發(fā)基本數(shù)據(jù)結(jié)構(gòu)類庫(kù),在課堂教學(xué)中采用項(xiàng)目驅(qū)動(dòng)的教學(xué)方法,以及在實(shí)驗(yàn)中采用結(jié)對(duì)編程的方法后,取得了顯著效果。學(xué)生的學(xué)習(xí)積極性和主動(dòng)性得到了提高,不同層次的同學(xué)都找到了自己合適的學(xué)習(xí)渠道。學(xué)生可以自主學(xué)習(xí),又可和結(jié)對(duì)的同學(xué)互相合作討論,每個(gè)同學(xué)既是老師也是學(xué)生,提高了學(xué)生合作能力和責(zé)任心。學(xué)生的課堂學(xué)習(xí)和實(shí)驗(yàn)效果有了很大提高。表1是

14、計(jì)算機(jī)專業(yè)20142015、20152016、20162017三個(gè)年度數(shù)據(jù)結(jié)構(gòu)卷面成績(jī)分析對(duì)比表。從表1可以看出課程的合格率和優(yōu)秀率也有了明顯提高。5 結(jié)論(Conclusion)我們通過(guò)采用課外老師提前開發(fā)基本數(shù)據(jù)結(jié)構(gòu)類庫(kù),課堂教學(xué)采用項(xiàng)目驅(qū)動(dòng)的方法,實(shí)驗(yàn)教學(xué)環(huán)節(jié)中使用敏捷開發(fā)方法中的結(jié)對(duì)編程方法,提高了學(xué)生的學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的興趣、積極性和編程能力,增強(qiáng)了學(xué)生的合作能力和責(zé)任心。但我們的解決方案還需要不斷改進(jìn),例如項(xiàng)目驅(qū)動(dòng)方法中的項(xiàng)目必須是新穎的,能夠引起學(xué)生興趣,能調(diào)動(dòng)學(xué)生積極性,因此項(xiàng)目的選擇必須不斷更新。另外結(jié)對(duì)的同學(xué)不能固定不變,需要定期進(jìn)行調(diào)整,以便同學(xué)之間更充分的交流和合作。參考文獻(xiàn)(References)1 葉核亞.數(shù)據(jù)結(jié)構(gòu)(Java版)(第4版)M.北京:電子工業(yè)出版社,2015(7):1.2 陳宏.數(shù)據(jù)結(jié)構(gòu)的選擇與算法效率EB/OL.http:/u011345136/article/details/23966739,2014-04-17.3 楊曉波,陳邦澤.“數(shù)據(jù)結(jié)構(gòu)”教學(xué)平臺(tái)建設(shè)方案及應(yīng)用效果J.實(shí)驗(yàn)室研究與探索,2014(10):162-165.4 卓明敏,黃正亮,廖小于.數(shù)據(jù)結(jié)構(gòu)活代碼教學(xué)實(shí)踐J.福建

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論