999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數據結構課程教學改革方案和應用效果

2018-01-29 17:35:55張安勤,葉文珺,田秀霞,彭源
軟件工程 2017年12期

張安勤,葉文珺,田秀霞,彭源

摘 要:數據結構是軟件設計的重要理論和實踐基礎,數據結構設計和算法設計是軟件系統設計的基礎和核心。本文分析了目前數據結構教學中存在的主要問題,提出了教學前開發數據結構類庫,課堂教學中采用項目驅動的方法,實驗環節中使用結對編程的教學改革方案。在學校相關專業實施后的效果表明,我們的教學改革方案提高了學生學習數據結構的興趣、積極性,提升了學生算法設計和算法實現的能力,增強了學生的合作能力和責任心。

關鍵詞:類庫;項目驅動;結對編程

中圖分類號:TP311 文獻標識碼:A

The Teaching Reform Scheme and Application Effect of Data Structure

ZHANG 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 algorithm 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 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 of algorithm design and algorithm implementation,and enhances the students' ability of cooperation and responsibility.

Keywords:class library;project driven;pair programming

1 引言(Introduction)

數據結構是軟件設計的重要理論和實踐基礎。數據結構課程討論的知識內容是軟件設計的理論基礎,介紹的技術方法是軟件設計中使用的基本方法[1]。

數據結構課程主要是培養學生程序設計的邏輯思維和數據抽象能力。在課程教學中需要讓學生深刻理解相同的數據對象,使用的數據結構不同,效率差別很大。高效的程序設計不僅要進行充分的算法設計,還要選擇合適的數據結構[2]。

數據結構課程內容多,概念抽象,理論深奧,部分算法難度大,是計算機專業最難學的課程之一。

2 數據結構教學中存在的問題(Problems existing in

the teaching of Data Structure)

(1)學生的編程基礎差,容易陷入編程的具體實現細節

目前數據結構教學中主要采用的是基于面向對象的程序設計語言的數據結構教學,例如C++和Java。代碼復用是面向對象編程的優點之一,但是在數據結構課程教學中沒有充分體現或很少體現這一優點。學生在編程時很少考慮或涉及代碼的復用[3]。這樣不僅編程的效率低下,很容易陷入編程的具體實現細節,不容易充分理解算法的思想,而且由于程序細節中存在問題,程序不能成功運行也會挫敗學生的學習積極性。

(2)學生編程能力參差不齊

數據結構課程一般安排在第二學年。在前一學年中,學生只學過一門編程語言,編程訓練時間短,缺乏編程經驗。每個同學的編程水平差別較大,有的同學編程能力很強,有的不會編程,甚至寫不出一個完整的main函數。

(3)教學內容抽象,難度較大,教學方法單一

數據結構課程難度較大,內容比較抽象,學生理解困難。在過去的教學過程中,主要以教師的課堂講授、學生聽記為主。課程教學內容和現實應用脫節,這種“填鴨式”教學方法,不能有效調動學生的學習主動性和積極性。

3 《數據結構》教學改革方案(The teaching reform

scheme of data structure)

我們的教學改革方案主要有三個方面:課外老師提前開發基本數據結構的類庫,課堂教學采用項目驅動的方法,實驗教學環節中使用敏捷開發方法中的結對編程方法。圖1是教學改革方案的框架圖。

(1)開發基本數據結構的類庫

在數據結構教材和教學中,數據的結構和算法采用偽代碼表示。偽代碼的可操作性差,學生需要進行調整和修改才能運行。編程基礎差的同學,很難在短時間內調試和修改成功,因此容易給學生帶來消極心理[4]。為了提高學生的學習積極性,防止學生因為挫敗感帶來的消極影響,團隊老師開發了基本數據結構的類庫。endprint

