馬迪芳 陳旭東

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