林為偉 ,張 棟 ,葉福玲
(1. 福州大學(xué) 網(wǎng)絡(luò)信息安全與計(jì)算機(jī)技術(shù)實(shí)驗(yàn)教學(xué)中心,福建 福州 350108;2. 福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州 350108)
工程教育認(rèn)證是國(guó)際通行的工程教育質(zhì)量保證制度,積極參與工程教育認(rèn)證,已成為國(guó)內(nèi)高校工程教育專業(yè)建設(shè)和發(fā)展的重要環(huán)節(jié)。2016年6月我國(guó)正式加入《華盛頓協(xié)議》,這不僅為我國(guó)工程專業(yè)畢業(yè)生獲得進(jìn)入國(guó)際市場(chǎng)的通行證提供了可行性,而且有力地促進(jìn)了我國(guó)工程教育面向世界[1]。但工程教育認(rèn)證并非一勞永逸,專業(yè)需在認(rèn)證有效期內(nèi)持續(xù)改進(jìn),實(shí)現(xiàn)“認(rèn)證—改進(jìn)—再認(rèn)證—再改進(jìn)”的良性循環(huán)。
持續(xù)改進(jìn)是工程教育認(rèn)證的理念之一,實(shí)現(xiàn)專業(yè)的持續(xù)改進(jìn),是工程專業(yè)教育實(shí)現(xiàn)可持續(xù)發(fā)展的內(nèi)在要求[2]。為提升計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的教學(xué)質(zhì)量,在認(rèn)證有效期內(nèi),專業(yè)基于《華盛頓協(xié)議》關(guān)于復(fù)雜工程問題特征的界定和解決復(fù)雜工程問題的能力要求[1],以“解決復(fù)雜工程問題的能力”為核心,秉持以點(diǎn)帶面、逐步推進(jìn)、持續(xù)改進(jìn)的理念和思路,對(duì)專業(yè)課程進(jìn)行全面梳理。其中,以核心課程軟件工程實(shí)踐為范例的教學(xué)改革,在近一輪的持續(xù)改進(jìn)中進(jìn)行了重點(diǎn)推進(jìn)和落實(shí)。
軟件工程作為面向高年級(jí)學(xué)生的計(jì)算機(jī)專業(yè)課程,包括理論與實(shí)踐兩部分,介紹軟件開發(fā)過程中的軟件工程概念、原理、方法、實(shí)現(xiàn)和評(píng)價(jià)等,是從事計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、系統(tǒng)軟件和應(yīng)用軟件研究、開發(fā)與管理的基礎(chǔ)技能。工程教育認(rèn)證標(biāo)準(zhǔn)明確提出了12條畢業(yè)要求[3],在工程教育認(rèn)證標(biāo)準(zhǔn)的畢業(yè)要求與課程對(duì)應(yīng)中,軟件工程實(shí)踐覆蓋了畢業(yè)要求中的7條。圍繞軟件工程課程內(nèi)容、軟件能力培養(yǎng)與畢業(yè)要求,筆者確定了其映射關(guān)系,見表1。
表1 軟件工程實(shí)踐課程覆蓋工程專業(yè)畢業(yè)要求情況
為了支撐專業(yè)畢業(yè)要求的達(dá)成,軟件工程實(shí)踐課程應(yīng)能夠培養(yǎng)學(xué)生解決復(fù)雜工程問題的軟件能力,例如需求分析、系統(tǒng)設(shè)計(jì)、編碼開發(fā)、系統(tǒng)測(cè)試和項(xiàng)目管理等。然而,原有的軟件工程實(shí)踐課程在學(xué)生軟件能力的培養(yǎng)上尚有不足。首先,學(xué)生和業(yè)界對(duì)于軟件能力輕重占比理解不同,例如學(xué)生認(rèn)為項(xiàng)目管理、系統(tǒng)架構(gòu)設(shè)計(jì)、面向?qū)ο蠓治龊蜏y(cè)試的輕重占比是遞減的,而業(yè)界卻認(rèn)為是遞增的;其次,學(xué)生、教師和企業(yè)對(duì)于軟件能力習(xí)得方式理解不同,教師認(rèn)為所有能力應(yīng)主要在課堂教學(xué)和課程實(shí)踐中學(xué)習(xí),而學(xué)生和企業(yè)對(duì)于業(yè)余自學(xué)和進(jìn)入企業(yè)后學(xué)習(xí)亦有所看重。根據(jù)對(duì)學(xué)生軟件能力的實(shí)際調(diào)研結(jié)果(圖1)在調(diào)查的4項(xiàng)軟件能力中,除編碼開發(fā)以外其余3項(xiàng)能力均有超過一半的業(yè)者認(rèn)為學(xué)生能力一般或亟待加強(qiáng)。多方面因素導(dǎo)致原有軟件工程實(shí)踐課程培養(yǎng)的學(xué)生軟件能力還有待提高,很多學(xué)生經(jīng)過課程學(xué)習(xí)尚不具備解決業(yè)界實(shí)際復(fù)雜工程問題的軟件能力。因此,在工程教育認(rèn)證的持續(xù)改進(jìn)中,原有的軟件工程實(shí)踐課程還需要加強(qiáng)對(duì)學(xué)生軟件能力的全方位培養(yǎng),進(jìn)而更好地支撐專業(yè)的畢業(yè)要求達(dá)成,促進(jìn)專業(yè)培養(yǎng)目標(biāo)的最終實(shí)現(xiàn)。
圖1 學(xué)生軟件能力調(diào)查
借鑒“構(gòu)建之法”倡導(dǎo)的軟件工程實(shí)踐教學(xué)模式[4-5],軟件工程實(shí)踐課程改革應(yīng)強(qiáng)調(diào)培養(yǎng)與解決復(fù)雜工程問題相匹配的基礎(chǔ)知識(shí)、綜合素質(zhì)和專業(yè)技能[6],將培養(yǎng)學(xué)生在復(fù)雜工程活動(dòng)中解決復(fù)雜工程問題的軟件能力貫穿整個(gè)軟件工程實(shí)踐教學(xué)的始終。根據(jù)能力層次的不同,解決復(fù)雜工程問題的軟件能力可細(xì)化為基礎(chǔ)能力、專業(yè)能力和直接的軟件工程能力。解決復(fù)雜工程問題的軟件能力培養(yǎng)需要依靠軟件工程實(shí)踐課程對(duì)學(xué)生每種層次的能力進(jìn)行全面系統(tǒng)的訓(xùn)練,而學(xué)生對(duì)于每種層次能力的掌握支撐了課程對(duì)解決復(fù)雜工程問題的軟件能力培養(yǎng),見圖2。因此,軟件工程實(shí)踐課程改革應(yīng)以全新的教學(xué)理念和方法,加強(qiáng)對(duì)學(xué)生軟件能力的培養(yǎng),具體可從課程大綱、作業(yè)模式及考核評(píng)價(jià)3方面著手實(shí)施。
圖2 解決復(fù)雜工程問題的軟件能力
在軟件工程實(shí)踐課程的改革中,可以適當(dāng)修訂軟件工程實(shí)踐課程教學(xué)大綱,力求在課程大綱層面,將教學(xué)內(nèi)容落實(shí)于培養(yǎng)學(xué)生在復(fù)雜工程活動(dòng)中解決復(fù)雜工程問題的軟件能力,明確課程對(duì)專業(yè)畢業(yè)要求的支撐。修訂后的軟件工程實(shí)踐課程教學(xué)內(nèi)容,合計(jì)48學(xué)時(shí),見表2。新的教學(xué)內(nèi)容緊密圍繞解決復(fù)雜工程問題的軟件能力,加強(qiáng)了學(xué)生各項(xiàng)軟件能力的訓(xùn)練,緊跟當(dāng)前計(jì)算機(jī)學(xué)科和業(yè)界發(fā)展趨勢(shì),尤其加強(qiáng)了對(duì)現(xiàn)代軟件工程新方法和新技術(shù)以及業(yè)界近年已經(jīng)普遍采用的軟件工程新技術(shù)、新方法和新工具的傳授和訓(xùn)練。
表2 軟件工程實(shí)踐教學(xué)內(nèi)容安排
軟件工程是一門實(shí)踐性很強(qiáng)的課程,對(duì)于新版課程教學(xué)大綱中要求的軟件能力,學(xué)生難以通過單純的理論知識(shí)課堂講授掌握,課程需要通過作業(yè)訓(xùn)練學(xué)生解決復(fù)雜工程問題的軟件能力。根據(jù)歷屆畢業(yè)學(xué)生的座談與反饋、業(yè)界專家的調(diào)查座談和問卷,課程教學(xué)團(tuán)隊(duì)在過去3年的工程教育認(rèn)證持續(xù)改進(jìn)中,依據(jù)“能力驅(qū)動(dòng)、階段考核、迭代優(yōu)化”的原則,針對(duì)實(shí)踐作業(yè)模式展開了新的設(shè)計(jì),創(chuàng)新地安排了個(gè)人、結(jié)對(duì)和團(tuán)隊(duì)3種作業(yè)類型,見圖3。每種作業(yè)類型有相應(yīng)的作業(yè)內(nèi)容,并對(duì)應(yīng)具體的軟件能力。全新的課程作業(yè)模式明確了作業(yè)與軟件能力的關(guān)聯(lián),著重體現(xiàn)對(duì)學(xué)生在復(fù)雜工程活動(dòng)中解決復(fù)雜工程問題的軟件能力培養(yǎng)。相比原有的作業(yè)模式,新作業(yè)模式從單純注重軟件工程系列文檔作業(yè),轉(zhuǎn)變?yōu)樽⒅剀浖こ倘轿荒芰﹀憻挼膶?shí)踐作業(yè);注重現(xiàn)代軟件工程工具在作業(yè)設(shè)計(jì)中的體現(xiàn);從注重作業(yè)的期末驗(yàn)收轉(zhuǎn)變?yōu)樽⒅刈鳂I(yè)過程的持續(xù)性考查。全新的課程作業(yè)模式由易到難,全面、持續(xù)地訓(xùn)練學(xué)生的各項(xiàng)軟件能力,培養(yǎng)解決復(fù)雜工程問題的軟件能力,并依靠新的考核評(píng)價(jià),迭代優(yōu)化作業(yè)內(nèi)容。此外,對(duì)于團(tuán)隊(duì)作業(yè),課程教學(xué)團(tuán)隊(duì)從身邊發(fā)掘?qū)嶋H需求,以真實(shí)項(xiàng)目激勵(lì)學(xué)生,進(jìn)一步擬定了過程化的時(shí)間規(guī)劃。以2017—2018學(xué)年為例,軟件工程實(shí)踐課程的團(tuán)隊(duì)作業(yè)項(xiàng)目時(shí)間規(guī)劃見表3。
軟件工程實(shí)踐課程改革需要通過考核評(píng)價(jià)反映學(xué)生對(duì)于解決復(fù)雜工程問題的軟件能力掌握情況。對(duì)此,課程教學(xué)團(tuán)隊(duì)在過去3年的工程教育認(rèn)證持續(xù)改進(jìn)中,變更了原有的軟件工程實(shí)踐課程考核要求,將以往單純的考查理論知識(shí)變?yōu)楝F(xiàn)在以實(shí)際工程項(xiàng)目驅(qū)動(dòng),考查學(xué)生對(duì)解決復(fù)雜工程問題軟件能力的掌握;將以往結(jié)果性單一考核變?yōu)楝F(xiàn)在持續(xù)性的過程考核和能力提升的確認(rèn),事先公布評(píng)分標(biāo)準(zhǔn),再由助教對(duì)每一次的作業(yè)進(jìn)行公開評(píng)分,并由此決定學(xué)生最終的課程成績(jī),體現(xiàn)學(xué)生能力的提升程度。
圖3 軟件工程實(shí)踐作業(yè)與能力關(guān)聯(lián)
針對(duì)軟件工程實(shí)踐課程的特點(diǎn),課程教學(xué)團(tuán)隊(duì)改革了傳統(tǒng)通用的教師授課清晰、PPT精美、按時(shí)上下課等課程評(píng)價(jià)指標(biāo)。在評(píng)價(jià)方式上,借鑒業(yè)界及專家經(jīng)驗(yàn),轉(zhuǎn)變傳統(tǒng)的“評(píng)教”模式,貫徹全新的“評(píng)學(xué)”理念,以學(xué)生為中心,設(shè)計(jì)了新的軟件工程實(shí)踐課程調(diào)查問卷,用于每輪課程教學(xué)結(jié)束時(shí)征求學(xué)生的反饋意見。以作業(yè)內(nèi)容為例,在每一輪教學(xué)結(jié)束時(shí),課程教學(xué)團(tuán)隊(duì)均會(huì)總結(jié)經(jīng)驗(yàn)和教訓(xùn),迭代優(yōu)化下一學(xué)年教學(xué)的作業(yè)內(nèi)容。2017—2018學(xué)年的個(gè)人作業(yè),相比前兩年增加了個(gè)人編碼訓(xùn)練和個(gè)人技術(shù)博客。此舉一方面進(jìn)一步加強(qiáng)對(duì)學(xué)生編碼開發(fā)能力的訓(xùn)練;另一方面,針對(duì)學(xué)生在團(tuán)隊(duì)項(xiàng)目過程中學(xué)習(xí)掌握的新技術(shù),累積沉淀形成技術(shù)博客,提高學(xué)生的軟件技術(shù)水平。
表3 2017—2018學(xué)年軟件工程實(shí)踐課程團(tuán)隊(duì)作業(yè)時(shí)間規(guī)劃
實(shí)踐證明,軟件工程實(shí)踐課程的教學(xué)改革意義重大,效果顯著。通過修訂課程教學(xué)大綱,完善課程頂層設(shè)計(jì),明確課程教學(xué)要培養(yǎng)學(xué)生解決復(fù)雜工程問題的軟件能力。在此基礎(chǔ)上,通過改變課程作業(yè)模式,明確作業(yè)與各項(xiàng)軟件能力的關(guān)聯(lián),在“做中學(xué)”。通過一系列由易到難、持續(xù)不斷的作業(yè)訓(xùn)練,全面訓(xùn)練學(xué)生的基礎(chǔ)能力、專業(yè)能力和直接的軟件工程能力,實(shí)現(xiàn)了課程對(duì)學(xué)生解決復(fù)雜工程問題軟件能力的培養(yǎng)。在新的課程作業(yè)模式下,學(xué)生每周花費(fèi)在課程作業(yè)的時(shí)間平均約18小時(shí),一學(xué)期代碼量人均 2 000余行。與此同時(shí),每周花費(fèi)時(shí)間長(zhǎng)短以及代碼量多少,與最終的成績(jī)并不相關(guān),影響最終成績(jī)的是“質(zhì)”而非“量”。此外,基礎(chǔ)較弱的學(xué)生普遍反映入門較難,這也表明改革后的作業(yè)難度有所增加,從另一個(gè)角度體現(xiàn)出課程對(duì)于學(xué)生訓(xùn)練軟件能力的價(jià)值。
通過改革考核評(píng)價(jià)方式,根據(jù)持續(xù)性的過程考核和學(xué)生課后評(píng)價(jià)結(jié)果,一方面反映學(xué)生對(duì)解決復(fù)雜工程問題軟件能力的掌握,另一方面有利于課程教學(xué)團(tuán)隊(duì)總結(jié)教學(xué)過程的經(jīng)驗(yàn)和教訓(xùn),實(shí)現(xiàn)對(duì)課程的迭代優(yōu)化,從而更好地為下一屆學(xué)生服務(wù)。對(duì)在課程改革前和改革后兩種教學(xué)模式下參加課程的學(xué)生進(jìn)行課后軟件能力調(diào)查,學(xué)生對(duì)自己在課程學(xué)習(xí)后的軟件能力評(píng)價(jià)見表4。對(duì)比改革前后參加課程的學(xué)生在課后的自我能力評(píng)價(jià)結(jié)果,可以看出軟件工程實(shí)踐課程的改革具有明顯的效果。
工程教育認(rèn)證的核心理念是“以學(xué)生為中心、以產(chǎn)出為導(dǎo)向”,要求認(rèn)證專業(yè)應(yīng)著重培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力。工程教育認(rèn)證驅(qū)動(dòng)了計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的持續(xù)改進(jìn)。作為專業(yè)的核心主干課程,軟件工程實(shí)踐的課程改革,在3年的認(rèn)證持續(xù)改進(jìn)中,進(jìn)行了重點(diǎn)推進(jìn)和落實(shí)。軟件工程實(shí)踐課程改革,圍繞培養(yǎng)學(xué)生在復(fù)雜工程活動(dòng)中解決復(fù)雜工程問題的軟件能力,實(shí)施了修訂課程大綱、改變作業(yè)模式、改革考核評(píng)價(jià)方式等改革措施,創(chuàng)新地將作業(yè)與具體的軟件能力關(guān)聯(lián)。通過不斷進(jìn)行個(gè)人、結(jié)對(duì)和團(tuán)隊(duì)作業(yè)訓(xùn)練,有針對(duì)性地培養(yǎng)各項(xiàng)軟件能力,并通過考核評(píng)價(jià),反映學(xué)生能力的提升程度,迭代優(yōu)化課程教學(xué)。相比改革前的軟件工程實(shí)踐課程,改革后的軟件工程實(shí)踐課程,緊緊圍繞促進(jìn)專業(yè)畢業(yè)要求的達(dá)成,堅(jiān)持“以學(xué)生為中心、以產(chǎn)出為導(dǎo)向”,抓住針對(duì)學(xué)生解決復(fù)雜工程問題能力培養(yǎng)的“牛鼻子”,扎實(shí)做好課程教學(xué)質(zhì)量和學(xué)生軟件工程能力掌握的持續(xù)提升,促進(jìn)畢業(yè)要求的達(dá)成,進(jìn)而支撐專業(yè)培養(yǎng)目標(biāo)的最終實(shí)現(xiàn)。
表4 學(xué)生課后軟件能力自評(píng)平均得分