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