對于基于C++的數據結構課程,團隊老師開發常用的基本數據結構的類庫,例如順序表類、單鏈表類、順序棧類、鏈棧類、循環隊列類、鏈隊列、二叉樹的二叉鏈表類,圖的鄰接矩陣類和鄰接表類[5]。對于基于Java的數據結構課程,在課程中相應章節中,介紹Java語言所提供的類庫[1]。在此基礎上,設計和實現一個面向C++和面向Java的數據結構實驗教學系統,讓基于C++的數據結構課程學生和基于Java的數據結構課程的學生學會理解、選擇和使用合適的數據結構進行軟件開發。該數據結構實驗教學系統的用戶分為普通用戶和高級用戶。對普通用戶,可以運行課內實驗,觀察實驗運行的結果,系統提供實驗的所有類及主函數的代碼。對于高級用戶,需要編寫主函數來調用系統提供的類庫。這樣可以為不同編程水平的用戶提供一個實驗平臺,提高代碼的復用性和實驗的效率。

(2)項目驅動的教學方法

項目驅動的教學方法,主要就是在講授理論知識之前,教師首先給出一個具體項目,然后引導學生思考應用以前所學的知識能不能解決問題,以前的方法存在什么問題。最后運用數據結構中的邏輯結構、物理結構和相關算法來解決問題。讓學生在具體項目中體會數據結構課程中選擇合適的數據結構和算法設計的重要性,以及如何把所學的課程內容應用到實際項目中。

例如,對于圖數據結構的教學,筆者在具體教學過程中首先給出了一個項目:基于圖結構的社會網絡分析系統。要求同學思考如何從Email數據中提取出社會網絡中的個體信息和個體間的關系信息,以及如何把這些信息存儲到計算機中去,如何設計算法求出社會網絡中的核心人物、活躍人物和小團體等功能。

和實際生活相聯系的項目[6]充分調動了學生思考的積極性,并對如何應用圖的方法解決所提出的問題充滿了期待。學習完圖的相關內容后,絕大部分的同學已經能夠在團隊合作的情況下,完成這個項目。圖2是學生完成的項目運行結果截圖。

項目驅動方法使得學習、思考和動手相結合,老師引導學生邊學邊做,實現“學中做”“做中學”,使學生不會覺得所學知識枯燥無味,還能更好地理解一些復雜的問題,讓學生真正掌握知識和相應技能[7]。

(3)結對編程實驗教學方法

結對編程技術是指兩位同學坐在同一臺電腦前開發軟件。結對編程是敏捷開發方法中一種提高程序質量和效率的常用方法之一。由于簡單易行,效果明顯,受到業界的推崇。

結對編程在具體操作過程中有如下好處[8]:

①可以提高學生的合作和交流能力,與別人合作會增加責任感和紀律性。

②兩個學生同時有相同的盲點的可能性比較小,結對編程可以給出更好的解決方案。

③另外在結對編程過程中,一位同學編寫代碼,另一位同學邊看邊思考,給出設計思想,而且容易觀察出代碼是否有問題,結構是否有問題。代碼編寫后,相當于已經完成了一遍代碼評審,這樣大大提高了代碼的質量。

④兩個同學一起編程時,水平較差的同學會潛移默化地受水平略好的同學影響,學到一些新的東西。而水平好的同學同樣因為不斷地把自己的想法說出來而整理了自己的思路。

4 《數據結構》教學成效(Reform effects of the

teaching of data structure)

在計算機科學技術學院的軟件工程專業、計算機卓越工程師班、計算機創新創業班和信息安全專業四個班級通過實施一年開發基本數據結構類庫,在課堂教學中采用項目驅動的教學方法,以及在實驗中采用結對編程的方法后,取得了顯著效果。學生的學習積極性和主動性得到了提高,不同層次的同學都找到了自己合適的學習渠道。學生可以自主學習,又可和結對的同學互相合作討論,每個同學既是老師也是學生,提高了學生合作能力和責任心。學生的課堂學習和實驗效果有了很大提高。

表1是計算機專業2014—2015、2015—2016、2016—2017三個年度數據結構卷面成績分析對比表。從表1可以看出課程的合格率和優秀率也有了明顯提高。

5 結論(Conclusion)

我們通過采用課外老師提前開發基本數據結構類庫,課堂教學采用項目驅動的方法,實驗教學環節中使用敏捷開發方法中的結對編程方法,提高了學生的學習數據結構的興趣、積極性和編程能力,增強了學生的合作能力和責任心。但我們的解決方案還需要不斷改進,例如項目驅動方法中的項目必須是新穎的,能夠引起學生興趣,能調動學生積極性,因此項目的選擇必須不斷更新。另外結對的同學不能固定不變,需要定期進行調整,以便同學之間更充分的交流和合作。

