- 相關(guān)推薦
軟件工程專(zhuān)業(yè)在線(xiàn)課程建設思考的論文
針對國家和軍隊信息化建設對軟件開(kāi)發(fā)工程人才的迫切需求,以及軟件工程專(zhuān)業(yè)課程面臨的知識與工具變化快、項目實(shí)踐要求高、強調協(xié)同與合作等特征為目前在線(xiàn)課程模式和平臺帶來(lái)的挑戰性問(wèn)題,分析研究2014版軟件工程知識體(SWEBOK)對在線(xiàn)課程建設的影響,分別針對大規模公開(kāi)在線(xiàn)課程(MOOC)和小規模私有在線(xiàn)課程(SPOC)的建設提出一系列建設思路與方案,關(guān)鍵詞:軟件工程;在線(xiàn)課程;軟件工程知識體;MOOC;SPOC
引 言
隨著(zhù)軟件在各種領(lǐng)域迅速發(fā)展,軟件的類(lèi)型、規模、復雜度都急劇增長(cháng),在有限的時(shí)間和成本約束下開(kāi)發(fā)出高質(zhì)量的軟件被人們高度關(guān)注,岡此提高各類(lèi)信息化系統開(kāi)發(fā)人員的軟件工程能力越來(lái)越受到普通和軍隊高等院校的普遍重視。然而,由于軟件從業(yè)人員所需知識更新快以及大量軟件開(kāi)發(fā)人員接受軟件工程教育的經(jīng)歷不足,僅靠傳統的高校課堂內授課方式,難以滿(mǎn)足社會(huì )和軍隊信息化快速發(fā)展對軟件工程人員的需求。研究如何通過(guò)建設軟件工程專(zhuān)業(yè)在線(xiàn)課程加快軟件工程人才的培養、優(yōu)化軟件工程課程資源的配置,對于我們國家和軍隊未來(lái)的發(fā)展具有重要價(jià)值與深遠意義。
1 軟件工程教育的發(fā)展與主要問(wèn)題
軟件工程指將系統的、規范的、可量化的方法應用于軟件的開(kāi)發(fā)、運行和維護的過(guò)程。ACM和IEEE/CS成立聯(lián)合工作組,在2004年制定了計算教程軟件工程卷CCSE(computingcurriculum-software engineering),并把軟件工程作為計算學(xué)科下與計算機科學(xué)、信息技術(shù)、信息系統、計算機工程等并列的學(xué)科。2014年,ACM和IEEE/CS推出軟件工程知識體SWEBOK3.0版,知識領(lǐng)域與2004年版SWEBOK相比從10個(gè)增加到15個(gè)。此外,由ACM和IEEE主導,國際一些著(zhù)名高校和企業(yè)的專(zhuān)家針塒軟件工程碩士教育制定《軟件工程研究生學(xué)位教程指南》(GSwE2009),描述軟件工程碩上需掌握的核心知識體系和相應教程。我國從2001年開(kāi)始建立示范性軟件學(xué)院,并于2006年推出《計算機科學(xué)與技術(shù)本科專(zhuān)業(yè)規范(軟件[r徉)》l512011年,軟件工程專(zhuān)業(yè)經(jīng)國務(wù)院批準增列為一級學(xué)科。
軟件工程師目前在國內外都是最具吸引力的職業(yè)之一,如美國著(zhù)名的就業(yè)網(wǎng)站CareerCast在2012年進(jìn)行調查,從收入、工作環(huán)境、發(fā)展前景等因素評選出的十大最佳職業(yè)中,軟件工程師名列第一;在我國近來(lái)對本科畢業(yè)生的職、業(yè)調查中,軟件工程師的收入也一直名列前茅。盡管近年來(lái)軟件工程教育有了很大發(fā)展,但國內外的軟件工程教育還存在諸多挑戰性問(wèn)題,主要包括以下幾方面。
(1)現有的軟件工程課程從學(xué)時(shí)數、教學(xué)安排等方面都難以達到實(shí)際職業(yè)對軟件工程深度、廣度和實(shí)踐能力的要求,相關(guān)培養方案的制訂較少考慮企業(yè)的實(shí)際需要,針對性不強。
(2)盡管聘請企業(yè)中有豐富經(jīng)驗的軟件工程師授課是一條有效措施,但整體來(lái)看,軟件工程授課老師普遍缺乏軟件開(kāi)發(fā)實(shí)際經(jīng)驗,甚至很多都未從事軟件工程領(lǐng)域的研究工作。
(3)軟件工程目前存在眾多不同的開(kāi)發(fā)方法學(xué),它們各有特點(diǎn)和優(yōu)勢,并且軟件工程相關(guān)技術(shù)發(fā)展迅速,新的方法不斷出現,這使得教學(xué)內容的選擇和準備變得非常困難。
(4)當前國內外軟件工程教材多是對眾多方法和技術(shù)的描述,對具體技術(shù)的深入程度不足且無(wú)法適應軟件技術(shù)、工具的快速變化,對學(xué)生進(jìn)行實(shí)際項目開(kāi)發(fā)幫助有限。
(5)企業(yè)的軟件開(kāi)發(fā)中使用了眾多的軟件工具,并且對于重要領(lǐng)域的軟件開(kāi)發(fā),很多企業(yè)采用商業(yè)化工具。在教學(xué)過(guò)程中,這些昂貴的、專(zhuān)用的商業(yè)工具較為缺乏,并且在有限課程時(shí)間內學(xué)生難以接觸到眾多不同類(lèi)型的軟件開(kāi)發(fā)工具。
(6)軟件工程教育資源非常不平衡,在教育和經(jīng)濟發(fā)達地區,聘請優(yōu)秀軟件工程師進(jìn)行授課、使學(xué)生參與到企業(yè)的實(shí)際開(kāi)發(fā)中是可行的,但對于大量其他地區高校就難以實(shí)施。
(7)軟件工程技術(shù)和工具發(fā)展迅速,很多軟件從業(yè)人員從程序員開(kāi)始起步,未接受過(guò)系統的軟件工程教育或所受教育很快過(guò)時(shí),因此需要持續性的、具有一定靈活性的優(yōu)質(zhì)教育資源適應這種情況。
由軟件工程教育面臨的以上挑戰,我們可以看出傳統的高校課堂內軟件工程教育雖然還是必不可少的,但是必須找到新的軟件工程專(zhuān)業(yè)課程教學(xué)方式,以滿(mǎn)足其知識變化快、人員基數大、持續時(shí)間長(cháng)、資源不平衡等特征。通過(guò)互聯(lián)網(wǎng)在線(xiàn)課程的形式實(shí)施軟件工程專(zhuān)業(yè)課程的教學(xué),無(wú)疑是應對上述問(wèn)題一種有效、可行的方式。
2 軟件工程知識體對在線(xiàn)課程模式的影響
軟件工程可以作為一門(mén)單獨的課程進(jìn)行講授,而軟件工程專(zhuān)業(yè)一般包含一系列的課程,如需求工程、軟件設計與體系結構、軟件構造、軟件測試與驗證等。軟件工程專(zhuān)業(yè)課程如果作為在線(xiàn)課程進(jìn)行建設會(huì )遇到眾多問(wèn)題,其中主要包括對實(shí)踐環(huán)節的要求非常高、追求在真實(shí)平臺中解決有一定規模的問(wèn)題、需要團隊合作以及項目管理等,而目前在線(xiàn)課程的教學(xué)方式和平臺在這些方面有一定欠缺,需要我們進(jìn)行深入的研究以提供解決方案。
軟件工程課程應該覆蓋一定的知識領(lǐng)域,表1對SWEBOK 3.0版中包含的15個(gè)知識領(lǐng)域和子域進(jìn)行初步分析,判斷其是否適合于目前一般性的MOOC在線(xiàn)課程教育模式和平臺。表1中第2列的知識子域適合目前在線(xiàn)課程教學(xué)方式,第3列中的知識子域需要對當前在線(xiàn)課程模式進(jìn)行適當改進(jìn)才能適用,第4列中的知識子域則需要對當前在線(xiàn)課程模式和平臺進(jìn)行較大改進(jìn)。對于不適合(需對模式和平臺進(jìn)行改進(jìn))的知識子域,筆者在第3節中將研究討論應對方式和措施。
表l中最后兩個(gè)知識領(lǐng)域計算基礎和數學(xué)基礎作為軟件工程理論基礎的一部分,由于一般放入與軟件工程課程相獨立的課程中講授,如離散數學(xué)、編譯原理、操作系統、數據庫原理等,其相關(guān)課程也都有較為系統、完善的體系,因此這里我們不進(jìn)行特別考慮。
3 軟件工程專(zhuān)業(yè)在線(xiàn)課程的建設
目前已經(jīng)出現一些軟件工程的在線(xiàn)課程,如UC Berkeley的軟件工程MOOC課程于2012年在Coursera、后來(lái)在EdX上線(xiàn),并在此基礎上發(fā)展、延伸出多個(gè)小規模私有在線(xiàn)課程(smallprivate online courses,SPOC)。國防科技大學(xué)也已有軟件工程相關(guān)課程在內部網(wǎng)絡(luò )上線(xiàn),供部隊和軍隊院校一定范圍內的人員在線(xiàn)學(xué)習。
3.1 軟件工程專(zhuān)業(yè)MOOC課程建設
從對相關(guān)知識領(lǐng)域的分析可以看到,目前一般性MOOC授課方式與平臺難以適應的軟件工程知識子域主要包含以下特點(diǎn)。
1)難以完全通過(guò)講授使學(xué)生接受,如需要動(dòng)手進(jìn)行實(shí)踐才能深入體會(huì )的技術(shù)以及與經(jīng)驗密切相關(guān)的過(guò)程、管理、度量等內容。
2)內容變化頻繁的知識如一些軟件開(kāi)發(fā)技術(shù)、工具等總在持續發(fā)生變化或出現新的版本,課程每次新開(kāi)時(shí)都可能需要調整。
3)需要團隊式的協(xié)作與交流完成內容,如版本控制、需求獲取、協(xié)同開(kāi)發(fā)、團隊交流等,僅靠講授或個(gè)人作業(yè)難以達到效果。
4)軟件工程教育強調具有一定規模和復雜性的項目實(shí)踐,這對于教學(xué)輔導人員的數量和指導能力要求較高,不僅僅是普通答疑能完成的。
5)對于很多技術(shù)和實(shí)踐來(lái)說(shuō),其結果是開(kāi)放式的,軟件設計、實(shí)現、測試、維護等任務(wù)一般不存在唯一結果,這給作業(yè)評價(jià)和成績(jì)評定帶來(lái)困難。
面向上述特點(diǎn),根據目前國內外已有的相關(guān)實(shí)踐、效果以及已經(jīng)實(shí)施的建設情況,我們總結出一些供參考的解決方案。
(1)制訂MOOC教學(xué)計劃時(shí)應遵循持續改進(jìn)的原則。傳統課堂教學(xué)講究制訂教學(xué)計劃時(shí)一次到位,但由于軟件工程內容變化快,因此分解教學(xué)內容、視頻、作業(yè)時(shí)應該使其能夠適應快速變化,不要期望一次建設就大功告成。此外,在線(xiàn)課程需要了解大量學(xué)生的反饋意見(jiàn)和教學(xué)效果,這也需要不斷的改進(jìn)。如果可行,可采用自行編著(zhù)的電子教材和參考文獻,使得每次開(kāi)課時(shí)學(xué)生教材也可以盡快進(jìn)行相應修訂。
(2)在線(xiàn)課程平臺與軟件協(xié)同開(kāi)發(fā)環(huán)境的有機融合。對于需要協(xié)同、交流才能完成的內容,實(shí)際由于許多國際化企業(yè)的軟件研發(fā)人員遍布全球,因此已有相應的平臺(包括開(kāi)源軟件工具開(kāi)源社區等)支持地域分布的人員進(jìn)行協(xié)同開(kāi)發(fā)。教師可選擇所需的協(xié)同開(kāi)發(fā)環(huán)境,與軟件工程在線(xiàn)課程平臺集成在一起,提高對團隊和協(xié)同任務(wù)的支持。
(3)對課程進(jìn)行分而治之的劃分。教師可以把課程按照其內容是否適合在線(xiàn)授課劃分為一些小的子課程,每個(gè)子課程更偏重于適合或不適合(如理論內容和實(shí)踐教學(xué)內容分到不同子課程),以減少整個(gè)課程設計的復雜性。在線(xiàn)課程偏重適合講授的子課程,不適合已有在線(xiàn)授課模式的內容,可以通過(guò)其他方式實(shí)施(如其他高校單獨開(kāi)設實(shí)踐課程、采用適合的平臺或投入更多教輔人員等)。
(4)采用新的教輔人員委托模式。由于軟件工程課程的實(shí)踐性強,對教輔人員數量和質(zhì)量要求高,因此僅靠開(kāi)課學(xué)校的課程組難以完成。教師在實(shí)踐中可以考慮招募在高校內或通過(guò)在線(xiàn)課程已經(jīng)完成課程學(xué)習、成績(jì)優(yōu)秀的志愿者,通過(guò)一定的激勵或者提高影響力等方式激發(fā)他們的熱情。事實(shí)上,從開(kāi)源軟件的蓬勃發(fā)展以及Berkeley軟件工程MOOC課程的實(shí)際效果看,該方式完全可行、有效。
(5)加強自動(dòng)化結果評估和成績(jì)評定系統的開(kāi)發(fā)與應用。教師可一方面采用各種自動(dòng)化軟件工具,如通過(guò)測試驅動(dòng)的開(kāi)發(fā)工具、軟件編碼規范檢查工具、基于服務(wù)的方式等對課程作業(yè)進(jìn)行自動(dòng)評估;另一方面可以讓學(xué)生參與到開(kāi)源軟件社區的開(kāi)發(fā)活動(dòng)中,通過(guò)開(kāi)源項目對其完成工作和貢獻采納情況等進(jìn)行評價(jià)。
軟件工程專(zhuān)業(yè)MOOC課程建設面臨的問(wèn)題眾多,需要教師通過(guò)具體實(shí)踐逐步研究和完善其在線(xiàn)課程的建設過(guò)程。
3.2 軟件工程專(zhuān)業(yè)SPOC課程建設
軟件工程在實(shí)際實(shí)施中所面向的領(lǐng)域背景非常重要,而不同領(lǐng)域的軟件系統各有特點(diǎn),一個(gè)軟件企業(yè)一般有其針對性的領(lǐng)域,采用的軟件工程過(guò)程、方法、工具、管理等都有各自的特點(diǎn)。因此,非在校學(xué)生的軟件工程在線(xiàn)課程學(xué)習者可能在一般性的理論之外,希望學(xué)習更多對其背景有促進(jìn)作用的知識。再者,MOOC課程學(xué)習者中有相當一部分本身就是高校教師,他們會(huì )借用MOOC課程的內容,然后在自己的課程中進(jìn)行一定改造并增加項目實(shí)習等內容,形成適合其學(xué)生學(xué)習的課程。此外,國防領(lǐng)域未來(lái)基于信息系統的體系中,軟件工程人才將會(huì )包括科研人員、技術(shù)開(kāi)發(fā)人員、管理人員、保障人員、作戰和指揮人員等不同類(lèi)型,還會(huì )針對戰機控制、艦船控制、車(chē)輛控制、指揮自動(dòng)化等不同應用背景,對軟件工程知識的要求都有不同。上述情況都要求能夠在MOOC課程的基礎上進(jìn)一步建設小規模私有在線(xiàn)課程(SPOC)。UC Berkeley就在其軟件工程MOOC課程基礎上發(fā)展了多個(gè)SPOC課程,包括在本校以及在其他高校中開(kāi)設的課程。
對于建設軟件工程SPOC課程,教師可以遵循以下一些原則和策略。
(1)對于公共的知識講授,盡可能利用MOOC課程完成,以減少SPOC課程的建設工作量,充分利用優(yōu)質(zhì)資源,提高課程的復用程度。
(2)加強每門(mén)SPOC課程的針對性,如針對具體學(xué)校學(xué)生的培養目標或針對具體領(lǐng)域背景選擇相應的軟件工程技術(shù)、工具、標準規范進(jìn)行講授。
(3)加強課程實(shí)踐和項目開(kāi)發(fā)環(huán)節的建設,這是MOOC課程本身具有的不足之一,但在SPOC課程中可以進(jìn)行有效的彌補。
(4)課程成績(jì)的評定可以把MOOC和SPOC課程的學(xué)習情況結合起來(lái)考慮,對學(xué)習者對軟件工程共性理論和特定目標知識的掌握情況進(jìn)行綜合評價(jià)。
在未來(lái)在線(xiàn)課程發(fā)展中,軟件工程專(zhuān)業(yè)MOOC課程可能并不一定很多,由能提供優(yōu)質(zhì)師資資源的機構開(kāi)設,但針對具體背景領(lǐng)域的SPOC課程可以更多,因為畢竟軟件作為現代社會(huì )無(wú)所不在的組成,軟件工程面向的領(lǐng)域眾多,都需要有針對性地培養軟件工程人才。
4 結語(yǔ)
軟件工程專(zhuān)業(yè)課程具有變化快、對實(shí)踐要求高、需要團隊協(xié)作等特征,這些使建設軟件工程專(zhuān)業(yè)在線(xiàn)課程具有更高的難度。MOOC課程和SPOC課程都是未來(lái)軟件工程專(zhuān)業(yè)在線(xiàn)課程所需的模式,盡管已經(jīng)有一些相關(guān)實(shí)踐,但是如何建立較為系統、各門(mén)課程完善、質(zhì)量高的軟件工程專(zhuān)業(yè)在線(xiàn)課程,還需要更多的研究與實(shí)踐。目前對SWEBOK中知識子域對在線(xiàn)課程建設影響的分析還較為初步,下一步還需要更具體地針對所包含的知識點(diǎn)研究如何通過(guò)在線(xiàn)課程進(jìn)行講授。此外,軟件工程專(zhuān)業(yè)在線(xiàn)課程應該與軟件協(xié)同開(kāi)發(fā)環(huán)境有機結合,這還需要我們進(jìn)一步進(jìn)行研究,針對知識點(diǎn)要求形成科學(xué)的集成平臺體系框架并進(jìn)行建設。