馬迪芳 陳旭東
摘要:針對軟件工程專業(yè)3門基礎(chǔ)課程在實踐教學中存在的問題,探討實踐課程的改革方法,提出統(tǒng)一實踐課程的課程群建設(shè)思路,同時根據(jù)具體案例詳細闡述整合實踐課程的實施方案。
關(guān)鍵詞:軟件工程;課程群;教學實踐;課程體系
1、實踐課程建設(shè)的意義及存在的問題
北京交通大學軟件學院自成立以來一直貫徹以學生為主體、以培養(yǎng)學生主動發(fā)展為中心的教學理念,確立“面向產(chǎn)業(yè)需求、突出能力與素質(zhì)培養(yǎng)、強化實訓實習環(huán)節(jié)、在國際化環(huán)境中培養(yǎng)具有創(chuàng)新精神的精英型軟件工程師”的人才培養(yǎng)目標。在成立的10年間不斷嘗試人才培養(yǎng)模式和教育教學模式的創(chuàng)新和變革,在雙語教學和全英文教學以及以CDIO理念為指導的“做中學、用中學、練中學”實踐中獲得顯著成績,軟件學院學生的專業(yè)英語能力和各門課程的實踐動手能力都有很大提高。然而,在教學中仍然存在一些問題,目前每門課程都有自己單獨的實踐課程,每門實踐課程只從該課程的教學內(nèi)容方面進行實驗內(nèi)容設(shè)計,學生對教學內(nèi)容的理解具有片面性和局限性,經(jīng)常是學完一門課程并不知道該課程的真正用處,不能建立起知識體系的整體概念,因此筆者提出課程群建設(shè)的思路,積極探索各門課程的整合與優(yōu)化,重新梳理本科4年的課程設(shè)置,制定出一套更為科學合理的課程群課程體系。
1.1 3門課程在教學體系中的地位
面向?qū)ο蟮木幊膛c設(shè)計、軟件工程概論和用戶界面設(shè)計與評價是北京交通大學軟件學院軟件工程專業(yè)大學一年級第2學期的3門專業(yè)基礎(chǔ)課。3門課程之間既相對獨立,又相互關(guān)聯(lián),形成緊密相連的有機整體,構(gòu)成該學期專業(yè)課的課程群。這3門專業(yè)課程在整個軟件工程方向課程群的體系中占有舉足輕重的地位,也是學習其他后續(xù)專業(yè)課程數(shù)據(jù)結(jié)構(gòu)及算法、操作系統(tǒng)、數(shù)據(jù)庫原理和計算機網(wǎng)絡(luò)的基礎(chǔ)。
1.2 3門課程的特點及面臨的問題
面向?qū)ο蟮木幊膛c設(shè)計課程是軟件工程專業(yè)本科生必修的主干課程。通過學習這門課程,學生能夠理解面向?qū)ο蟪绦蛟O(shè)計的核心思想,掌握面向?qū)ο蟪绦蛟O(shè)計的主要技術(shù)與編程思路,為今后開發(fā)復雜的大型企業(yè)項目打下良好基礎(chǔ),同時為后續(xù)專業(yè)課程的學習提供有力的面向?qū)ο缶幊讨С郑虼藢W好該課程對培養(yǎng)學生的編程能力非常重要。該課程面臨的問題是學生過于重視編程技巧而忽視了軟件開發(fā)過程的其他階段,包括軟件需求提取、分析、設(shè)計、測試、部署以及各類文檔的撰寫等,即缺乏系統(tǒng)化的工程分析與設(shè)計理念,還未能自覺地運用軟件工程思想指導項目的開發(fā)。
軟件工程概論是軟件工程專業(yè)本科生的核心課程。該課程講述軟件工程專業(yè)的系統(tǒng)知識和方法論,促進學生了解軟件工程的知識領(lǐng)域和結(jié)構(gòu),其特點是涉及內(nèi)容廣泛,是其他專業(yè)課程的基礎(chǔ),也是整個軟件開發(fā)流程的基礎(chǔ)。該課程面臨的問題是理論知識較多,對于沒有任何開發(fā)經(jīng)驗的大一學生來說比較抽象,學生會認為軟件工程就是一些理論的條條框框,很難體會到軟件工程的精髓,往往在學完該課程后仍然沒有建立起用軟件工程思想指導項目開發(fā)的意識。
用戶界面設(shè)計與評價講授如何設(shè)計友好的用戶界面以及如何評價和提高這些界面的可用性。該課程面臨的問題是沒有相應(yīng)的實踐課程,只能從理論課程中安排出部分學時進行上機實踐,另外實踐項目較小,不能讓學生體會到如何在復雜項目中設(shè)計出可用性強、用戶友好的軟件界面。
可以看出,學生并沒有自覺地將3門課程知識融入到項目開發(fā)中,沒有建立起課程之間的聯(lián)系,因此如何整合3門實踐課程設(shè)計內(nèi)容、精煉實踐項目、建立統(tǒng)一的實踐項目,是培養(yǎng)高水平人才的關(guān)鍵。
2、實踐課建設(shè)思路
2.1 整合3門課程內(nèi)容,建立統(tǒng)一的實踐課程
傳統(tǒng)教學中面向?qū)ο蟮木幊膛c設(shè)計、軟件工程概論和用戶界面設(shè)計與評價3門課程分別是64學時,其中包含理論講授和實驗操作兩部分,理論講解偏多,實踐動手較少。
其實這3門專業(yè)基礎(chǔ)課程本身就是實踐性、應(yīng)用性非常強的學科,學生必須通過不斷的實踐才能真正掌握課程的核心思想和多變的編程技巧。因此教師必須加強實踐環(huán)節(jié)的改革,減少理論課程,加大實踐教學,讓學生在實際項目中體會理論課程的精髓。因此,北京交通大學軟件學院將3門64學時的課程均改為32理論學時,同時為3門理論課程開設(shè)了一門64學時的實踐課程,希望融合面向?qū)ο蟪绦蛟O(shè)計、軟件工程概論和用戶界面設(shè)計與評價課程的內(nèi)容,由淺入深設(shè)計實踐項目。項目內(nèi)容應(yīng)融合3門課程的知識點,當然這不是直接將3門課程的知識點堆積在一起,而是要綜合應(yīng)用3門課程的知識和思想,建立課程群統(tǒng)一的實踐項目,使得學生可以從同一項目的不同角度深入理解專業(yè)課內(nèi)容,認識到專業(yè)課之間的相互聯(lián)系,建立起知識體系的整體概念并對每門課程在軟件工程知識體系中所處的位置有一個明確的認識。
2.2 校企合作開發(fā)實踐課項目
目前校內(nèi)教師普遍存在實踐經(jīng)驗不足的問題,設(shè)計的實踐課項目相對簡單,內(nèi)容缺乏創(chuàng)新,與現(xiàn)實脫節(jié)。因此,我們采用校企合作的方式將企業(yè)中的項目引入實踐教學,由校內(nèi)教師和企業(yè)教師共同討論并分析3門專業(yè)課之間的關(guān)系,明確專業(yè)課和實際項目之間的切入點、重點和難點,合理裁剪企業(yè)實際項目,使其既不過于龐大,又不失難度,同時讓學生真正感受到企業(yè)項目規(guī)范化開發(fā)的整個流程。
為了保證規(guī)范開發(fā)過程,教師需要根據(jù)企業(yè)化軟件開發(fā)流程設(shè)計實驗指導手冊,按照項目的各個階段發(fā)布任務(wù),完成從項目啟動階段、項目計劃階段、需求分析階段、系統(tǒng)設(shè)計階段、系統(tǒng)實現(xiàn)階段、系統(tǒng)測試階段到最后系統(tǒng)部署階段的規(guī)范化項目開發(fā)指導。
2.3 建立網(wǎng)絡(luò)實踐課程平臺
以往的實踐課程項目管理非常簡單,只有中期檢查和最終考核,沒有對整個項目中學生是否按軟件工程的規(guī)范開發(fā)過程進行評定,同時也沒有提供可以供學生自主學習的平臺,因此建立一個集學習、管理和評價為一體的網(wǎng)絡(luò)課程平臺非常重要。
平臺服務(wù)應(yīng)分為3部分:學習指導、項目開發(fā)管理和評價管理。學習指導部分為學生提供一個成熟的公司案例樣本并對整個開發(fā)流程進行詳細講解,以便學生參考和學習,這對于毫無開發(fā)經(jīng)驗的大一學生來說很重要。項目開發(fā)管理部分按照設(shè)計項目的各個階段發(fā)布任務(wù),完成從項目啟動階段、項目計劃階段、需求分析階段、系統(tǒng)設(shè)計階段、系統(tǒng)實現(xiàn)階段、系統(tǒng)測試階段到最后系統(tǒng)部署階段的項目分解和發(fā)布,并監(jiān)督指導學生在每個階段的工作。評價管理部分根據(jù)學生提交的每個階段任務(wù)完成情況給出階段成績和評價。通過網(wǎng)絡(luò)實踐課程平臺,教師可以督促學生了解并掌握企業(yè)化軟件開發(fā)流程。endprint
3、具體案例實施方案
新的實踐課程改革特別注重3門課程知識點的融合,使學生可以從同一項目的不同角度深入理解專業(yè)課內(nèi)容,了解各專業(yè)課之間相輔相成的關(guān)系,建立起知識體系的整體概念。我們在2012級學生的實踐課中按難易程度由淺入深總共設(shè)計了3個項目,以RSS閱讀器項目為例詳細闡述實踐課程的改革措施。
3.1 RSS閱讀器項目介紹
RSS是在線共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容,Really Simple Syndication)。隨著網(wǎng)絡(luò)的普及,越來越多的人習慣通過網(wǎng)絡(luò)獲取信息和查詢資料,而通過RSS技術(shù)可以把訂閱的最新資訊接收到電腦桌面上。要接收RSS信息,使用RSS閱讀器是最好的方法。當網(wǎng)站內(nèi)容更新時,RSS閱讀器就會自動接收,把最新的信息接收到本地電腦桌面上,同時閱讀者可以看到最新信息的標題與摘要,點擊標題就能夠查看全文內(nèi)容。實踐課中要求學生實現(xiàn)的RSS閱讀器功能如圖1所示。
3.2 RSS閱讀器項目與3門課程的關(guān)系
RSS閱讀器項目涵蓋了3門課程的知識要點,將3門課程內(nèi)容有機地融合在一起,使學生從整體項目中了解各專業(yè)課之間相輔相成的關(guān)系。RSS閱讀器項目始終將軟件工程思想運用于整個項目的開發(fā)過程中,使學生在軟件工程理論指導下完成軟件需求分析、軟件分析設(shè)計、軟件測試、軟件的部署等各個階段的工作以及各個階段標準文檔的撰寫。RSS閱讀器的實現(xiàn)采用面向?qū)ο蟮木幊碳夹g(shù),涉及Java技術(shù)中從基礎(chǔ)到高級應(yīng)用的所有編程技術(shù),學生可以在項目中運用用戶界面設(shè)計與評價課程中的界面設(shè)計思想設(shè)計出更加美觀、易用的用戶交互界面。RSS閱讀器項目與3門課程之間的關(guān)系如圖2所示。
3.3 項目的實施過程
在新實踐課中,整個項目的開展和實施都依托于與公司合作開發(fā)的網(wǎng)絡(luò)實踐平臺。教師需要在平臺上定期發(fā)布項目各個階段的任務(wù),學生需要定期將各階段任務(wù)實現(xiàn)的代碼和相關(guān)文檔提交到平臺上。實踐課程完全采用企業(yè)的運作機制,要求學生嚴格按照規(guī)定的時間完成任務(wù),教師則以考勤和項目階段檢查的形式對學生的學習情況進行跟蹤。教師在平臺上可以看到每個學生的學習過程,如學生登錄次數(shù)、是否閱讀過相關(guān)文檔、討論的問題等。教師通過平臺可以動態(tài)了解每個學生的學習狀態(tài),從而更有針對性地幫助一些學生。
實踐課堂的指導由兩部分組成,一方面主講教師和助教對學生進行現(xiàn)場指導,另一方面合作公司會有專門負責項目的員工在后臺通過QQ軟件進行遠程指導,因此學生在遇到問題時可以得到及時有效的幫助。公司員工和主講教師也會根據(jù)學生遇到的問題在網(wǎng)上展開定期討論,以找到更好的解決方案。
3.4 教師在實際課程中扮演的角色
整合3門課程內(nèi)容的實踐教學對指導教師也是一種考驗與挑戰(zhàn),教師不僅要熟悉自己所教課程,還要熟知課程群中的其他課程,這對教師也起到督促作用。首先教師要完成教學觀念的轉(zhuǎn)變,在教學過程中不再以教師為主體,而要樹立以學生為主體的教學模式,鼓勵學生自主學習。教師扮演的角色更像是項目經(jīng)理,負責將項目分解,發(fā)布各個階段的任務(wù)要求,檢查學生的開發(fā)進度,督促學生完成開發(fā)過程,遇到共性的問題展開討論,評定各階段任務(wù)完成的質(zhì)量,最后組織學生結(jié)題答辯,點評學生的作品。
新的實踐課程為學生開辟了更廣闊的思考空間,激發(fā)了學生的學習興趣和潛能,很多學生都在作品中融入了自己的創(chuàng)意,給教師帶來意想不到的驚喜,可以看出學生的潛力巨大,學生也在階段性任務(wù)的完成過程中一次又一次地體驗成功的喜悅,大大增強了自信心。同時,學生的創(chuàng)意和靈感也給予教師一定的啟發(fā),這對于教師同樣也是一種挑戰(zhàn)。
3.5 基于過程的考核管理
考核評價體系改革是實踐教學改革的重要環(huán)節(jié),實踐課考核更加重視對學生學習過程的評價,對發(fā)布的每個階段任務(wù)完成情況打分,而不是只對最終結(jié)果進行考核。學生在64學時的實踐課中要做3個項目,由于難易程度不同,各個項目所占的成績比例也不相同,同時每個項目的成績又由各個階段任務(wù)成績匯總得出,教師也會同步公布項目各個階段的成績,因此學生在整個學期都不敢有絲毫懈怠,不會出現(xiàn)傳統(tǒng)教學中突擊完成作業(yè)的情況。
考慮到大一學生還沒有獨立完成一個項目的經(jīng)驗,因此在實踐課中不采用團隊開發(fā)形式。在后續(xù)課程中,隨著學生項目經(jīng)驗的豐富,教師可以采用團隊開發(fā)的形式,鍛煉學生團隊協(xié)作能力和管理能力。
4、結(jié)語
基于課程群的實踐課建設(shè)在北京交通大學軟件學院剛剛開展兩年,我們從2012級學生的作品中發(fā)現(xiàn)已經(jīng)取得了可喜的成績,參賽學生的作品獲得了校級優(yōu)秀學生作品獎,更重要的是學生的學習興趣和綜合能力得到提高,學生更加注重整個學習過程中自我能力的提升。
新的實踐課程對指導教師也提出了更高要求,教師不僅要熟悉3門課程,還要轉(zhuǎn)變教學理念,按照企業(yè)化運作機制開發(fā)項目,以軟件工程思想為指導,嚴格按照規(guī)范進行質(zhì)量把關(guān),分任務(wù)、階段進行監(jiān)控和評審。在此我們也非常感謝合作公司給予的大力支持,其為學生帶來優(yōu)秀的項目案例以及先進的項目開發(fā)和管理理念,為實踐教學注入了新的活力。目前,我們也在針對軟件學院高年級的課程逐步開展課程群實踐課改革與建設(shè),相信在未來的幾年中會探索出更加完備、科學和有效的課程群體系。endprint