參考文獻(References)

[1] 葉核亞.數據結構(Java版)(第4版)[M].北京:電子工業出版社,2015(7):1.

[2] 陳宏.數據結構的選擇與算法效率[EB/OL].http://blog.csdn.net/u011345136/article/details/23966739,2014-04-17.

[3] 楊曉波,陳邦澤.“數據結構”教學平臺建設方案及應用效果[J].實驗室研究與探索,2014(10):162-165.

[4] 卓明敏,黃正亮,廖小于.數據結構活代碼教學實踐[J].福建電腦,2010(4):207-208.

[5] 李春葆.數據結構教程(C++語言描述)[M].北京:清華大學出版社,2014:44-52;90-96;113-118;199-249.

[6]霍玲玲,王智,孫江.數據結構教學方法的研究[J].計算機教育,2015(2):73-76.

[7] 汪赫瑜.基于項目的教學方法在數據結構教學中的應用[J].教育教學論壇,2016(19):147-148.

[8] 張偉華,李立,王海英.結對編程在數據結構教學中的應用[J].福建電腦,2012(3):195-196.

作者簡介:

張安勤(1974-),女,博士,副教授.研究領域:數據挖掘.

葉文珺(1966-),女,碩士,副教授.研究領域:圖像處理.

田秀霞(1976-),女,博士,教授.研究領域:信息安全.

彭 源(1981-),女,博士,副教授.研究領域:圖像處理.endprint

主站蜘蛛池模板: 中日韩欧亚无码视频| 69视频国产| 91无码人妻精品一区| 国产色网站| 色色中文字幕| 波多野结衣中文字幕一区| 亚洲AⅤ综合在线欧美一区| 91精品国产一区| 欧美国产日产一区二区| 亚洲网综合| 色综合五月婷婷| www亚洲天堂| 91视频国产高清| 午夜免费视频网站| 久久午夜影院| 日本草草视频在线观看| 88av在线| 欧美性天天| 亚洲精品无码不卡在线播放| 国产成人亚洲无吗淙合青草| 99久久99这里只有免费的精品| 午夜福利网址| 日本三区视频| 9啪在线视频| 在线a网站| 国产欧美日韩专区发布| 午夜日本永久乱码免费播放片| 91原创视频在线| 国产欧美视频一区二区三区| 在线观看国产黄色| 欧美一级黄色影院| 伊大人香蕉久久网欧美| 国产91av在线| 欧美国产三级| 国产成人夜色91| 欧美日韩一区二区三区在线视频| 无码在线激情片| 欧美视频二区| 亚洲无码熟妇人妻AV在线| 亚洲精品无码AV电影在线播放| 尤物亚洲最大AV无码网站| 亚洲娇小与黑人巨大交| 日本在线亚洲| 国产香蕉国产精品偷在线观看| 亚洲精品日产精品乱码不卡| 精品久久久久成人码免费动漫| 美女内射视频WWW网站午夜| 人妻少妇乱子伦精品无码专区毛片| 久久黄色视频影| 91在线高清视频| 国产精品露脸视频| 久久99热这里只有精品免费看| 国产乱视频网站| 国产又色又刺激高潮免费看| 成人一区专区在线观看| 欧美亚洲网| 伊人狠狠丁香婷婷综合色| 国产精品亚洲一区二区三区在线观看| 中文字幕无码av专区久久| 亚洲一区二区成人| 欧美日韩va| 人妻出轨无码中文一区二区| 性视频久久| av天堂最新版在线| 91成人在线免费视频| 国产亚洲欧美在线人成aaaa| 国产福利免费在线观看 | 国产精品自在自线免费观看| 成色7777精品在线| 久久永久视频| 亚洲精品第一在线观看视频| 极品国产一区二区三区| 91国内视频在线观看| 国产91无毒不卡在线观看| 亚洲黄网视频| 国产一级毛片yw| 在线播放精品一区二区啪视频| 九色视频最新网址| 538国产在线| 99人体免费视频| 欧美成人h精品网站| 中文字幕久久精品波多野结|