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

數(shù)據(jù)結(jié)構(gòu)Java語言描述課程實驗設(shè)計

2011-12-31 00:00:00李剛黃同愿張小川
計算機教育 2011年13期


  摘要:實驗是數(shù)據(jù)結(jié)構(gòu)Java語言描述課程的重要環(huán)節(jié)。本文在分析并確定課程實驗教學(xué)的主要目標(biāo)基礎(chǔ)上,重點討論在課程實驗中結(jié)合軟件工程思想、面向?qū)ο笳Z言Java的任務(wù)組織、過程設(shè)計以及保障措施,取得良好效果。
  關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)課程;實驗;設(shè)計;Java;軟件工程
  
  數(shù)據(jù)結(jié)構(gòu)是計算機類專業(yè)的核心專業(yè)基礎(chǔ)課之一,主要討論數(shù)據(jù)的合理組織和有效存儲、處理以及算法的正確設(shè)計、分析和評價,課程本身概念抽象、方法靈活、強調(diào)邏輯思維能力、難度較大,同時課程實踐性強,實驗是該課程不可或缺的重要環(huán)節(jié)[1-4]。通常數(shù)據(jù)結(jié)構(gòu)課程實驗是由教師將問題描述和基本要求作為實驗題目給出,但又絕不是讓學(xué)生拿到實驗題目就直接上機進行編程調(diào)試,而是要通過在實驗中貫穿軟件工程的方法和原理,嚴(yán)格按照分析、設(shè)計、實現(xiàn)、測試等軟件工程過程并結(jié)合具體的實現(xiàn)語言來完成實驗,培養(yǎng)學(xué)生養(yǎng)成良好的實驗習(xí)慣。下文針對課程實驗特點和目標(biāo),結(jié)合軟件工程思想、面向?qū)ο笳Z言Java,在課程的實驗組織、過程設(shè)計、保障等方面進行了一些探索。
  1課程實驗特點和目標(biāo)
  由于面向?qū)ο蠓椒ㄒ呀?jīng)成為目前系統(tǒng)開發(fā)和程序設(shè)計的主流方式,而Java語言是一種目前使用最為廣泛的面向?qū)ο蟪绦蛟O(shè)計語言,因此不少計算機類專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程采用了Java語言描述。作為是一種完全面向?qū)ο蟮某绦蛟O(shè)計語言,Java在提高程序的復(fù)用性和安全性時,在不同類的資源配置方面,較面向過程的程序設(shè)計語言有更高層面的要求[3],通過Java語言表現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)、實現(xiàn)相關(guān)算法是數(shù)據(jù)結(jié)構(gòu)課程的難點之一,這給語言基礎(chǔ)薄弱的學(xué)生完成實驗帶來很大困難,迫切需要在目標(biāo)、過程、方法等各方面精心組織和設(shè)計實驗。
  如圖1所示,作為課程教學(xué)的重要組成部分,課程實驗的目標(biāo)主要圍繞數(shù)據(jù)結(jié)構(gòu)與算法、軟件分析與設(shè)計、程序?qū)崿F(xiàn)與驗證、抽象邏輯思維等方面展開[4-7],即:①以數(shù)據(jù)結(jié)構(gòu)和算法為核心,幫助學(xué)生加深對數(shù)據(jù)結(jié)構(gòu)的理解;②以軟件工程思想為基礎(chǔ),反復(fù)練習(xí)包括軟件分析與設(shè)計在內(nèi)的軟件開發(fā)過程,培養(yǎng)分析問題、解決問題和程序設(shè)計的能力;③以面向?qū)ο蟮腏ava程序設(shè)計語言為工具,提高學(xué)生利用Java語言實現(xiàn)和驗證算法的能力;④在理解掌握數(shù)據(jù)結(jié)構(gòu)、應(yīng)用軟件工程思想、熟練使用Java語言的同時,還要培養(yǎng)嚴(yán)密的抽象邏輯思維能力。
  上述實驗?zāi)繕?biāo)師生都提出了更高的要求,為了更好地達到上述目標(biāo),并幫助學(xué)生在學(xué)習(xí)過程中充分發(fā)揮主觀能動作用,圍繞課程在數(shù)據(jù)結(jié)構(gòu)、軟件開發(fā)、程序?qū)崿F(xiàn)、邏輯思維各個方面的目標(biāo),進行了課程實驗的設(shè)計,主要包括切實可行的實驗任務(wù)組織、科學(xué)合理的實驗過程設(shè)計、結(jié)合多種方法的嚴(yán)格過程保障等方面,如圖2所示。
  2實驗任務(wù)組織
  根據(jù)課程實驗特點和目標(biāo),對實驗任務(wù)進行了精心組織,主要是針對不同基礎(chǔ)和層次的學(xué)生進行了任務(wù)的劃分,如圖3所示。
  2.1基本任務(wù)
  對于所有的學(xué)生,不管其基礎(chǔ)或?qū)哟稳绾?,都必須完成一定的基本任?wù),那就是用程序驗證各種邏輯結(jié)構(gòu)的基本實現(xiàn)和算法,在實驗的總體結(jié)構(gòu)中實現(xiàn)函數(shù)的編寫、測試、調(diào)試、驗證,通過這一驗證過程達到加深理解各種數(shù)據(jù)結(jié)構(gòu)和算法、掌握基本教學(xué)內(nèi)容的目的,這也是傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)課程實驗所要求的任務(wù)。
  2.2基礎(chǔ)強化
  部分學(xué)生學(xué)習(xí)基礎(chǔ)較差,特別是Java語言的編程能力不足,對類、接口、封裝、多態(tài)、方法調(diào)用等的認(rèn)識較模糊,需要在基本的Java語言以及基本的方法功能理解、方法編寫及調(diào)用等方面加強實驗,通過對基本數(shù)據(jù)結(jié)構(gòu)和算法與對應(yīng)程序的反復(fù)閱讀、編寫、測試等訓(xùn)練,達到提高對Java程序結(jié)構(gòu)、語法以及Java方法在程序設(shè)計中作用的認(rèn)識。
  2.3能力提升
  針對基礎(chǔ)較好、學(xué)習(xí)興趣較濃的學(xué)生,為提供其發(fā)揮能力的空間,有效提高其學(xué)習(xí)興趣,提出一些要求更高、具有一定挑戰(zhàn)性的任務(wù),要求能進行分析、設(shè)計并實現(xiàn)、測試,包括:完成比教材里典型基本功能更強的拓展功能,開拓學(xué)生的思路,如統(tǒng)計線性表中給定值的元素個數(shù);使用已學(xué)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)完成一些擴展任務(wù),提高學(xué)生分析問題、解決問題的能力,如統(tǒng)計二叉樹的結(jié)點個數(shù);靈活應(yīng)用編寫的方法,實現(xiàn)不同的功能要求,培養(yǎng)學(xué)生對實驗總體結(jié)構(gòu)配置、方法外特性的認(rèn)識,如利用隊列和堆棧實現(xiàn)單鏈表的逆序排列。
  總之,在課程實驗組織中,做到有對整體結(jié)構(gòu)加以介紹的說明;有給學(xué)生完成實驗的思路提示;對有一定難度的任務(wù)還給出具有參考價值的實現(xiàn)作為參照。這樣,根據(jù)課程實驗?zāi)繕?biāo)和學(xué)生的基礎(chǔ)、興趣設(shè)計客觀、可行的實驗要求和過程,符合人們認(rèn)識事物的特點,避免了因為要求難度太大挫傷學(xué)生的學(xué)習(xí)熱情。
  3實驗過程設(shè)計
  如果僅僅依靠傳統(tǒng)的驗證型實驗,學(xué)生只是將課本中算法的對應(yīng)程序敲入計算機,運行一下程序、驗證一下結(jié)論而已,基本上沒有涉及到問題思考、分析分析、總體結(jié)構(gòu)設(shè)計、程序設(shè)計等軟件工程所強調(diào)的工作,而如果教師沒有嚴(yán)格要求、反復(fù)強調(diào)、嚴(yán)格考核,多數(shù)學(xué)生都不做預(yù)習(xí)準(zhǔn)備工作,更不用說養(yǎng)成分析、設(shè)計、比較和總結(jié)的習(xí)慣,結(jié)果是學(xué)生來作實驗了,但不了解實驗的目標(biāo)、流程、問題產(chǎn)生的原因,實驗效果、課程學(xué)習(xí)效果大打折扣。
  3.1實驗過程的規(guī)范
  首先嚴(yán)格規(guī)范實驗流程,讓學(xué)生反復(fù)體會從接受任務(wù)到分析、設(shè)計、編碼、測試的軟件開發(fā)過程[5]。在最初的兩三個實驗時,由教師根據(jù)實驗題目指導(dǎo)學(xué)生一步一步完成圖4所示內(nèi)容:①問題描述,即實驗要解決問題的描述;②基本要求,即實驗要達到的具體要求;③測試數(shù)據(jù),即設(shè)計能達到測試目的的測試數(shù)據(jù);④算法思想,即描述解決相應(yīng)問題的算法思想;⑤類劃分,即分析問題所需的類,并給出類的邏輯功能描述;⑥源程序,即有充分注釋的參考實現(xiàn)源程序清單;⑦測試情況,即程序的測試情況以及必要的分析和說明。由于數(shù)據(jù)結(jié)構(gòu)實驗尚未要求進行較強功能軟件的開發(fā),故上述過程中雖然涉及了軟件工程思想和軟件開發(fā)過程,但一般并不強調(diào)過分詳細(xì)的需求分析、概要設(shè)計、詳細(xì)設(shè)計等步驟,也不必要求提供詳細(xì)的使用手冊。在隨后的整個課程實驗過程中,對學(xué)生嚴(yán)格要求、反復(fù)強調(diào)必須嚴(yán)格遵守圖4的實驗過程,并采用抽查等方式保證其嚴(yán)格執(zhí)行。
  3.2關(guān)注點的分離
  為了將數(shù)據(jù)結(jié)構(gòu)與Java語言、軟件工程有效結(jié)合,要求在課程的實驗過程中也始終與理論教學(xué)中一樣,按圖5所示的三個典型步驟來解決所遇到的數(shù)據(jù)結(jié)構(gòu)和算法問題:①抽象,即分析問題需求,抽象出一個解決該問題的適當(dāng)?shù)臄?shù)學(xué)模型(抽象數(shù)據(jù)類型ADT);②接口設(shè)計,即對應(yīng)地設(shè)計一個規(guī)格說明來描述ADT應(yīng)支持的操作,并將這個規(guī)格說明用Java接口來表示;③實現(xiàn),即選擇合適的數(shù)據(jù)結(jié)構(gòu)和算法來實現(xiàn)上述Java接口,最后對各種不同實現(xiàn)的代價進行分析和比較。這樣的步驟清楚地區(qū)分了ADT的接口與實現(xiàn),體現(xiàn)了軟件工程中分離關(guān)注點的重要原則[6],同時很好地利用了Java語言在抽象、封裝等方面的優(yōu)勢。
  4實驗保障措施
  通過已有的實驗過程發(fā)現(xiàn),僅有實驗任務(wù)組織和實驗過程設(shè)計是不夠的,還必須要有良好的動手習(xí)慣培養(yǎng)、基本知識積累以及編程能力提高等作為保障措施,才能較好地達到所提出的課程實驗?zāi)繕?biāo)。
  4.1動手習(xí)慣的培養(yǎng)
  部分學(xué)生沒有動手的習(xí)慣,實踐教學(xué)中應(yīng)注重培養(yǎng)學(xué)生的動手習(xí)慣,特別是培養(yǎng)記錄、畫圖、打草稿等基本的動手習(xí)慣,避免學(xué)生對知識把握不準(zhǔn)、似是而非。如在講解、演示或討論時,讓學(xué)生跟隨教師動手在草稿紙上畫圖、記錄,講解完立即就剛剛所學(xué)內(nèi)容的部分關(guān)鍵步驟再抽查學(xué)生重新講解,并要求輔以圖、表等(當(dāng)然抽查也可以在下一次課進行),如果存在問題可以由其他同學(xué)糾正,最后由教師進一步分析、總結(jié),讓學(xué)生深刻體會動手習(xí)慣對知識學(xué)習(xí)所起的鞏固作用。
  
  4.2簡單知識的積累
  部分學(xué)生不注重積累那些功能簡單的小算法,實踐教學(xué)中教師應(yīng)注重培養(yǎng)學(xué)生對簡單知識的理解、記憶、積累,經(jīng)常抽查,在面對那些較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法時,充分分析、分解其中涉及到的基本知識點之間、算法之間的聯(lián)系,提示學(xué)生注意類的小型化、原子化,只有長期注重對基本知識點的理解、記憶和積累,才能避免遇到問題時無從下手,避免理論與實踐脫節(jié)。
  4.3編程能力的提高
  由于前導(dǎo)課程如C語言、Java等掌握不好、認(rèn)識不深、基礎(chǔ)不牢,不少學(xué)生編程能力較弱,缺乏把數(shù)據(jù)結(jié)構(gòu)和算法轉(zhuǎn)化成代碼實現(xiàn)的能力,部分學(xué)生甚至不能把一些簡單的算法轉(zhuǎn)換成完整的程序,以及缺乏基本的排錯能力,都大大影響了這些學(xué)生學(xué)習(xí)這門課的積極性和效果。
  為了使實驗過程清晰并降低實現(xiàn)的難度、提高可操作性,要求學(xué)生一開始所設(shè)計的ADT不一定功能很完備,只要具有那些典型的、能初步表現(xiàn)問題需求的基本功能即可,隨著上述步驟的一輪操作結(jié)束,根據(jù)問題的需求,進一步完善現(xiàn)有的ADT及其實現(xiàn)。讓學(xué)生既在運用中逐步體會了軟件工程原理和應(yīng)用,又對通過不斷運用Java的基本知識,提高了編程能力。
  另外,加強現(xiàn)場指導(dǎo)、交流、溝通,及時發(fā)現(xiàn)學(xué)生的困難,有針對性地幫助學(xué)生提高認(rèn)識、解決問題,以及實驗完成后進行分析總結(jié),集中討論實驗中的一些普遍問題,都是提升實驗效果的有力措施。
  5結(jié)語
  基于實驗在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的重要地位,精心的任務(wù)組織、科學(xué)的過程設(shè)計和嚴(yán)格的保障措施是十分必要的。一段時間的運行表明,上述做法對于促進學(xué)生在學(xué)習(xí)過程中充分發(fā)揮主觀能動作用,增強對數(shù)據(jù)對象特征的理解、數(shù)據(jù)組織方法的掌握、軟件開發(fā)過程的熟悉、程序?qū)崿F(xiàn)技能的培養(yǎng)以及抽象邏輯思維能力的提高等方面都起到了積極的作用。
  
  參考文獻:
  [1] 楊紅賓. 數(shù)據(jù)結(jié)構(gòu)課程改革探討[J]. 教育

