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