亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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


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

        丰满少妇高潮在线观看| 人妻少妇边接电话边娇喘| 精产国品一二三产区m553麻豆| 一级片麻豆| 一区二区三区视频在线免费观看| 色久悠悠婷婷综合在线| 男女猛烈xx00免费视频试看| a在线观看免费网站大全| 国产精品久久久久久久y| 久久青青草原一区网站| 亚洲图片自拍偷图区| 99香蕉国产精品偷在线观看 | 无码人妻av免费一区二区三区 | 在线人成免费视频69国产| 国产91在线免费| 一区二区三区视频偷拍| 日本妇人成熟免费2020| 无码人妻一区二区三区在线视频 | 所有视频在线观看免费| 国产熟妇按摩3p高潮大叫| 亚洲国产成人无码影院| 国产一区二区三区在线观看免费版| 制服丝袜一区二区三区| 国产内射999视频一区| 久久熟女五十路| 日本人妻97中文字幕| 丰满少妇人妻无码专区| 福利视频黄| 免费啪啪av人妻一区二区| 天堂网av一区二区三区在线观看| 午夜精品久久久久久| 亚洲不卡电影| 毛片成人18毛片免费看| 少妇扒开毛茸茸的b自慰| 屁屁影院一区二区三区| 一区二区三区在线观看视频免费| 日本xxxx色视频在线观看免费| 国产精品无码一区二区三区免费| 国产欧美激情一区二区三区| 一本色道久在线综合色| 毛片a级毛片免费观看|