王貴鑫, 昝鄉鎮
(溫州商學院 信息工程學院, 浙江 溫州 325035)
隨著人工智能、大數據、物聯網、移動計算等新技術的興起,社會各行業信息化程度不斷加深,軟件技術的快速發展對計算機學科教育方式提出了新的方向和挑戰。軟件工程實踐是一門實踐性和應用性很強的計算機學科課程,主要利用軟件工程化的思想、概念、原理、技術和方法,在可行性分析、計劃、開發、運行、維護、管理和應用軟件過程中,科學管理軟件開發過程,有助于培養學生工程化的思維,提高軟件設計編程的能力[1-4]。
基于團隊協作的項目驅動教學模式包含了2個含義:一是項目驅動,即通過教師設計一個典型的“項目”而進行的教學實踐活動。項目選取本著從簡單到復雜、從單一到綜合的原則,引導、啟發、鼓勵學生在完成教學項目的過程中掌握知識和能力。二是以團隊協作方式來進行教學安排與課程設計,模擬IT企業網站項目開發的流程和崗位設置,培養學生勝任研究、分析、開發、設計、測試、協同合作等多種角色,使學生真正掌握軟件開發的技能和方法[5-7]。項目的開發活動以小組為單位,分組不僅充分發揮了學生的個性、特長,而且有效培養了學生的團隊合作、分享和競爭意識。
基于團隊協作的項目驅動教學模式主要包括項目設計、項目實踐、總結評價3個階段,具體教學過程如圖1所示,包括理論授課、明確任務、引導和指導、點評和總結、小組評分、個人評分、總結點評等步驟。該模式下的項目實踐階段完全體現了學生的主體地位。團隊自主學習區別于傳統的在教師安排下開展的學習活動,事先沒有教師的刻意安排,是一種完全開放式、自主式、創造性的學習過程。這種“自主和交互式學習”鼓勵團隊成員參與自我管理和自我約束,有利于培養學生溝通、交流、角色轉換、任務分工、團隊協作、磋商談判等技能[8-9]。

圖1 教學活動過程
在軟件工程實踐課改中,改變傳統的教學組織形式,把課堂搬進實驗室,基于企業項目開發實踐經驗,變獨立開發為團結協作開發,使學生提前感受企業的工作方式[10]。首先是通過教師的理論講解讓學生掌握課程知識點,然后再由教師模擬場景和IT企業軟件室。軟件室下設不同的崗位,根據崗位職責劃分角色,明確各個角色分配的學習任務,引導學生開展項目實踐活動。最后,通過小組的答辯展示完成本課程的學習。
(1) 設計項目。課程中項目選取在教學過程中起著關鍵的作用,一般選取功能相對簡單、容易實施的項目作為課程實踐。教學目標是通過課程設計,使學生掌握軟件工程方法實現應用系統開發的全過程,按照軟件的生命周期,完成軟件計劃、需求分析、軟件設計、編程實現、軟件測試及軟件維護等任務,并按照要求編寫相應的文檔。針對該項目由教師創設情境,虛擬項目需求方及提供方,提供項目基線,包括現有設備、現有軟件狀況、業務模式及經營范圍。另外,還要設定基礎數據,如系統開發成本(軟件設計和開發費用、硬件成本)、軟件維護費用、預計將來收益等,對于系統功能進行范圍限定,在項目開展前進行說明。
(2) 學生分組,團隊協作。打破班級限制,采用“自由組合,熟人原則”對學生進行分組。我校由于教學機房容量50人,因此把班級分成10個小組,每個小組由3~5名學生組成,并推舉一名組長,每小組實行組長負責制。在教師的指導下由組長為其他成員分配角色,每個小組成員可扮演一個或多個角色,依據工作職責扮演項目經理、產品經理、軟件設計師、軟件架構師、軟件測試師等。針對不同的角色進行互換體驗,不但能夠培養學生換位思考的能力,而且還可以保證讓學生都能夠積極參與進來。通常在新學期第二節課就確定好了小組名單,并填寫成員及角色名單表。最后,由教師引導學生團隊對行為、制度進行規范建設,提出團隊名稱、愿景、口號與LOGO,并應用于教學過程[11]。
(1) 小組項目立項。各小組按照團隊分工與合作,對項目進行調研及可行性分析,討論并制定整個項目實施計劃,編寫項目進度計劃表,如表1所示。合理按照進度計劃安排各階段的任務,并根據進度完成情況做出適當調整。

