• 
    

    
    

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

      軟件構(gòu)造課程設(shè)計(jì)及其課程群

      2015-04-27 01:12:12李勁華
      實(shí)驗(yàn)室研究與探索 2015年10期
      關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)編程

      李勁華, 陳 宇

      (青島大學(xué)信息工程學(xué)院,山東 青島 266071)

      ?

      軟件構(gòu)造課程設(shè)計(jì)及其課程群

      李勁華, 陳 宇

      (青島大學(xué)信息工程學(xué)院,山東 青島 266071)

      計(jì)算機(jī)課程設(shè)置中缺乏將分散在各個(gè)課程中的軟件開(kāi)發(fā)理論、技術(shù)與工具綜合應(yīng)用的實(shí)踐課程,是造成難以培養(yǎng)具有開(kāi)發(fā)一定規(guī)模軟件能力的因素。對(duì)此,設(shè)置了一門(mén)獨(dú)立的軟件開(kāi)發(fā)綜合實(shí)驗(yàn)課——軟件構(gòu)造課程設(shè)計(jì),強(qiáng)化軟件技術(shù)集成及開(kāi)發(fā)能力。通過(guò)整合相關(guān)課程的內(nèi)容,設(shè)計(jì)了一個(gè)面向軟件開(kāi)發(fā)技術(shù)、培養(yǎng)工程技術(shù)人才的軟件構(gòu)造課程群。該課程群涵蓋了計(jì)算機(jī)課程體系中的編程基礎(chǔ)、系統(tǒng)軟件、軟件過(guò)程的課程,以及新增的軟件構(gòu)造課程設(shè)計(jì)。給出了軟件構(gòu)造課程設(shè)計(jì)的教學(xué)設(shè)計(jì)、軟件構(gòu)造課程群的構(gòu)成,以及針對(duì)不同人才類(lèi)型的課程群的教學(xué)實(shí)施方案。比較并分析了相關(guān)的教學(xué)研究。

      課程群; 軟件構(gòu)造; 綜合課程設(shè)計(jì); 實(shí)踐教學(xué); 工程技術(shù)型人才

      0 引 言

      隨著計(jì)算機(jī)與網(wǎng)絡(luò)通信日益廣泛的應(yīng)用,出現(xiàn)了各種形態(tài)的應(yīng)用軟件,如傳統(tǒng)的桌面軟件、基于瀏覽器-服務(wù)器的Web應(yīng)用、以及移動(dòng)應(yīng)用等。單一的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言、軟件技術(shù)和工具已經(jīng)不能滿足日常應(yīng)用軟件的研制。開(kāi)發(fā)一個(gè)實(shí)用的應(yīng)用程序必須要掌握程序設(shè)計(jì)基礎(chǔ)、軟件開(kāi)發(fā)技術(shù)(如面向?qū)ο?、框架與API應(yīng)用、設(shè)計(jì)模式、軟件設(shè)計(jì))、數(shù)據(jù)庫(kù)系統(tǒng)、網(wǎng)絡(luò)與Web知識(shí)以及開(kāi)發(fā)流程等。僅就計(jì)算機(jī)語(yǔ)言方面,編寫(xiě)一個(gè)應(yīng)用程序除了通用編程語(yǔ)言(如C、C++、C#、Java),通常還要使用數(shù)據(jù)庫(kù)編程語(yǔ)言SQL,或者Web語(yǔ)言(HTML、JavaScript等)。而且,一個(gè)應(yīng)用軟件的開(kāi)發(fā)不單單是設(shè)計(jì)算法、逐句地編寫(xiě)代碼,還包括問(wèn)題理解與分析、接口設(shè)計(jì)、框架選擇、API查詢與使用、代碼管理、軟件測(cè)試等活動(dòng)。

      另一方面,國(guó)家的經(jīng)濟(jì)建設(shè)和社會(huì)發(fā)展,國(guó)際化、全球化和多元化的趨勢(shì),對(duì)我國(guó)的高等教育、特別是工科教育提出了新的、更高的要求。高等工科教育必須回歸教育本質(zhì),著力培養(yǎng)面向世界、面向工程、面向應(yīng)用的具有創(chuàng)新意識(shí)和創(chuàng)新能力的工程技術(shù)人員。計(jì)算機(jī)及其軟件作為一個(gè)基礎(chǔ)性的工具,與各個(gè)學(xué)科、各個(gè)應(yīng)用領(lǐng)域的結(jié)合與滲透更加密切、更加深入,社會(huì)需要越來(lái)越多的應(yīng)用軟件開(kāi)發(fā)、維護(hù)和管理工程師。要求他們掌握現(xiàn)代軟件開(kāi)發(fā)的各種技術(shù)、方法和工具,能綜合運(yùn)用計(jì)算機(jī)原理、軟件技術(shù)以及應(yīng)用領(lǐng)域的知識(shí),開(kāi)發(fā)解決實(shí)際問(wèn)題、滿足社會(huì)需要的各種類(lèi)型的應(yīng)用軟件。

      在高等教育體系中,軟件開(kāi)發(fā)人才主要由計(jì)算機(jī)科學(xué)與技術(shù)及其相關(guān)專(zhuān)業(yè)培養(yǎng),軟件開(kāi)發(fā)也是機(jī)電、自動(dòng)化、通信等大多工科學(xué)生應(yīng)該掌握的基本能力。傳統(tǒng)的計(jì)算機(jī)本科教育在課程體系、課程內(nèi)容、教學(xué)方法和手段方面的更新速度比不上專(zhuān)業(yè)技術(shù)的發(fā)展。其教學(xué)重原理輕技術(shù),重理論輕實(shí)踐,重知識(shí)輕系統(tǒng),已經(jīng)呈現(xiàn)出各種弊端。特別是計(jì)算機(jī)軟件教育無(wú)法滿足對(duì)作為軟件工程師的需求,成為我國(guó)經(jīng)濟(jì)發(fā)展的一個(gè)瓶頸。

      為解決我國(guó)目前的高等教育問(wèn)題以及社會(huì)亟需的工程技術(shù)人才,國(guó)家提出了多項(xiàng)教改舉措,包括成立國(guó)家示范性軟件學(xué)院、設(shè)置軟件工程一級(jí)學(xué)科、啟動(dòng)卓越工程師培育計(jì)劃、啟動(dòng)高等教育質(zhì)量工程、鼓勵(lì)開(kāi)展校企合作等。

      本文針對(duì)培養(yǎng)軟件工程師的目標(biāo),總結(jié)了我們?cè)谡n程體系方面的教學(xué)改革工作。以典型的計(jì)算機(jī)科學(xué)的專(zhuān)業(yè)課程為例,分析其在培養(yǎng)軟件開(kāi)發(fā)工程師方面的不足。指出目前課程體系的主要問(wèn)題,是缺乏培養(yǎng)學(xué)生綜合運(yùn)用學(xué)習(xí)的計(jì)算機(jī)專(zhuān)業(yè)知識(shí)和軟件開(kāi)發(fā)技術(shù)、構(gòu)造實(shí)際運(yùn)行的計(jì)算機(jī)軟件的集成能力。提出以軟件相關(guān)的專(zhuān)業(yè)課程為基礎(chǔ)的課程群,以及一門(mén)綜合實(shí)踐課程——軟件構(gòu)造課程設(shè)計(jì),實(shí)現(xiàn)培養(yǎng)工程技術(shù)人員產(chǎn)品開(kāi)發(fā)能力的教學(xué)目的,為進(jìn)一步通過(guò)軟件工程的實(shí)習(xí)實(shí)訓(xùn)等實(shí)踐課程,培養(yǎng)學(xué)生的團(tuán)隊(duì)合作、組織計(jì)劃、項(xiàng)目管理、規(guī)范過(guò)程等職業(yè),成為軟件工程師奠定扎實(shí)的技術(shù)基礎(chǔ)。

      1 問(wèn)題分析

      現(xiàn)代軟件開(kāi)發(fā)方法,包括極限編程等敏捷軟件開(kāi)發(fā),突出的特點(diǎn)是每個(gè)程序員都具有高超的軟件開(kāi)發(fā)能力。他們熟練掌握多種類(lèi)型的編程語(yǔ)言、框架與中間件、設(shè)計(jì)模式,熟練掌握軟件設(shè)計(jì)與測(cè)試技術(shù),熟悉軟件開(kāi)發(fā)的調(diào)試、測(cè)試、代碼管理等方法和工具,特別是擁有把實(shí)際問(wèn)題轉(zhuǎn)換成可實(shí)際運(yùn)行軟件的分析、設(shè)計(jì)和構(gòu)造的綜合技術(shù)能力,同時(shí)還要善于和同行、和用戶進(jìn)行溝通。

      傳統(tǒng)計(jì)算機(jī)學(xué)科的教學(xué)體系包含了計(jì)算機(jī)系統(tǒng)及軟件開(kāi)發(fā)知識(shí)的課程,如高級(jí)語(yǔ)言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、編譯原理等。這些課程包含了與軟件開(kāi)發(fā)相關(guān)的許多重要的基本原理和技術(shù)方法,但是設(shè)置和講授他們的主要目的,甚至有些課程的唯一目的是為了理解計(jì)算機(jī)系統(tǒng)、研制計(jì)算機(jī)及其系統(tǒng)軟件。作為基礎(chǔ)課程的“高級(jí)語(yǔ)言程序設(shè)計(jì)”不是以培養(yǎng)學(xué)生系統(tǒng)地開(kāi)發(fā)軟件為主要教學(xué)目的。學(xué)習(xí)編程的一個(gè)重要目的是為了更好地理解計(jì)算機(jī)系統(tǒng)、理解操作系統(tǒng)、編譯器或者數(shù)據(jù)庫(kù)的原理,研發(fā)操作系統(tǒng)、編譯系統(tǒng)或者數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS。而且,這些課程基本上都是以講授原理為主。學(xué)習(xí)完成這些偏重理論的課程,并不能提升學(xué)生用編程解決問(wèn)題的能力。

      有些專(zhuān)業(yè)在這些課程之后學(xué)習(xí)“軟件工程”,課程內(nèi)容包括軟件過(guò)程、產(chǎn)品工程、工程管理、組織計(jì)劃、標(biāo)準(zhǔn)規(guī)范等廣泛的內(nèi)容。編程程序不是本課程的重點(diǎn)。

      除了理論教學(xué),計(jì)算機(jī)學(xué)科的教學(xué)體系中還配置了實(shí)踐教學(xué),包括課程實(shí)驗(yàn)、課程設(shè)計(jì)、專(zhuān)業(yè)實(shí)習(xí)和畢業(yè)設(shè)計(jì)。

      課程實(shí)驗(yàn)的目的是加深理解理論課中講解的抽象概念、原理和方法。課程實(shí)驗(yàn)的類(lèi)型主要是觀察、驗(yàn)證、操作以及少量的設(shè)計(jì)和應(yīng)用。由于課時(shí)限制,無(wú)法在實(shí)驗(yàn)課上實(shí)施涵蓋問(wèn)題分析、系統(tǒng)設(shè)計(jì)直至實(shí)現(xiàn)產(chǎn)品開(kāi)發(fā)過(guò)程或技術(shù)應(yīng)用。例如,數(shù)據(jù)結(jié)構(gòu)的實(shí)驗(yàn)大多是確定了數(shù)據(jù)結(jié)構(gòu)和算法的問(wèn)題,讓學(xué)生編程實(shí)現(xiàn)一種數(shù)據(jù)結(jié)構(gòu)及其操作;或者使用確定的數(shù)據(jù)結(jié)構(gòu)解決一個(gè)小問(wèn)題。

      獨(dú)立的課程設(shè)計(jì)可以彌補(bǔ)課程實(shí)驗(yàn)的不足。它利用較為充足的時(shí)間實(shí)施具有綜合性、設(shè)計(jì)性的實(shí)踐課程,解決較為復(fù)雜的問(wèn)題。在計(jì)算機(jī)學(xué)科的課程體系中[1-4],通常包括“操作系統(tǒng)課程設(shè)計(jì)”、“數(shù)據(jù)庫(kù)課程設(shè)計(jì)”、“計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)”等。這些課程的目的主要是為某一門(mén)課程服務(wù),培養(yǎng)學(xué)生綜合運(yùn)用一門(mén)課程的主要知識(shí)。即使是“軟件工程課程設(shè)計(jì)”,其重點(diǎn)是用戶需求分析、軟件設(shè)計(jì)、團(tuán)隊(duì)合作、組織計(jì)劃等產(chǎn)品工程,如要再培養(yǎng)學(xué)生綜合運(yùn)用軟件開(kāi)發(fā)的技術(shù)和工具,或者簡(jiǎn)單地分析應(yīng)用領(lǐng)域的知識(shí)和業(yè)務(wù)流程,已經(jīng)超出了該課程的范圍。

      實(shí)習(xí)實(shí)訓(xùn)與畢業(yè)設(shè)計(jì)從更廣闊的場(chǎng)景,綜合運(yùn)用所學(xué)的多種知識(shí)、各種技能和多種能力,完整地體現(xiàn)團(tuán)隊(duì)合作完成一個(gè)軟件系統(tǒng)的全部開(kāi)發(fā)過(guò)程——包括開(kāi)發(fā)技術(shù)、產(chǎn)品工程以及團(tuán)隊(duì)合作、項(xiàng)目計(jì)劃與控制等一些非技術(shù)性因素。由于學(xué)生還未掌握如何綜合運(yùn)用各種專(zhuān)業(yè)技術(shù)開(kāi)發(fā)產(chǎn)品,在這些綜合實(shí)踐過(guò)程,經(jīng)常會(huì)因?yàn)閭€(gè)人開(kāi)發(fā)技術(shù)的能力不足而導(dǎo)致整個(gè)項(xiàng)目難以完成。從而達(dá)不到教學(xué)目的。

      在培養(yǎng)解決實(shí)際問(wèn)題、具有團(tuán)隊(duì)合作精神的軟件工程師方面,目前與課程體系存在缺陷。學(xué)生在完成編程基礎(chǔ)以及數(shù)據(jù)庫(kù)、操作系統(tǒng)、編譯原理等系統(tǒng)軟件課程后,缺乏綜合運(yùn)用散落在這些課程中的軟件知識(shí)完成產(chǎn)品開(kāi)發(fā)的能力,達(dá)不到到高級(jí)程序員(技術(shù)人員)的水平。另一方面,“軟件工程”課程試圖解決大中型軟件開(kāi)發(fā)中的團(tuán)隊(duì)合作、開(kāi)發(fā)流程、項(xiàng)目組織與管理等方面的問(wèn)題,很少包含軟件構(gòu)造的內(nèi)容。該課程的實(shí)驗(yàn)也是為了理解和掌握相關(guān)的知識(shí)。實(shí)驗(yàn)通常包含系統(tǒng)分析、設(shè)計(jì)或者項(xiàng)目管理活動(dòng),很少包含編碼實(shí)測(cè)試等現(xiàn)的工作。

      綜上分析,我們?cè)谟?jì)算機(jī)專(zhuān)業(yè)核心課程后增加一門(mén)獨(dú)立的綜合實(shí)踐課——“軟件構(gòu)造課程設(shè)計(jì)”。通過(guò)它整合軟件開(kāi)發(fā)的編程語(yǔ)言、軟件設(shè)計(jì)、開(kāi)發(fā)技術(shù)、軟件測(cè)試與代碼管理等技能、方法和工具,首先培養(yǎng)學(xué)生成為能獨(dú)立地集成技術(shù)、產(chǎn)品開(kāi)發(fā)的高級(jí)程序員,再通過(guò)后續(xù)課程(包含軟件工程綜合課程設(shè)計(jì)和實(shí)習(xí))成為優(yōu)秀的軟件工程師。

      2 課程群及其綜合課程設(shè)計(jì)

      2.1 “軟件構(gòu)造技術(shù)”課程群

      計(jì)算機(jī)學(xué)科除了計(jì)算機(jī)科學(xué)與技術(shù),還有網(wǎng)絡(luò)工程、軟件工程、信息安全、物聯(lián)網(wǎng)等專(zhuān)業(yè)方向。它們都設(shè)置了與軟件開(kāi)發(fā)技術(shù)相關(guān)的學(xué)科基礎(chǔ)核心課程:高級(jí)語(yǔ)言程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)、數(shù)據(jù)庫(kù)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、編譯原理、軟件工程,以及一些選修課如Web應(yīng)用開(kāi)發(fā)、軟件測(cè)試、設(shè)計(jì)模式、算法設(shè)計(jì)與分析。這些課程包含了開(kāi)發(fā)軟件的基本原理、方法、技術(shù)和流程,對(duì)培養(yǎng)學(xué)生——無(wú)論是計(jì)算機(jī)專(zhuān)業(yè)的、還是應(yīng)用計(jì)算的——通過(guò)程序設(shè)計(jì)解決問(wèn)題的能力,都有明顯的直接作用。但是,每門(mén)課程相對(duì)完整獨(dú)立,不是針對(duì)軟件開(kāi)發(fā)技術(shù)而專(zhuān)門(mén)設(shè)置的。除了程序設(shè)計(jì)的兩門(mén)課程,其它課程的內(nèi)容偏重概念和原理。目前的課程體系中還沒(méi)有“軟件開(kāi)發(fā)”或類(lèi)似的課程。

      可以運(yùn)用課程群的教學(xué)方式,更好地實(shí)現(xiàn)培養(yǎng)獨(dú)立地運(yùn)用程序設(shè)計(jì)解決問(wèn)題的能力的目標(biāo)。圍繞上述的計(jì)算機(jī)核心課程,增設(shè)一門(mén)綜合實(shí)踐課“軟件構(gòu)造課程設(shè)計(jì)”,形成“軟件構(gòu)造技術(shù)”課程群。如圖1所示。

      圖1 基于專(zhuān)業(yè)核心課程的軟件構(gòu)造課程群

      新增“軟件構(gòu)造課程設(shè)計(jì)”的目的是整合分散在核心課程的軟件開(kāi)發(fā)原理、流程、技術(shù)和工具,通過(guò)集中的實(shí)踐教學(xué),培養(yǎng)學(xué)生的技術(shù)集成能力、提升獨(dú)立地開(kāi)發(fā)軟件能力。課程群建設(shè)及新增課程的基本原則是:

      (1) 相關(guān)性。針對(duì)培養(yǎng)目標(biāo),基于軟件開(kāi)發(fā)技術(shù)的多門(mén)課程設(shè)計(jì)實(shí)踐課程。

      (2) 穩(wěn)定性。只增加一門(mén)綜合實(shí)踐課,不改變其它課程設(shè)置。

      (3) 靈活性。針對(duì)不同的人才類(lèi)型可調(diào)整課程的授課內(nèi)容、組織和授課方式。

      (4) 集成性。提升產(chǎn)品開(kāi)發(fā)、工具應(yīng)用的技術(shù)集成能力,采用簡(jiǎn)約的軟件開(kāi)發(fā)流程——平滑編程與測(cè)試(實(shí)現(xiàn)),整合分析、設(shè)計(jì)與實(shí)現(xiàn)(開(kāi)發(fā))的活動(dòng)。

      (5) 及時(shí)性。盡早培養(yǎng)學(xué)生的技術(shù)集成與應(yīng)用能力,盡早多練、熟能生巧,逐步走向?qū)I(yè)化。

      (6) 技術(shù)性。盡量減少組織計(jì)劃、團(tuán)隊(duì)管理及成員間的協(xié)商、交流、制約等非技術(shù)因素。

      2.2 “軟件構(gòu)造課程設(shè)計(jì)”的設(shè)計(jì)

      軟件開(kāi)發(fā)者要具備綜合運(yùn)用多種程序開(kāi)發(fā)理論、軟件技術(shù)和工具,課程群中的課程涵蓋了不同方面、不同層次的開(kāi)發(fā)知識(shí)和技能:

      (1) 高級(jí)語(yǔ)言程序設(shè)計(jì)。計(jì)算思維、用編程解決問(wèn)題,代碼調(diào)試。

      (2) 面向?qū)ο蟪绦蛟O(shè)計(jì)。代碼復(fù)用,面向?qū)ο缶幊谭妒?,軟件測(cè)試,IDE。

      (3) 數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ),IDE等基礎(chǔ)。

      (4) 數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)基礎(chǔ),SQL語(yǔ)句編程。

      (5) 計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)編程、Web應(yīng)用的開(kāi)發(fā)。

      (6) 軟件工程。軟件產(chǎn)品工程,軟件開(kāi)發(fā)的基本原則、軟件設(shè)計(jì)、測(cè)試、代碼管理。

      然而,開(kāi)發(fā)一個(gè)軟件產(chǎn)品需要系統(tǒng)地集成相關(guān)的知識(shí)、技能和工具,整合貫穿各個(gè)階段的多個(gè)活動(dòng)。針對(duì)培養(yǎng)目標(biāo)和當(dāng)前課程體系的不足,增設(shè)“軟件構(gòu)造課程設(shè)計(jì)”目的就是整合、增補(bǔ)、加強(qiáng)散落在上述課程中與軟件開(kāi)發(fā)技術(shù)相關(guān)的知識(shí),主要包含:

      (1) 軟件構(gòu)造的一般原則。模塊、信息隱藏、代碼重用、抽象,增量、迭代開(kāi)發(fā)。

      (2) 軟件構(gòu)造的常用技巧。契約式設(shè)計(jì)、防御式編程、異常處理、配置式編程、表驅(qū)動(dòng)構(gòu)造技術(shù)、分布式程序設(shè)計(jì)。

      (3) 軟件設(shè)計(jì)。軟件設(shè)計(jì)語(yǔ)言如UML、E-R圖、程序結(jié)構(gòu)圖,軟件架構(gòu)(如B/S)、框架(如MVC)與接口APIs的應(yīng)用,類(lèi)的設(shè)計(jì),用戶交互設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)。

      (4) 軟件構(gòu)造工作要素。編碼及其規(guī)范、工具使用(如IDE、SVN)、單元測(cè)試技巧(如JUnit)、性能優(yōu)化。

      (5) 軟件構(gòu)造活動(dòng)。部分簡(jiǎn)單的設(shè)計(jì),編碼和調(diào)試,單元測(cè)試。

      “操作系統(tǒng)原理”的主要內(nèi)容不屬于開(kāi)發(fā)應(yīng)用軟件的必要知識(shí)而不是“軟件構(gòu)造課程群”的核心課程。傳統(tǒng)“軟件工程”課程的內(nèi)容龐大、復(fù)雜,包含軟件工程的基本理論、開(kāi)發(fā)方法、過(guò)程模型以及工程管理、標(biāo)準(zhǔn)規(guī)范、職業(yè)道德等,不同的專(zhuān)業(yè)方向可以選學(xué)不同的內(nèi)容,有些專(zhuān)業(yè)甚至可以不設(shè)。有關(guān)軟件的設(shè)計(jì)、測(cè)試和代碼配置等知識(shí)可以在新增的“軟件構(gòu)造課程設(shè)計(jì)”簡(jiǎn)單講解,通過(guò)開(kāi)發(fā)實(shí)踐掌握。

      課程群中每門(mén)課程含實(shí)驗(yàn),還可以設(shè)置相應(yīng)的課程設(shè)計(jì)。在計(jì)算機(jī)學(xué)科的課程體系中,新增課程屬于技術(shù)開(kāi)發(fā)系列,是學(xué)科的必修課。而后續(xù)的“軟件工程課程設(shè)計(jì)”屬于工程系列,作為學(xué)科的選修課。

      2.3 課程群的教學(xué)實(shí)施

      借鑒不同的人才教育分類(lèi)法以及我校定位,把軟件人才劃分成學(xué)術(shù)型和工程技術(shù)型。針對(duì)不同類(lèi)型、不同專(zhuān)業(yè)方向的學(xué)生,對(duì)課程群制定了不同的教學(xué)方案。

      2.3.1 課程群核心專(zhuān)業(yè)課程的教學(xué)實(shí)施

      實(shí)施軟件構(gòu)造課程群的基本原則是,對(duì)工程技術(shù)類(lèi)學(xué)生,簡(jiǎn)化每門(mén)課程中的基礎(chǔ)理論、形式化方法、證明等方面的內(nèi)容;學(xué)習(xí)專(zhuān)業(yè)課程的目的是為了理解計(jì)算機(jī)系統(tǒng)的原理、掌握相關(guān)技術(shù);加強(qiáng)技術(shù)實(shí)現(xiàn)和應(yīng)用方法的內(nèi)容。

      受篇幅所限,下面以計(jì)算機(jī)學(xué)科經(jīng)典的數(shù)據(jù)結(jié)構(gòu)和算法課程為例,說(shuō)明針對(duì)不同類(lèi)型人才的教學(xué)。

      表1 專(zhuān)業(yè)核心課程與培養(yǎng)類(lèi)型的關(guān)系

      表2 數(shù)據(jù)結(jié)構(gòu)和算法課程與培養(yǎng)類(lèi)型的關(guān)系

      傳統(tǒng)的高等教育的目標(biāo)是培養(yǎng)學(xué)術(shù)型人才,這兩門(mén)課的教學(xué)主要是通過(guò)研究經(jīng)典數(shù)據(jù)結(jié)構(gòu)、算法策略及偽代碼實(shí)現(xiàn),理解如何設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和算法,通過(guò)復(fù)雜度分析選擇數(shù)據(jù)結(jié)構(gòu)和算法,鍛煉其邏輯思維能力和想象力,進(jìn)而設(shè)計(jì)新的算法。

      對(duì)工程技術(shù)類(lèi)型的學(xué)生,在產(chǎn)品開(kāi)發(fā)中如何使用這些數(shù)據(jù)結(jié)構(gòu)/算法比研究它們的結(jié)構(gòu)、性質(zhì),甚至用偽代碼或C語(yǔ)言去實(shí)現(xiàn)更重要。有關(guān)算法的基本內(nèi)容,如復(fù)雜性分析、基礎(chǔ)算法可以通過(guò)數(shù)據(jù)結(jié)構(gòu)來(lái)傳授。更多復(fù)雜的算法、理論知識(shí)可以作為選修課。而且,現(xiàn)代編程語(yǔ)言如C#、Java、Python等都提供了實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)及其算法的類(lèi)庫(kù),學(xué)生可以通過(guò)閱讀類(lèi)庫(kù)代碼學(xué)習(xí)如何用具體的開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法,同時(shí)擴(kuò)大編程語(yǔ)言知識(shí)、提高編程水平。

      在工程技術(shù)類(lèi)教學(xué)中,可以對(duì)不同專(zhuān)業(yè)方向?qū)⑦@兩個(gè)課程合并。例如,在“軟件工程-服務(wù)外包”專(zhuān)業(yè)中,我們?cè)贘ava方向的技術(shù)體系中選用了“Java數(shù)據(jù)結(jié)構(gòu)”教材。在“生物技術(shù)(基因組學(xué)與生物信息學(xué))”專(zhuān)業(yè)跨組學(xué)的創(chuàng)新實(shí)驗(yàn)班中,針對(duì)“軟件開(kāi)發(fā)與信息分析”方向開(kāi)設(shè)了“數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)”的課程,用python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)及基本算法。

      2.3.2 軟件構(gòu)造課程設(shè)計(jì)的教學(xué)實(shí)施

      新增的“軟件構(gòu)造課程設(shè)計(jì)”安排在學(xué)完專(zhuān)業(yè)核心課程之后的5學(xué)期開(kāi)設(shè)。課程采用適合計(jì)算機(jī)軟件開(kāi)發(fā)的案例教學(xué)——項(xiàng)目驅(qū)動(dòng)方式,要求每個(gè)學(xué)生獨(dú)立地完成一個(gè)可運(yùn)行軟件的開(kāi)發(fā)工作,編寫(xiě)代碼2 000行左右,工作量4人/周(其中課堂集中教學(xué)2人/周)。提供了下列三個(gè)教學(xué)安排:

      方式一:正常教學(xué),共18周,每周4學(xué)時(shí)。

      方式二:實(shí)訓(xùn)方式,共2周,每周40學(xué)時(shí)。

      方式三:小學(xué)期制,共4周,每周20學(xué)時(shí)。

      為使學(xué)生在教學(xué)時(shí)間內(nèi)完成任務(wù)、突出軟件構(gòu)造的綜合訓(xùn)練,任課教師要提供軟件開(kāi)發(fā)案例包,包含較為詳細(xì)的系統(tǒng)功能描述,或者有系統(tǒng)設(shè)計(jì)、主要代碼結(jié)構(gòu),最好提供一個(gè)完整的系統(tǒng)實(shí)現(xiàn),以便每個(gè)學(xué)生能動(dòng)手操作、完成實(shí)現(xiàn)一個(gè)可以運(yùn)行的軟件。

      提供的課程開(kāi)發(fā)案例要滿足下面的基本要求:

      不涉及太多的應(yīng)用領(lǐng)域的知識(shí),使用簡(jiǎn)單常見(jiàn)的應(yīng)用架構(gòu),簡(jiǎn)化、集成的開(kāi)發(fā)過(guò)程(要求規(guī)范的過(guò)程和管理,突出增量、迭代的基本原理,重點(diǎn)在部件級(jí)軟件設(shè)計(jì)、編碼-集成和測(cè)試),不要求復(fù)雜的軟件實(shí)現(xiàn)、但要集成2種技術(shù)(如GUI開(kāi)發(fā)、用戶交互、數(shù)據(jù)庫(kù)開(kāi)發(fā)、Web應(yīng)用開(kāi)發(fā)、多線程/并發(fā)程序設(shè)計(jì)等),結(jié)果是可運(yùn)行的、具有一定功能的軟件(不追求完整性、穩(wěn)定性、性能等質(zhì)量屬性)。

      案例例子:游戲類(lèi)——連連看,俄羅斯方塊等,撲克類(lèi)游戲;簡(jiǎn)化的典型應(yīng)用(模擬)系統(tǒng)——如圖書(shū)管理、課堂管理、畢業(yè)設(shè)計(jì)管理、家庭安保、家庭保健、電梯控制系統(tǒng)、智能家居服務(wù)、ATM終端。

      學(xué)生實(shí)踐的重點(diǎn):軟件設(shè)計(jì)技術(shù),軟件構(gòu)造技術(shù),軟件測(cè)試(特別是編碼測(cè)試與框架xunit),版本控制,代碼復(fù)用——APIs、庫(kù)、框架等,工具的熟練使用與環(huán)境搭建,開(kāi)發(fā)活動(dòng)的集成(增量、迭代,設(shè)計(jì)與實(shí)現(xiàn)的平滑,編程與測(cè)試的平滑融合),功能驗(yàn)證(測(cè)試、設(shè)計(jì)審查、代碼分析、代碼走查)等。

      3 結(jié) 語(yǔ)

      今后,我們將依據(jù)“計(jì)劃-執(zhí)行-檢查-行動(dòng)”的質(zhì)量管理框架,不斷改進(jìn)“軟件構(gòu)造課程群”的設(shè)計(jì)與實(shí)施。主要工作包括:

      (1) 改進(jìn)課程群。調(diào)整群中的課程設(shè)置、每門(mén)課的教學(xué)內(nèi)容和教學(xué)方法。對(duì)單個(gè)核心課程實(shí)行分類(lèi)教學(xué),側(cè)重原理及其應(yīng)用。重構(gòu)“軟件工程”課程的內(nèi)容,以適應(yīng)不同專(zhuān)業(yè)方向。增補(bǔ)其它相關(guān)技術(shù)課程,如Web應(yīng)用開(kāi)發(fā)基礎(chǔ)。

      (2) 完善“軟件構(gòu)造課程設(shè)計(jì)”及其案例。完善課程群及其綜合課程設(shè)計(jì)的案例要求和規(guī)范,針對(duì)不同專(zhuān)業(yè)方向,在信息安全、電子商務(wù)、移動(dòng)計(jì)算、數(shù)據(jù)挖掘、嵌入式軟件、網(wǎng)絡(luò)工程等領(lǐng)域開(kāi)發(fā)合適的案例庫(kù)。特別是,開(kāi)發(fā)能在不同課程中共享的綜合案例。

      (3) 建設(shè)技術(shù)開(kāi)發(fā)系列課。分別以C/C++,C#和Java為基礎(chǔ),在數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、Web開(kāi)發(fā)、軟件構(gòu)造等課程中,采用相同的編程語(yǔ)言,形成軟件構(gòu)造課程群的技術(shù)系列課程。如在“數(shù)據(jù)結(jié)構(gòu)”課程中,講授的設(shè)計(jì)、算法部分與編程語(yǔ)言無(wú)關(guān),而在應(yīng)用、實(shí)現(xiàn)的實(shí)驗(yàn)課可分別采用不同的編程語(yǔ)言。

      [1] 王志英,蔣宗禮,楊 波,等. 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)實(shí)踐教學(xué)體系與規(guī)范研究[J].中國(guó)大學(xué)教育,2009(2):42-44.

      [2] Curriculum of computer science and technology disciplines of China universities[M]. Beijing: Tsinghua University Press, 2009.

      [3] Yanmin Chen, Xizhong Lou, Jingwen Zhan, “Research on teaching reform of computer basic course in colleges and universities,”[C]//Proc 3rd International Conference on Teaching and Computational Science(WTCS '09), Shenzhen, China, Dec 2009:231-236.

      [4] Duanyang Zhao, Qingxiang Xu and Wuheng Zuo, “Research and Practice in the Curriculum System for Majors in Software Engineering,”[C]//Proc 2010 2nd International Workshop on Education Technology and Computer Science, Wuhan, China, Mar 2010:417-420.

      [5] 夏建國(guó). 基于人才分類(lèi)理論審視技術(shù)本科教育人才培養(yǎng)目標(biāo)[J].中國(guó)高教研究,2007(5):5-7.

      [6] 李慧仙. 論高校課程群建設(shè)[J].江蘇高教, 2006(6):73-75.

      [7] 王 寧,王 珊. 數(shù)據(jù)管理課程群的構(gòu)建和實(shí)施方案研究[J].中國(guó)大學(xué)教學(xué), 2010(6): 62-65.

      [8] 萬(wàn) 臣,謝 芳, 胡 泉. 計(jì)算機(jī)專(zhuān)業(yè)程序設(shè)計(jì)課程群的建設(shè)與研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2009(2):23(1),33-36.

      [9] Zhixiao Wang and Fanrong Meng. Core basic course group construction in computer major,[C]//Proc 6th International Conference on Computer Science and Education(ICCSE '11), SuperStar Virgo, Singapore, Aug, 2011: 577-579.

      [10] Christopher Connolly, Gabriele Meiselwitz, “Integrating software engineering in computer programming education,[C]//Proc. 10th ACM conference on SIG-information technology education(SIGITE '09), Fairfax, USA, Oct, 2009: 50-54.

      [11] 劉 超. 關(guān)于“軟件工程”課程體系的基本架構(gòu)及課程系列設(shè)置的探討[J].計(jì)算機(jī)教育,2009(21):22-26.

      [12] 駱 斌,臧斌宇,丁二玉. 軟件工程專(zhuān)業(yè)教育知識(shí)體系的分析、重構(gòu)與求精[J]. 計(jì)算機(jī)教育,2010(23):2-8.

      [13] 駱 斌. 軟件工程與計(jì)算(《卷一:軟件開(kāi)發(fā)的編程基礎(chǔ)》,《卷二:軟件開(kāi)發(fā)的技術(shù)基礎(chǔ)》,《卷三:團(tuán)隊(duì)與軟件開(kāi)發(fā)實(shí)踐》)[M].北京:機(jī)械工業(yè)出版社,2012.

      [14] Bourque P, Fairley R E,etal. Guide to the Software Engineering Body of Knowledge[ED]. Version 3.0,Chapter 3,Computer Society, 2014; www.swebok.org

      [15] Charlie McDowell, Linda Werner, Heather E. Bullock,etal. Pair programming improves student retention, confidence, and program quality[J]. Communications of the ACM, 2006,49(8):90-95.

      Course Design of Software Construct and Its Related Course Group

      LIJin-hua,CHENYu

      (College of Information Engineering, Qingdao University, Qingdao 266071, China)

      It lacks a comprehensive practice course that integrates the software development theories, techniques and tools, which are scattered across different courses in computer science curriculum. That is one of the reasons that we failed to educate students with the competence of developing large-scale software applications. A separate software comprehensive experimental course named software constructs course design is setup, for the purpose of strengthening the competence of software integration and development. The practice course is designed for support a course group covering courses of programming foundation, data structures and algorithms, and software process. The paper describes constitution of the course group, curriculum design of the practice course, and different teaching implementation plans aiming at different types of students. Related teaching researches are comparatively analyzed.

      course group; software construction; comprehensive course design; practice teaching; engineering talents

      2015-01-05

      李勁華(1963-),男,湖南長(zhǎng)沙人,博士,教授,系主任,從事計(jì)算機(jī)科學(xué)、軟件工程、項(xiàng)目管理、軟件工程學(xué)科教學(xué)。

      Tel.:13969678995,0532-85952324;E-mail:lijh@qdu.edu.cn

      TP 311

      A

      1006-7167(2015)10-0084-05

      猜你喜歡
      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      龍鳳元素系列課程設(shè)計(jì)
      “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
      高職高專(zhuān)數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
      基于Articulate Storyline的微課程設(shè)計(jì)與開(kāi)發(fā)
      TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
      基于自動(dòng)化系統(tǒng)的PLC課程設(shè)計(jì)
      巫溪县| 灵璧县| 满洲里市| 万年县| 平山县| 涡阳县| 扶绥县| 广南县| 哈巴河县| 大化| 托克逊县| 襄汾县| 永吉县| 仙居县| 滕州市| 临武县| 丹凤县| 贺兰县| 宁陕县| 洛扎县| 达州市| 汨罗市| 大理市| 白银市| 泾源县| 揭阳市| 北海市| 天全县| 夏邑县| 达州市| 四平市| 大竹县| 商都县| 中西区| 隆安县| 恩施市| 象山县| 榆社县| 永清县| 塔河县| 岳池县|