• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      數(shù)據(jù)結(jié)構(gòu)課程教學改革方案和應用效果

      2018-01-29 17:35張安勤,葉文珺,田秀霞,彭源
      軟件工程 2017年12期
      關(guān)鍵詞:類庫項目驅(qū)動

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

      摘 要:數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計的重要理論和實踐基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)設(shè)計和算法設(shè)計是軟件系統(tǒng)設(shè)計的基礎(chǔ)和核心。本文分析了目前數(shù)據(jù)結(jié)構(gòu)教學中存在的主要問題,提出了教學前開發(fā)數(shù)據(jù)結(jié)構(gòu)類庫,課堂教學中采用項目驅(qū)動的方法,實驗環(huán)節(jié)中使用結(jié)對編程的教學改革方案。在學校相關(guān)專業(yè)實施后的效果表明,我們的教學改革方案提高了學生學習數(shù)據(jù)結(jié)構(gòu)的興趣、積極性,提升了學生算法設(shè)計和算法實現(xiàn)的能力,增強了學生的合作能力和責任心。

      關(guān)鍵詞:類庫;項目驅(qū)動;結(jié)對編程

      中圖分類號: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)

      數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計的重要理論和實踐基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)課程討論的知識內(nèi)容是軟件設(shè)計的理論基礎(chǔ),介紹的技術(shù)方法是軟件設(shè)計中使用的基本方法[1]。

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

      數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容多,概念抽象,理論深奧,部分算法難度大,是計算機專業(yè)最難學的課程之一。

      2 數(shù)據(jù)結(jié)構(gòu)教學中存在的問題(Problems existing in

      the teaching of Data Structure)

      (1)學生的編程基礎(chǔ)差,容易陷入編程的具體實現(xiàn)細節(jié)

      目前數(shù)據(jù)結(jié)構(gòu)教學中主要采用的是基于面向?qū)ο蟮某绦蛟O(shè)計語言的數(shù)據(jù)結(jié)構(gòu)教學,例如C++和Java。代碼復用是面向?qū)ο缶幊痰膬?yōu)點之一,但是在數(shù)據(jù)結(jié)構(gòu)課程教學中沒有充分體現(xiàn)或很少體現(xiàn)這一優(yōu)點。學生在編程時很少考慮或涉及代碼的復用[3]。這樣不僅編程的效率低下,很容易陷入編程的具體實現(xiàn)細節(jié),不容易充分理解算法的思想,而且由于程序細節(jié)中存在問題,程序不能成功運行也會挫敗學生的學習積極性。

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

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

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

      數(shù)據(jù)結(jié)構(gòu)課程難度較大,內(nèi)容比較抽象,學生理解困難。在過去的教學過程中,主要以教師的課堂講授、學生聽記為主。課程教學內(nèi)容和現(xiàn)實應用脫節(jié),這種“填鴨式”教學方法,不能有效調(diào)動學生的學習主動性和積極性。

      3 《數(shù)據(jù)結(jié)構(gòu)》教學改革方案(The teaching reform

      scheme of data structure)

      我們的教學改革方案主要有三個方面:課外老師提前開發(fā)基本數(shù)據(jù)結(jié)構(gòu)的類庫,課堂教學采用項目驅(qū)動的方法,實驗教學環(huán)節(jié)中使用敏捷開發(fā)方法中的結(jié)對編程方法。圖1是教學改革方案的框架圖。

      (1)開發(fā)基本數(shù)據(jù)結(jié)構(gòu)的類庫

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      4 《數(shù)據(jù)結(jié)構(gòu)》教學成效(Reform effects of the

      teaching of data structure)

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

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

      5 結(jié)論(Conclusion)

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

      參考文獻(References)

      [1] 葉核亞.數(shù)據(jù)結(jié)構(gòu)(Java版)(第4版)[M].北京:電子工業(yè)出版社,2015(7):1.

      [2] 陳宏.數(shù)據(jù)結(jié)構(gòu)的選擇與算法效率[EB/OL].http://blog.csdn.net/u011345136/article/details/23966739,2014-04-17.

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

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

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

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

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

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

      作者簡介:

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

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

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

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

      猜你喜歡
      類庫項目驅(qū)動
      用Java編寫客戶機/服務器端應用程序
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實現(xiàn)
      Python在數(shù)據(jù)可視化中的應用
      如何讓高職學生快速掌握Jquery技術(shù)
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實現(xiàn)
      項目驅(qū)動教學法在機械制造工程學課程教學中的應用
      以項目驅(qū)動為核心的電子技術(shù)綜合設(shè)計課程教學改革與探索
      依托工作室的軟件工程實踐教學研究
      基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學改革的研究與實踐
      基于“紅色之旅”項目驅(qū)動的《調(diào)酒與咖啡》工作室制人才培養(yǎng)機制探討
      崇左市| 海盐县| 眉山市| 彭州市| 巧家县| 应城市| 明水县| 大同县| 黑水县| 区。| 昌黎县| 赤水市| 邓州市| 喀喇沁旗| 师宗县| 岳西县| 定西市| 杨浦区| 内江市| 涪陵区| 延川县| 阿鲁科尔沁旗| 阆中市| 米林县| 屏边| 高邑县| 华坪县| 隆安县| 五家渠市| 呼和浩特市| 册亨县| 普兰县| 轮台县| 乐亭县| 聊城市| 固始县| 濮阳市| 永新县| 巴楚县| 祁门县| 莒南县|