鄭小蓉
摘 要
面對軟件工程課程教學中出現的教學困難,基于對教學中學生教師身份的再認識,應用“翻轉課堂”理念,借助教學云平臺發(fā)布微課等教學資源,結合學習者和行業(yè)發(fā)展需求,采取案例教學法和項目導向學習法,改革課程考核方式,對《軟件工程》課程教學內容、方式及進程再造,激發(fā)學習者自主學習的熱情,提升課程教學效果。
【關鍵詞】軟件工程;翻轉課堂;微課;教學云平臺
1 問題的提出
《軟件工程》課程講授現代軟件工程的基本理論,培養(yǎng)學生運用軟件工程原理進行軟件需求分析與設計的能力,是重要的專業(yè)核心課程?!盾浖こ獭返幕纠碚摵喴?、富有原則性,初學者普遍感覺抽象、空洞。一方面教師需要依托真實的軟件項目,將理論具體化、層次化、生動化,備課任務重;加上學習者對相應內容掌握程度深淺不一,教師無法在有限的課堂教學中兼顧,導致顧此失彼、應接不暇的困難局面。另一方面,對于理論思維較弱的學習者來講,如果沒有良好的引導和合適的學習資源,學習《軟件工程》往往困難重重。傳統課堂主要任務是傳授“正確”的知識、方法,學生在既定的范圍內加強理解、練習,成為規(guī)定套路的“熟練工”。學生沒有嘗試、發(fā)現、歸納、總結的機會,面對新的課題就茫然無措。面對教與學中存在的問題,可在傳統課堂的基礎上,實施翻轉課堂,不斷探索《軟件工程》的有效教學實施方式和辦法。
2 分析課程在專業(yè)體系中的任務定位
優(yōu)秀的軟件技術專業(yè)人才能夠熟練使用軟件工具、先進的工程化方法和技術,勝任軟件分析、設計、開發(fā)、測試、實施和維護等工作。在我校軟件技術專業(yè)的課程體系中,在《軟件工程》之前的課程有《計算機導論》《C語言》《數據結構》《數據庫技術》等,并行的課程有《WEB前端交互技術》《WEB程序設計》兩門課程?!盾浖こ獭氛n程理論性強、綜合實用性強,在軟件技術專業(yè)課程體系中起著承上啟下的作用。
按照軟件生命周期一般分為軟件的項目定義、需求分析、設計、編碼、測試與維護等。軟件工程所有專業(yè)技術不可能在《軟件工程》課程中全部講授,對課程任務進行合理分工十分必要。比如“編碼”可在《.NET》《JAVA》等課程中完成,“測試與維護”可在《軟件測試》課程中講解,《軟件工程》課程則可重點講解“需求分析與設計”。通過《軟件工程》課程,學習者建立工程化的思想,建立軟件開發(fā)過程整體框架,理解軟件開發(fā)過程各階段任務及作用,為開展真實軟件項目的編碼、測試與維護等打下基礎。
3 建立實施翻轉課堂的軟硬件平臺
建立包括慕課等學習資源在內的《軟件工程》教學資源,是實施翻轉課堂的前提和保證。借助教學云平臺軟件,可以支持學習者自主學習、自主確定進度。
慕課資源一般包括一系列覆蓋課程重點內容的微課、教材講義、習題庫及擴展資料等。梳理課程知識的重點和難點,合理取舍和編排,建立微課主題,如軟件工程規(guī)范文檔的編寫。對數據流模型的頂層、中層與底層設計,E-R模型的設計,用例圖、類圖、序列圖的設計等重難點均應制作專題微課。匯總微課、課件及其他專業(yè)學習資料,上傳學校教學云平臺軟件,形成課程教學資源庫。
教學云平臺集信息處理軟件、近焦投影儀及觸摸控制白板于一體,既是存儲、匯集課程教學中各種資源的倉庫,也是師生學習交流互動的園地。教師上傳教學資源、發(fā)布作業(yè)及批改結果,學生也可下載、觀看教學資源及上傳作業(yè),還可師生即時對話實現遠程輔導功能。可分別應用于計算機、手機、平板等多種終端,學習時間、地點靈活機動。基于教學云平臺軟件,每位教師管理任教的多門課程的資源,每位學生管理在學的多門課程的學習資料。教學云平臺因人而異、內容開放,根據授權和被授權,人人可定制個性化的教學輔助平臺,對于每一名應用者都是不同的。信息化教學資源和網絡化教學平臺為實施翻轉課堂提供了良好的軟件、硬件基礎。
4 激發(fā)學習者、行業(yè)從業(yè)者參與教學活動的熱情
4.1 結合學習者自身需求
學習者因為看不到某課程的作用,往往產生迷茫、懈怠心理,甚至反感、厭惡對該課程的學習。相反,如能看到當前學習內容的用途,特別是自己即將用到的課程內容,學習者常常干勁十足、表現出濃厚的興趣。為此,在《軟件工程》授課內容的選取上,也要考慮學習者的當前學業(yè)考證和后期職業(yè)崗位的需求,真正服務于學習者的個人發(fā)展。如筆者所在學校軟件技術專業(yè)學生,在學習《軟件工程》的學期,往往會參加程序員、軟件設計師的考試。結合軟件水平考試的知識點,在課程講解中,著重對數據流模型、E-R圖的設計、UML的用例圖、類圖、序列圖等內容進行深入講解分析。
4.2 緊跟行業(yè)單位工作需要
面向對象方法、結構化方法是目前軟件開發(fā)的普遍方法,也是軟件生產企業(yè)慣常工具,當然成為《軟件工程》課程重點。對于軟件統一開發(fā)過程、構件復用模型以及敏捷軟件開發(fā)過程模型,則可以簡單介紹。緊跟行業(yè)需求的課程教學,培養(yǎng)出的學生必然受到行業(yè)單位歡迎。
4.3 建立專業(yè)培優(yōu)實驗班
高職軟件技術專業(yè)學生有多種來源,如普通高中、職業(yè)高中、對口中職等,生源質量參差不齊。如果按統一標準要求每個學生,勢必造成冷熱不均、饑飽不一的狀況??梢圆扇》謱哟谓虒W,滿足不同基礎的學生的學習需求。如對編程基礎較好的同學,學校與中國科學院重慶綠色智能技術研究院合作,組建軟件大數據實驗班,在模擬軟件公司和專門實驗室中提升軟件開發(fā)能力。
5 采用有效的課程教學方法
5.1 采用案例教學法
在結構化方法講解中,全程以分析、開發(fā)教學管理系統為例,使用Visio工具畫數據流模型圖,用Powerdesigner進行數據庫的設計等。在面向對象方法講解中,則以圖書管理系統的分析、開發(fā)一以貫之,使用Rational Rose工具設計用例圖、類圖、序列圖、狀態(tài)圖、協作圖、活動圖等。學習者以兩個具體軟件的開發(fā)為案例,掌握軟件開發(fā)基礎理論知識,做到理論聯系實際,逐漸提升軟件開發(fā)能力和水平。
5.2 項目導向法引導學習
在軟件模擬開發(fā)中,學習者自由組合,建立項目組。一般3人為一個項目組,成員最好強弱搭配,便于互相學習、做到取長補短??梢越M建固定成員的項目組,成員角色隨著不同項目不斷改換,便于體驗軟件開發(fā)中的不同崗位。項目組也可以成員不固定,隨著每一次項目實施重新組建項目組。在項目組長的協調下,小組成員經過查閱資料、討論調研等方法,獨立確定軟件開發(fā)項目的主題和任務,如《校車訂票系統》《咖啡廳管理系統》《體育器材管理系統》等。
通過軟件項目模擬開發(fā),學習者熟悉了軟件開發(fā)各階段,并完成符合國家標準的軟件開發(fā)文檔,如結構化需求分析說明書、概念設計說明書、詳細設計說明書、面向對象需求分析說明書等。在軟件開發(fā)的階段,小組成員分工合作、分別陳述小組設想和做法,其他同學則擔任客戶角色,對小組項目提出問題,教師關注評審項目的進展情況并給予適當的點評與幫助。項目教學法增強了學生之間、學生與教師之間的互動,培養(yǎng)了學生的團隊協作精神,為進入社會奠定良好的溝通能力、協作能力。
6 聯合同期課程創(chuàng)新考核方式
由于軟件開發(fā)的特殊性,學習者只掌握課程理論遠遠不夠,單純考核知識點意義不大。若要求開發(fā)具體軟件產品作為考核內容,對于《軟件工程》一門課程顯然要求過高,且初學者獨立完成明顯是力不從心。單純考察知識掌握和考核軟件成果都不恰當,有必要創(chuàng)新課程的考核方式。我們的做法是聯合并行的兩門課程《WEB前端交互技術》《WEB程序設計》,進行聯合考核。即各項目組做出本小組項目的需求分析說明書,再聯合開發(fā)完成小組項目。每個小組根據軟件工程這門課的理論知識,小組三個成員分工合作,做出項目的PPT并上臺講解,教師提問,小組成員答辯。軟件教研室的教師根據每個小組的規(guī)范文檔編寫能力、PPT的制作能力、學生上臺講解項目及答辯的能力,小組項目前端網頁和后臺代碼功能的設計情況等進行評分,評定出三門課的期末考試成績及綜合實習成績。每項能力在考核中所占的比重如下:規(guī)范文檔編寫能力、PPT的制作能力、學生上臺講解項目、答辯的能力各占10%,小組項目前端網頁設計情況為20%,后臺代碼功能的設計情況達40%。
一般來講,學生所做的系統功能實現都比較簡單,但這是第一次完成的一個真實項目,大大地提升了他們學習的成就感與自豪感。系統沒有做完的功能會在后續(xù)課程中繼續(xù)完善。到畢業(yè)時,學生會完整地做完一個系統,這些系統的文檔和代碼以及其他的資料會上傳至學校的教學云平臺,為下一屆學生的學習提供參考。
7 結束語
通過對《軟件工程》課程實施翻轉課堂教學的探索和實踐,鼓勵學生先做,即大膽試,允許犯錯誤。先教后學、先學后做變?yōu)橄茸龊髮W、先學后教,變化的不僅是學習的流程,更是激發(fā)學生好奇心,自主探索知識的過程。學生學習知識的同時,也習得了學習的方法。學生在學習過程中感受到了學習的樂趣,培養(yǎng)了團隊協作意識、溝通交流能力,取得了較好的效果。
參考文獻
[1]殷海明,葉利華.“微課”在軟件工程課程教學中的應用.計算機教育,2014(03).
[2]秦放,何丹丹,曾維佳.案例驅動與項目導向結合的軟件工程課程教學模式.計算機教育,2013(05).
[3]古凌嵐,李洛.終身教育視角下的高職軟件專業(yè)課程系統[J].計算機教育,2014(12).
[4]楊繼鵬.對高職《軟件工程》教學改革的思考[J].中國成人教育,2010(05).