遲殿委 殷晨 喬立龍
摘 要:文章針對高職院校軟件編程實(shí)踐類課程傳統(tǒng)的項(xiàng)目驅(qū)動(dòng)教學(xué)模式存在的問題,提出基于軟件工程學(xué)科的生命周期模型理論為依據(jù),能根據(jù)課程不同授課階段的項(xiàng)目規(guī)模動(dòng)態(tài)匹配軟件開發(fā)模型,進(jìn)而設(shè)計(jì)相應(yīng)教學(xué)過程實(shí)施方案,體現(xiàn)“項(xiàng)目驅(qū)動(dòng)教學(xué)、學(xué)生主導(dǎo)項(xiàng)目、貼近企業(yè)崗位實(shí)際需求”的理念。文章基于相同的理念分別設(shè)計(jì)了線下、線上兩套教學(xué)方案,有利于形成線上教學(xué)、線下教學(xué)兩個(gè)平行的教學(xué)體系,并可實(shí)現(xiàn)二者之間的無縫切換,為采用混合式教學(xué)提供實(shí)踐參考,也對出現(xiàn)重大突發(fā)狀況時(shí)線下、線上教學(xué)之間的無縫切換提供可行的解決方案。
關(guān)鍵詞:教學(xué)模式;軟件工程;項(xiàng)目驅(qū)動(dòng);線下線上;可切換
0 引言
高職軟件編程實(shí)踐類型的課程具備較強(qiáng)的實(shí)踐性和應(yīng)用性[1],以培養(yǎng)具備軟件工程師素質(zhì)的應(yīng)用型人才為目標(biāo)的。因此,以項(xiàng)目驅(qū)動(dòng)的教學(xué)方法貫穿人才培養(yǎng)全過程就成了必然選擇[2-3]。
目前,大部分高職院校的教學(xué)模式已經(jīng)由傳統(tǒng)講授式轉(zhuǎn)變?yōu)槔碚摻虒W(xué)和實(shí)踐教學(xué)的結(jié)合。部分高職院校已經(jīng)采用項(xiàng)目驅(qū)動(dòng)教學(xué)的模式。但綜合國內(nèi)目前的研究現(xiàn)狀,其中部分研究提出了項(xiàng)目驅(qū)動(dòng)教學(xué)總體思路,但沒有具體的可實(shí)施的教學(xué)方案;有的研究雖然提供了具體教學(xué)過程方案,但沒有考慮與軟件開發(fā)實(shí)際流程相匹配??傊挥庙?xiàng)目案例的驅(qū)動(dòng),卻不將軟件項(xiàng)目本身具有軟件工程學(xué)科的典型流程與教學(xué)過程結(jié)合起來,在培養(yǎng)企業(yè)需要的軟件工程師方面就會(huì)存在一定偏差。
同時(shí),教學(xué)過程方案的設(shè)計(jì)還需要考慮完全線上教學(xué)的情況,使其在類似“新型冠狀病毒”疫情這樣的突發(fā)情況下能夠順利切換到線上教學(xué),突發(fā)狀況解除后能夠順利過渡到線下教學(xué),形成兩個(gè)平行可切換的教學(xué)體系。
1? ? 線下教學(xué)過程實(shí)施方案設(shè)計(jì)
高職軟件編程類課程的線下教學(xué)一般包含兩種不同階段:日常課堂講授階段和綜合實(shí)訓(xùn)階段。以下基于這兩個(gè)階段采用的項(xiàng)目案例特點(diǎn)分別為這兩個(gè)階段設(shè)計(jì)與之對應(yīng)的教學(xué)過程實(shí)施方案。
1.1? 日常新知識講授階段的項(xiàng)目驅(qū)動(dòng)教學(xué)過程設(shè)計(jì)方案
一般日常教學(xué)階段都是使用貫穿項(xiàng)目來驅(qū)動(dòng)某個(gè)章節(jié)或單元的教學(xué)進(jìn)程。這種項(xiàng)目特點(diǎn)是規(guī)模不大,用項(xiàng)目的某個(gè)功能模塊驅(qū)動(dòng)新知識點(diǎn)的講解,隨著課程推進(jìn),項(xiàng)目不斷完善直至全部完成。
課堂講授節(jié)點(diǎn)對軟件開發(fā)相關(guān)文檔編寫要求較少,對團(tuán)隊(duì)合作溝通、快速實(shí)現(xiàn)功能要求較高。符合這樣特點(diǎn)的軟件開發(fā)模型是“敏捷開發(fā)模型”。敏捷開發(fā)能在短時(shí)間內(nèi)開發(fā)出可運(yùn)行的系統(tǒng)[4],更加重視溝通能力和團(tuán)隊(duì)合作意識的培養(yǎng)。
根據(jù)敏捷開發(fā)模型的思想,設(shè)計(jì)的線下教學(xué)過程實(shí)施方案如圖1所示。
具體實(shí)施步驟如下:
(1)小組劃分。項(xiàng)目驅(qū)動(dòng)教學(xué)模式需要首先進(jìn)行項(xiàng)目分組,模擬企業(yè)項(xiàng)目開發(fā)團(tuán)隊(duì)構(gòu)成。小組規(guī)模一般建議每組4~6人,在日常教學(xué)中分組的作用主要體現(xiàn)為協(xié)同學(xué)習(xí)、協(xié)同開發(fā);而在階段實(shí)訓(xùn)和綜合實(shí)訓(xùn)中,作用則體現(xiàn)為團(tuán)隊(duì)開發(fā)、分工合作。
(2)項(xiàng)目效果演示和需求講解。教師對即將要講解的知識點(diǎn)對應(yīng)的功能模塊效果進(jìn)行演示,對具體需求進(jìn)行講解,引入學(xué)生對如何實(shí)現(xiàn)這樣的效果的思考。
(3)組內(nèi)成員對功能需求進(jìn)行整理,重點(diǎn)對實(shí)現(xiàn)思路進(jìn)行充分討論。敏捷開發(fā)思想強(qiáng)調(diào)人的主觀能動(dòng)性,有利于發(fā)現(xiàn)問題和提出建議。小組討論后將待解決的問題記錄下來,一般情況下這些問題與即將講授的新知識點(diǎn)有很高的相關(guān)性。
(4)匯集各組問題形成知識點(diǎn),教師開啟講授模式。教師匯集學(xué)生普遍存在的問題,開始講解相關(guān)新知識點(diǎn)。
(5)項(xiàng)目小組開發(fā)實(shí)踐階段。
首先,項(xiàng)目組集體確定軟件開發(fā)的基本編程規(guī)范和開發(fā)原則,基本保證不同組員開發(fā)的代碼具備一致的編程風(fēng)格。
然后,進(jìn)入編程實(shí)踐階段。由于日常教學(xué)功能案例規(guī)模較小,考慮采用敏捷開發(fā)模型中的結(jié)對編程方法。即2個(gè)同學(xué)形成一對,在一臺計(jì)算機(jī)上共同編寫代碼,解決同一個(gè)問題,這種方式在提高學(xué)生編程能力的同時(shí)也增強(qiáng)了團(tuán)隊(duì)合作意識。
(6)學(xué)生演示功能模塊的實(shí)現(xiàn)效果,教師總結(jié)。教師對項(xiàng)目組實(shí)現(xiàn)的功能進(jìn)行評價(jià),主要從基本需求完成度、界面和編碼規(guī)范、有無創(chuàng)新三個(gè)層級去評價(jià)。并對同學(xué)們普遍存在的問題進(jìn)行重點(diǎn)講解,起到總結(jié)課講授階段知識點(diǎn)的作用。
1.2? 課程綜合實(shí)訓(xùn)階段的項(xiàng)目驅(qū)動(dòng)教學(xué)過程設(shè)計(jì)方案
綜合實(shí)訓(xùn)項(xiàng)目,一般選擇規(guī)模和復(fù)雜度接近企業(yè)真實(shí)開發(fā)項(xiàng)目。項(xiàng)目特點(diǎn)是業(yè)務(wù)比較復(fù)雜,但需求相對穩(wěn)定,軟件開發(fā)每個(gè)環(huán)節(jié)都需要清晰的項(xiàng)目文檔,符合這些特點(diǎn)的項(xiàng)目考慮采用軟件工程中典型瀑布開發(fā)模型。
在瀑布模型中,軟件開發(fā)的各項(xiàng)活動(dòng)嚴(yán)格按照線性方式進(jìn)行,當(dāng)前活動(dòng)接受上一項(xiàng)活動(dòng)的工作結(jié)果,實(shí)施完成所需的工作內(nèi)容。
軟件編程類課程線下綜合實(shí)訓(xùn)階段教學(xué)過程實(shí)施方案設(shè)計(jì)如圖2所示。
具體的教學(xué)過程實(shí)施步驟闡述如下:
(1)項(xiàng)目小組劃分。這里沿用日常教學(xué)階段的小組劃分,因其成員在日常教學(xué)中形成了較好的默契度,因而可以提高本階段學(xué)生的開發(fā)效率和溝通效率。
(2)教師進(jìn)行需求講解或項(xiàng)目總體效果演示時(shí),應(yīng)盡量采取項(xiàng)目直觀效果演示,并做概要性需求講解,具體需求交給項(xiàng)目小組根據(jù)演示系統(tǒng)自行整理和挖掘。
(3)需求分析階段。各小組開展需求討論,形成需求說明文檔提交給老師審查。教師根據(jù)需求是否覆蓋了項(xiàng)目的所有功能模塊、核心功能描述是否準(zhǔn)確等方面來對小組需求文檔進(jìn)行評價(jià),并給出指導(dǎo)建議,學(xué)生根據(jù)評價(jià)結(jié)果選擇進(jìn)行需求調(diào)整或直接進(jìn)入設(shè)計(jì)階段。
(4)項(xiàng)目總體設(shè)計(jì)階段。項(xiàng)目小組討論確定項(xiàng)目的技術(shù)框架、系統(tǒng)功能結(jié)構(gòu)、功能用例設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、人員分工等。該階段結(jié)束后教師根據(jù)設(shè)計(jì)文檔對各組總體設(shè)計(jì)進(jìn)行監(jiān)控和評價(jià),并給出指導(dǎo)意見,以促進(jìn)項(xiàng)目小組進(jìn)行調(diào)整。
(5)項(xiàng)目實(shí)際開發(fā)階段。開發(fā)階段包含編碼、單元測試和集成測試。小組團(tuán)隊(duì)開發(fā)的過程中每個(gè)組員密切合作來推進(jìn)項(xiàng)目的進(jìn)行。教師在這個(gè)階段主要起到輔助指導(dǎo)和各項(xiàng)目組整體進(jìn)度監(jiān)控的作用。
(6)學(xué)生項(xiàng)目演示、答辯,教師總結(jié)并做出評價(jià)。教師扮演企業(yè)驗(yàn)收項(xiàng)目的用戶角色。主要從基本需求完成度、界面和編碼規(guī)范、有無創(chuàng)新三個(gè)層級去評價(jià)。對基本需求都沒有完成的小組教師應(yīng)協(xié)助找出原因,并進(jìn)行教學(xué)反思。
最后,老師總結(jié)項(xiàng)目中涉及的教學(xué)目標(biāo)的知識點(diǎn),針對大家普遍存在的不足再做重點(diǎn)講解。
總之,綜合實(shí)訓(xùn)階段基于瀑布模型改造的教學(xué)過程中,在軟件開發(fā)的每個(gè)環(huán)節(jié)都有教師的參與,但主要是監(jiān)控和評價(jià)、輔助指導(dǎo),學(xué)生則完全經(jīng)歷了完整的軟件項(xiàng)目開發(fā)流程,有利于培養(yǎng)符合企業(yè)實(shí)際崗位需要的軟件工程師。
2 線上教學(xué)過程實(shí)施方案設(shè)計(jì)
考慮到線下教學(xué)和線上教學(xué)之間具備可切換性,線上教學(xué)的設(shè)計(jì)理念保持與線下教學(xué)一致。這使得線上教學(xué)的教學(xué)實(shí)施流程上與線下教學(xué)基本一致。
但線上教學(xué)中的實(shí)踐教學(xué)方面常面臨很多問題[5-6]。比如計(jì)算機(jī)硬件配置達(dá)不到,項(xiàng)目團(tuán)隊(duì)合作開發(fā)不易實(shí)施,項(xiàng)目實(shí)訓(xùn)過程和結(jié)果無法得到老師及時(shí)有效的監(jiān)控和評價(jià)等。所以需要對部分教學(xué)環(huán)節(jié)進(jìn)行再設(shè)計(jì),使其符合線上教學(xué)特點(diǎn),這樣就保證了線下教學(xué)和線上教學(xué)在教學(xué)流程上的一致性,同時(shí)也解決了線上實(shí)踐教學(xué)過程中存在的實(shí)際問題。
針對軟件編程類課程線上教學(xué)的特點(diǎn)和實(shí)際情況,線上教學(xué)采用“MOOC平臺+實(shí)訓(xùn)平臺”相結(jié)合的方式設(shè)計(jì)線上教學(xué)過程。
2.1? 日常課堂講授階段項(xiàng)目驅(qū)動(dòng)教學(xué)過程設(shè)計(jì)方案
在日常課堂講授階段采用與線下教學(xué)在該階段基本一致的教學(xué)過程實(shí)施方案,采用敏捷開發(fā)模型思想設(shè)計(jì)教學(xué)實(shí)施過程,如圖3所示。
與線下教學(xué)日常講授階段設(shè)計(jì)的教學(xué)過程相比,圖3所示的設(shè)計(jì)在基本流程節(jié)點(diǎn)上保持穩(wěn)定,但每個(gè)節(jié)點(diǎn)的具體實(shí)施上存在區(qū)別,具體步驟闡述如下:
(1)需求講解和演示階段,教師將演示和需求講解內(nèi)容錄成視頻并發(fā)布到職教云平臺的課前階段,學(xué)生觀看視頻。
(2)項(xiàng)目組學(xué)習(xí)課前需求,使用騰訊會(huì)議、QQ群視頻等方式進(jìn)行需求討論,梳理功能模塊的實(shí)現(xiàn)思路,將亟待解決的問題匯總做好記錄,方便在講授階段向老師反饋。
(3)課中直播講授階段。該階段教師通過在線直播方式進(jìn)行,教師根據(jù)學(xué)生反饋的問題開啟相關(guān)新知識模塊講解。
(4)小組團(tuán)隊(duì)開發(fā)階段。小組采用企業(yè)比較流行的團(tuán)隊(duì)開發(fā)工具,如git,svn,cvs等開放源代碼的版本控制系統(tǒng)。這樣可以實(shí)現(xiàn)多人共同開發(fā)同一個(gè)項(xiàng)目,既可以實(shí)現(xiàn)項(xiàng)目代碼版本的不斷更新和項(xiàng)目進(jìn)度的推進(jìn),開發(fā)階段可以在企業(yè)提供的實(shí)訓(xùn)平臺上完成,也可以使項(xiàng)目小組根據(jù)團(tuán)隊(duì)開發(fā)工具單獨(dú)創(chuàng)建一個(gè)項(xiàng)目。
(5)教師監(jiān)控小組作業(yè)并評價(jià)。每個(gè)小組提交項(xiàng)目作業(yè)到職教云平臺,或者如果實(shí)訓(xùn)平臺支持作業(yè)提交功能,也可以提交到實(shí)訓(xùn)平臺。教師需根據(jù)線上項(xiàng)目作業(yè)完成情況給予評價(jià)和反饋。
(6)直播回顧和總結(jié)。評價(jià)結(jié)束后,教師需要通過開啟直播,對在評價(jià)過程中反映出來的問題進(jìn)行總結(jié),并對整個(gè)項(xiàng)目涉及的“知識模塊”做總體回顧。
2.2? 綜合實(shí)訓(xùn)階段的項(xiàng)目驅(qū)動(dòng)線上教學(xué)過程設(shè)計(jì)方案
在綜合實(shí)訓(xùn)階段采用與線下教學(xué)在該階段基本一致的教學(xué)過程實(shí)施方案。瀑布開發(fā)模型設(shè)計(jì)教學(xué)過程,如圖4所示。
圖4所示的在線教學(xué)設(shè)計(jì)與線下教學(xué)綜合實(shí)訓(xùn)階段設(shè)計(jì)的教學(xué)過程流程基本一致,但具體環(huán)節(jié)的實(shí)施方法上存在區(qū)別:
(1)綜合實(shí)訓(xùn)項(xiàng)目需求講解。教師在該階段通過在線直播或錄課方式講解綜合實(shí)訓(xùn)項(xiàng)目的功能需求,最好給學(xué)生具體效果演示。直播需要錄像,以供學(xué)生課后反復(fù)觀看,討論。
(2)需求討論和文檔形成階段。各項(xiàng)目小組通過在線會(huì)議討論項(xiàng)目需求,按照軟件工程的需求文檔規(guī)范編寫需求文檔。
(3)提交需求文檔,教師評價(jià)和反饋。教師在職教云平臺提前設(shè)置需求階段作業(yè),項(xiàng)目小組須在截止時(shí)間之前完成需求文檔并提交作業(yè),教師在線批閱,根據(jù)需求文檔是否準(zhǔn)確、完整覆蓋了項(xiàng)目的核心功能,給出通過或返修的意見。如果評價(jià)通過,項(xiàng)目小組即刻進(jìn)入項(xiàng)目總體設(shè)計(jì)階段。否則,返回步驟(2),根據(jù)老師的評價(jià)意見組織在線討論,并再次完善需求文檔重新提交。
(4)項(xiàng)目總體設(shè)計(jì)討論和文檔形成階段。各項(xiàng)目小組通過在線會(huì)議根據(jù)項(xiàng)目需求討論項(xiàng)目的功能模塊劃分和關(guān)系,數(shù)據(jù)庫模型設(shè)計(jì)和系統(tǒng)架構(gòu)選擇等,形成總體設(shè)計(jì)文檔,即軟件工程中的概要設(shè)計(jì)文檔。
(5)提交設(shè)計(jì)文檔,教師評價(jià)和反饋。教師在職教云平臺提前設(shè)置設(shè)計(jì)階段作業(yè),項(xiàng)目小組須在截止時(shí)間之前完成設(shè)計(jì)文檔并提交作業(yè),教師在線批閱,根據(jù)設(shè)計(jì)文檔是否準(zhǔn)確、完整表達(dá)了需求,系統(tǒng)架構(gòu)和技術(shù)選型是否合理,并給出通過或返修的意見。
(6)項(xiàng)目團(tuán)隊(duì)基于在線實(shí)訓(xùn)平臺開發(fā)階段。學(xué)生登錄在線實(shí)訓(xùn)平臺,在已經(jīng)搭建好開發(fā)環(huán)境的虛擬機(jī)上進(jìn)行開發(fā),教師通過登錄實(shí)訓(xùn)平臺可以隨時(shí)查看學(xué)生目前開發(fā)進(jìn)度,可以及時(shí)進(jìn)行監(jiān)控,并在必要時(shí)穿插直播指導(dǎo)以保障項(xiàng)目的按時(shí)順利進(jìn)行。
(7)項(xiàng)目組基于項(xiàng)目的最新版本進(jìn)行集成測試,并按照功能模塊的初始需求進(jìn)行測試驗(yàn)證,將出現(xiàn)問題的代碼及時(shí)與對應(yīng)模塊的負(fù)責(zé)人溝通,討論修改。集成測試完畢,項(xiàng)目組準(zhǔn)備答辯材料,進(jìn)入項(xiàng)目展示和教師評價(jià)階段。
(8)直播答辯和教師評價(jià)階段。通過在線直播共享屏幕方式,項(xiàng)目組演示項(xiàng)目的最終效果并答辯。教師從需求完成度、項(xiàng)目過程文檔和代碼規(guī)范、是否有創(chuàng)新三個(gè)層次對項(xiàng)目進(jìn)行評價(jià),并給出公正的評分。
(9)項(xiàng)目組針對教師提出的評價(jià)和建議進(jìn)行完善,并進(jìn)行項(xiàng)目拓展。
3? ? 結(jié)語
本文基于軟件開發(fā)周期模型和軟件編程類課程不同授課節(jié)點(diǎn)的項(xiàng)目特點(diǎn),分別為線上教學(xué)、線下教學(xué)設(shè)計(jì)了一套具體可行的教學(xué)實(shí)施方案。方案符合企業(yè)軟件開發(fā)的典型流程,充分考慮到學(xué)生在實(shí)踐教學(xué)中的主體地位,這有利于高職院校培養(yǎng)符合軟件工程師素質(zhì)的應(yīng)用型人才。由于兩套方案是基于相同的設(shè)計(jì)理念,只是實(shí)施方式不同。所以具備可切換性,這對類似“新型冠狀病毒”疫情這樣的突發(fā)狀況導(dǎo)致的被迫線上教學(xué)提供參考方案,也對疫情前后線上、線下教學(xué)的順暢過渡具有一定的參考價(jià)值。
[參考文獻(xiàn)]
[1]石秦峰.基于OBE的程序設(shè)計(jì)類課程教學(xué)改革探索[J].計(jì)算機(jī)教育,2016(3):106-110.
[2]欒蘭.應(yīng)用型本科專業(yè)基于校企合作的項(xiàng)目驅(qū)動(dòng)式教學(xué)模式研究[J].教育現(xiàn)代化,2018(46):34-35.
[3]楊紹蘭,張新富.“興趣主導(dǎo)、項(xiàng)目驅(qū)動(dòng)式教學(xué)”推動(dòng)應(yīng)用型人才培養(yǎng)[J].高教學(xué)刊,2018(22):77-79.
[4]殷海明,魏遠(yuǎn)旺.本科院校軟件工程教學(xué)模式探索[J].嘉興學(xué)院學(xué)報(bào),2013(3):133-136
[5]厲蘭潔,廖雪花.基于SPOC的C語言程序設(shè)計(jì)課程教學(xué)改革研究[J].計(jì)算機(jī)教育,2016(1) :74-76.
[6]徐勝舟.以學(xué)科競賽驅(qū)動(dòng)程序設(shè)計(jì)類課程教學(xué)改革研究[J].軟件導(dǎo)刊,2015(5):180-182.
(編輯 姚 鑫)