表1 項目進度計劃表
(2) 組內交互。以項目實施活動中各小組提出的問題和任務為出發點,組內協作求解,本過程由組長組織、教師指導。讓組內成員相互討論、闡述自己的意見和建議,最終確定本小組的解決方案,形成學習報告。如果學生各自的意見相左,無法形成一個正確的思路,要引導學生積極探索,記下需要提交組間討論的問題。
(3) 組間競辯。針對小組內部難以解決或各小組觀點有異議的問題,通過競答、辯論的方式找到正確答案。由教師引導,主動或隨機抽選一組,提出有異議的問題、疑難點,所有小組一起討論,最后由教師統一進行補充,追加、完善問題。對學生團隊的運作進行實時跟蹤與介入指導,及時指導項目進展較慢的團隊,對于個別學習能力較差的學生,給予更多針對性的指導。
(4) 成果提交。經過項目設計的各環節,由組長對項目組成員進行總結,要求提交程序清單(適當的程序注釋、格式縮進、變量命名規范等)以及“課程設計報告”(電子文檔,并注明本人負責部分的內容),其中,課程設計包括5個部分文檔:軟件可行性分析報告、軟件計劃書、軟件需求規格說明書、軟件設計說明書、軟件測試細則。文檔要求格式規范、邏輯性強、圖標規范[12]。
在量化評價階段,各小組成員的期末總成績(score)由平時成績、階段考核成績、項目實踐成績3部分組成,在這一環節,項目組可以自己確定展示的方式,自主地對照學習任務向教師和全班學生展示學習的過程、得出的結論或制作完成的實際成果。成績執行百分制,項目實踐成績占0.4系數權重,階段考核成績占0.4系數權重,平時成績占0.2系數權重[12-14]。計算公式
score=avg*20%+phase_score*40%+
practice_score*40%
(1)
其中,avg為學生平時成績,phase_score為階段考核成績,practice_score為項目實踐成績。
avg=attendece_score*50+work_score*50%
(2)
其中,attendece_score為考勤成績,work_score為作業成績。
practice_score=teacher_group_score*50%+
student_group_score*30%+
student_inergroupscore*20%
(3)
其中,teacher_group_score為教師對學生所在小組作品打分,student_group_score為學生組間打分,student_inergroupscore為學生組內打分。
通過為期1個學期的教學模式的探索,分別對實驗班和對照班學生學習成績進行對照,結果如表2、表3所示。

表2 實驗班與對照班期末學習成績比對結果
從表 2可以看出,實驗班學生的平均成績明顯優于對照班,從表 3也不難發現,實驗班學生對教師教學評價效果滿意,參與測評的積極性高,說明該教學模式下能夠充分提高學生的學習熱情和主動性,改善學習成績。這種結果源于模擬真實的企業項目的開發過程,通過教師組織學生溝通、角色轉換、任務分工、團隊協作,促進學生的團隊自主學習。同時,實驗班平均成績的標準差要優于對照班,說明實驗班成績的分化程度較低,成績相對穩定,可以推斷出該教學模式有助于學生的整體提高。
教學實踐表明,基于團隊協作的項目驅動教學模式下能夠充分調動學生的學習熱情和主動性,鍛煉學生溝通、角色轉換、任務分工、團隊協作、磋商談判等技能,培養自主學習和動手實踐能力,尤其是軟件工程項目的設計管理能力。但是,由于該模式下學生自由度高,其教學效果受班級凝聚力影響較大,在教學過程中學風好的班級會朝著團隊協作的方向發展,而比較沉悶的班級則自由散漫、配合度較低,如何在學風不是很好的班級取得良好的教學效果,是以后研究的方向。
參考文獻(References)
[1] 賈鐵軍,甘泉,俞小怡,等. 軟件工程與實踐[M].北京:清華大學出版社,2012.
[2] 陳承歡.軟件工程項目驅動式教程[M].北京:清華大學出版社,2015.
[3] 陸惠恩.實用軟件工程[M].3版.北京:清華大學出版社,2015.
[4] 熊婕.以工作過程為導向的“項目驅動式”教學法的設計與應用:以市場營銷學課程為例[J].商場現代化,2010(29):223-224.
[5] 武志英.“團隊合作”教學模式在高職英語教學中的應用[J].漯河職業技術學院學報, 2015(3):33-34.
[6] 王珍珍,徐娜,肖甫青.本科生創新能力“團隊式”培養模式探討[J].淮海工學院學報(人文社會科學版),2012(16):114-116.
[7] 萬偉.三十年來教學模式研究的現狀、問題與發展趨勢[J].中國教育學刊, 2015(1):60-67.
[8] 田浩.基于項目驅動的團隊協作式實踐教學模式研究[J].湖北經濟學院學報(人文社會科學版),2015(3):168-169.
[9] 何秋生,李虹.項目驅動的創新綜合實踐教學模式的探索與實踐[J].中國電力教育, 2014(30):83-84.
[10] 張安富,劉興鳳.實施“卓越工程師教育培養計劃”的思考[J].高等工程教育研究, 2010(4):16-16.
[11] 劉剛.哈佛商學院案例教學作用機制及其啟示[J].中國高教研究,2008(5):89-91.
[12] 李妍.項目化教學在嵌入式系統實踐課程中的探索[J].實驗室科學, 2012,15(5):27-29.
[13] Huang M H.The Research and Practise of Teaching Model under Tutor[J].Computer Education, 2007(2):29-32.
[14] Huang L J,Dai L P,Guo B.Project-Driven Teaching Model for Software Project Management Course[J].International Conference on Computer Science & Software Engineering,2008(5):503-506.