前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的軟件工程課程總結主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞 軟件工程教育 角色體驗 軟件工程知識體系 工程文檔
1 引言
軟件產(chǎn)業(yè)是互聯(lián)網(wǎng)和新一代信息技術發(fā)展的重要基礎,軟件工程作為一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科,始終是軟件產(chǎn)業(yè)發(fā)展的根基。對于計算機專業(yè)人才的培養(yǎng),軟件工程在計算機高等教學中占有重要地位。但是無論從學生、教師還是業(yè)界的反饋都可以看出,軟件工程教學的實際效果遠未達到我們的期望。系統(tǒng)完整的軟件工程知識體系建立仍然面臨眾多挑戰(zhàn),理論與實踐結合的創(chuàng)新人才依然難尋,完整嚴謹和有效的軟件工程架構風格依然遙遠。作為高校教師,我們必須從軟件工程的教、學、研進行深入的研究,探索一條行之有效的教學培養(yǎng)方法。
軟件工程是“將系統(tǒng)性的、規(guī)范化的、可定量的方法應用于軟件的開發(fā)、運行和維護,其重點在于軟件的分析與評價、規(guī)格說明、設計和演化,同時還涉及管理、質量、創(chuàng)新、標準、個人技能、團隊協(xié)作和專業(yè)實踐等”。①相比于其他的計算機專業(yè)課程,軟件工程的教學有很大的不同。軟件工程中重要的技術和開發(fā)原理來源于應用和實際商業(yè)軟件開發(fā),之后這些核心技術被提煉和整合形成原則和理論基礎而引入課堂,教授給學生。通過軟件工程課程的學習,學生需要了解和掌握軟件工程的理論、技術和方法,具備作為軟件工程師所需的專業(yè)能力。優(yōu)秀的軟件工程研究者David Parnas將軟件工程計劃分成三個階段執(zhí)行:(1)首先,詳細說明軟件工程師可能要執(zhí)行的一些任務;(2)定義軟件工程師需要的知識體;(3)將其實施作為一個培訓計劃。②③由此可見,軟件工程是一門綜合性和實踐性很強的學科,傳統(tǒng)的教學模式和教學方法在軟件工程教學中存在很大不足,人為地強調實踐或者理論基礎無法有效地培養(yǎng)學生的綜合技能和水平,從而直接影響了課程的教育質量和教學效果。
軟件工程課程必須面向解決實際問題,即如何成功地開發(fā)可靠的、可用的、可維護的軟件系統(tǒng),滿足用戶的要求。這包含了需求分析、規(guī)劃說明、設計、構建、測試、操作和維護等軟件生命周期的各個階段。目前,軟件工程教學主要包含兩部分:課堂教學和實踐教學。以傳統(tǒng)的教師為導向的教學方式為主,實踐教學為輔。教師在課堂上講授軟件工程方法、原則、技術等知識;實踐教學主要是采用實驗課的方式,由學生設計完成一個項目。根據(jù)多年教學的經(jīng)驗和我們調查反饋的結果,很多學生在本課程學習時感到茫然和無所適從,理論的東西感覺抽象難以理解,缺乏學習熱情和興趣。針對軟件工程課程的特點,我們認真分析調研了課程教學存在的問題,總結分析導致課程教學效果不理想的主要原因如下:
1.1 課程設置安排不盡合理
軟件工程是一門涉及內容較多的綜合性學科,所教授的原理、方法較為抽象。軟件工程中核心的技術和開發(fā)原理均來源于實際商業(yè)軟件開發(fā),經(jīng)提煉形成原理和方法而引人課堂。目前,大部分高校將軟件工程課程設置在大三,對于剛剛完成兩年大學公共基礎課和專業(yè)基礎課教育的學生來講,軟件開發(fā)的基礎理論和概念仍然匱乏,與軟件工程相關的前期課程前后脫節(jié)。尤其在計算機科學專業(yè)課程設置中,只有一學期的必修的軟件工程課,在這么有限的時間內學生很難掌握軟件工程的理論與實踐的精髓,從而造成大多數(shù)學生認為是在學習枯燥無用的理論。
1.2 理論和實踐的脫節(jié)
軟件工程是一門實踐性很強的課程。相比于其他的計算機學科的課程,軟件工程課程核心和精髓不可能從教師的授課和課本的理論學習而獲得,靠“死讀書,讀死書”是無法完成本課程的學習的,實踐和理解相結合的融會貫通非常重要。在實際軟件開發(fā)中真刀真槍的實現(xiàn),在練習中理解基本原理,在真正練的過程中提升理論的水平是軟件工程課程教學和實踐的有效方法。
1.3 重代碼,輕文檔
在軟件工程課程的教學中,大部分的學生甚至部分教師都會自然地認為實現(xiàn)高效整齊的代碼是課程學習中最重要的工作,對于文檔工作未有足夠的重視。在實際軟件開發(fā)的工程實踐中,一般認為代碼的工作量只占到整個工程工作量的30%左右,完整、有效的各種文檔,包括設計文檔、算法文檔、說明文檔、維護文檔等是整個軟件工程核心。因而在軟件工程的教學中,我們必須轉變觀念,突出工程文檔的重要性,將各種統(tǒng)一、標準、高效和實用的文檔設計和撰寫方案融匯到課程的教學中,并且與軟件工程理論和代碼編寫結合,形成完整的的理論、算法、代碼和文檔并重的教學新方法。
1.4 缺乏軟件工程知識體系的系統(tǒng)概念
商用和實際應用軟件開發(fā)的工作是系統(tǒng)的團隊工作模式,單打獨斗無法完成商業(yè)和實用軟件開發(fā)。然而,現(xiàn)在軟件工程的教學中,教師和學生注重的是單個原理和系統(tǒng)的學習,從而造成了學生軟件編程風格五花八門,程序可讀性差,軟件工程的完整知識體系混亂。團隊工作的模式要求程序員在整個工程中需要承擔不同的角色,不同的角色承擔的任務不同,又同時需要與其他的角色互相配合溝通,從而完成整個工程的開發(fā)。這一點,在目前軟件工程的教學中非常缺乏,為此我們需要建立系統(tǒng)的概念,將角色體驗的模式引入軟件工程課程教學中。
在參考文獻④中,Nurkkala和Brandle對軟件工程教學進行了分析,并對現(xiàn)行軟件工程教學方法中存在的問題進行了總結:(1)沒有產(chǎn)品——學生在學習中僅僅是創(chuàng)建項目,而并非真正地開發(fā)商業(yè)級別的產(chǎn)品;(2)持續(xù)時間短——通常軟件工程課程只安排一或兩個學期,課程受限于時間過短很難真正理解軟件工程的方法、原理等在實際軟件工程項目中如何應用,并完成開發(fā)真正的產(chǎn)品;(3)高流動性——對于一個項目來講,每個學期都有新學生加入意味著人才庫始終只有很少的人,新加入的學生很難基于之前的經(jīng)驗開發(fā)其自身的技能;(4)低復雜性——由于學習必需時間以及學生本身技能的限制,只能開發(fā)簡單的應用;(5)無法維護——作為持續(xù)時間過短結果,學生沒法經(jīng)歷軟件開發(fā)非常重要的一個方面,即系統(tǒng)維護階段;(6)沒有客戶——學習過程中,大多數(shù)軟件工程項目都沒有真正的與客戶進行接觸,而實際的開發(fā)中必須要了解客戶的需求,根據(jù)客戶的需求進行軟件開發(fā)。
綜合上述分析,我們深入調研了現(xiàn)行軟件工程課程教學的困難和挑戰(zhàn),分析了國內外報道的先進的軟件工程課程教學的新方法,結合我們幾年來課堂教學的經(jīng)驗大膽改革課程體系框架和教學內容,積極探索案例教學和實踐教學模式,提出了角色體驗和工程文檔應用于軟件工程教學的新方法和新思路。我們強調建立理論與實踐相結合的軟件工程知識體系,采用任務驅動的角色體驗方法,加強學生協(xié)同分工和集成創(chuàng)新能力;突出強調工程文檔在軟件工程應用開發(fā)生命周期的重要作用,建立軟件工程中規(guī)范化的任務、知識體系和實施培訓的流程。
本文第二部分將介紹目前報道的國內外軟件工程教學的有效方法,第三部分介紹我們探索的引入角色體驗和工程文檔的軟件工程教學新思路,第四部分進行總結。
2 國內外現(xiàn)行有效軟件工程教學方法
為了解決以上提到的軟件工程教學中存在的不足,目前,國內外已經(jīng)提出了多種教學方法來改進軟件工程課程教學。范銳⑤等人提出了基于“做中學”的教學理念的“項目驅動、案例教學”的軟件工程教學模式,其教學理念認為軟件工程教學不能單純依靠理論講解,強調實踐對于軟件工程教學的重要性,在學生的實踐過程中,采用項目團隊方式進行項目開發(fā),學生分組分工,明確每個人所承擔的職責,以此培養(yǎng)團隊意識。“項目驅動”的教學方式,將整個軟件工程教學過程包含于一個完整的項目之中,學生通過完成項目學習和掌握軟件工程的包含的知識,實現(xiàn)對知識的掌握和應用。
陳建國⑥等人針對傳統(tǒng)以教師為主的軟件工程教學方法提出了改進,在傳統(tǒng)的軟件工程教學中引入了集體工作、實驗、案例學習、合作教育相結合的軟件工程教學方法,詳細地論述了這四部分對軟件工程教學作用以及對學生掌握軟件工程方法的幫助。采用了合作教育的方式,學校和企業(yè)合作為學生提供真正的商業(yè)軟件開發(fā)的機會,增強學生理論與實際的聯(lián)系,使得軟件工程教學中的項目管理、軟件過程、質量保證等不再那么抽象難于理解。
近年,國外對于軟件工程教學方法中存在的不足提出了不少有效學習方法,其中相當一部分方法著重強調了協(xié)同工作⑦⑧⑨在軟件工程教學中的重要作用,在教學中分成多個小組,使學生加入其中,這些小組的組織結構與組內分工與實際的項目開發(fā)小組完全相同,這樣學生在學習的過程中完全按照實際的工程開發(fā)的需要進行學習,使得學生學習中能充分掌握軟件工程的方法、原則等的實際應用。此外,還提出了一些其他軟件工程教學的有效教學方法,如使用Liu⑩形式化方法教學;Deveaux豘等提出專注于軟件開發(fā)過程中的文檔,Deveaux認為在教學中很難獲得實際的足夠大具有開發(fā)意義的項目,而文檔的學習卻可以使學生充分了解軟件工程項目的基本原則,方法等內容;Li豙則成功地將統(tǒng)一過程方法應用于實際的教學當中;Pandey豛在教學中使用競爭的方法教授學生開發(fā)原則;更有一些在軟件工程的教學中采用游戲的方法,豜使學生充當游戲中項目小組的項目經(jīng)理的角色來學習軟件工程。Scott豝等人在本科生的軟件工程教育中采用了開源工具,并將之整合到軟件工程課程中,通過學生的反饋對比,表明此種方法獲得了很好的效果。
3 角色體驗與工程文檔結合的軟件工程教學方法
3.1 國內軟件工程教學現(xiàn)狀
在實際的課程教學中,運用了案例開發(fā),與企業(yè)合作等方法,并結合國內外其他一些有效的軟件工程教學法后,我們發(fā)現(xiàn)學生在有限的時間內所能理解的軟件工程知識相當有限。在對計算機科學專業(yè)的學生進行調查時,我們發(fā)現(xiàn)大約80%學生對大三進行的軟件工程課程沒什么興趣。他們認為那只是枯燥的理論課學習和繁瑣的文檔編寫。在前兩年專業(yè)基礎課學習中,他們幾乎沒有接觸到文檔編寫,大部分項目的完成都是在草稿紙上設計然后直接進入程序編寫階段。他們認為這樣可以一步到位,省去很多繁瑣的細節(jié)。當然,正如我們前面提到,在本科教學中,學生在課堂上能實現(xiàn)的項目只能是中小型項目,復雜性低。學生無法感受到缺乏軟件工程流程中首要的基礎工作而可能造成的困難和嚴重的后果,所以學生們大多認為寫各種各樣的文檔是在浪費時間。而對于教師來說,到大三軟件工程課時,在沒有大型項目做支持的情況下,再教導學生編寫文檔的重要性,似乎沒有說服力,也很難扭轉學生已經(jīng)形成的直接編程的習慣。所以在計算機學科的學習中,我們大膽改革教育的方式并修訂了階段性的培養(yǎng)目標,形成一種潛移默化提升學生綜合能力和水平的模式。在本科生進入大專院校就讀后,計算機專業(yè)課程,尤其是編程課程的項目設計上需盡早地讓學生接觸到軟件工程知識的基本概念和方法。從大一專業(yè)課開始,學生們就需要開始完成簡單的項目。如果教師們可以從一開始就讓他們了解到軟件工程的生命周期,接觸到軟件工程流程中的各個步驟,從簡單到復雜地進行實踐,到大三的軟件工程課時他們就會對這些知識已經(jīng)有所了解,并不會感覺到枯燥,因為在前兩年的學習中他們一直都使用這些方法,已經(jīng)養(yǎng)成了良好的軟件工程的習慣。
3.2 基于文檔撰寫的潛移默化式教學法
我們經(jīng)常只會在軟件開發(fā)或維護過程出現(xiàn)問題時才意識到那些被忽略的文檔的重要性。在我們的調查中,軟件工程師們大約有60%以上都認為自己的文檔的編寫能力只是一般,有些甚至不會撰寫文檔(見表1)。很多工程師在學校并沒有受到專業(yè)的訓練,只有到工作中才開始慢慢學習與實踐,但是經(jīng)常由于時間有限,項目截止日期逼近而只好疏于對文檔的編寫或是只能犧牲其質量。如果我們在本科教學中盡早地讓學生接觸到各類文檔,在撰寫項目文檔的過程中,學生不但能學習到軟件工程的流程,也能把撰寫文檔的技能鍛煉熟練,更重要的是他們會漸漸地把文檔的撰寫與管理當成一種習慣,當成一種必須。這樣,無論是大型項目還是小規(guī)模項目,他們都會用一定的軟件工程流程來完成。一開始的小項目中,也許他們并不能理解為什么要撰寫那么多文檔,但當他們到高年級創(chuàng)建相對復雜的項目時就能體會到文檔的好處。他們就能領會,計算機軟件并不只是程序,還應該有一整套文檔資料。這些資料都是在開發(fā)過程中產(chǎn)生出來的,對軟件管理人員,開發(fā)人員,維護人員,測試人員,客戶,包括程序員自己都是必不可少的。那么如何開始這種潛移默化式教學法呢?教師們要對所有四年的專業(yè)課程進行分析,總結出需要參加這個軟件工程教學計劃課程和項目。加入到這個計劃里的課程教師要設計符合這個計劃的項目,并將文檔撰寫作為對學生必須的要求。在整個計劃中,建議提供一套完整統(tǒng)一的各類文檔的模板以供學生們使用,包括軟件需求說明書,軟件設計說明書,軟件測試說明書,項目開發(fā)計劃書等。這些模板要一致,學生在所有課程中要使用一致的模板,由簡化版到完整版,低年級的學生先使用簡化版的模板,讓他們漸漸地學習撰寫文檔。比如一年級的項目可以只要求寫軟件需求說明書。在模板的設計中,最好是和企業(yè)界運用的文檔保持一致,然后進行簡化,給學生提供一種他們可以勝任的文檔模板,然后逐年增加內容,最終可以與業(yè)界使用的文檔保持一致。這個計劃的實施需要得到計劃內課程教師們的認同,通力合作,把學生四年的學習列入計劃,并隨時進行監(jiān)督。經(jīng)過四年的訓練,學生的寫作能力一定能得到大幅度提高,對軟件工程的認識也會非常深入,畢業(yè)后能夠勝任商業(yè)軟件和應用軟件的開發(fā)要求。
3.3 基于角色體驗的軟件工程課程教學法
上面提到的文檔式教學法是為了訓練學生創(chuàng)建各類軟件工程文檔的能力。在課堂項目中,由于時間有限,一個學生往往不可能完成整套文檔的撰寫。在低年級階段,在小型或中型項目中,學生學習了軟件需求和軟件設計文檔,學生應該可以單獨完成。但當項目變得相對復雜,大多課程項目都是以團隊合作的形式來完成。教師通常知道哪些同學組成一個團隊,但并不清楚或關心這些同學在項目組里擔任的角色。這樣,在四年的學習中,有些同學在項目組里只保持著一種角色,如只擔任了程序員或測試員,并沒有機會對各個相應的角色進行體驗,導致他們知識的不全面。與文檔教學法相結合,我們提出一種叫做角色體驗的教學法,和文檔式教學法同步進行,一同潛移默化地將軟件工程知識注入學生腦海。所有加入計劃的課程要統(tǒng)一安排項目組成員,目的是讓每個學生在這些課程項目完成的過程中能體驗所有的軟件工程角色,并完成這一角色相對應的文檔。這樣不但訓練了每個學生各種文檔的寫法,讓學生了解了軟件工程生命周期整個團隊要進行的工作,而且鍛煉了學生互相合作的團隊精神,避免學生在團隊中只依賴于幾個學習相對比較優(yōu)秀的學生來完成項目。假設我們要訓練學生四個角色:項目經(jīng)理,系統(tǒng)分析設計師,程序工程師,和測試工程師,我們需要至少四門課程加入此計劃。如圖-1所示,四個學生分為一個項目組,經(jīng)過這四門課程項目的訓練,他們可以完成這四個角色的訓練,學會四種文檔的撰寫,體驗各個角色在軟件工程流程中的職責。如果要增加角色和文檔種類的話,可以適當調整學生團隊組員數(shù)目與職責。經(jīng)過這樣的訓練,學生對團隊合作一定會有更加深入的認識,也能提高隊員的溝通能力,以改善畢業(yè)生在企業(yè)界缺乏溝通能力的現(xiàn)狀。
經(jīng)過四年的文檔與角色的潛移默化式訓練,一定能大幅提高學生的軟件工程能力。相比單純的一到兩門軟件工程課程,學生對軟件工程的理解要深入得多,實踐能力也會大幅度提高。由于計算機科學專業(yè)課程設置并不像軟件工程專業(yè)對軟件工程的教學那么有針對性而且課時較少,所以這種方法尤其適合計算機專業(yè)的教學。
地方性高校培養(yǎng)應用型人才,需要了解市場發(fā)展的導向,社會行業(yè)對人才的需求,以及著眼特色辦學的核心競爭力,實現(xiàn)自身的發(fā)展[1-2]。軟件產(chǎn)業(yè)發(fā)展已經(jīng)被國家提到戰(zhàn)略的高度,為了配合其快速的推進,我國高校也正在擴大培養(yǎng)軟件工程方面的專業(yè)人才的規(guī)模。軟件工程專業(yè)論文是2002年國家教育部新增專業(yè)[3],該專業(yè)主要以培養(yǎng)軟件工程專門人才為目標。我校軟件工程專業(yè)由教育部于2015年批準的新專業(yè),起源于我院計算機科學與技術專業(yè)軟件技術方向。
徐州工程學院作為新興的地方性高校,在軟件工程專業(yè)建設方面,不僅需要學習和借鑒重點大學、國家示范性軟件學院的經(jīng)驗和做法,更重要的是結合地方院校的特點和實際情況,辦出特色。因此,應用型人才培養(yǎng)體系的建成,應該直接為當?shù)亟?jīng)濟建設和社會發(fā)展服務,適用面廣、實用性強,具有鮮明特色。本文主要闡述以工程教育認證質量評價機制為指導的徐州工程學院軟件工程專業(yè)在理論和實踐方面的培養(yǎng)體系。
2 市場調研
為了制定針對性的培養(yǎng)模式,首先組織一些學科教授和骨干教師,對軟件工程專業(yè)的就業(yè)形勢、市場需求等進行為期2個多月的市場調研,調研對象包括國有大中型企業(yè)、私營與股份制等公司的負責人和技術骨干。本次調研內容包括實地參觀學習、與企業(yè)召開研討會,并向企業(yè)發(fā)放調查問卷表500份,收集有效調查表437份。
通過這次調研,總結軟件工程專業(yè)的市場需求、人才結構和素質要求、企業(yè)技能標準等信息,發(fā)現(xiàn)軟件工程技術人才奇缺,涉及很多方面,主要原因是大部分高校計算機專業(yè)不注重應用型軟件人才的培養(yǎng),學生畢業(yè)后面臨的是二次學習的困境。因此,對學生的培養(yǎng)不僅需要完整性的實訓鍛煉、強調企業(yè)項目經(jīng)驗、注重培養(yǎng)學生的分析與解決問題的能力,更需要注重團隊合作意識;在課程設置方面應該與企業(yè)長期合作,開設企業(yè)實用的技術課程和職業(yè)綜合素質的內容。
3 軟件工程專業(yè)應用型人才培養(yǎng)模式
軟件工程專業(yè)強調軟件開發(fā)的系統(tǒng)和工程性,培養(yǎng)能夠從事軟件開發(fā)、測試、維護和軟件項目管理的高級專門人才[4]。軟件工程專業(yè)沿用徐州工程學院計算機專業(yè)“3+1”培養(yǎng)模式,具體模式為學生在前三年完成通識課程、專業(yè)課程的學習,以及課程基本實訓,最后一年在企業(yè)完成項目級實訓、職業(yè)訓練和畢業(yè)設計。
表1所示為軟件工程專業(yè)課程構成及學分分配匯總表。徐州工程學院軟件工程專業(yè)課程主要分為三大平臺。其中,通識類課程平臺包括通識必修課、通識選修課以及學科基礎課;專業(yè)課程平臺主要包括專業(yè)必修課和專業(yè)選修課。
知識支撐能力結構 根據(jù)軟件工程專業(yè)的培養(yǎng)目標,確定課程知識支撐能力結構,如圖1所示。課程設置本質上是為了培養(yǎng)學生能力的,因此,為了培養(yǎng)學生英語能力、熟知行業(yè)標準、管理能力以及創(chuàng)新意識等,設置學科基礎課、通識類課程以及專業(yè)課程、專業(yè)技術導論、講座等課程;為了培養(yǎng)持續(xù)學習、協(xié)作和項目分析等能力,設置軟件工程課程群、企業(yè)實訓課程以及職業(yè)技能訓練等課程。
理論知識體系結構 軟件工程專業(yè)理論知識體系結構包括通識課程群、學科基礎群、專業(yè)課程群,其中專業(yè)課程群是核心課程。專業(yè)課程分為程序設計基礎知識、軟件開發(fā)技術知識、數(shù)據(jù)庫原理知識、計算機系統(tǒng)知識、軟件工程知識等5個子課程群。其中,程序設計基礎知識包括數(shù)據(jù)結構、面向對象的程序設計(OOP);軟件開發(fā)技術知識包括Java Web方向課程群、移動開發(fā)方向課程群等課程;數(shù)據(jù)庫原理知識包括數(shù)據(jù)庫原理及應用;計算機系統(tǒng)知識包括計算機系統(tǒng)基礎、操作系統(tǒng)等課程;軟件工程知識包括軟件需求工程、軟件體系結構設計、軟件質量保證與測試、軟件項目管理。
實踐體系結構 軟件工程專業(yè)實踐體系結構如圖2所示,主要分為四個階梯:
1)個人級的實驗,主要由校內教師進行指導,學生獨立完成課內實踐環(huán)節(jié);
2)小組級的實驗,需要2~4個學生為一組,為完成程序設計、算法設計、面向對象技術開發(fā),通過溝通和相互協(xié)作完成,注重技能的訓練;
3)項目級的實訓,主要由企業(yè)教師指導,學生完成專業(yè)方向技能、軟件工程綜合訓練;
4)企業(yè)級的實訓,為了檢驗學生綜合能力,由學生獨立完成企業(yè)項目綜合訓練、職業(yè)技能提高以及畢業(yè)設計。
為了加強校企合作培養(yǎng)的效果,每4~6個學生配備一位校內指導教師和企業(yè)指導教師。校內導師在學生入學后確定,主要任務是“學業(yè)綜合指導”;校外導師在學生入學后的3年內確定,主要任務是“工程實踐指導”。學生在三年級初步確立畢業(yè)設計選題,由校內導師和企業(yè)導師聯(lián)合進行指導。
基于工程教育專業(yè)認證的質量評價 為了加強軟件工程專業(yè)的質量評估,以工程教育專業(yè)認證為指導,建立針對整個培養(yǎng)過程的質量監(jiān)控和完整有效的評價機制。在每個教學環(huán)節(jié),基于認證標準,明確質量要求,定期進行課程體系設置和教學質量的評價。此外,在整個學習過程中對學生的表現(xiàn)進行跟蹤與評估。
以上這些質量評估措施,保證學生畢業(yè)時達到畢業(yè)要求,畢業(yè)后具有社會適應能力與就業(yè)競爭力;后期,畢業(yè)之后階段,仍然采用跟蹤反饋機制,通過記錄評價和效果,證明學生能力的達成,并逐步對培養(yǎng)模式進行持續(xù)改進。
很顯然,只有建立完善的質量評估機制,才能保證按預期的目標完成專業(yè)培養(yǎng)要求。因此,從地方性高校實際出發(fā),以工程教育專業(yè)認證為質量評價指導,不斷完善培養(yǎng)模式,這樣才能培養(yǎng)卓越的學生,為企業(yè)持續(xù)不斷地吸引優(yōu)秀的生源。
4 總結
徐州工程學院作為一所以應用型工科教育為主的地方本科院校,軟件工程專業(yè)應用型人才的培養(yǎng)需要有別于高職高專的培養(yǎng)模式,需要更注重高層次應用型技術人才的培養(yǎng);又要有別于傳統(tǒng)學術性高校“精英型”人才培養(yǎng)目標、課程體系設置、教學模式以及師資要求等。
軟件工程專業(yè)培養(yǎng)標準最需要解決的問題是注重軟件工程宏觀意識,培養(yǎng)持續(xù)學習能力、交流與溝通能力。鑒于此,本文提出以工程教育專業(yè)認證為指導,構建軟件工程專業(yè)應用型人才培養(yǎng)體系,以期為地方性高校軟件工程專業(yè)能夠培養(yǎng)更多卓越的軟件工程方面的人才提供一種方法和途徑。
參考文獻
[1]宋思運.應用型本科人才培養(yǎng)模式的構建[J].徐州工程學院學報,2005,12(20):11-13.
[2]金忠明.我國高等教育發(fā)展質量面臨的問題與分析[J].徐州工程學院學報,2013,28(6):92-96.
關鍵詞:工程碩士;開放式教學;課程組
中圖分類號:G642文獻標識碼:B
1引言
軟件學院軟件工程碩士的培養(yǎng)目標是培養(yǎng)高層次、應用型人才,針對這個目標,其教學實施應著重體現(xiàn)出以下兩個差異性:
(1) 軟件工程學科領域和計算機學科領域間專業(yè)設置的差異性,這個差異應能夠很好地體現(xiàn)培養(yǎng)應用型人才的目的;
(2) 工程碩士課程和軟件學院本科課程的差異性,這個差異應能夠很好地體現(xiàn)培養(yǎng)高層次人才的目的。
目前國內軟件學院軟件工程學科和傳統(tǒng)的計算機科學學科在課程設置上差異還不顯著,工程碩士的培養(yǎng)方案中甚至部分課程只是本科階段的重復。雖然大都開始強調學生的軟件項目實踐,但普遍缺乏過程管理。本文在對IEEE的軟件工程知識體系進行深入學習的基礎上,針對軟件學院軟件工程碩士提出了實現(xiàn)開放式教學體系的教學改革方案。
2軟件工程知識體系
2004版SWEBOK將整個軟件工程知識體系分為11個知識領域(Knowledge Area,KA),其中前5個知識領域是按軟件開發(fā)的生命期諸階段排列的,即軟件需求、軟件設計、軟件構造、軟件測試和軟件維護;后6個知識領域是軟件開發(fā)中的支撐性或者輔的方面,可能覆蓋軟件開發(fā)的多個階段,包括軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具與方法、軟件質量、相關學科知識領域。這些知識領域SWEBOK并沒有重新系統(tǒng)規(guī)定,而是直接套用已經(jīng)成型的各領域知識體系,因此不可避免地存在重疊和不匹配。
在SWEBOK的基礎上,IEEE與ACM又共同擬定了CCSE。其中的核心部分是軟件工程教育知識(SEEK)。SEEK由十個知識領域組成,包括:計算機基礎(CMP)、數(shù)學和工程學基礎(FND)、職業(yè)實踐(PRF)、軟件建模與分析(MAA)、軟件設計(DES)、軟件驗證(VAV)、軟件演化(EVL)、軟件過程(PRO)、軟件質量(QUA)、軟件管理(MGT)。
可以看出,SEEK和SWEBOK基本內容是相近的??偟膩碚f,二者都是包含了軟件工程核心類的知識領域、基礎類或前導類的知識領域,以及其他相關領域的知識。
3高等教育教學改革研究狀況
目前國內關于高等教育教學改革的論文很多,如翁敬農、劉云等在軟件學院實踐教學體系的內容與規(guī)劃中提出了“一個目標”、“兩種途徑”、“三大環(huán)節(jié)”、以及“四級臺階”的具體步驟。王移芝、林艷琴提出基于“兩段教學”的計算機基礎課程的教學體系框架。謝芳清、閆大順提出了以素質教育為目標的實踐教學體系。王浩、胡學鋼等提出計算機科學與技術專業(yè)實踐教學體系的總體研究與建設。王志英以國家實驗教學示范中心為例,提出實踐是綜合能力培養(yǎng)的基礎,并以此構建計算機科學與技術專業(yè)實踐教學體系。董瑋、邱建華等以專業(yè)課“程序設計基礎(C語言)”為例給出了建設實踐教學體系的實踐探索。然而目前還沒有檢索到專門研究軟件學院工程碩士教學改革的論文。無論是從傳統(tǒng)計算機科學與技術專業(yè)與軟件學院軟件工程專業(yè)的區(qū)別,還是本科生與研究生的區(qū)別來看,針對軟件學院工程碩士的教學改革研究都是十分有必要的,同時也是迫切的。
4工程碩士的課程體系設計策略
我們以IEEE SWEBOK和CC2004SE的知識體系為主體,結合中國軟件產(chǎn)業(yè)以及本院的具體實際情況,設計了中國科學技術大學軟件學院軟件工程專業(yè)的知識體系,作為我院工程碩士課程設置和教學計劃實施的依據(jù)。以SEEK為基礎,我們對軟件工程的課程設置進行規(guī)劃。整個課程設置可以分為三個層次,即導論性課程、軟件工程核心課程和其他課程。如圖1所示,該知識體系定義了7個知識體系子類。計算機基礎和數(shù)學和工程學基礎屬于導論性課程、其他課程包含了職業(yè)實踐、領域課程、軟件工具、工程實踐等四個子類。
其中計算機基礎定義了軟件工程作為計算學科所必需包含的計算科學基礎以支持軟件產(chǎn)品的設計與建設;數(shù)學與工程學基礎提供了軟件產(chǎn)品獲得所需屬性的理論和科學基礎;職業(yè)實踐則聚焦于軟件工程師以職業(yè)行為從事軟件工程實踐所必需具備的知識、技能和態(tài)度;軟件工程核心課程應該包含軟件開發(fā)生命周期所涉及到的主要知識領域;領域課程包含了對于某個特定領域軟件工程師應該接受的特定教育或經(jīng)驗;軟件工具定義了從事軟件工作所必需掌握的當前主流工具與軟件產(chǎn)品等;工程實踐則是學生使用所學到的知識從事實際開發(fā)活動,提供動手能力的重要環(huán)節(jié)。
對于工程碩士來說,大部分同學經(jīng)過計算機本科專業(yè)的學習,已經(jīng)具備了初步的計算機基礎以及數(shù)學與工程學基礎,因此目前其課程體系建設如圖2所示,重點是完成軟件工程核心課程教學,并結合IT界的最新技術趨勢設計相關領域課程。教學改革的核心是如何設計軟件工程的核心課程,并指導學生熟練掌握相應的軟件工具,強化他們的實踐動手能力。
5工程碩士開放式教學體系建設
對于如何設計軟件工程的核心課程,我們的主要思路是打破原先各子知識體系間的界線,圍繞專業(yè)培養(yǎng)目標,結合學生的工程實踐,引入課程組的概念,實現(xiàn)一個完整的開放式教學體系。如圖3所示,整個開放式學習體系包含三個部分:
(1) 設計課程組:在理論環(huán)節(jié)采用課程組的概念,集中講授較高層次的、符合碩士生水平的軟件工程的某些重要環(huán)節(jié);
(2) 開設實踐教學環(huán)節(jié):在實踐教學中采用做中學(Learning by Doing或LBD)理念,由指導教師講述軟件工具的具體操作過程,同學實際動手學習;
(3) 強化工程實踐:在工程實踐中由學生自主選題,并將LBD中講述的工具在項目整個生命周期中貫穿使用。
5.1設計 課程組
目前我院開設的高級軟件工程和本科的軟件工程課程內容并沒有太大差別,對于軟件工程的各個環(huán)節(jié)面面俱到,但又都比較淺顯,對于工程碩士的培養(yǎng)顯然是不合適的。因此我們設計了軟件工程課程組的理念,初步設計了以下課程:
(1)“軟件開發(fā)管理”(Managing Software Development)
(2)“軟件系統(tǒng)架構”(Architectures for Software Systems)
第一門課程主要針對以后立志從事軟件工程管理方向的同學,課程針對IT項目集中闡述如何實現(xiàn)風險、資金、工期等各方面的管理;第二門課程主要針對以后立志從事軟件高級開發(fā)方向的同學,課程主要講述復雜軟件系統(tǒng)架構層上的設計,介紹目前通用的軟件系統(tǒng)結構、設計技術以及實現(xiàn)這些結構的模型、表述方法等。這兩門課程對于軟件工程碩士應該至少必修一門。除了這兩門課程,其他軟件工程類的課程包括了設計模式、軟件測試、語言類課程如J2EE、.NET等等,學生可根據(jù)自己的實際情況進行選修。
5.2開設實踐教學
針對該課程組,我們開設了實踐教學環(huán)節(jié),采用做中學理念,由指導教師(可以由助教擔任)根據(jù)事先確定的主題,選用具體工具講述如何使用該工具完成項目開發(fā)的某具體環(huán)節(jié),工具涵蓋了項目管理、架構設計文檔化以及測試等軟件項目開發(fā)的主要方面。
對于軟件工具的選擇,有兩種思路。一種方法是對軟件工程的不同環(huán)節(jié)分別選擇不同工具,例如項目管理選Project、開發(fā)文檔化選Rational、測試再選別的工具這樣來做,但結構分散,不利于整體化考慮。另一種是采用套件,完成項目開發(fā)全程的所有操作,目前我們選擇了兩種套件,一是微軟的VSTS,該套件和微軟的Visual Studio開發(fā)平臺綁定,適合學習.net開發(fā)框架的同學;另一種是IBM的RSA,該套件和Eclipse開發(fā)平臺綁定,適合選擇開源J2EE開發(fā)框架的同學。
5.3強化工程實踐
大多數(shù)的軟件學院目前都開設了專門的工程實踐環(huán)節(jié),但實際的效果并不盡如人意。因此我們將工程實踐環(huán)節(jié)也納入到開放式學習體系中,以前面所說的理論以及實踐教學環(huán)節(jié)來指導學生更好地高質量完成整個工程實踐。
從教學方法上,工程實踐應盡可能地貼近現(xiàn)實項目,除了常見的軟件工程文檔,我們還要求學生提交過程管理類文檔(軟件開發(fā)合同、會議記錄、工作日程記錄、合同執(zhí)行報告:財務報告和開發(fā)過程報告、個人總結、小組總結等)。
從技術上,學生可以自由選題,也可參考工程實踐題庫中的選題。選題涉及所有領域課程包含的內容。要求學生必須采用實踐教學環(huán)節(jié)中介紹的工具全程介入項目開發(fā)的各個階段。學院設立專門的工程實踐網(wǎng)站提供學生選題及交流,以及指導教師的監(jiān)督。
從教學形式上,則注重如何實現(xiàn)應用型軟件人才的核心能力分析與培養(yǎng),要求學生運用職業(yè)實踐子知識體系中的相應內容,鍛煉學生的口頭表達能力、書面表達能力等。通過學生的開題演講、采用各種工具完成相應的項目文檔、結題答辯等環(huán)節(jié)來實現(xiàn)學生職業(yè)素質的培養(yǎng)。
從實踐效果評價上,我們制定了一系列的成績考核方法、管理考核信息、分析考核結果、評價教學質量等措施,實現(xiàn)完整的考核體系。
6結論
軟件工程專業(yè)學生的培養(yǎng),在學科教育與培養(yǎng)面向市場需求的人才方面有著事實上的矛盾。軟件學院現(xiàn)有的實踐教學體系存在著專業(yè)課程設置定位不準確、課程實驗師資不足、實驗教學內容質量不高、實驗指導和管理落后等問題。根據(jù)軟件工程專業(yè)教學所面臨的挑戰(zhàn),在充分調研IEEE SWEBOK和CC2004SE知識體系的基礎上,針對軟件學院的工程碩士,我們提出了軟件工程碩士開放式教學體系的建設,圍繞專業(yè)培養(yǎng)目標,結合學生的工程實踐,引入課程組的概念,制定了一套較為完整的開放式實踐教學實施計劃。
參考文獻 :
[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. /ccse/SE2004Volume.pdf.
[2] 翁敬農,劉云. 北航軟件學院本科生實踐教學體系的研究與實踐[J]. 計算機教育,2007(11).
[3] 王移芝,林艷琴.“計算機基礎課程”實踐教學體系的研究與實踐[J]. 實踐教學,2008(8).
[4] 謝芳清,閆大順. 計算機工程專業(yè)實踐教學體系的研究[J]. 中國科技信息,2008(9).
[5] 王浩,胡學鋼,侯,等. 計算機科學與技術專業(yè)實踐教學體系的研究與建設[J]. 計算機教育,2007(11).
對于軟件工程課程來說,為的是讓學生能夠了解軟件工程的相關知識,進一步學習有關軟件的開發(fā)技術,從而達到優(yōu)化學習效果的目的。高校對軟件工程課程教學也提出了相關的建議與意見,表明學生既要對軟件工程的基本理論加以掌握,又需要借助基本理論知識去解決相關實際問題。軟件工程網(wǎng)絡課程的開展,為學生掌握軟件工程理論知識提供了有效途徑。但在實踐方面,軟件工程網(wǎng)絡課程也存在不足。例如,在網(wǎng)絡課程開展中,實際案例不充分,實踐性得不到很好的體現(xiàn),從而大大弱化了實踐教學目標。為此,解決軟件工程網(wǎng)絡課程在實踐方面存在的不足便成為一項迫在眉睫的工作。
2.軟件工程網(wǎng)絡課程與IBM-Jazz平臺的有效整合分析
在上述分析中,我們認識到軟件工程網(wǎng)絡課程的開展雖然能夠滿足學生的理論學習基本需求,但實踐環(huán)節(jié)較為薄弱。為此,大量學者提出將軟件工程網(wǎng)絡課程和IBM-Jazz平臺有效整合,實現(xiàn)理論+實踐的教學目標。Jazz平臺是IBM推行的面向跨地域團隊的下一代團隊協(xié)作平臺。將該平臺應用于軟件工程網(wǎng)絡課程開發(fā)中,能夠使以往軟件工程網(wǎng)絡課程在實踐方面的不足得到有效彌補。一方面,Jazz平臺對Web2.0技術充分支持,能夠構建實時協(xié)作平臺,從而便于師生在網(wǎng)絡課程中的溝通交流。另一方面,Jazz平臺支持軟件工程生命周期各個階段的任務,可以使學生對軟件工程過程有系統(tǒng)且全面的理解及掌握。此外,Jazz平臺能夠對敏捷軟件開發(fā)給予充分支持,從而為軟件工程網(wǎng)絡課程實踐教學的實現(xiàn)夯實基礎。
結合上述分析,筆者認為,要想使軟件工程網(wǎng)絡課程與IBM-Jazz平臺實現(xiàn)有效整合,需要了解IBM-Jazz平臺的優(yōu)勢,在針對學生完成軟件工程網(wǎng)絡課程中的理論知識的基礎上,積極開展工具培訓授課,讓學生了解并掌握Jazz平臺相關培訓教材以及教學資源,通過網(wǎng)絡指導學生正確、科學地使用相關工具,以此初步實現(xiàn)將IBM-Jazz平臺有效應用到軟件工程網(wǎng)絡課程教學過程中。
3.相關實踐研究
軟件工程網(wǎng)絡課程教學過程中,對學生進行實踐教學是尤為重要的一個環(huán)節(jié)。筆者認為,在借助IBM-Jazz平臺的基礎上,需讓學生掌握的實踐內容如下。
(1)基于實踐環(huán)節(jié),不脫離對理論知識的理解。也就是說,在實踐過程中,需要學生對軟件工程課程理論知識加深理解。例如,組織學生積極主動參與小規(guī)模的軟件開發(fā)過程,讓學生在此期間借助所學理論知識加深對軟件開發(fā)過程活動的理解,從而實現(xiàn)理論+實踐教學的完美結合。
(2)明確實踐項目,注重學生團隊精神的培養(yǎng)?;谲浖こ叹W(wǎng)絡課程實踐環(huán)節(jié)的復雜性,需對實踐項目加以明確,并做好項目的分配,然后將項目小組作為中心,分析軟件系統(tǒng)的需求、測試等內容。
(3)掌握相關工具應用方法,提高學生解決問題的能力。既然要將IBM-Jazz平臺融入軟件工程網(wǎng)絡課程教學過程中,便需要學生充分掌握Jazz平臺的相關工具應用方法,并引導學生在加強理論知識學習的基礎上,借助網(wǎng)絡實踐課程的開展,有效提高學生解決問題的能力。
4.結語
關鍵詞:軟件工程;項目教學法;改革與實踐
中圖分類號:G642 文獻標識碼:B
軟件工程是計算機科學與技術及相關專業(yè)教學計劃中一門重要的專業(yè)必修課,是指導計算機軟件開發(fā)與維護的一門綜合性課程,是一門實踐性很強的課程,各高校的計算機專業(yè)均開設這門課程。通過本課程的學習,使學生了解和掌握軟件工程開發(fā)的技術和方法,具備作為軟件工程師所需的專業(yè)能力,為從事計算機軟件開發(fā)和維護提供方法上的指導。同時,軟件工程的研究除計算機軟件本身外,還涉及眾多其他的領域,如管理科學、心理學、經(jīng)濟學、人機工程學等,因此,它也是一門綜合性學科。進入新世紀,軟件工程已經(jīng)由最初的一個學科方向發(fā)展成為以計算機科學技術為基礎的多學科交叉學科,在當今的信息社會中占有重要地位。如何組織好軟件工程實驗性教學,對于培養(yǎng)創(chuàng)新型合格的軟件人才具有十分重要的意義。
1軟件工程教學存在的問題
長期以來,我們培養(yǎng)的計算機專業(yè)的學生存在著“什么都學過,卻什么都不會”的尷尬局面,專業(yè)教育、教材與應用需求嚴重脫節(jié)。事實上,學生就業(yè)難并不是就業(yè)市場不需要計算機人才,其根源還是計算機教學的現(xiàn)狀所致。傳統(tǒng)的“軟件工程”課程雖然有實驗教學的要求,但一般只是停留在組織學生編寫軟件項目若干設計文檔這個單一環(huán)節(jié)上。然而,由于教育過早和長期的文理分家,導致理工科學生的文檔編寫是個“軟肋”,他們也不感興趣。此外,由于教學時間有限,要真正完成軟件工程各階段文檔的編寫,事實上也沒有可能。今天,軟件工程教學還面臨著計算機學科發(fā)展規(guī)范所提出的更高的質量要求,同時也面臨著大眾化高等教育背景下所帶來的客觀問題。
因此,迫切需要對軟件工程課程的教學體系進行工程化改造,逐步建立工程化實踐教學體系,著力培養(yǎng)學生的工程化開發(fā)能力和職業(yè)素質,進而形成一個融基礎理論、實驗教學、工程實踐為一體的整體化培養(yǎng)機制,讓學生的基礎知識、科學素養(yǎng)、專業(yè)知識、創(chuàng)新能力、工程能力和職業(yè)素質都得到全面均衡的發(fā)展。
2軟件工程項目教學法的改革與實踐
軟件工程強調采用工程化的方式開發(fā)和設計軟件,要求培養(yǎng)學生能勝任研究、分析、開發(fā)、設計、生產(chǎn)、測試、管理、咨詢、培訓等多種角色,使學生熟練掌握軟件工程知識與技能,具備作為軟件工程師從事工程專業(yè)所需的專業(yè)能力。隨著高校擴招,教學規(guī)模迅速發(fā)展,傳統(tǒng)的計算機教學模式在實踐環(huán)節(jié)上的缺乏與不足,直接影響了計算機課程的教育教學質量,特別是對于像軟件工程這種綜合性、實踐性很強的課程,如果沒有一整套科學、合理的實驗教學方法,就不可能培養(yǎng)出具有創(chuàng)新能力的合格人才。因此,切實加強軟件工程課程的創(chuàng)新與改革至關重要。
按該課程的特點,實驗內容包括軟件開發(fā)的兩大方法學的專題訓練,即結構化(生命周期學)的方法學和面向對象的方法學,以平時實驗和課程設計相結合,設置一些實驗項目,要求學生利用結構化軟件開發(fā)技術或面向對象的軟件開發(fā)技術完成對該項目的開發(fā)。以項目作為實驗環(huán)節(jié)的主線,隨著課程進展布置任務,從項目開發(fā)的準備工作、系統(tǒng)分析過程、系統(tǒng)設計過程、軟件測試到系統(tǒng)實施,結合所學習的理論知識,完成項目的開發(fā)。同時,依據(jù)國家《計算機軟件開發(fā)規(guī)范》,撰寫規(guī)范的技術文檔。因此,主要從以下幾個方面對軟件工程教學作了改革與創(chuàng)新的嘗試:
(1) 樹立工程化能力培養(yǎng)與基礎理論教學、專業(yè)能力培養(yǎng)并重的教學理念。
把工程化教學作為人才培養(yǎng)的核心任務之一,通過全面改革軟件工程專業(yè)的人才培養(yǎng)模式、調整課程體系、充實教學內容、改進教學方法,建立工程化實踐教學體系,在教學過程中全面體現(xiàn)工程化能力和職業(yè)素質培養(yǎng)的思路,進而形成了一個融基礎理論、實驗教學、工程實踐為一體的整體化培養(yǎng)機制,讓學生各方面的能力都得到全面均衡的發(fā)展,以適應現(xiàn)代軟件產(chǎn)業(yè)的需求。
(2) 設置工程化教學階段和企業(yè)實習階段。
把工程化素質培養(yǎng)作為學生全培養(yǎng)期中自始至終關注的主線。在工程化教學階段,一方面獨立設置了多門以培養(yǎng)學生工程能力和職業(yè)素質為主的學分課程;另一方面對操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、多媒體技術等十多門傳統(tǒng)課程教學內容進行工程化改造,充實工程教學內容,引入實作業(yè)。在企業(yè)實習階段,建立跨度為半年的全時制企業(yè)實習制度,在著名軟件企業(yè)中設立實習基地,通過真實的企業(yè)氛圍和開發(fā)環(huán)境,進一步培養(yǎng)學生的工程能力和職業(yè)素質。
(3) 實驗課程以平時實驗和課程設計相結合,設置一些綜合實驗項目。
隨著課程進展布置任務,通過調查研究、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護(版本升級)及技術文檔的編寫,結合所學習的理論知識,完成設計。實驗內容應覆蓋軟件工程學科的各個主要環(huán)節(jié),覆蓋軟件生存周期的各個階段,使學生通過實驗加深對學科理論知識的理解。但也要避免“喧賓奪主”,在積極發(fā)展實驗教育的同時,要保證必要的理論教學水平。必須充分重視和精心設計實驗內容,要有可操作性、趣味性和適當?shù)碾y度??刹僮餍员WC學生都能完成實驗,從而促進學生學習信心的建立,在一定程度上能減少學生抄襲的理由,克服實驗數(shù)據(jù)普遍抄襲的弊病;趣味性體現(xiàn)“寓教于樂”,以提高學生完成實驗的積極性;而適當?shù)碾y度有助于激發(fā)優(yōu)秀學生進一步鉆研的斗志。
項目來源為教師科研課題、實踐基地課題、校內應用課題和自選課題。選題的原則為:新穎、實用和規(guī)模適中。新穎代表計算機發(fā)展的主流技術和應用范疇。實用代表所選題目一定是具體單位或用戶要求開發(fā)的,而不是由學生隨意杜撰和隨意想象的,其目的就是保證學生在軟件工程實踐過程有實際的場景環(huán)境(主要包括用戶、領域專家和工作環(huán)境),這對于高質量的軟件工程實踐過程具有質的保障。
(4) 軟件工程實驗要求學生采用“項目小組”的形式,結合具體的開發(fā)項目進行設計,班級按項目小組進行分組,每組不得超過4人。每個項目小組選出項目負責人或項目經(jīng)理,由其召集項目組成員討論、選定開發(fā)項目。
(5) 學生分工合作,學習軟件開發(fā)小組的組織和管理,將項目開發(fā)各階段的任務明確,熟悉軟件開發(fā)環(huán)境,培養(yǎng)團隊精神,共同完成該項目的設計任務。項目中的每項任務要落實到個人,實驗在規(guī)定的時間內,由學生獨立完成。學生在學校機房的機器應固定下來,并安裝好相應的軟件,沒有特殊情況不應缺席。
(6) 配置開放的實驗環(huán)境:實驗環(huán)境是保證實驗教學活動和質量的基本條件,對于軟件工程課程顯得尤為重要。
項目開發(fā)不是簡單程序設計,而是軟件工程全過程的綜合性實踐,應該建立和配置相應的軟件工程實驗環(huán)境或實驗中心。實驗環(huán)境或實驗中心的建設重點要放在軟件工程環(huán)境和自動化開發(fā)工具的配置上。應該清楚,高層次的實驗環(huán)境應是高素質人才培養(yǎng)的物質基礎。實驗環(huán)境還應該是開放性的,這有利于在學生實踐過程中建立一種項目開發(fā)、科學研究和創(chuàng)新思維的綜合效應。
(7) 分組討論,集體交流
分組討論是項目教學中非常重要的環(huán)節(jié),本質上是一種概念或想法的交流。圍繞項目的重點,難點,疑點,進行討論、辯論和爭論。每個學生可以自由的抒發(fā)己見、相互啟迪、互相借鑒,重點是想法的交流。要求每個學生簡要介紹自己對軟件開發(fā)所做的分析設計,并提出自己對該軟件開發(fā)流程的看法,供大家討論與切磋,可以按照項目中所提出的問題一個一個討論。在教師的引導下,讓學生進行課堂發(fā)言,進行全體學生的交流。本階段討論主要解決兩個問題:①小組討論沒有達成共識的問題;②按照教學目標,有意引導學生掌握軟件工程的生命周期法各階段所做的具體工作以及進行相關工作的必要性。
為了使分組討論有效地開展,教師要做好充分的課前準備。除了熟知項目陳述的事實、觀點外,還要諳知項目反映或蘊涵的原理、規(guī)則等知識,以便引導學生概括出來。要認真學習研究項目后給出的教學指南,具體擬定出課堂教學計劃,這要求教師認真思考回答以下問題:希望課堂上發(fā)生些什么?如何引導這些情況的發(fā)生?討論如何開展?時間如何安排?自己扮演什么角色?是先得結論再分析,還是相反?并對課堂討論中可能出現(xiàn)的情況做出預測。教師還要依據(jù)課程目標、項目目標及教學計劃的具體安排重點分析以下方面的內容:項目中反映的那些重要論題、項目中反映的情況發(fā)生的根源、項目中所反映的而學生可能設想不到的情況等。在討論掌握上,教師要力保討論沿預期的軌道進行,把討論引導到問題的解決上去,并引導出與論題相關的理論知識,力爭班上每個學生都至少有一次發(fā)言的機會,切實做到有效參與。
(8) 總結歸納,消化提升
總結歸納是軟件工程項目教學的最后階段,要求學生針對每個項目寫出學習報告。該報告中包含學生在閱讀項目中所得到的具體收獲;通過分析與設計軟件,提出自己所解決的實際問題;對理論上軟件工程概念和項目中的實際是否一一相對應;以及對軟件工程仍然存在的困惑。通過反思進一步加深對項目的認識,真正作到理論和實踐的相結合。
項目教學中,師生都要注意角色轉換,如果學生仍然熱衷于將自己置身于教學過程之外,只做一名旁觀者,項目教學也就失去了它的價值。學生只有真正地深入項目、體驗角色,才會有項目情境的“再現(xiàn)”,項目教學的價值才能被體現(xiàn)。而教師在教學過程中也要不斷變換自己的角色,可充當監(jiān)督員,激勵啟發(fā)學生,監(jiān)督項目分析、討論情況;可充當示范員,向學生演示、講解、分析項目中的事實、圖表、材料等;可充當主人翁,制定下一步的工作計劃并在實施中起主導作用;可做仲裁,解決各種爭端;可充當交警,使討論回到預定的軌道上來,等等。
3項目教學法的效果
軟件工程項目教學法已在我院計算機專業(yè)學生中進行了全面實施,效果顯著,提高了學生按照軟件工程的原理、方法、技術、標準和規(guī)范進行軟件開發(fā)的綜合能力和軟件項目的管理能力,學生的綜合素質明顯增強。特別在基礎技能、團隊協(xié)作、資料收集、人際交流、項目規(guī)劃幾個方面明顯具備較強的能力。
客觀地說,作為第一次開發(fā)實際軟件系統(tǒng)的學生,要在較短的時間里開發(fā)出各方面都達到真正實用要求的系統(tǒng)是難以完成的。實踐的意義更主要是讓學生經(jīng)歷完整的過程,體驗各階段方法和工具的應用,還有鍛煉除技術以外的多方面能力(如需求分析時如何與用戶交流、文檔寫作、成員間的協(xié)作與管理,等等),以提高其綜合素質。
4結束語
今天,軟件工程已經(jīng)由最初的一個學科方向發(fā)展成為以計算機科學技術為基礎的一個新興交叉學科,軟件工程的教學面臨著計算機學科發(fā)展規(guī)范所提出的更高質量要求。計算機技術的迅速發(fā)展和高端軟件人才的嚴重匱乏,讓我們面臨新的挑戰(zhàn)。軟件工程項目教學法改革還需要在以下幾方面繼續(xù)努力:
(1) 軟件工程教學改革體系應在培養(yǎng)學生工具的使用與實驗技能、工程設計與實現(xiàn)能力、評審與測試能力、團隊協(xié)作與溝通能力、過程管理與控制能力等方面下更多的工夫,作更多的努力。
(2) 隨著軟件產(chǎn)業(yè)的發(fā)展和計算機應用的普及,系統(tǒng)測試、維護的重要性會更加突出,軟件工程實踐教學應在這方面有所準備,有所側重。
(3) 軟件工程教育應當給予學生“工程”的概念,以軟件生命周期為主線,構建知識結構,將科學與工程有效結合,實施技術與管理的能力和素質培養(yǎng)。
參考文獻:
[1] 張海藩. 軟件工程導論[M]. 北京:清華大學出版社,2003.
[2] 鄭紅. 基于建構主義的軟件工程教學方法探索[J]. 計算機教育,2008(10):10-14.
[3] 林松. 高?!盾浖こ獭氛n程教學與實踐探討[J]. 福建電腦,2008(1):33-36.
[4] 林惠強,劉財興,林丕源.“軟件工程”課程啟發(fā)式教學的研究與實踐[J]. 實驗室研究與探索,2008(5):8-11.
[5] 丁瓊. 軟件工程課程教學改革與思考[J]. 華東交通大學學報,2007(z1):76-80.
【關鍵詞】實踐教學 課程設計 科技競賽
【中圖分類號】G642 【文獻標識碼】A 【文章編號】2095-3089(2014)02-0243-02
一、軟件工程課程實踐教學現(xiàn)實情況
長期以來,由于軟件工程課程偏重于方法學理論的講授,其中心是軟件生命周期的工程技術方法。然而這些技術和方法,對于缺乏工程開發(fā)經(jīng)驗和管理知識的在校學生來說非常難以理解。在實踐教學中學生感覺軟件工程理論對軟件開發(fā)的幫助作用不大[1]!盡管實踐教學對學生有嚴格的要求,但是他們往往為了能完成任務的考核,只能按照要求粗略地完成或者收集現(xiàn)成的文檔來充數(shù),而未能通過實踐對所學的知識進行理解與消化。此外,靠死記硬背的知識、概念常常未能得到有效理解,從而難以轉化為軟件工程技能。多年來,各個學校在不斷地探索和改進其實踐教學方法,當前也有些對傳統(tǒng)實踐教學改進的方法并且取得了一些效果[2][3]。經(jīng)過對這些方法的分析,可知其大致可分為兩類:一類是直接套用軟件工業(yè)界的要求,但學生缺乏技能和實踐條件對任務根本無法完成,只能敷衍了事,達不到對軟件工程知識理解和應用的目的;而另一類則是要求不明確且缺乏規(guī)范,因要求過于簡單而無法達到增強對軟件工程理論應用的目的。
鑒于這樣的情況,學校迫切需要對軟件工程實踐教學加以改革,逐步建立實踐與理論緊密結合的教學方法,著力培養(yǎng)學生的工程化開發(fā)能力,進而形成一個融基礎理論、實踐教學和參加軟件科技競賽的一種培養(yǎng)機制。因此,使課程設計成為對課堂教學的有效補充是實踐教學改革的一個重要任務[4]。
二、“課程設計與科技競賽”相結合的實踐教學方法
課程設計與科技競賽相結合就是要打破傳統(tǒng)實踐教學法的不足,充分調動學生學習的積極性和主動性,極大地激發(fā)學生的學習興趣,以實踐教學活動帶動軟件工程理論的學習。這樣實踐教學就能改變成為對理論知識的鞏固應用和對工程實踐能力培養(yǎng)的主動學習方式,從而使教學出現(xiàn)可喜的變化。它能把教師要求轉變?yōu)橐詫W生自主要求,把常規(guī)工程文檔寫作轉變?yōu)橐匀蝿諡轵寗拥姆治?、設計和實現(xiàn)的學習。
該實踐教學是在教師的指導下由學生實施的一個較為完整的“項目”而進行的實踐教學活動。參照科技競賽題目的特點,并依據(jù)軟件工程理論、方法的特點,制定了本課程設計的知識要求結構如圖1所示。在軟件工程理論知識的基礎上,挑選某種易于擴展、應用的工程技術方法,在軟件工程規(guī)范文檔的要求下進行課程設計。從而使其按需求分析、總體設計、詳細設計、實現(xiàn)和測試的流程來開發(fā)軟件。這樣,經(jīng)過課程設計較為完整的項目訓練,能有助于對學生工程技能的培養(yǎng)和對工程理論的理解,最終使學生在有限的時間內,對軟件工程的核心理念有較好的把握。它能幫助學生有效地參與各級軟件類科技競賽,提高自己就業(yè)時的信心和社會競爭力,使其畢業(yè)后能夠順利過渡到實際的軟件應用開發(fā)中,并在實踐中對軟件工程理論加以檢驗和完善并逐步鍛煉成為社會急需的各類軟件人才。
課程設計與科技競賽相結合的教學方法是以學生為主體,教師為輔助,在課程設計實踐中加深對軟件工程理論的理解,培養(yǎng)學生在工程實踐中發(fā)現(xiàn)知識與分析、解決問題的能力。要達到這樣的實踐教學目的,軟件工程課程設計要做到以下的要求。首先,關于課程設計與科技競賽相結合的教學內容的設計上,要以學生興趣為中心自由選擇題目。針對實踐教學要求,學生選擇合適的題目是保證該實踐教學順利開展的關鍵。因此,題目要以理論教學內容為依據(jù),同時要考慮學生的知識結構特點和實踐教學的要求。此外,題目要注重以解決身邊的軟件需求為背景,充分使其既包含教學知識點,又能激發(fā)學生軟件開發(fā)的興趣,達到培養(yǎng)學生軟件工程能力的目的。其次,實踐指導老師要提供合適的示范案例,并不斷地引導學生向正確的方向前進。由此,在課程設計的準備階段需要對為完成設計所需的基本知識進行明確且扼要地講透。這樣學生在遇到困難時,才知道行進的方向而不至于迷茫和不知所措!在課程設計中,要使學生明確課程設計的要求,并盡快地掌握工程的基本方法和使用工具的基本技能。同時,應盡量使學生獨立地解決設計中所遇到的問題,而教師則需要對學生進行全程的指導和監(jiān)督。再次,應確定合適評價標準,客觀考核學生的學習效果。主要方法是以學生完成課程設計的情況來評價學生的學習效果,要求各課程組定時匯報開展的進度和情況,并及時地對各階段性成果進行評價。
三、課程設計的教學實施
根據(jù)實踐教學的具體要求,對課程設計與科技競賽相結合的教學方法開展了研究,并總結出該方法的大致流程如圖2所示。其基本指導思想是以案例示范為核心,不斷地引導學生對其選定的課程設計進行改進,使其能滿足掌握需求分析、軟件設計與實現(xiàn)以及測試的基本技能,并把不斷改進貫穿到整個設計中。由此,課程設計應從課程設計準備,精選小項目案例文檔示范,課程設計題目的選定,課程項目的設計與改進,教師和學生一起對設計結果的評價與改進進行精心地組織。因此,準備階段就是對訓練內容所涉及的工程知識進行精煉概括與總結,使學生知道如何去應用這些知識。此外,示范的項目案例要進行精心的選擇,使其能夠覆蓋課程設計實踐教學要求,又要精干有效,易于參照與模仿學習,切忌過于龐雜。教師應把課程設計準備知識與項目案例進行參照講解,讓學生徹底了解訓練的要求。在題目的選擇上,可以適當?shù)靥峁┮恍┚x的小應用軟件題目,讓學生參照選擇或根據(jù)生活經(jīng)驗自擬題目。并在項目設計中進行全程的監(jiān)督和引導,并隨時指出其設計和參照示范項目和實踐要求的差距。對各階段結果,應組織一些志愿學生和做得好的學生對各階段結果進行評價并給出改進建議。如此不斷地迭代改進,能夠使學生較好地掌握軟件工程的基本技能,并鞏固對應的軟件工程理論知識,從而取得舉一反三的示范效果。這樣就能夠使學生理解并掌握一些基本的需求獲取與分析、系統(tǒng)分析與設計等軟件生命周期的技能,并學會軟件工程規(guī)范文檔的編寫與應用。
關鍵詞:離散數(shù)學;軟件工程專業(yè);任務驅動;改革與實踐
doi:10.16083/ki.1671-1580.2017.04.052
中圖分類號:G642
文獻標識碼:A
文章編號:1671-1580(2017)04-0180-04
離散數(shù)學課程是研究離散量的結構及其相互之間關系的學科。自上世紀70年代以來,它一直是計算機學科核心課程之一,更是軟件工程專業(yè)的專業(yè)基礎課。然而離散數(shù)學的教學現(xiàn)狀卻沒有體現(xiàn)它作為軟件工程專業(yè)基礎課程的地位,一是學時不夠多,二是教學內容比較陳舊,過于注重數(shù)學理論的推導,而忽視了它作為計算機后續(xù)課程的支撐作用。離散數(shù)學是不斷發(fā)展的學科,它既包括一些古老的數(shù)學內容,又有一些近代建立起來的新的分支。主要有:集合論,邏輯推理,組合數(shù)學,代數(shù)系統(tǒng)及圖論幾個彼此獨立的分支構成。它具有概念多,內容雜,理論性強,抽象,難于理解的特點;另外國內很多教材的內容很少提及與其他計算機各專業(yè)課程的關系,因此對于應用型工科學生,雖然認識到離散數(shù)學有助于提高他們抽象思維能力和邏輯推理的能力,但是他們更注重一種技能的獲得,因此就會覺得離散數(shù)學枯燥無趣,愈發(fā)感覺學習起來很困難。
基于以上原因,國內各高校從事離散數(shù)學教學的許多教師,紛紛從各個方面進行了教學的改革與實踐,例如有采用啟發(fā)式教學的,有增加實驗環(huán)節(jié)的,這些在教學中也起到了一定的效果。但是,要想真的從根本上解決這些問題,應該從教學內容上著手,從軟件工程專業(yè)的角度進行改革。國外教材內容的改革要早于國內教材的變更,前者更側重應用性、思維性訓練,更突出離散數(shù)學作為數(shù)據(jù)結構、數(shù)據(jù)庫及人工智能等后續(xù)課程的理論支撐的作用,并且會隨著計算機出現(xiàn)的新興領域,實時地加入到教材及課堂中。例如,由Dossey,J.A.等編著,章炯民等翻譯的《Discrete Mathematics》中,就有大量的案例,而且每一個專題的最開始都是有一個非常典型的而且和實際生活相關聯(lián)的例子,這些例子把離散數(shù)學的相關概念和理論與其他計算機專業(yè)課程緊密聯(lián)系在一起,不僅能夠引起學生興趣,而且在興趣的驅動下,掌握了離散數(shù)學的理論,同時也奠定了學習其他各專業(yè)課程的基礎。而反觀國內的教材,仍然停留在國外的七八十年代的階段上,仍然只是大量的定律證明與推演,而和軟件工程專業(yè)課程的相關性卻很少提及,偶有例子也是一筆帶過,這雖然對訓練學生的數(shù)學能力是有一定作用,但學生不知道學這門課程到底有什么用,從而失去興趣,那么這種目的也是達不到的。對于應用型工科生,學習離散數(shù)學的主要目的是作為工具應用于計算機領域中,因此可以借鑒國外教材的這種實用性,將離散數(shù)學的各個部分的講解與后續(xù)各專業(yè)課程緊密銜接。但是國外教材的習題開放性過大,不是很適合國內學生的思維習慣,另外國內的課時要求也不允許完全照搬國外的教材,因此我們嘗試在離散數(shù)學教學中開展教學內容改革,在軟件工程專業(yè)培養(yǎng)目標指導下選擇教學內容,精選案例,從而構建出適合國內學生的教學內容。
一、課程改革的設計
(一)明確教學目標
離散數(shù)學是計算機學科的專業(yè)基礎課,計算機各專業(yè)都有離散數(shù)學課程,但各專業(yè)講述的內容基本雷同,沒有針對各專業(yè)的后續(xù)課程有偏重點地劃分。本文從軟件工程專業(yè)培養(yǎng)目標及后續(xù)課程出發(fā),提出對離散數(shù)學課程的教學進行改革與實踐,使離散數(shù)學能更好地為其它各專業(yè)課程服務。軟件工程專業(yè)課程主要有:程序設計語言,離散數(shù)學,數(shù)據(jù)結構,計算機硬件基礎,操作系統(tǒng),計算機網(wǎng)絡,編譯程序構造,數(shù)據(jù)庫設計與應用,軟件工程導論,面向對象分析與UMI,軟件系統(tǒng)設計與體系結構,軟件質量保證與軟件測試,軟件項目管理等課程。重點強調在軟件工程專業(yè)培養(yǎng)目標下去構建教學內容,設計合理的教學案例,案例的選擇偏重于對后續(xù)課程的支撐作用。
(二)基于軟件工程專業(yè)培養(yǎng)目標構建教學內容
挖掘離散數(shù)學及其他軟件工程專業(yè)課程之間的切入點,精選教學內容,選取離散數(shù)學和后續(xù)專業(yè)課程緊密相關的內容。軟件工程相關的核心知識單元包含:集合,關系,函數(shù),樹,圖,數(shù)理邏輯,基本證明技術,基本計數(shù),將這些核心知識作為重點講述內容。
根據(jù)軟件工程專業(yè)的人才培養(yǎng)目標和學生知識特點,不斷調整課程結構和優(yōu)選教學內容。結合軟件工程領域的實際應用背景,選取離散數(shù)學和后續(xù)專業(yè)課程緊密相關的內容,例如集合與關系部分是算法與數(shù)據(jù)結構及數(shù)據(jù)庫課程的基礎,而數(shù)理邏輯與圖論部分又與軟件工程密切相關,代數(shù)系統(tǒng)又是人工智能及計算機組成課程的先修內容,這些部分需要作為重點內容,而一些純粹的數(shù)學定理推導則作為輔助內容,就是簡要介紹離散數(shù)學課程的基礎理論,偏重離散數(shù)學知識在計算機課程中的直接作用??傊?,選取基本教W內容的是以“實用為主,夠用為度”的原則。
(三)基于軟件工程專業(yè)培養(yǎng)目標設計教學案例
在軟件工程專業(yè)要求下,設計典型案例,案例要能體現(xiàn)出后續(xù)課程對離散數(shù)學課程的“成果依賴”的作用。結合“離散數(shù)學”課程教學,以軟件工程專業(yè)要求,結合任務驅動教學模式就提高教學效果和培養(yǎng)計算機專業(yè)學生的創(chuàng)新能力和綜合素質方面進行實踐研究。學生要進行課前預習,教師給出教學內容在實際生活中和計算機科學領域的應用,激發(fā)學生的主動性和興趣;教師結合問題的應用領域設計相關問題并創(chuàng)設問題情境,呈現(xiàn)問題,學生在任務驅動下進行相關的學習活動,明確任務,查閱相關的資料;教師引導學生對教材內容以小組討論的形式實現(xiàn)協(xié)作學習,深入探究問題的解決方案,從而進一步分析問題;教師利用啟發(fā)式尋求解答的思想,指導學生基于教學內容利用啟發(fā)式規(guī)則和推理來尋求更好的解答;學生在教師的引導下,以任務為驅動,逐步掌握各個章節(jié)的內容,并在此基礎上將新知識進行鞏固擴展。
(四)基于軟件工程專業(yè)培養(yǎng)目標的任務驅動教學模式
任務驅動教學模式強調以學生為中心,強調學生的學習過程必須與學習任務相結合,通過完成任務來激發(fā)學生的興趣和動機。根據(jù)任務驅動式教學過程的3個要素(教師、學生、任務)和任務驅動的理論基礎提出任務驅動式教學模式。
該模式在任務驅動的主線下把教師的教學活動和學生的學習活動以任務為主線貫穿起來,通過任務來驅動教學活動,并在整個教學活動中體現(xiàn)了軟件工程的方法。通過教學內容的選擇、教學過程設計和教學評價體系的構建實現(xiàn)在軟件工程目標下離散數(shù)學課程的教學改革。
二、一個與數(shù)據(jù)結構課程相關的案例
(一)確定教學內容
偏序關系是一種非常重要的關系,首先教師要介紹偏序關系及全序的定義,介紹哈斯圖的畫法及意義,偏序集中的最大元、最小元、極大元、極小元等相關概念。
(二)設計教學案例
由偏序集可以引出數(shù)據(jù)結構課程中的拓撲排序。所以在偏序關系中設計一個教學案例:構建房屋所需各項任務為節(jié)點,任務之間的先后順序形成一個偏序關系:場地準備A(4,無),表示節(jié)點A是場地準備需要4天,無前繼任務;地基B(6,A),表示節(jié)點B是打地基需要6天,前繼任務是場地準備A;以此類推,排水設施c(3,A);骨架D(10,B);屋頂E(5,D);窗F(2,E);管道G(4,(c,E))表示管道需要4天,它的前^任務是c和E;電氣設施H(3,E);絕緣I(2,(G,H));幕墻J(6,F(xiàn));墻紙K(5,(I,J));清潔和油漆L(3,K);地板和裝修M(4,L);檢驗N(10,I),所有任務都由一組每次只能進行一項任務的人來完成。運用所學到的偏序集的相關知識,合理安排各項任務,使任務之間要遵照題目所給的順序完成。
(三)任務驅動教學模式
首先提出問題――在講完偏序關系的概念及相關定理后,在下課前給學生布置任務(即上面的案例),學生帶著這個任務去復習所學到的偏序集的相關知識,并思考該問題的解決方案;在下節(jié)課上課時,教師會和學生共同探討問題的求解過程:首先確定一個任務集合:s={A,B,c,D,E,F(xiàn),G,H,I,J,K,L,M,N},其中A..N是前面定義的各項任務。定義在該集合上的一個關系R:XRY X=Y或者Y必須在x完成后才能開始;然后引導學生確定這是一個什么關系,通過上節(jié)課介紹的偏序關系具有的性質:自反性、反對稱性和傳遞性,因為XRX為真,所以該關系具有自反性;XRY為真,并J~YRX也為真,則能推出X=Y,所以該關系具有反對稱性;若XRY為真,YRZ也為真,說明Y在x后完成,而z在Y后完成,則z在x后完成,或者它們相等,所以能推出XRZ為真,所以該關系具有傳遞性。由此可以引導學生得出該關系是偏序關系。既然是偏序關系,一定存在哈斯圖,可以讓學生根據(jù)上節(jié)課介紹的哈斯圖的相關知識,繪制該偏序關系的哈斯圖。首先要確定COV(s)=[(A,B),(A,c),(B,D),(D,E),(C,G),(E,G),(E,H),(H,I),(E,F(xiàn)),(F,J),(J,K),(I,K),(I,N),(K,L),(L,M)]。然后根據(jù)COV(s)繪制哈斯圖如圖1所示:
由上節(jié)課介紹可知,不是所有的偏序集都是全序,但是通過極小值的概念可以得出部分序,然后提出問題,如何由部分序能夠得出該任務的全序?讓學生進行討論,教師可以引導學生在原序基礎上通過增加一些條件,比如按任務時間的長短,或者按任務的字母順序等,得到該偏序集的全序,進而確定任務完成的先后順序――由此可以引出數(shù)據(jù)結構課程中的拓撲排序。假設兩個任務點之間無法比較“大小”,例如完成任務A后,任務B和任務c之間無法確定哪個先做,可以按照時間短的先做,就可以確定先完成c再完成B了??梢酝ㄟ^找極小值的方式依次輸出各個任務點,并且輸出該極小值點后,把該點從圖中刪除,與其相關的線段也刪除:首先該圖中極小值是A,輸出A后,把A刪除,相應的AB,AC線段也刪除,剩余的圖中出現(xiàn)兩個極小值,即B和c,再比較兩者哪個時間短,c是3天,B是6天,則先輸出c,然后把c及CG線段刪除,然后再尋找極小值,以此類推,如果兩個極小值的天數(shù)也一樣,則按照字母順序輸出,這樣就可以得到該偏序集的全序關系了,也就是所有的任務點之間都有“大小”一即先后順序了:A,c,B,D,E,F(xiàn),H,G,I,J,K,L,M,N。問題解決后,可以總結這就是數(shù)據(jù)結構中的拓撲排序。
使學生在任務驅動下,通過這樣的案例,體會到離散數(shù)學課程與軟件工程其它各門課程之間的關系,從而提高學習離散數(shù)學的興趣與積極性,并為之后的專業(yè)課程的學習奠定良好基礎,從而真正能夠發(fā)揮離散數(shù)學作為軟件工程專業(yè)基礎課程的作用。
三、教學效果
基于軟件工程培養(yǎng)目標的,任務驅動模式的離散數(shù)學課程的教學改革與實踐在2012級學生中首次實施。在具體實施過程中,我們總結出有以下優(yōu)勢:
(一)本著離散數(shù)學是軟件工程專業(yè)基礎課程,與其他專業(yè)課程的密切關系,合理設計和組織離散數(shù)學課程教學內容,挖掘離散數(shù)學與軟件工程各專業(yè)課程之間的切入點,研究有效融合離散數(shù)學教學內容與后續(xù)課程資源的恰當方式,使離散數(shù)學各個部分之間能夠自然過渡,使知識之間能夠自然承接。由與其他專業(yè)課程相關的案例中提出的問題,引出離散數(shù)學的相關理論,并用離散數(shù)學的知識去詮釋該問題,在分析解決問題過程中強化離散數(shù)學在其中的支撐作用,將理論知識融入到具體的應用問題中,具體反映在后續(xù)課程中取得了很好的反饋效果。
(二)在教學準備中設計一個或幾個典型案例,選取與軟件工程專業(yè)課程密切相關的案例,案例可以分為基本案例和綜合案例兩種,基本案例與單個知識點對應;綜合性案例則涵蓋課程中若干個知識點,涵蓋多個概念。這些案例要貫穿整個離散數(shù)學的教學內容中,要體現(xiàn)軟件的形成過程中離散數(shù)學在其中的支撐作用。案例不要過多,一個案例要在各部分內容中重復出現(xiàn),強化學生印象,同時可以使離散數(shù)學分散的教學內容有機地成為一個整體,使顯示分離的教學內容按照隱示關聯(lián)融合在一起。通過這種學生參與的案例的求解過程,極大地提高了學生的實踐能力,在之后的軟件建模和AcM大賽中,都取得了理想的成績。
(三)采取任務驅動模式,學生積極性明顯提高,參與感增強,興趣提高,課堂效果明顯比之前活躍,在期末考試中,雖然難度增強,卻取得了比以往更好的成績。
[關鍵詞] 軟件工程;知識領域;教學內容銜接
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 1005-4634(2013)06-0075-03
0 引言
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科,是信息領域發(fā)展最快的學科分支之一[1]。2001年經(jīng)教育部和國家計委批準,全國成立了35所示范性軟件學院,后增加到37所,截止到2012年12月30日,全國共有軟件工程專業(yè)點415個。這415所高校由于學校定位和專業(yè)特色不同,所修訂的軟件工程專業(yè)人才培養(yǎng)方案也有所差異。為使人才培養(yǎng)方案與社會發(fā)展和教學改革相適應,需要不斷對人才培養(yǎng)方案進行修訂。在修訂過程中,如何做好軟件工程專業(yè)課教學內容的銜接,一直是計劃制定者面臨的一項難題。吉林工程技術師范學院軟件工程專業(yè)經(jīng)過多年的教學研究和實踐,發(fā)現(xiàn)解決軟件工程專業(yè)課教學內容銜接問題的有效辦法就是要從解讀軟件工程教育知識體系入手,選擇合適的知識單元進行課程整合,并根據(jù)學校的人才培養(yǎng)定位,優(yōu)化課程體系的宏觀結構和課程之間的微觀順序。
1 解讀軟件工程教育知識體系,整合知識 單元
1.1 解讀SWEBOK和SEEK
我國軟件工程本科教學規(guī)范的制定主要研究借鑒了SWEBOK和SEEK [2]。由ACM和IEEE/CS聯(lián)合工作組組織制定的軟件工程知識體系SWEBOK為確立軟件工程的學科地位打下基礎,SWEBOK 將軟件工程劃分為10個領域:軟件需求、軟件設計、軟件構造、軟件測試、軟件維護、軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具和方法、軟件質量。計算教程軟件工程卷SE2004提出了軟件工程教育知識體系SEEK,為制定軟件工程本科教學計劃提供了指南。SEEK由知識領域、知識單元和知識點三個層次組成。SEEK包含10個知識領域和1個應用知識領域,共計48個基本知識單元、17個應用知識單元,建議最小核心學時數(shù)為497。10個知識領域主要由計算機(CS)學科知識領域和軟件工程(SE)學科知識領域組成,分別是:計算基礎(CMP)、數(shù)學和工程基礎(FND)、職業(yè)實踐(PRF)、軟件建模與分析(MAA)、軟件設計(DES)、軟件驗證與確認(VAV)、軟件演化(EVO)、軟件過程(PRO)、軟件質量(QUA)、軟件管理(MGT)。1個應用知識領域為特定系統(tǒng)與應用(SAS)。
1.2 整合知識單元
知識單元必須以課程的形式進行講授,所以必須將SEEK的10個知識領域的知識單元整合為課程名稱。具體整合過程為:整合CMP中的知識單元為軟件構造、形式化開發(fā)方法、C語言程序設計、算法與數(shù)據(jù)結構、計算機組成原理、操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫原理8門課程。整合FNT和EVO中的知識單元為離散數(shù)學與軟件工程導論2門課程。整合MAA和DES中的知識單元為軟件需求、系統(tǒng)分析與設計2門課程。整合QUA和VAV中的知識單元為軟件質量保證與測試1門課程。整合MGT中的知識單元為軟件項目管理1門課程。整合PRO中的知識單元為軟件過程管理1門課程。整合后共計15門專業(yè)課程,實踐知識領域個別院??筛鶕?jù)自身情況進行整合。
2 優(yōu)化課程銜接關系,制定應用型軟件工 程理論課教學計劃
2.1 調整課程結構
從高校軟件工程專業(yè)課程結構來看,主要有層次課程結構、核心課程結構、模塊課程結構和平臺+模塊課程結構四種[3]。大部分院校采用層次課程結構,即公共課程、基礎課程、專業(yè)基礎課程和專業(yè)課程。第一、二學年主要開設公共課和基礎課,第三、四學年開設專業(yè)基礎和專業(yè)課。此類課程結構使得課程銜接縱向邏輯關系較強,符合循序漸進的認知規(guī)律,有利于大多數(shù)學生以較少的時間比較系統(tǒng)地掌握專業(yè)知識。但由于層次課程結構是多學科、多門類課程的混合體,計劃制定人不太好把握課程的直線式邏輯順序,因此不能保證教學內容銜接的連續(xù)性、順序性和整合性。“平臺+模塊”課程結構是近些年出現(xiàn)的一種新的高等學校課程結構,由基礎課程平臺和一定類型的課程模塊構成。根據(jù)軟件工程專業(yè)的特點,將課程結構調整為由公共基礎課平臺、學科基礎課平臺、專業(yè)基礎課平臺3個“平臺”及計算機科學模塊、軟件工程模塊、專業(yè)方向模塊3個模塊構成?!捌脚_+模塊”課程結構保證了知識結構內在的相互聯(lián)系和相互獨立,此課程結構中的“平臺”是全?;蛲粚W科各專業(yè)學生的必修課程,體現(xiàn)了人才培養(yǎng)的基本規(guī)格和全面發(fā)展的共性要求,體現(xiàn)了“寬口徑”、“厚基礎”的現(xiàn)代高等教育人才培養(yǎng)特點。此課程結構中的“模塊”解決了計算機科學課程群與軟件工程課程群開課順序的爭議性問題,專業(yè)方向模塊根據(jù)社會人才需求、專業(yè)發(fā)展的趨勢和學生的個性學習需求而設置。軟件工程學科發(fā)展很快,專業(yè)方向模塊可以根據(jù)需要進行調整。
2.2 調整課程順序
根據(jù)整合的15門專業(yè)課程,按模塊進行劃分,可分為計算機科學模塊課程和軟件工程模塊課程。計算機科學模塊課程主要有離散數(shù)學、C語言程序設計、算法與數(shù)據(jù)結構、計算機組成原理、操作系統(tǒng)、計算機網(wǎng)絡、數(shù)據(jù)庫原理7門課程;軟件工程模塊課程主要有軟件工程導論、軟件需求、系統(tǒng)分析與設計、軟件構造、形式化開發(fā)方法、軟件質量保證與測試、軟件項目管理、軟件過程管理8門課程。計算機科學模塊的專業(yè)課程開課順序在各高校中大同小異,基本上是先開設C語言程序設計和離散數(shù)學,然后開設計算機組成原理、算法與數(shù)據(jù)結構、操作系統(tǒng),最后開設計算機網(wǎng)絡和數(shù)據(jù)庫原理。調研各高校軟件工程專業(yè)人才培養(yǎng)方案,發(fā)現(xiàn)軟件工程模塊專業(yè)課程的開設順序不是很一致。結合先進的基于工作過程的課程設置方法[4],參照IEEE/EIA 12207.0-1996軟件生命周期工作過程標準,調整了軟件工程模塊8門專業(yè)課程的開設順序,其順序依次為軟件工程導論、軟件需求、系統(tǒng)分析與設計、軟件構造、形式化開法方法、軟件質量保證與測試、軟件過程管理、軟件項目管理。
2.3 針對應用型本科院校設置專業(yè)方向模塊課
吉林工程技術師范學院作為應用型本科院校,定位為培養(yǎng)應用型人才,因此所制定的專業(yè)方向模塊課程要與人才市場應用需求相一致。目前在我國軟件應用領域,軟件開發(fā)人員需求缺口很大,因此將吉林工程技術師范學院軟件工程專業(yè)人才培養(yǎng)方向定位為軟件開發(fā)工程師。目前,在軟件開發(fā)領域存在兩大對壘:微軟的NET和甲骨文公司的JAVA,因此將專業(yè)方向劃分為NET方向和JAVA方向,并依據(jù)技術路線設置相應的專業(yè)方向課程。
2.4 研究成果
綜上所述,所制定的應用型本科軟件工程專業(yè)人才培養(yǎng)方案中的理論課程體系分學期執(zhí)行的教學計劃如表1所示。
3 成果評價
選取吉林工程技術師范學院軟件工程專業(yè)理論課程體系為評價對象,利用文獻[5]所建立的課程體系評價模型和評標指標,邀請四位專家在不區(qū)分專家權系數(shù)的前提下進行評價,評價情況如表2所示。
對評語集賦分值(優(yōu):95,良:85,中:70,及格:60),最終加權得分為92.25分,處于優(yōu)秀的級別。本次評價只針對教學計劃中的理論課程體系(即體現(xiàn)教學內容銜接效果的體系)進行評價,沒有考慮實踐環(huán)節(jié)、師資及實施情況等。
4 結束語
通過多年教學研究實踐,總結出應用型軟件工程專業(yè)理論課程體系制定的流程:(1)將SEEK的10個知識領域中的知識單元整合為15門專業(yè)課程;(2)采取“平臺+模塊”課程結構劃分課程宏觀結構;(3)微調15門課程的開課順序,按1~7學期開設;(4)針對應用型人才培養(yǎng)定位,劃分專業(yè)方向模塊并設置課程。本次研究僅限于理論課程體系教學設計。切實加強軟件工程實驗課程和實踐環(huán)節(jié)的創(chuàng)新與改革將是下一步重點研究的課題。
參考文獻
[1]宋雨,趙文清.軟件工程[M].北京:中國電力出版社,2007:2-5.
[2]齊治昌.軟件工程學科的建立與軟件工程本科教學[J].中國大學教育,2006,(2):28-30.
[3]王彬斐.我國高等學校課程結構優(yōu)化改革研究[D].蘭州:蘭州大學,2007.
0 引言
教育部制定的“卓越工程師教育培養(yǎng)計劃”(簡稱“卓越計劃”),是深入貫徹落實《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》和《國家中長期人才發(fā)展規(guī)劃綱要(2010-2020年)》的重大改革項目,也是促進我國從工程教育大國邁向工程教育強國的重大舉措。該計劃以“培養(yǎng)造就具有較強創(chuàng)新能力、實踐能力、國際化的高素質工程技術人才”為目標,為國家走有中國特色的新型工業(yè)化發(fā)展道路,建設創(chuàng)新型國家和人才強國戰(zhàn)略服務。
軟件工程課程是軟件工程專業(yè)的核心課,是一門研究應用計算機科學、數(shù)學、邏輯學、管理科學等原理,構建和維護有效、實用和高質量軟件的學科,旨在培養(yǎng)學生分析與設計軟件系統(tǒng)的能力,熟練使用各類流行軟件技術解決實際問題的能力和控制軟件質量的能力。因此,在教學過程中,不僅要嚴格落實實踐教學實施方案,還要構建能夠滿足實踐能力、創(chuàng)新能力培養(yǎng)要求的軟件工程知識體系,更重要的是在教學環(huán)節(jié)中如何貫徹落實“培養(yǎng)學生實踐能力與創(chuàng)新能力”這一培養(yǎng)目標。
1 能力導向培養(yǎng)的重要性
隨著知識經(jīng)濟及信息產(chǎn)業(yè)的快速發(fā)展,信息產(chǎn)業(yè)已經(jīng)成為推動國家經(jīng)濟發(fā)展的主導產(chǎn)業(yè),其中的軟件產(chǎn)業(yè)年均增長率達38%,對信息產(chǎn)業(yè)和國民經(jīng)濟的發(fā)展起著重要的支撐作用。同時,隨著經(jīng)濟全球化的進一步推進,我國軟件業(yè)面臨更加廣闊的國際市場和前所未有的發(fā)展機會。
但是,我國社科院的中國信息化形勢分析研究報告顯示中國還不是軟件大國,制約中國軟件產(chǎn)業(yè)發(fā)展的首要問題是人才問題。目前,在我國從事軟件和信息服務業(yè)的人員大約400萬,隨著云計算、物聯(lián)網(wǎng)等新興產(chǎn)業(yè)的發(fā)展,軟件人才在數(shù)量和結構上仍存在重大缺口。據(jù)信息產(chǎn)業(yè)部預測,軟件人才需求的增長率將保持在每年l0%以上,人才的結構比例呈現(xiàn)為“橄欖型”,即“高端人才”(系統(tǒng)分析師、項目經(jīng)理等)和“低端人才”(軟件編程人員)嚴重短缺,具有較強綜合能力、應用能力的軟件工程師嚴重不足。
根據(jù)中國軟件產(chǎn)業(yè)人才培養(yǎng)戰(zhàn)略研討會公布的統(tǒng)計數(shù)據(jù)顯示:我國軟件開發(fā)人員缺口在50-60萬左右,未來5-10年中將缺少更大數(shù)量的軟件開發(fā)人才。與此同時,計算機、軟件工程專業(yè)每年有大批畢業(yè)生就業(yè)難。核心問題在于,高校培養(yǎng)的計算機軟件人才不能適應社會需要,不能滿足行業(yè)需求,人才與崗位需求不對接。國家“卓越計劃”也是針對上述問題提出,旨在鼓勵高校通過改革人才培養(yǎng)模式,強化校企合作,培養(yǎng)高素質工程師后備人才。
2 課程教學中存在的問題
2.1 實踐環(huán)節(jié)比較薄弱,建設難度大
實踐教學是課堂教學的補充、延伸和深化,是課程教學的重要組成部分,與理論教學相互依托、相互滲透、相互補充,為學生更好地掌握課堂知識、提高實踐技能、培養(yǎng)創(chuàng)新能力提供有效的學習平臺。
第三方機構對畢業(yè)生就業(yè)情況數(shù)據(jù)分析顯示,學生工作后發(fā)現(xiàn)在校期間學習的軟件工程課程是對職業(yè)發(fā)展影響最大的專業(yè)課程之一,但大多數(shù)學生在校期間對此卻認識不足。其實,問題的關鍵就是在教師的教學和學生的學習過程中,理論和實踐脫節(jié)。
在軟件工程專業(yè)開設之前,軟件工程課程是計算機科學與技術專業(yè)的一門基礎課,教師在授課過程中大多偏重于基礎理論介紹,主要介紹有關軟件開發(fā)的基本原理,不開設課內實驗課程,強化軟件工程實踐能力的其他輔助課程也很少,實踐教學建設起步晚,發(fā)展比較薄弱。在軟件工程專業(yè)開設之后,為了提高學生創(chuàng)新能力和工程實踐能力,我們在專業(yè)課程設置中已經(jīng)強化了實踐教學環(huán)節(jié),有了一套比較完整的實踐教學體系。但在具體實施時,由于任課教師沒有在企業(yè)任職經(jīng)歷,缺乏工程實踐經(jīng)驗,導致實踐教學變成為了實驗而實驗的教學環(huán)節(jié)。
雖然學校目前在企業(yè)實訓方面已經(jīng)取得,一些成果,但在具體實施過程中卻遭遇校企合作難度大、合作水平較低、合作機制不靈活等情況,大部分校企合作僅局限于“學生短期實習”等淺層次水平,在培養(yǎng)應用型、創(chuàng)新型人才方面作用有限。
2.2 課程群意識薄弱,課程建設孤立
現(xiàn)代軟件工程實踐的一個重要特點是多學科乃至國際化的團隊協(xié)作,有效的團隊協(xié)作已經(jīng)成為現(xiàn)代軟件工程的重要標志。軟件工程課程體系分為兩大部分:理論教學體系和實踐教學體系。前者包括課程設置中軟件工程概論、軟件設計等側重基礎理論的課程,后者包括軟件測試、軟件開發(fā)案例分析等側重工程實踐的課程。理淪指導實踐,實踐驗證理論,兩者相輔相成,構成一個有機的課程微觀生態(tài)環(huán)境——課程群。
軟件工程課程群中的課程從理論課程之間的知識模塊劃分和銜接到配套實踐課程驗證理論,每一部分相輔相成,互為補充。但在實際課程建設時,任課教師往往只關注于自己負責的課程建設,缺乏課程群意識,每門課程各自的實踐課程只從與本課程相關的方面進行設計,學生對教學內容的理解具有局限性和片面性,不能建立起完整的知識體系概念,導致課程間交叉內容重復過多、基礎內容薄弱、課程間銜接不力等問題。
3 課程建設方案
3.1 建立行之有效的課程建設管理機制
針對課程建設過程中容易出現(xiàn)孤立、重復等問題,我們在課程建設過程中加強了宏觀調控
(1)依據(jù)課程間的關聯(lián)度,劃分課程群。按照培養(yǎng)方案中的課程設置以及教學內容知識點之間的關聯(lián)度,將課程劃分為若干課程群。根據(jù)課程知識模塊,課程群一般包括兩門以上課程。例如軟件工程課程群包括軟件工程概論、軟件設計、軟件測試、軟件開發(fā)案例分析等;Java課程群包括Java編程基礎、Java Web應用程序開發(fā)、Java企業(yè)級應用開發(fā)。
(2)對應課程群,成立課程組。每一個課程組由一名教學經(jīng)驗豐富的教師作為負責人,課程組負責人承擔課程群的建設、課程組教師教學活動的組織、各門課程教學資料(教學大綱、教材選報、試卷材料等)的審核、組內各門課程的授課任務分配等工作。
(3)執(zhí)行“課程一課程組一系”三級負責機制,實施“課程一課程群一專業(yè)”分層次建設機制。在已建立課程組和課程負責人的基礎上,強化責任機制,任課教師負責課程建設,課程組負責課程群建設,系部負責專業(yè)建設。
課程組和課程負責人機制的實施,一方面使課程能夠持續(xù)深入建設,另一方面使“課程一課程群一專業(yè)”成為一個有機的建設整體,避免了重復建設、孤立建設等問題,最終能夠有效地通過課程建設促進專業(yè)建設。
3.2 以行業(yè)需求為導向,合理確定知識結構
知識結構是能力培養(yǎng)的基礎,以軟件產(chǎn)業(yè)對人才規(guī)格的要求為導向,在滿足能力培養(yǎng)需要的前提下,學校以“必需、夠用”為度,給學生留有一定的發(fā)展空間,改革創(chuàng)新人才培養(yǎng)模式,進一步優(yōu)化軟件工程的課程體系結構,根據(jù)課程群中各課程的相關性、課程知識的互補性進一步整合課程,重新拼裝知識模塊,構建整個課程體系,避免課程分散、泛而雜等現(xiàn)象,從而達到重點突出、效果顯著的目的。
(1)優(yōu)化課程內容,修訂教學大綱。教學大綱是教學的基本依據(jù),包括課程的教學目的和要求,教學內容提要及教學深度、廣度、學時分配、教學進度、實習、實驗、作業(yè)安排等。軟件工程課程組以提升學生能力、提高學生素質為培養(yǎng)目標,結合學生特點,規(guī)劃軟件工程課程群的設置,按知識模塊整合課程,修訂教學大綱,使各門課程成為一個有機整體;加強課程間聯(lián)系,實現(xiàn)從理論內容到實踐教學的無縫銜接,按培養(yǎng)目標強化課程構建,深化課程體系建設。
(2)建立健全課程教學文件,規(guī)范教學秩序。課程教學文件包括:有關本課程的歷史和現(xiàn)狀及發(fā)展趨勢的資料、教學大綱、教材、優(yōu)秀教案、電子課件、試題庫、試卷分析、教學檢查情況、教學總結及改革計劃等。通過健全教學文件,分類保管,發(fā)揮教學文件在教學研究和改革中的作用。
3.3 以工程實踐能力培養(yǎng)為目標,構建多層次實踐教學體系
無論是學校應用型人才培養(yǎng)的定位,還是卓越工程師計劃,無一不在強調加強學生工程實踐能力培養(yǎng),因此構建行之有效的實踐教學體系是課程建設的重中之重。
(l)構建分階段、多層次的實踐教學體系,實施多元化實踐教學模式和教學方法改革。通過構建“實驗一案例一項目”多層次的實踐教學體系,學校實施“課堂實踐教學一課程實訓一學期實訓”的多元化全方位訓練式實踐教學模式;加大實踐教學學時,強調案例式、項目驅動式教學方法,案例與項目貫穿課程始終,有效銜接其他課程。
(2)引入校企合作,實現(xiàn)畢業(yè)生的高層次就業(yè)。對于二本院校,校企合作的推行難度要大很多,因此,合作方法要靈活多樣。學校要加大與知名企業(yè)的聯(lián)合力度,創(chuàng)造合作機會,例如和惠普合作的項目中,動員學生走出去,到惠普的基地進行長期實訓。同時,聘請與學校合作的短訓公司高級工程人才參與教學過程,指導學生實踐,將人才培養(yǎng)與人才需求真正結合起來,把握高層次用人單位的人才需求與發(fā)展情況,提高學生就業(yè)綜合競爭力,實現(xiàn)畢業(yè)生的高層次高質量就業(yè)。
3.4 實施“全方位訓練式”教學模式
結合軟件工程專業(yè)的特點,以卓越工程師的實施為契機,我們在教學中引入“全方位訓練式”的教學模式,通過實際案例、項目的協(xié)作,培養(yǎng)學生的溝通能力和團隊協(xié)作精神。
(1)加大實踐教學學時,強化實踐。首先保證相應課程的課內實驗學時,以便強化學生對理論知識的理解;其次為重點課程增加課程實訓,使學生對整個課程有一個綜合的理解和把握;最后展開學期實訓,使學生對課程群中的多門課程有一個全面的認識。
(2)利用“課堂實踐教學一課程實訓一學期實訓一崗前實訓”,全方位強化學生的專業(yè)實踐能力。課堂實踐教學以知識點的實驗為主,使學生在實踐中加深理解,要求學生獨立完成。課程實訓對一門課程的所有知識進行總結,要求學生小組配合,共同完成。學期實訓一般安排在學期期末,跟學校小學期結合,對課程群相關課程進行總結和驗收,要求學生團隊協(xié)作。全方位訓練的模式旨在為學生將來從事課題研究、工程項目研發(fā)打下良好的基礎。
3.5 加大基礎教學資源建設,提供學生自學平臺
高等教育不應該僅僅是知識的單向傳授,更應該是學生學習上的引導。豐富的教學資源是學生進行自主學習的基本條件,但資源建設不是簡單的素材堆砌,而是通過建立界面友好宜用的課程網(wǎng)站引導學生充分利用時間進行自主學習,激發(fā)學生的學習興趣。
學校還應建設互動式教學平臺,打破教學時空限制,構建以學生為中心的自主學習環(huán)境;建立課程教學資源網(wǎng),開發(fā)課程網(wǎng)上教學平臺,為學生提供電子教案、多媒體課件、案例分析、習題作業(yè)、實驗指導、相關學習網(wǎng)站鏈接等豐富的網(wǎng)上教學資源;同時提供在線測試、網(wǎng)上答疑等,擴充課堂教學區(qū)域,使學生可以在任何時候、任何地點進行互動學習。
4 結語
教育部“卓越工程師教育培養(yǎng)計劃”的實施,對高等院校軟件工程專業(yè)人才培養(yǎng)和學生能力培養(yǎng)提出了更高的要求。我們依據(jù)市場以及信息產(chǎn)業(yè)對人才規(guī)格的需求,結合本專業(yè)的辦學定位和辦學特色,提出了能力導向型軟件工程課程群建設方案。該方案現(xiàn)已在軟件工程專業(yè)本科生培養(yǎng)中試運行。接下來,我們將根據(jù)該方案的執(zhí)行情況進行評估,以便進行合理改進,更好地滿足社會對軟件工程人才的需求,培養(yǎng)出理論知識豐富、工程實踐能力強的高素質軟件工程人才。