主站蜘蛛池模板: 亚洲AV一二三区无码AV蜜桃| 国产日韩欧美成人| 色天堂无毒不卡| 久久不卡国产精品无码| 日韩成人免费网站| 2020亚洲精品无码| 国产乱人伦偷精品视频AAA| 亚洲无限乱码| 免费毛片视频| 日韩精品亚洲人旧成在线| 91视频日本| 日本手机在线视频| a毛片免费观看| 97国产在线观看| 狠狠做深爱婷婷久久一区| 免费va国产在线观看| 四虎永久免费网站| 69综合网| 欧美日韩一区二区三区四区在线观看| 色综合日本| 国产午夜福利在线小视频| 国产成年女人特黄特色毛片免 | 乱系列中文字幕在线视频| 青青操视频在线| 毛片网站观看| 97视频精品全国在线观看| 亚洲一区二区三区香蕉| 亚洲狼网站狼狼鲁亚洲下载| 国产新AV天堂| 91欧美亚洲国产五月天| 国产精品极品美女自在线网站| 亚洲成人网在线播放| 日韩a级毛片| 国产亚洲精品资源在线26u| 风韵丰满熟妇啪啪区老熟熟女| 无码aⅴ精品一区二区三区| 日韩乱码免费一区二区三区| 伊人网址在线| 91网红精品在线观看| 亚洲大学生视频在线播放| 欧美人与性动交a欧美精品| 中文精品久久久久国产网址| 久久久久亚洲Av片无码观看| 91精品视频网站| 国产男女免费视频| 一级毛片在线播放| 99国产精品免费观看视频| 亚洲精品国产首次亮相| 无码在线激情片| 免费看美女毛片| 国产精品不卡片视频免费观看| 青青青草国产| 国产亚洲欧美在线中文bt天堂| 亚洲成aⅴ人片在线影院八| 黄片在线永久| 日韩不卡免费视频| a毛片基地免费大全| 精品久久国产综合精麻豆| 欧美翘臀一区二区三区| 精品国产免费观看一区| 精品国产一二三区| 久久久噜噜噜| 亚洲一区二区日韩欧美gif| 久久免费精品琪琪| 激情综合激情| 亚洲国产中文欧美在线人成大黄瓜| 亚洲综合亚洲国产尤物| 国产不卡一级毛片视频| 国产一级α片| 69精品在线观看| 国产精品久久久久久久久久久久| 国产91精品久久| 欧美爱爱网| 亚洲日产2021三区在线| 亚洲成在线观看| 91精品国产自产在线老师啪l| 国产美女自慰在线观看| 亚洲国产亚综合在线区| 青青草原国产av福利网站| 色噜噜在线观看| 激情视频综合网| 在线中文字幕网|