前言:尋找寫作靈感?中文期刊網用心挑選的軟件工程課程教學人才培養研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
1.1教學理念
傳統軟件工程教學比較注重理論教學、教師講授為中心的教學理念。在課程教學中,教師往往會花費大量時間與精力把統一、規范的軟件設計與開發理論、方法及技術教授給學生,力求讓學生形成良好的軟件設計與開發思想與習慣。在此情況下,學生可能對整個軟件設計及開發流程有了“理性”認識,但卻缺乏真實軟件系統實踐開發的“感性”認識。實際上,理論指導下的具體的軟件系統開發案例及經驗介紹更為重要。
1.2教學內容
國內一些學校的軟件工程教學仍然是以傳統的軟件工程理論及技術作為重點,教學中講解的內容以“需求分析—總體設計—詳細設計—編碼及實現—測試維護”這種從頂向下、逐步細化的思路為教學線索。在實踐中,主要以開發圖書館管理系統、人事管理系統等MIS系統作為課程的實踐內容。實際上,軟件設計及開發技術發展迅猛,特別是近年來的云計算、移動互聯網及大數據等新技術不斷涌現,必然要求在軟件工程教學中注入新的知識元素。教師必須對教學內容及時更新與補充,否則學生所學知識將嚴重滯后于技術的發展。
1.3教學方法
軟件工程課程的理論性與綜合性強,必須具備許多的先導課程知識(如程序設計語言、數據結構與算法等),一般是在大學四年級才開設。在教學中,如果只采用單一教學方法或者過于注重理論教學而輕視實踐教學,時間一長,學生(尤其是大四學生)很容易產生厭倦的情緒,影響教學效果。此外,該課程的授課對象為即將畢業的大四學生,如能運用一些實際的軟件開發系統或啟發式案例進行教學,講透系統中的一些重要知識點、核心算法以及關鍵技術,不僅能夠充分發揮多種教學方法的交叉優勢,更能夠對學生畢業設計以及就業產生積極影響。
1.4課程考核
目前,一些學校的軟件工程課程采用的是傳統的筆試加平時成績的考核方式。筆試主要考核學生對軟件工程基本理論及知識點的掌握程度,比如瀑布模型、數據流圖、耦合與內聚、詳細設計工具(程序流程圖、N-S圖、PAD圖)以及CMM等。這種考核方式能夠增進學生對軟件工程概念性與原理性知識的記憶,卻不能促進學生軟件設計與開發能力的提高。
2引入MOOC的軟件工程系列課程教學改革
MOOC(MassiveOpenOnlineCourses),即大規模在線開放課程。2012年以來,美國一些頂尖高校陸續開發了網絡學習平臺,如哈佛大學與麻省理工聯合發起的edX、斯坦福大學創立的Udacity和Coursera,以及可汗學院(KhanAcademy)。這些MOOC學習平臺能夠提供免費網絡課程,教學效果明顯,熱遍全球。我國的北大與清華于2013年5月加入了edX,并上線了多門課程;北大、上海交大與復旦加盟了Coursera。我國一些重點大學也正在利用MOOC方式進行教學方法改革。MOOC中很多課程始于計算機專業,MOOC對計算機及軟件工程專業的影響也是最大的。在現行的各個MOOC平臺中,計算機與軟件工程課程的比例是最大的。例如,Coursera平臺上現有計算機類課程94門(其中軟件工程課程為55門);edX平臺上現有計算機類課程21門(其中軟件工程課程為10門);Udacity平臺現有計算機類課程23門(其中軟件工程課程為18門)。因此,在傳統軟件工程系列課程教學中引入MOOC進行教學改革,勢在必行。
2.1形成“以學生為中心”的教學理念
在軟件工程教學中,可將MOOC作為課堂教學的強化與補充,形成混合式課程,采取傳統教師課堂講授與學生MOOC在線學習相結合的混合教學模式。同時,應改變注重理論教學、教師講授為中心的傳統教學理念,變換教師與學生角色,切實形成以學生為中心的新的教學理念。MOOC將充分體現以學生為中心的教學理念,可以重新構造軟件工程個性化學習軌跡,實現師生及學生之間的互動討論與協作、即時的系統測試以及學習反饋與評價。
2.2設計“傳統知識與新理論及新技術”相結合的教學內容
在教學過程中,在傳統課本知識基礎上,需要引入一些新的軟件設計、開發模型及技術。一方面,建議同學們參考新版書籍或MOOC上的電子資料;另一方面,及時補充當下流行的軟件設計與開發方法及熱門技術。例如,在云計算SaaS模式中,以Blog,SNS,RSS等為特征的Web2.0服務方式造就了數量眾多的服務資源,包括WebServices、WebAPI等,使得沒有或較少編程專業知識的終端用戶能夠實現面向服務的軟件設計與開發工作。像類似于SOA架構,WebServices與組合,RSS技術,企業Mashup技術等內容需要補充到課堂內容教學中。
2.3發展“以案例為驅動”的理論及實踐教學方法
教師將MOOC作為軟件工程教學線上環節,提供以案例為驅動的理論及實踐教學微視頻,讓學生提前自主預習課程知識。教師在課堂上重點講解具體案例,梳理各個理論知識點以及核心的算法及關鍵技術。其中,案例的選擇非常重要,可以選擇教師自己科研工作中實際開發的軟件服務系統或者開源的軟件系統,制作成微視頻,結合自己的切身實踐經驗,把宏觀的理論知識以及微觀的具體技術細節教授給學生。
2.4采用“引導和激勵”的課程考核方式
MOOC支撐下的軟件工程課程考核,應以軟件設計與開發能力為目標,將課程考核分成平時考核、期中考核與期末考核3種方式。借助MOOC,根據學生的在線學習軌跡,匯總學生的在線學習情況,加大平時成績考核力度。在課堂教學中期,引入具體項目設計與開發任務,以項目開發的完成情況作為期中考核標準。期末考核采用課程論文形式,對給出項目要求書寫需求文檔、總體設計與詳細設計方案,以及數據庫設計說明。
3構建以“就業”為導向的軟件工程人才培養新模式
1)國際知名IT企業尤其注重扎實的數據結構、算法和代碼以及軟件設計能力;良好的英文讀寫以及聽說能力。2)8家IT企業都要求熟練掌握一門或以上的程序設計語言,C\C++\JAVA仍然是主流的軟件開發語言,而像python、.NET、PB、VS2008等也受歡迎。3)8家IT企業基本上都要求熟悉數據庫理論及技術,尤其是MySQL、SQLServer以及Oracle數據庫。4)一些流行新模型及新技術,比如Hadoop云模型、Android應用開發系列技術,也是目前企業所急需的。根據以上的總結,在軟件工程人才培養的過程中,應以“就業”為導向,以培養符合市場需求、受歡迎的軟件工程人才為目標,具體建議如下:1)必須加大與軟件工程相關性非常強的先導課程的教學與實踐能力培養。尤其需要投入大量時間與精力到數據結構、算法設計以及數據庫理論與技術這3門課程的教學中,使學生具備扎實的軟件設計與開發基礎能力。2)務必培養學生精通至少1門程序設計語言,熟練使用至少1種開發工具,并在此前提下,以開發出一個在一定代碼量(萬級)以上的自己的“軟件作品”為大學四年的實踐目標。3)教師要及時引導學生了解并掌握一些軟件新理論、新模型與新技術,鼓勵學生參與學術活動,并邀請公司技術主管或教師以及高年級學生中的技術達人定期舉行技術講座。
4結語
軟件工程增設為一級學科,突顯了它在整個計算機學科中的重要地位,其教學與人才培養也將面臨更多的機遇與挑戰。本文分析了目前軟件工程中教學所存在的問題,并探索引入MOOC的軟件工程系列課程教學改革措施。同時,調研了2015年國內外8家主流軟件企業軟件工程人才的知識需求及其技術要求,并給出了具體的人才培養建議。
作者:曹步清 肖小聰 單位:湖南科技大學計算機科學與工程學院