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