摘要:本文從軟件工程專業(yè)課程體系設(shè)計策略入手,采用“夯實基礎(chǔ)教育、提高系統(tǒng)認(rèn)知、強化軟件開發(fā)、推進工程實訓(xùn)”為主線的設(shè)計思路,構(gòu)建了“分層次、互動式、工程化”的課程體系架構(gòu)模型,對軟件工程專業(yè)核心課程設(shè)置進行了說明,并提出軟件工程專業(yè)培養(yǎng)方案制定與實施的具體措施。
關(guān)鍵詞:軟件工程;課程體系;培養(yǎng)方案
軟件工程教育兼屬科學(xué)教育和工程教育范疇,軟件工程的科學(xué)教育屬性主要是引導(dǎo)學(xué)生對人類意識與智慧進行科學(xué)理解、增強運用軟件本質(zhì)特性(構(gòu)造性與易演化性)和解決具體問題的能力;而軟件工程的工程教育屬性主要是引導(dǎo)學(xué)生綜合應(yīng)用計算機科學(xué)、數(shù)學(xué)、管理等科學(xué)原理,借鑒傳統(tǒng)工程的原則、方法,提煉和固化知識,通過創(chuàng)建軟件來達到提高質(zhì)量、降低成本的目的。然而,McKinsey Global Institute2005年10月發(fā)表的一份報告稱,我國2005年畢業(yè)的60多萬工程技術(shù)人才中適合在國際化公司工作的不到10%,主要原因是中國教育系統(tǒng)偏于理論,學(xué)生在校期間幾乎沒有受到Project和團隊工作的實際訓(xùn)練,這對我國高等院校工程教育改革與創(chuàng)新提出了挑戰(zhàn),也為軟件工程專業(yè)建設(shè)指明了方向。
合理的課程體系是高等院校保證培養(yǎng)目標(biāo)和形成辦學(xué)特色的重要手段。目前,我國1900多所普通高校中雖有100多所院校開設(shè)了軟件工程專業(yè),但與當(dāng)前軟件工程技術(shù)發(fā)展差距較大。為了培養(yǎng)出既有理論知識又有應(yīng)用技能的工程型實用軟件人才,軟件工程專業(yè)課程體系必須進行改革。對此,本文結(jié)合CC2005、SE2004、SWEBOK、國內(nèi)軟件工程專業(yè)課程設(shè)置現(xiàn)有的研究成果,探索軟件工程專業(yè)本科教學(xué)課程體系建設(shè)問題。
1 軟件工程專業(yè)課程體系設(shè)計策略
計算學(xué)科本科教學(xué)常用的課程體系設(shè)計策略主要劃分為:課程啟動策略、課程組織策略、特色課程設(shè)置策略。課程啟動策略主要包括:1)圍繞算法設(shè)計展開的算法優(yōu)先策略;2)自底向上展開的硬件優(yōu)先策略;3)從計算機導(dǎo)論展開的廣度優(yōu)先策略:4)強調(diào)編程能力的程序設(shè)計優(yōu)先策略;5)強調(diào)系統(tǒng)使用命令優(yōu)先策略;6)從面向?qū)ο笳归_的對象優(yōu)先策略。
課程組織策略主要有:1)基于主題的組織模式,它把知識體系中的每個知識域組織成一門或幾門課程;2)基于系統(tǒng)的組織模式,它把每類計算機軟硬件系統(tǒng)設(shè)置成一門或幾門課程;3)混合模式,在課程設(shè)計時不考慮區(qū)分前兩種方法,兼而有之。特色課程設(shè)置策略主要依據(jù)本校辦學(xué)特色和研究專長來確定。
由于軟件工程教育兼屬科學(xué)教育和工程教育范疇,其科學(xué)屬性和工程屬性決定了軟件工程專業(yè)本科教學(xué)課程規(guī)劃,一方面要強調(diào)工程性、技術(shù)性、實用性、系統(tǒng)性、綜合性和復(fù)合型,另一方面要強化基礎(chǔ)軟硬件知識在解決復(fù)雜軟件構(gòu)造和應(yīng)用方面起到的關(guān)鍵作用。對于課程啟動策略而言,傳統(tǒng)計算機科學(xué)專業(yè)的課程啟動方式并不適合于本專業(yè),但工程優(yōu)先策略似乎也不適合于沒有任何計算機基礎(chǔ)的本科生;同樣,在課程組織策略上,基于主題的組織模式更多地具有科學(xué)研究屬性,而基于系統(tǒng)的組織模式又不利于基礎(chǔ)知識強化;此外,特色課程設(shè)置時,有時會缺乏全面綜合考慮,因人設(shè)課會造成特色課程系統(tǒng)性差問題。因此,在軟件工程專業(yè)課程體系設(shè)計策略方面,應(yīng)根據(jù)軟件工程學(xué)科自身屬性,綜合考慮以上各種策略特點,全局思考,統(tǒng)一規(guī)劃,避免課程系統(tǒng)性差、教學(xué)內(nèi)容重復(fù)和遺漏并存等現(xiàn)象。
2 軟件工程專業(yè)課程體系架構(gòu)模型設(shè)計
根據(jù)軟件工程專業(yè)本科教學(xué)的培養(yǎng)目標(biāo)及規(guī)格要求,其課程體系采用“夯實基礎(chǔ)教育、提高系統(tǒng)認(rèn)知、強化軟件開發(fā)、推進工程實訓(xùn)”為主線的設(shè)計思路,構(gòu)建了“分層次、互動式、工程化”的課程體系架構(gòu)模型(如圖1所示)。該模型共分為四個層次,即基礎(chǔ)知識教育層、系統(tǒng)認(rèn)知教育層、工程設(shè)計開發(fā)層和工程實踐訓(xùn)練層。各層次不是相互獨立的,而是相互關(guān)聯(lián)、相互影響、逐層遞進的演進關(guān)系。該模型簡化了計算機科學(xué)核心課程數(shù)量,突出基于主題的組織模式,沿著由淺入深、循序漸進的認(rèn)知路徑,力圖實現(xiàn)“基礎(chǔ)與編程一體化、編程與系統(tǒng)一體化、系統(tǒng)與工程一體化、工程與職業(yè)一體化”四位一體的工程型實用軟件人才教學(xué)目標(biāo)。
2.1 基礎(chǔ)知識教育層
基礎(chǔ)知識教育的設(shè)計思路,強化學(xué)生的基礎(chǔ)知識和編程意識,實現(xiàn)“基礎(chǔ)扎實和編程意識強”兩個目標(biāo)。基礎(chǔ)知識教育層結(jié)構(gòu)具體劃分為:數(shù)學(xué)基礎(chǔ)類課程模塊、外語類課程模塊、軟件基礎(chǔ)類課程模塊、其他公共基礎(chǔ)類課程模塊。根據(jù)各模塊自身特點,全面考慮各模塊之間的關(guān)聯(lián)性,做好彼此之間的銜接。在課程啟動策略方面,主要采取基于基礎(chǔ)的編程優(yōu)先策略。在數(shù)學(xué)基礎(chǔ)類課程模塊中確定一門銜接較好的基礎(chǔ)課作為軟件基礎(chǔ)類課程模塊的啟動,軟件基礎(chǔ)類課程模塊率先啟用軟件設(shè)計基礎(chǔ)課程,力圖達到“基礎(chǔ)與編程一體化”的教學(xué)目標(biāo)。在課程組織策略方面,采取基于主題的組織模式,有利于學(xué)生掌握基礎(chǔ)理論知識。
2.2 系統(tǒng)認(rèn)知教育層
系統(tǒng)認(rèn)知教育的設(shè)計思路:強化學(xué)生的編程能力和對軟件系統(tǒng)的認(rèn)識能力,實現(xiàn)“編程能力強和系統(tǒng)級認(rèn)知”兩個目標(biāo)。根據(jù)軟件工程專業(yè)對硬件系統(tǒng)和系統(tǒng)軟件的知識要求,系統(tǒng)認(rèn)知教育層結(jié)構(gòu)劃分為:數(shù)據(jù)庫系統(tǒng)類課程模塊、網(wǎng)絡(luò)系統(tǒng)類課程模塊、操作系統(tǒng)類課程模塊和編譯系統(tǒng)類課程模塊。在課程啟動策略方面,主要采取基于編程的系統(tǒng)優(yōu)先策略。通過軟件基礎(chǔ)類課程模塊的數(shù)據(jù)結(jié)構(gòu)等課程和系統(tǒng)認(rèn)知類課程模塊的數(shù)據(jù)庫原理及應(yīng)用等課程,進一步強化學(xué)生的編程能力,并以程序設(shè)計為主線引導(dǎo)學(xué)生的系統(tǒng)級認(rèn)識能力,實現(xiàn)“編程與系統(tǒng)一體化”的教學(xué)目標(biāo)。在課程組織策略方面,采取基于系統(tǒng)的組織模式,簡化計算機科學(xué)核心課程數(shù)量,提高學(xué)生學(xué)習(xí)的有效性和對知識的掌握程度。
2.3 工程設(shè)計開發(fā)層
工程設(shè)計開發(fā)的設(shè)計思路:以工程化方法為手段,依托項目培養(yǎng)學(xué)生的“工程”意識,鍛煉學(xué)生對軟件系統(tǒng)的設(shè)計與開發(fā)能力,進一步強化學(xué)生的系統(tǒng)級認(rèn)識,實現(xiàn)“更完整的系統(tǒng)級認(rèn)識和軟件系統(tǒng)工程化設(shè)計開發(fā)技術(shù)”兩個目標(biāo)。根據(jù)軟件工程項目開發(fā)流程,工程設(shè)計開發(fā)層結(jié)構(gòu)劃分為:軟件過程類課程模塊、軟件設(shè)計類課程模塊、軟件架構(gòu)類課程模塊、軟件測試類課程模塊、人機交互類課程模塊、特色項目類課程模塊、可擴充類課程模塊。該層綜合考慮核心專業(yè)課程和特色項目課程設(shè)置,基于專業(yè)方向設(shè)置若干動態(tài)可擴充課程,全面考慮課程之間的關(guān)聯(lián),強調(diào)統(tǒng)一設(shè)計、統(tǒng)一規(guī)劃。學(xué)生在這個層次必修一些工程設(shè)計開發(fā)系列課程,選修可擴充類課程,達到“系統(tǒng)與工程一體化”的教學(xué)目標(biāo)。課程啟動策略采取基于系統(tǒng)的工程優(yōu)先策略。課程組織策略采取項目的組織模式,以此來提高學(xué)生的軟件系統(tǒng)設(shè)計與開發(fā)能力。
2.4 工程實踐訓(xùn)練層
工程實踐訓(xùn)練總體設(shè)計思路:通過實驗訓(xùn)練、專業(yè)實習(xí)、項目實訓(xùn)、畢業(yè)設(shè)計等教學(xué)環(huán)節(jié),依托校內(nèi)外實習(xí)實訓(xùn)基地,采用校外實習(xí)實訓(xùn)、自主實習(xí)實訓(xùn)、校內(nèi)實習(xí)實訓(xùn)和外聘軟件工程師等形式,強化學(xué)生的工程能力,培養(yǎng)學(xué)生的職場素質(zhì),實現(xiàn)工程與職業(yè)一體化的教學(xué)目標(biāo)。工程實踐訓(xùn)練層結(jié)構(gòu)具體劃分為兩大類,一類是實驗與實習(xí)類課程模塊,另一類是工程實訓(xùn)與畢業(yè)論文類課程模塊。其中,實驗與實習(xí)類課程模塊的具體設(shè)計思路,通過基礎(chǔ)實驗、系統(tǒng)體驗、編程能力訓(xùn)練三個環(huán)節(jié),進一步夯實學(xué)生的基礎(chǔ)知識,完善學(xué)生的系統(tǒng)級認(rèn)識,強化學(xué)生的開發(fā)技能;而工程實訓(xùn)與畢業(yè)論文類課程模塊的具體設(shè)計思路,通過“軟件工程項目實訓(xùn)”這個載體,采取“企業(yè)+實訓(xùn)+論文+就業(yè)”捆綁的運作模式,與多家國內(nèi)知名IT公司合作,讓學(xué)生到企業(yè)進行實際項目綜合訓(xùn)練,并完成畢業(yè)論文設(shè)計工作,實現(xiàn)理論與實踐結(jié)合、技巧與職業(yè)素質(zhì)結(jié)合的教學(xué)目標(biāo),同時也為學(xué)生就業(yè)提供一個良好平臺。
上述四個教育層是彼此聯(lián)系和互動發(fā)展的,在課程體系設(shè)計中充分考慮銜接性、系統(tǒng)性和創(chuàng)新性。交流、溝通、講演、寫作的培養(yǎng)更多體現(xiàn)在第二課堂科技學(xué)術(shù)活動中。
3 軟件工程專業(yè)核心課程設(shè)置
3.1 課程設(shè)置原則
軟件工程專業(yè)課程設(shè)置遵循六個基本原則,即先進性、靈活性、復(fù)合性、工程性、創(chuàng)新性和模塊化。1)先進性:課程設(shè)置和課程內(nèi)容需反映國際上先進的軟件技術(shù)發(fā)展成果和軟件企業(yè)對先進技術(shù)的需求,以及相關(guān)的基礎(chǔ)理論。2)靈活性:課程設(shè)置需具有靈活性,應(yīng)根據(jù)軟件技術(shù)的發(fā)展及時調(diào)整。3)復(fù)合性:課程設(shè)置需包括技能、工程、管理等方面的教學(xué)內(nèi)容,使學(xué)生具有必要的綜合技能和基本素質(zhì)。4)工程性:課程設(shè)置面向軟件工程實踐,強調(diào)工程實踐能力培養(yǎng),使學(xué)生能夠自覺運用先進的工程化方法和技術(shù)從事軟件開發(fā)和項目管理,具有團隊協(xié)作精神。5)創(chuàng)新性:課程設(shè)置應(yīng)倡導(dǎo)學(xué)生自主學(xué)習(xí),并給予必要的指導(dǎo),從而培養(yǎng)學(xué)生自主學(xué)習(xí)和自我提高能力,以及勇于開拓和善于創(chuàng)新能力。6)模塊化:課程應(yīng)按照模塊化準(zhǔn)則設(shè)計,課程模塊設(shè)計可以交叉。根據(jù)軟件技術(shù)最新發(fā)展、當(dāng)前市場需求及專業(yè)培養(yǎng)方向、學(xué)生目前具備的領(lǐng)域知識等,靈活調(diào)整課程設(shè)置和課程內(nèi)容。
3.2 核心課程模塊設(shè)置
1)軟件基礎(chǔ)類課程模塊設(shè)有:計算機硬件基礎(chǔ)、軟件設(shè)計基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、計算機組織原理、面向?qū)ο蟪绦蛟O(shè)計、算法分析與設(shè)計等課程。2)操作系統(tǒng)類課程模塊設(shè)有:操作系統(tǒng)原理、LINUX系統(tǒng)基礎(chǔ)、嵌入式系統(tǒng)基礎(chǔ)等課程。3)網(wǎng)絡(luò)系統(tǒng)類課程模塊設(shè)有:計算機網(wǎng)絡(luò)、網(wǎng)絡(luò)規(guī)劃與集成、網(wǎng)絡(luò)安全檢測與防范技術(shù)、網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)軟件等課程。4)數(shù)據(jù)庫系統(tǒng)類課程模塊設(shè)有:數(shù)據(jù)庫原理及應(yīng)用、ORACLE數(shù)據(jù)庫、數(shù)據(jù)倉庫與數(shù)據(jù)挖掘技術(shù)等課程。5)編譯系統(tǒng)類課程模塊設(shè)有:編譯系統(tǒng)原理、編譯技術(shù)等課程。6)軟件過程類課程模塊設(shè)有:軟件工程、需求工程、軟件項目管理、軟件建模技術(shù)UML等課程。7)軟件設(shè)計類課程模塊設(shè)有:C++高級程序設(shè)計、J2EE與中間件、.NET架構(gòu)技術(shù)、設(shè)計模式等課程。8)軟件架構(gòu)類課程模塊設(shè)有:大型軟件系統(tǒng)構(gòu)造、軟件體系結(jié)構(gòu)等課程。9)軟件測試類課程模塊設(shè)有:軟件測試技術(shù)、軟件測試與評估等課程。10)人機交互類課程模塊設(shè)有:人機交互技術(shù)等課程。11)特色項目類課程模塊設(shè)有:軟件工程項目案例解析、大型軟件工程項目實訓(xùn)等課程。12)可擴充類課程模塊設(shè)有:手機游戲開發(fā)、網(wǎng)絡(luò)游戲開發(fā)、計算機圖形學(xué)、嵌入式Linux網(wǎng)絡(luò)及GUI應(yīng)用開發(fā)、嵌入式Linux驅(qū)動開發(fā)、手持設(shè)備軟件開發(fā)等課程。
4 軟件工程專業(yè)培養(yǎng)方案制定與實施
軟件工程專業(yè)培養(yǎng)方案制定是基于軟件與工程的復(fù)合,將軟件工程與領(lǐng)域應(yīng)用相結(jié)合,強調(diào)計算機科學(xué)和數(shù)學(xué)基礎(chǔ)的同時,將專業(yè)課程重點放在軟件新技術(shù)和軟件工程新技術(shù)方面,通過對實踐類課程工程化改造,增設(shè)軟件工程項目實訓(xùn)環(huán)節(jié),開設(shè)部分技能課程,試圖使學(xué)生的基礎(chǔ)知識、專業(yè)技能、創(chuàng)新能力、工程能力和職業(yè)素質(zhì)都能得到全面均衡發(fā)展。具體措施如下。
4.1 建立英語為主日語為輔的外語教學(xué)體系
根據(jù)IT市場的實際需求,軟件工程專業(yè)培養(yǎng)方案制定,除正常開設(shè)四個學(xué)期大學(xué)英語外,增開兩個學(xué)期標(biāo)準(zhǔn)目語和一個學(xué)期專業(yè)英語,堅持外語學(xué)習(xí)四年不斷線,旨在為學(xué)生選擇日企或?qū)θ胀獍髽I(yè)就業(yè)提供方便。
4.2 建立工程化實踐教學(xué)體系
建立“四年不斷線、三個層次相呼應(yīng)、兩大措施為保障”的工程化實踐教學(xué)體系?!八哪瓴粩嗑€”是指實踐環(huán)節(jié)四年不斷線,每個學(xué)期至少有一個集中性的實踐教學(xué)環(huán)節(jié),體現(xiàn)“全過程”實踐;“三個層次相呼應(yīng)”主要是從實踐教學(xué)內(nèi)容設(shè)計上考慮的,包括第一層次教學(xué)實驗,第二層次課程設(shè)計及專業(yè)實習(xí),第三層次工程項目實訓(xùn)與畢業(yè)設(shè)計;“兩大措施為保障”主要指教學(xué)計劃保障和考核制度保障。
4.3 設(shè)置專門的實踐課程
針對工程化軟件人才應(yīng)具備的個人開發(fā)能力、團隊開發(fā)能力、系統(tǒng)研發(fā)能力和設(shè)備應(yīng)用能力,以必修課和選修課形式,開設(shè)四類特色化、階梯狀工程實踐學(xué)分課程,即程序設(shè)計類實踐課程、軟件工程類實踐課程、項目管理類實踐課程和網(wǎng)絡(luò)平臺類實踐課程,構(gòu)成了系統(tǒng)全面的學(xué)生實踐能力訓(xùn)練體系。
4.4 提高專業(yè)課程教學(xué)中的實驗課時量
除個別側(cè)重理論教學(xué)的專業(yè)課程外,80%以上的專業(yè)課程包含實驗或?qū)嵙?xí)環(huán)節(jié),實驗或?qū)嵙?xí)成績占總成績的30%以上,一部分實踐性較強的課程是以上機考試和答辯作為最終考試方式。
4.5 開設(shè)部分技能課程
在技能課程中,與該領(lǐng)域內(nèi)具有國際領(lǐng)先水平的企業(yè)在課件共享、教師培訓(xùn)和資源投入等方面展開合作,共同設(shè)計、講授和評估課程。鼓勵學(xué)生參與企業(yè)提供的專業(yè)認(rèn)證考試,或參加國家相應(yīng)的專業(yè)資格考試,對此,學(xué)院將計算機網(wǎng)絡(luò)、Oracle數(shù)據(jù)庫、J2EE與中間件等認(rèn)證課程納入本科教學(xué)計劃中,全面體現(xiàn)學(xué)生的“多證多能”。
4.6 實施軟件工程項目實訓(xùn)
以工程應(yīng)用為導(dǎo)向,實施企業(yè)級工程項目實訓(xùn)和校內(nèi)級工程項目實訓(xùn),全面提升學(xué)生的工程實踐能力。學(xué)生經(jīng)過為期半年以上難度適中的工程項目實訓(xùn),深入工程實際,掌握設(shè)計重點,從軟件開發(fā)流程優(yōu)化設(shè)計方案,規(guī)范管理,確保實訓(xùn)質(zhì)量,最終實現(xiàn)學(xué)生理想就業(yè)。
(編輯:白