前言:想要寫出一篇引人入勝的文章?我們特意為您整理了項目式軟件工程課程教學(xué)模式范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對軟件工程課程教學(xué)中存在的難題,提出一種基于課程群理念、以項目為載體的課程教學(xué)新模式。從課程群理念、軟件項目設(shè)計、課程考評模式等方面闡述該教學(xué)模式的特點,并說明其實施過程。以湖南師范大學(xué)2016級軟件工程專業(yè)為例,介紹該模式的實踐過程,并說明課程教學(xué)效果。
關(guān)鍵詞:軟件工程;課程群;軟件項目;教學(xué)模式
1軟件工程課程教學(xué)問題及分析
軟件工程課程作為軟件人才培養(yǎng)體系的核心課程之一,一直是計算機教育教學(xué)所關(guān)注的焦點領(lǐng)域。文獻[8]從人才培養(yǎng)目標(biāo)定位、工程教育理念、教師隊伍實踐經(jīng)驗、校企育人等方面分析了軟件工程人才培養(yǎng)存在的問題;文獻[4]在軟件工程課程中提出了項目驅(qū)動教學(xué)法;文獻[9]提出了軟件工程教學(xué)中“五個一”工程課程培養(yǎng)體系,以精化軟件工程課程教學(xué)內(nèi)容;文獻[10]提出了基于高質(zhì)量開源軟件閱讀以培養(yǎng)軟件工程能力的思路。在整個軟件工程學(xué)科的背景下,分析軟件工程課程教學(xué)中存在的問題及其原因,大致可以歸納為如下幾個方面。1)在學(xué)科層面,亟待形成獨立的軟件工程學(xué)科理念。雖然自2011年軟件工程已經(jīng)被設(shè)置為與計算機科學(xué)與技術(shù)平行的一級學(xué)科,具有了完整的本碩博培養(yǎng)體系,但是由于軟件工程脫胎于計算機,使得“軟件屬于計算機一部分”的觀點混淆了原本嚴謹?shù)膶W(xué)科劃分;研究內(nèi)容間的緊密聯(lián)系也使得計算機與軟件難以區(qū)分。一般而言,“計算機類”包括計算機硬件和計算機軟件,這是常見的劃分,與學(xué)科無關(guān),相互借鑒無關(guān)緊要,但實際在學(xué)科層面二者的區(qū)分相對明晰,計算機科學(xué)與技術(shù)一級學(xué)科包括計算機系統(tǒng)結(jié)構(gòu)、計算機軟件與理論、計算機應(yīng)用技術(shù)和信息安全這4個二級學(xué)科,而軟件工程包括軟件工程理論與方法、軟件工程技術(shù)、軟件服務(wù)工程和領(lǐng)域軟件工程這4個二級學(xué)科。簡而言之,在國家的頂層設(shè)計中,軟件工程學(xué)科具備獨立發(fā)展的基礎(chǔ)和條件,因此,領(lǐng)域內(nèi)教學(xué)科研人員必須具有獨立發(fā)展軟件工程學(xué)科的理念和立場,這是軟件工程學(xué)科進一步發(fā)展的基礎(chǔ)所在。依附于計算機學(xué)科發(fā)展軟件工程的思路,無疑將壓縮軟件工程的發(fā)展空間,最終也難以發(fā)展出獨立的軟件工程學(xué)科,也難以與計算機學(xué)科形成合力發(fā)展壯大信息學(xué)科和產(chǎn)業(yè)。2)在專業(yè)層面,亟須理清軟件工程的本質(zhì)屬性。出于專業(yè)排名、院內(nèi)資源分配等種種原因,相當(dāng)一部分業(yè)內(nèi)人士將軟件工程與計算機科學(xué)與技術(shù)相互混淆介紹,無意之中將軟件工程與計算機軟件與理論相互等同。無疑這種長期以來的專業(yè)處理和平衡方式,難以理清軟件工程的本質(zhì)屬性,也難以深刻理解軟件工程的各個方面,從而設(shè)計有利于軟件工程專業(yè)的發(fā)展模式。在新的環(huán)境下,軟件和軟件工程的深度和廣度已經(jīng)更勝往昔,在人機物融合環(huán)境下、在智慧環(huán)境下需要進一步明晰其本質(zhì)屬性。3)在教學(xué)模式層面,缺乏適合軟件工程的完整教學(xué)模式。軟件工程學(xué)科以培養(yǎng)解決復(fù)雜軟件系統(tǒng)的能力和結(jié)合領(lǐng)域的工程應(yīng)用能力為主,其教學(xué)模式要求以此為核心目標(biāo)。這兩方面能力的培養(yǎng),需要大型軟件工程實踐以及對不同領(lǐng)域知識的深度認知,而這在目前絕大部分高校教學(xué)中是難以達到的要求,因此,如何構(gòu)建適合軟件工程核心能力培養(yǎng)的教學(xué)模式是目前軟件工程專業(yè)教學(xué)亟須解決的核心問題之一。4)在師資層面,極度缺乏高質(zhì)量的軟件工程教學(xué)科研隊伍。軟件工程專業(yè)在我國的發(fā)展時間只有短短的20年,其科研和教學(xué)水準(zhǔn)與國外同行相比仍然有相當(dāng)大的距離;同時,軟件工程與實踐結(jié)合緊密的特點,對師資提出了更高要求,特別是目前高校以SCI類科研論文為主的考評方式,對軟件工程的實踐師資隊伍建設(shè)提出了挑戰(zhàn)。如何構(gòu)建滿足高質(zhì)量軟件工程人才培養(yǎng)要求的師資隊伍,是軟件工程發(fā)展中最為關(guān)鍵的隱憂之一。5)在教學(xué)資源層面,缺乏體系完整的教學(xué)支撐資源。軟件開發(fā)需要各類軟件工具和軟件資源(文檔、組件等)的支撐,以提高軟件開發(fā)效率和質(zhì)量。教學(xué)過程同樣如此,為每位學(xué)生建立個性化教學(xué)模式由于成本高昂而不可行,高校規(guī)模的人才培養(yǎng)模式在人才培養(yǎng)成本和人才培養(yǎng)質(zhì)量之間進行平衡。缺乏完整的軟件工程人才教學(xué)資源支撐體系,是難以高效率培養(yǎng)高質(zhì)量軟件工程人才的關(guān)鍵制約因素。借助MOOC項目和開源軟件,有可能逐步構(gòu)建滿足教學(xué)要求的資源支撐平臺。文獻[7]借助開源社區(qū)資源探索彌補師資團隊的掣肘;文獻[11]借助Trustie教學(xué)平臺支持群體化實踐教學(xué)支持,實現(xiàn)對教學(xué)過程的管理和評估,這在之前是難以實現(xiàn)的;文獻[12]探討了基于MOOC構(gòu)建混合式課內(nèi)教學(xué)模式及翻轉(zhuǎn)課堂團隊學(xué)習(xí)模式,以提高教學(xué)效率和質(zhì)量。
2基于課程群的項目式軟件工程課程教學(xué)模式
2.1面向軟件工程專業(yè)的項目式教學(xué)理念
(1)在教學(xué)內(nèi)容上,基于課程群重新分配授課內(nèi)容。所謂課程群,就是介于單門課程和專業(yè)課程體系之間,在多門關(guān)聯(lián)課程之間相互協(xié)調(diào)統(tǒng)籌安排,以實現(xiàn)教學(xué)資源、教學(xué)效果、教學(xué)內(nèi)容優(yōu)化配置的一種精細化課程組織方式。課程群構(gòu)成一般是由同一專業(yè)內(nèi)多門(不少于3門)內(nèi)容之間相互耦合的課程組成。文獻[13]探討了課程群理念在軟件工程專業(yè)的完整課程體系中的應(yīng)用,提出了“三段兩層”的課程群結(jié)構(gòu),尚未涉及具體某一門課程的內(nèi)容如何基于課程群進行分配。在提出的教學(xué)模式中,將課程群理念應(yīng)用于同一學(xué)期、同一專業(yè)開設(shè)的課程中,將目標(biāo)課程內(nèi)容進行分解并分配到關(guān)聯(lián)課程中,將學(xué)時集中到解決重點教學(xué)內(nèi)容中,以提高整體教學(xué)效率和效果。(2)在教學(xué)形式上,以軟件項目為載體培養(yǎng)軟件工程能力。在軟件工程專業(yè)教學(xué)中,通過項目培養(yǎng)學(xué)生實踐能力的教學(xué)方式得到了較為廣泛的應(yīng)用。文獻[4]中選擇圖書館管理系統(tǒng)作為貫穿整門課程的軟件項目,這種以特定項目驅(qū)動的軟件工程教學(xué)設(shè)計是項目式教學(xué)在具體課程中的應(yīng)用實現(xiàn)。在提出的教學(xué)模式中,項目式課程教學(xué)在教學(xué)內(nèi)容上不僅要貫穿軟件工程的教學(xué)內(nèi)容,還要成為銜接課程群內(nèi)多門課程的核心;同時,不僅要鍛煉軟件能力,還要培養(yǎng)溝通、表達等“軟技能”。(3)在教學(xué)考核上,建立以過程考核為核心的評估方式。教學(xué)是一個復(fù)雜的交互過程,單純以考試為考核手段最終只能導(dǎo)向“紙面能力”,因此,提出的教學(xué)模式應(yīng)建立以過程考核為核心的考評方式??己瞬粌H包括個人考核,還包括團隊考核;以實踐考核為主,以考試考核為輔;以分階段考核為主,以最終考核為輔。通過考核的變化,學(xué)生和教師將考核焦點遷移到能力培養(yǎng)中,在分階段完成的任務(wù)中全面、合理、準(zhǔn)確地評估學(xué)生的軟件工程能力。(4)在教學(xué)工具上,大規(guī)模、有目的地引入互聯(lián)網(wǎng)開源工具。教學(xué)自身是一項高投入的工作,提出的教學(xué)模式更需要教學(xué)資源投入。此外,軟件工程自身需要大量軟件工具的支持,盡早讓學(xué)生習(xí)慣和適應(yīng)利用工具提高效率也是合格軟件從業(yè)者的一項基本技能。提出的教學(xué)模式可以有目的、大規(guī)模引入主流的互聯(lián)網(wǎng)開源工具,以提高教學(xué)效率和質(zhì)量。所引入的工具可以根據(jù)教學(xué)內(nèi)容、教學(xué)目的有選擇地使用。文獻[2]給出了清華大學(xué)在軟件工程專業(yè)教學(xué)中集成的從開發(fā)到運行監(jiān)控過程全覆蓋的DevOps工具鏈。
2.2項目式教學(xué)理念在軟件工程課程教學(xué)中的應(yīng)用
軟件工程不僅是軟件工程專業(yè)的核心課程,還是專業(yè)課程體系中對于工程理念體現(xiàn)最為充分的一門課程。種種制約因素的存在,使得相當(dāng)部分高校在實施軟件工程課程教學(xué)時,都是以理論講授為主,或者附帶部分實驗學(xué)時講授部分工具使用,很少涉及工程能力培養(yǎng)或者團隊協(xié)作能力培養(yǎng)。為此,本文將提出的教學(xué)模式首先應(yīng)用于軟件工程的課程教學(xué)中,為軟件工程專業(yè)的相關(guān)課程教學(xué)提供參考。
2.2.1基于課程群理念重新分配軟件工程課程的教學(xué)內(nèi)容
基于課程群理論,將同一個學(xué)期內(nèi)的軟件工程、系統(tǒng)分析與設(shè)計、軟件工程綜合實踐(二)3門課程打通形成小課程群,并且根據(jù)不同課程的特點,將軟件工程的教學(xué)內(nèi)容有機整合到另外兩門課程中。將教師、課堂學(xué)時等教學(xué)資源優(yōu)化配置,重組教學(xué)內(nèi)容,借助相關(guān)課程的教學(xué)資源達到事半功倍的效果。這種方式對教學(xué)內(nèi)容涵蓋較廣的課程尤為重要,軟件工程課程涵蓋幾乎所有軟件工程專業(yè)課程中的內(nèi)容,將所有涉及內(nèi)容講授一遍,既沒有必要,又不會有明顯效果,將重點集中在項目實踐管理、領(lǐng)域知識、可行性分析、需求分析等方面反而能夠凸顯教學(xué)重點;課程涉及的其他內(nèi)容,通過協(xié)調(diào)相關(guān)課程只需要概述即可,相關(guān)課程在主講該門課程時有所側(cè)重就完全可以達到效果。此外,在具體落地課程群時,可以根據(jù)教學(xué)實際設(shè)計跨度不同的課程群,如學(xué)期課程群、學(xué)年課程群、專業(yè)課程群等;課程內(nèi)容重組需要根據(jù)培養(yǎng)計劃個性化設(shè)置,如如果培養(yǎng)計劃中有需求工程課程,軟件工程課程教學(xué)就可以減少需求分析的講解。根據(jù)不同學(xué)校的實際調(diào)整相關(guān)措施,可以達到提高教學(xué)效率和質(zhì)量的目的。
2.2.2設(shè)計多種形態(tài)的軟件項目適應(yīng)不同水平學(xué)生提升軟件工程能力
軟件項目是該教學(xué)模式的核心環(huán)節(jié)之一,在應(yīng)用于具體課程教學(xué)時,必須解決兩個問題:①項目來源問題;②如何提升軟件工程能力。針對項目來源,建立多種形態(tài)的軟件項目以適應(yīng)不同水平和需求的學(xué)生。本次教學(xué)所完成的軟件項目見表2,大致可以分為4類:①傳統(tǒng)軟件系統(tǒng)開發(fā)項目;②具有實際需求的軟件項目;③結(jié)合算法研究類軟件項目;④基于開源代碼標(biāo)注與提升的軟件項目。學(xué)生首先組成項目組,然后再確定項目,通過立項答辯的項目方可被正式啟動;通過這種方式限定項目的難度、規(guī)模等,保證項目在預(yù)定的時間和團隊能力范圍內(nèi)能夠完成。針對軟件工程能力提升問題,從兩個方面著手。首先,學(xué)生組成項目團隊共同完成具有一定難度的項目,團隊分工明確、相互協(xié)作,在項目完成期間鍛煉學(xué)生的溝通能力、表達能力、協(xié)調(diào)能力等軟技能。這類軟技能是在理論講述中無法鍛煉和涉及的。其次,基礎(chǔ)不同的團隊選擇不同軟件項目以最大化提升個人軟件工程能力?;A(chǔ)相對落后的學(xué)生可以選擇傳統(tǒng)軟件系統(tǒng)開發(fā)類項目,這類項目的需求、軟件結(jié)構(gòu)等相對清晰,重點在于提升編碼、設(shè)計等軟件能力;創(chuàng)新意識、個人能力較強的學(xué)生可以選擇具有實際項目需求的項目,或算法研究類項目等具有較大難度和不確定性的項目,以鍛煉軟件工程綜合素養(yǎng)。
2.2.3建立軟件過程考核為主的課程評估方式
提出的教學(xué)模式更注重過程質(zhì)量的考核,而期末考試成績作為輔助。具體考核包括如下幾個方面。(1)本次評估中軟件過程質(zhì)量占比50%,后續(xù)將增加到70%;期末考試成績占比將逐步降低到不超過30%,期末考試以水平考核為主。同時,期末考試中應(yīng)用部分考核與所選的項目有關(guān),使得實際軟件過程內(nèi)容考核占比接近60%。(2)軟件過程考核評分由團隊分和個人分綜合獲得。團隊分是所有團隊成員均可以共享的,個人分是根據(jù)每個人的角色分工和工作質(zhì)量分別確定,二者占比五五分。(3)采用階段考核分階段評估項目質(zhì)量。3門課程主講教師組成評審團隊,將項目分為需求分析階段、設(shè)計階段和實現(xiàn)階段,每個階段均進行公開答辯和演示,評審團隊進行綜合評分,其中軟件工程、軟件設(shè)計與分析和軟件工程綜合實踐課程的主講教師分別擔(dān)任3個階段的主評教師。
2.2.4集合教學(xué)過程支撐工具和軟件工程工具的教學(xué)自動化支撐工具環(huán)境
各類軟件工具的出現(xiàn)支撐著軟件生產(chǎn)效率和軟件質(zhì)量的不斷提高。在軟件工程專業(yè)教學(xué)中,充分利用各類工具不僅是軟件行業(yè)的客觀現(xiàn)實,還是教學(xué)過程的主觀需要。首先,軟件工程課程教學(xué)需要與行業(yè)發(fā)展相一致,因此在軟件工程各個階段需要熟悉主流軟件工具,否則學(xué)生一旦畢業(yè)就會有“學(xué)校內(nèi)所學(xué)根本不是企業(yè)要求”這種錯覺;同時,軟件工具的確支撐項目的順利進行。本課程使用Git作為代碼管理和團隊開發(fā)協(xié)調(diào)工具,在需求階段、設(shè)計階段、編碼階段、測試階段都分別使用相關(guān)軟件工具以提高開發(fā)效率和產(chǎn)品質(zhì)量。其次,在教學(xué)過程中,采用Trustie-Educoder平臺(www.educoder.net)作為課程教學(xué)管理工具,可以極大節(jié)省教師精力。平臺具有項目管理、任務(wù)、Git集成等功能,使得有限的教師團隊能夠滿足1:20的師生比現(xiàn)狀。
3基于課程群的項目式軟件工程課程教學(xué)模式效果分析
在湖南師范大學(xué)2016級軟件工程專業(yè)本科生(部分2018級軟件工程專業(yè)研究生參與項目,這里不作統(tǒng)計)中實施了本教學(xué)模式,學(xué)生人數(shù)共計60人。學(xué)生自由組成項目團隊,每隊人數(shù)在3~5人之間,每隊必須選出一名且只有一名項目管理員。3門課程的主講教師組成教學(xué)團隊,每位老師指導(dǎo)4~5組,并全程參與。具體安排如下:①選題方面,根據(jù)團隊情況可以從提供項目中任選一個,或者自題目通過立項答辯后作為團隊項目。②教學(xué)工具支持方面,項目全過程在Educoder平臺中全程留痕跡。③時間安排方面,從2018年9月開始,到2019年1月結(jié)束。課程分為兩個階段,第一階段每月進行階段評審分別完成項目團隊組建、可行性分析、立項評審、需求評審等環(huán)節(jié);第二階段是集中期末3個星期,完成編碼、測試、上線等環(huán)節(jié),在該階段每周進行一次評審。課題組從客觀數(shù)據(jù)和主觀評價兩個方面對教學(xué)模式的效果進行評估。在客觀數(shù)據(jù)方面,本課程教學(xué)基于Educoder平臺進行全過程、量化數(shù)據(jù)評估。相比于以前的教學(xué)方式,教學(xué)質(zhì)量和效率明顯提升,如課程中借貸平臺項目的過程信息顯示,其版本庫更新了220次,資源庫積累了34項資源,核心成果經(jīng)過多次更新(數(shù)據(jù)結(jié)構(gòu)更新了6個版本等)。項目團隊很快熟悉了軟件行業(yè)中的典型開發(fā)方法、軟件工具等內(nèi)容;同時,在項目過程中團隊協(xié)作、溝通交流等軟技能同樣得到了有效提升。在主觀方面,利用調(diào)查問卷對課程教學(xué)效果進行反饋評估,統(tǒng)計發(fā)現(xiàn)學(xué)生對課程教學(xué)認同度明顯提升。評分從1到10分,10分表示最滿意/最佳,其中,對課程整體安排的滿意度為8.15;對集中期末進行實踐的安排滿意度為8.1;對團隊形式進行實踐的滿意度為8.43;經(jīng)過課程教學(xué),對軟件的理解進一步加深評分為8.2;對文檔的重要性認識評分為8.28;對項目經(jīng)理的評分為8.48,這個評分相當(dāng)高,說明項目經(jīng)理的確得到了團隊成員的認同;對團隊成員的滿意度評分為8.54,高于對項目經(jīng)理的評分,說明團隊成員更重視相互之間的協(xié)作關(guān)系;對團隊中貢獻最少的組員評分為6.98,說明團隊中“打醬油”的確存在,而且團隊成員更認同大家都需要為團隊作出貢獻;對個人能力提升滿意度的評分為7.48,不到8分,說明大多數(shù)學(xué)生認識到需要進一步提高個人能力。另外,在課程數(shù)學(xué)中也發(fā)現(xiàn),原先不被看好的項目通過團隊努力拿到了大家都認可的高分,特別是音之軌跡項目團隊,成員并不是最強的,但是項目完整度、UI設(shè)計等發(fā)明的優(yōu)秀工作,使得項目整體性和質(zhì)量上了一個檔次。項目團隊之間的良性競爭,也極大改地變了學(xué)習(xí)氛圍,在最后3周集中實踐階段,下午不嚴格要求在實驗室,但實際的出勤率超過80%,而且基本上是整個團隊都一起努力,團隊精神初顯成效。
4結(jié)語
針對課程教學(xué)問題,我們提出面向軟件工程的課程教學(xué)模式,即基于課程群的項目式軟件工程教學(xué)模式,并將模式在湖南師范大學(xué)2016級軟件工程本科專業(yè)進行了實施。根據(jù)教學(xué)平臺記錄的數(shù)據(jù)以及課程調(diào)查問卷的統(tǒng)計結(jié)果表明,該教學(xué)模式具有較好的教學(xué)效果和效率,能有效提高學(xué)生的軟件工程能力以及提升一般課程教學(xué)難以涉及的軟技能等能力。在后續(xù)研究中將著重從以下幾個方面著手:①將該教學(xué)模式推廣到全校計算機基礎(chǔ)課以及計算機類專業(yè)課的教學(xué)中,探索不同類型課程所適合的教學(xué)模式;②考慮結(jié)合各類競賽活動,探索更有實戰(zhàn)性的項目式教學(xué)模式;③嘗試基于該教學(xué)模式,建立校企之間深度合作的產(chǎn)學(xué)合作協(xié)同育人模式。
作者:張錦 蔡美玲 楊曉春 劉宏 單位:湖南師范大學(xué)上海成趣信息科技有限公司