彭毅弘 程鈴鈁
摘 要: 軟件工程是計算機(jī)類專業(yè)的一門核心專業(yè)課程,由于該課程具有知識域廣泛、更新速度快、實(shí)踐性強(qiáng)等特點(diǎn),導(dǎo)致不少高校的教學(xué)效果不太理想。通過分析該課程教學(xué)中遇到的問題和難點(diǎn),結(jié)合教學(xué)實(shí)踐和企業(yè)研發(fā)經(jīng)驗(yàn),采用逆向課程設(shè)計模式,并融合MOOC混合式教學(xué)方式,從課程目標(biāo)、評價標(biāo)準(zhǔn)、教學(xué)內(nèi)容與教學(xué)方法上進(jìn)行了探索與改革。實(shí)踐證明,該模式極大地激發(fā)了學(xué)生的主觀能動性,啟發(fā)了學(xué)生對職業(yè)發(fā)展的思考,取得了良好的教學(xué)效果。
關(guān)鍵詞: 軟件工程; 逆向課程設(shè)計模式; MOOC; 混合式教學(xué)
中圖分類號:G642 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2018)07-103-04
Abstract: Software engineering is a core professional course for computer majors, but the teaching effect is less impressive in many universities because of the characteristics of extensive knowledge field, fast updating speed and strong practice in this course. By analysing the problems and difficulties encountered in the course teaching, and combining teaching practice and enterprise research and development experience, using the reverse course design mode fusing MOOC blending learning, the reform of the course on the curriculum objectives, evaluation standards , teaching contents and teaching methods etc. is explored. The practice has indicated that this mode has greatly stimulated the students' subjective initiative, inspired the students' thinking on career development, and achieved good teaching results.
Key words: software engineering; reverse course design mode; MOOC; blending learning
0 引言
軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)軟件的學(xué)科,是培養(yǎng)學(xué)生計算機(jī)理論與實(shí)踐能力的一門關(guān)鍵課程。軟件工程本身是比較復(fù)雜的系統(tǒng)工程,而且理論性與實(shí)踐性并重,課程教學(xué)中會遇到很多問題。為滿足應(yīng)用型本科人才培養(yǎng)要求,促進(jìn)計算機(jī)專業(yè)課程體系改革,提升軟件工程課程教學(xué)效果,需要研究和探討軟件工程的教學(xué)方法。
1 軟件工程課程特點(diǎn)與教學(xué)難點(diǎn)
下面從軟件工程課程特點(diǎn)的角度分析該課程的教學(xué)難點(diǎn)。
⑴ 從課程內(nèi)容上看,軟件工程的原理眾多,根據(jù)IEEE-CS和ACM于2014年發(fā)布的軟件工程知識體系SWEBOKv3[1],軟件工程課程共15個知識域,涉及7門學(xué)科,系統(tǒng)性、交叉性和綜合性都非常明顯。在有限的課程學(xué)時內(nèi)如何使學(xué)生較好的掌握這么多知識點(diǎn),對教師而言是一個挑戰(zhàn)。
⑵ 從課程的時效性看,軟件工程是一門發(fā)展極為迅速的學(xué)科,物聯(lián)網(wǎng)、云計算、人工智能等新一代IT產(chǎn)業(yè)領(lǐng)域發(fā)展迅猛,產(chǎn)生了很多新理論、新技術(shù)和新崗位,相關(guān)知識的更新速度遠(yuǎn)遠(yuǎn)超過了教材的更新速度。另一方面,高校教師一直處于高校教學(xué)體系中,如果沒有實(shí)際參與企業(yè)項(xiàng)目研發(fā)或密切跟進(jìn)最新企業(yè)人才需求,就會導(dǎo)致教學(xué)內(nèi)容與實(shí)際脫節(jié)。
⑶ 從課程的實(shí)踐性看,軟件工程課程涉及的15個知識域中有11個屬于實(shí)踐類別,意味著這門課程對實(shí)踐性要求很高,具有很強(qiáng)的工程應(yīng)用特征。目前對于該課程在提升實(shí)踐教學(xué)效果的改革上,比較主流的是采用項(xiàng)目驅(qū)動的教學(xué)模式[2],有很好的實(shí)訓(xùn)效果。但值得注意的是,項(xiàng)目驅(qū)動的教學(xué)模式對教師所選的軟件項(xiàng)目要求很高,既不能過于龐大,也不能過于簡單,同時需要具備綜合性、針對性和可拓展性,因此要求教師對項(xiàng)目有很強(qiáng)的把控能力和設(shè)計能力。
針對以上教學(xué)難點(diǎn),結(jié)合多年軟件工程教學(xué)經(jīng)驗(yàn)以及與企事業(yè)緊密合作的平臺,對軟件工程課程教學(xué)模式進(jìn)行了多方面的研究和改造,引入逆向課程設(shè)計模式,同時融入混合式MOOC教學(xué)方式,激發(fā)學(xué)生的內(nèi)在學(xué)習(xí)動力,實(shí)現(xiàn)有效的學(xué)習(xí)。
2 逆向課程設(shè)計模式的特點(diǎn)和應(yīng)用
2.1 逆向課程設(shè)計模式的理念和特點(diǎn)
逆向課程設(shè)計模式是美國教學(xué)領(lǐng)域?qū)<彝鹚梗℅rant Wiggins)和麥克泰(Jay McTighe)共同提出的一種新的課程設(shè)計理念,針對傳統(tǒng)教學(xué)模式的不足,強(qiáng)調(diào)采用與常規(guī)課程設(shè)計相逆的方式,以達(dá)到使學(xué)生追求并實(shí)現(xiàn)對所學(xué)內(nèi)容理解的目標(biāo)[3]。
傳統(tǒng)的課程設(shè)計是根據(jù)教材內(nèi)容和大綱的,導(dǎo)致在教學(xué)設(shè)計過程中很容易會忽略以學(xué)生為主體的重要性。為了提升教學(xué)設(shè)計的有效性,采用與傳統(tǒng)設(shè)計方式相反的做法,在教學(xué)設(shè)計中,教師首先要明確教學(xué)目標(biāo),然后依據(jù)目標(biāo)設(shè)計教學(xué)活動。逆向設(shè)計具有非常明確的目標(biāo)指向,能更加有效地推進(jìn)大學(xué)實(shí)現(xiàn)有效教學(xué),培養(yǎng)學(xué)生的創(chuàng)新思維和學(xué)習(xí)主動性。逆向課程原理的一個顯著特征就是強(qiáng)調(diào)評價, 評價優(yōu)先于課程組織和實(shí)施,而教學(xué)內(nèi)容和方法的安排處于次要的地位,是實(shí)現(xiàn)教學(xué)目標(biāo)的策略,其最終目標(biāo)是如何行之有效的使教學(xué)達(dá)到最有效的狀態(tài)。
2.2 逆向課程設(shè)計模式的應(yīng)用
逆向教學(xué)的課程設(shè)計由以下三個階段組成:先確定學(xué)習(xí)的預(yù)期結(jié)果;再明確預(yù)期結(jié)果達(dá)到的證據(jù);最后設(shè)計教學(xué)活動以發(fā)現(xiàn)證據(jù)[4]。其應(yīng)用在軟件工程課程設(shè)計中,有以下基本流程。
⑴ 確定課程目標(biāo)
軟件工程課程必須為學(xué)生將來走向工作崗位提供系統(tǒng)性、實(shí)踐性的指導(dǎo),課程目標(biāo)的設(shè)定不應(yīng)局限于教材內(nèi)容上,而應(yīng)該把關(guān)注點(diǎn)放在三個對接上:專業(yè)與產(chǎn)業(yè)企業(yè)崗位對接、課程內(nèi)容與職業(yè)標(biāo)準(zhǔn)對接、教學(xué)過程與工作過程對接[5]?;诼殬I(yè)崗位能力的教學(xué)目標(biāo)的確定先要深入到企業(yè)用人部門和崗位中做調(diào)研,分析和總結(jié)出典型的崗位技能要求,結(jié)合教材內(nèi)容,最終確定課程教學(xué)目標(biāo),即在學(xué)習(xí)過程中了解和掌握相關(guān)職業(yè)崗位所必須的軟件方法、技術(shù)和思想,最終獲取可從事該職業(yè)崗位的基礎(chǔ)技能和可持續(xù)發(fā)展能力。表1是根據(jù)目前軟件行業(yè)的崗位需求做調(diào)研和分析后歸納出的崗位劃分和技能需求,并羅列了與此對應(yīng)的軟件工程課程中的知識點(diǎn)。
為達(dá)到培養(yǎng)適合企業(yè)崗位需求的應(yīng)用型人才的目標(biāo),就必須根據(jù)職業(yè)崗位的技能要求去設(shè)計評價體系和教學(xué)內(nèi)容。
⑵ 制定評價標(biāo)準(zhǔn)
當(dāng)明確了教學(xué)目標(biāo)后,并不是馬上開展教學(xué)過程和內(nèi)容的設(shè)計,而是先明確教學(xué)的評價標(biāo)準(zhǔn),有了明確的評價標(biāo)準(zhǔn),才開展教學(xué)活動和內(nèi)容的設(shè)計。評價標(biāo)準(zhǔn)圍繞教學(xué)目標(biāo)展開,基于職業(yè)崗位所需的關(guān)鍵技能點(diǎn)進(jìn)行設(shè)計,對每個知識域的掌握度都有明確的輸出物和評價要求,下面羅列主要知識領(lǐng)域的技能評價標(biāo)準(zhǔn)。
軟件需求:撰寫軟件需求說明書、制作軟件原型作品、使用軟件需求管理軟件;
軟件設(shè)計:合格的軟件作品、撰寫軟件設(shè)計說明書、提供數(shù)據(jù)庫模型圖、使用軟件版本管理軟件;
軟件測試:設(shè)計測試用例、使用測試工具、使用測試管理軟件、撰寫軟件使用說明書;
軟件維護(hù):撰寫維護(hù)記錄、合格的升級版軟件作品;
軟件配置管理:掌握軟件的安裝、配置和測試;
軟件工程管理:使用項(xiàng)目管理軟件、撰寫項(xiàng)目計劃說明書、管理和推進(jìn)項(xiàng)目小組的開發(fā)活動。
⑶ 制定教學(xué)計劃,確定教學(xué)內(nèi)容。
單從教學(xué)內(nèi)容看,表1提供的7種職業(yè)崗位所需的技能幾乎都涵蓋了軟件工程教材的所有重點(diǎn)章節(jié)和知識點(diǎn),但反過來看,教材的知識點(diǎn)并不能涵蓋掌握這些崗位技能所需的最新方法、工具和思想,因此需要對授課內(nèi)容進(jìn)行更新和補(bǔ)充。軟件工程的理論教學(xué)采用面向全生命周期軟件開發(fā)過程的教學(xué)流程,可以在每個階段增加必要的新方法和工具,如圖1所示。
3 融入MOOC的教學(xué)方法
MOOC是 Massive Open Online Course的縮寫,意即“大規(guī)模網(wǎng)絡(luò)開放課程”,采用5~15分鐘短視頻課程模式,將課程內(nèi)容根據(jù)知識點(diǎn)分解,擁有在線學(xué)習(xí)有效性、學(xué)伴交互協(xié)作、評價多樣化等核心學(xué)習(xí)機(jī)制。鑒于軟件工程理論知識的廣泛性和抽象性,需要進(jìn)一步簡化教學(xué)環(huán)節(jié)和教學(xué)內(nèi)容,把關(guān)乎學(xué)生終身受用的“核心知識”講透即可,課堂上應(yīng)更多地啟發(fā)學(xué)生去思考去辯證,而MOOC正好順應(yīng)了這種教學(xué)本質(zhì),因此在軟件工程的理論教學(xué)中融入了MOOC教學(xué)方法。
采用MOOC的授課方式不能完全照搬國外模式,雖然學(xué)生可以通過MOOC平臺自己選擇學(xué)習(xí)內(nèi)容,但地方應(yīng)用型高校學(xué)生的基礎(chǔ)相對薄弱,學(xué)習(xí)主動性和積極性不足表現(xiàn)較為突出,如果完全依靠學(xué)生的自我管理,就會導(dǎo)致MOOC課程的完課率很低。因此需要將線上MOOC與線下課堂授課融合在一起,改造軟件工程理論授課方式。具體流程是:提前布置學(xué)生課后利用MOOC平臺學(xué)習(xí)下一次課的知識點(diǎn),知識點(diǎn)不需要涵蓋所有的知識域,指定最核心的1~2個知識點(diǎn)即可。同時根據(jù)核心知識點(diǎn)布置下一次課需要解決的問題,這個環(huán)節(jié)需要學(xué)生自行查閱資料,提前做好準(zhǔn)備。在每次上課的三個課時中,第一課時用于講解本次課程的章節(jié)內(nèi)容,由于核心知識點(diǎn)已經(jīng)提前布置學(xué)生利用MOOC平臺學(xué)習(xí),學(xué)生能更快的理解和接受,因此課堂上可以有更多的對新技術(shù)、新方法、新思想的介紹和學(xué)習(xí)。第二課時安排課堂討論,圍繞事先布置好的問題進(jìn)行分組討論和交流,過程中重視學(xué)生的辯證思想,給予他們最大程度的鼓勵和推進(jìn)。學(xué)生也可將他們在課程中遇到的問題拋出來討論,老師給予適當(dāng)?shù)闹敢徒獯?。第三課時主要用于作業(yè)、測試和項(xiàng)目檢查,確保每堂課都有明確的輸入和輸出。
相對于以教師面授為特征的傳統(tǒng)課程,該課程修改后的教學(xué)設(shè)計更突出以學(xué)習(xí)為中心和個別化學(xué)習(xí)的教學(xué)理念,不僅讓學(xué)生掌握了必要的知識技能,更拓寬了他們的專業(yè)視野,幫助他們成長為更好的自主學(xué)習(xí)者。
4 應(yīng)用成效
以2014級計算機(jī)專業(yè)作為實(shí)驗(yàn)組,采用融合MOOC的逆向課程設(shè)計模式進(jìn)行教學(xué),2013級計算機(jī)專業(yè)作為對照組,采用傳統(tǒng)的教學(xué)模式進(jìn)行教學(xué)。抽樣人數(shù)時,去掉高考成績最差和最優(yōu)的4位同學(xué),保持學(xué)生平均水平一致。授課教師為同一教師,筆試試卷題型和難易度相當(dāng),軟件作品的分?jǐn)?shù)經(jīng)過系數(shù)轉(zhuǎn)換保持復(fù)雜度和難易度相當(dāng)。在學(xué)時、上課環(huán)境、問卷調(diào)查內(nèi)容等方面均保持一致,保證了實(shí)驗(yàn)結(jié)果的有效性。
從表3可以看出,實(shí)驗(yàn)組的成績無論是理論成績還是實(shí)踐成績,均比對照組的要高,而且學(xué)生滿意度也更高。在問卷調(diào)查中,2013級學(xué)生提出的建議中,占比最高的是建議老師減少抽象理論的講解,增加實(shí)際案例的介紹和討論,而2014級學(xué)生提出的建議占比最高的是希望實(shí)踐項(xiàng)目中能得到老師更多的指導(dǎo),這說明2014級學(xué)生對實(shí)踐項(xiàng)目有了更多的學(xué)習(xí)欲望。同時2014級學(xué)生明確表示對未來自己的職業(yè)方向有了更深的認(rèn)識,希望能通過自己的努力去提升就業(yè)能力。由此可見融合MOOC的逆向課程設(shè)計模式使得學(xué)生很明確的知道為何學(xué)習(xí)軟件工程,要掌握何種技能,可以使用哪些方法和工具,激發(fā)了學(xué)生對軟件開發(fā)的學(xué)習(xí)興趣,變被動為主動,開始認(rèn)真思考自己的職業(yè)方向并為之努力。
5 結(jié)束語
軟件工程課程的特點(diǎn)決定了這門課程需要在教學(xué)模式上做更多的改革和創(chuàng)新,采用逆向課程設(shè)計模式可以使得教學(xué)內(nèi)容和手段成為發(fā)現(xiàn)證據(jù)的過程,而評價成為教學(xué)活動設(shè)計的前提和基礎(chǔ),教學(xué)和評價兩者形成了“教學(xué)-評價-教學(xué)”的螺旋式上升環(huán),從而使得課程目標(biāo)不斷接近達(dá)成。在理論教學(xué)方法上采用線上MOOC授課和線下面授方式的混合式教學(xué)方式,提升了教學(xué)效率和學(xué)生主觀能動性。實(shí)踐證明,在軟件工程課程中采用融合MOOC的逆向課程設(shè)計模式取得了良好的教學(xué)效果,有效解決了以往軟件工程教學(xué)中存在的問題。在軟件工程實(shí)踐環(huán)節(jié),如何合理引入時下互聯(lián)網(wǎng)企業(yè)最為常用的敏捷開發(fā)模式,如何使實(shí)踐與理論教學(xué)環(huán)節(jié)同步,是下一步需要研究和解決的問題。
參考文獻(xiàn)(References):
[1] 沈備軍.解讀軟件工程知識體系SWEBOK V3[J].計算機(jī)教育,2014.7:1-2
[2] 曾明星,周清平,王曉波.軟件工程專業(yè)“項(xiàng)目化”教學(xué)實(shí)施體系的構(gòu)建[J].實(shí)驗(yàn)室研究與探索,2013.32(5):158-163
[3] 楊文麗,高凜.逆向教學(xué):目標(biāo)、邏輯及實(shí)現(xiàn)可能——基于大學(xué)有效教學(xué)視角的審視[J].黑龍江高教研究,2015.2:21-24
[4] 葉海龍.逆向教學(xué)設(shè)計簡論[J].當(dāng)代教育科學(xué),2011.4:23-26
[5] 金玉書.實(shí)現(xiàn)四個“對接”服務(wù)經(jīng)濟(jì)社會[J].中國職業(yè)技術(shù)教育,2010.23:90-91,93