摘要:結(jié)合多年教學(xué)實踐,對信息環(huán)境下如何在非計算機專業(yè)中實施軟件工程課程教學(xué)進行了探索。根據(jù)課程在教學(xué)體系中的定位,提出了為滿足不同專業(yè)應(yīng)用的需求,通過合理設(shè)計培養(yǎng)方案,創(chuàng)新教學(xué)模式,建立多維實踐環(huán)境等手段改革教學(xué)方法的建議。并通過分析不同專業(yè)學(xué)生的調(diào)查問卷,給出了今后的改進方向。關(guān)鍵詞:軟件工程;教學(xué)模式;教學(xué)改革;多維實踐環(huán)境
中圖分類號:G642.0
文獻標志碼:A
文章編號:1006-8228(2011)12-40-03
0引言
隨著信息產(chǎn)業(yè)的高速發(fā)展,軟件工程已逐漸發(fā)展成為一門獨立的學(xué)科。如南京郵電大學(xué)這樣一所以工學(xué)為主體,以信息學(xué)科為特色的高校,除了在通信工程、計算機科學(xué)與技術(shù)、信息安全等計算學(xué)科相關(guān)專業(yè)的培養(yǎng)計劃中開設(shè)此課程外,還專門設(shè)有軟件工程專業(yè)。同時,基于軟件工程在信息行業(yè)占有非常重要的位置,很多非計算機專業(yè)為了本學(xué)科實際應(yīng)用的需求,也開設(shè)了此課程,例如我校教育技術(shù)學(xué)和數(shù)字媒體技術(shù)專業(yè)在培養(yǎng)計劃中把軟件工程作為專業(yè)課,地理信息系統(tǒng)專業(yè)也專門開設(shè)了GIS軟件工程課程。
軟件工程課程由于其很強的理論性與實踐性,歷來是教學(xué)的難點。對軟件工程專業(yè)來說,由于專業(yè)的特殊性,設(shè)置有一系列軟件工程相關(guān)課程,在第一學(xué)期就開設(shè)了軟件工程導(dǎo)論課。對于非計算機專業(yè)來說,課時安排和先修課相對較少,在這種情況下,如何取得良好的教學(xué)效果,既完成相應(yīng)的理論講解和教學(xué),更促進學(xué)生實踐能力的訓(xùn)練,培養(yǎng)出綜合素質(zhì)較高,應(yīng)用能力較強的學(xué)生,是值得深入探討的問題。
在本文中,以教育技術(shù)學(xué)專業(yè)的軟件工程教學(xué)為例,討論了如何緊扣專業(yè)應(yīng)用需求,充分利用網(wǎng)絡(luò)信息技術(shù)及本校資源,通過合理安排培養(yǎng)方案,創(chuàng)新教學(xué)模式,建立多維實踐環(huán)境等手段改革教學(xué)方法,幫助學(xué)生更好地掌握軟件工程課程內(nèi)容,進而為后期學(xué)習(xí)以及實際工作中的應(yīng)用奠定良好的基礎(chǔ)。
1 改革課程設(shè)置,完善培養(yǎng)計劃
培養(yǎng)計劃是高等學(xué)校人才培養(yǎng)工作的總體設(shè)計和實施方案,是全面提高教學(xué)質(zhì)量的重要保證。我校教育技術(shù)學(xué)專業(yè)的主攻方向為網(wǎng)絡(luò)教育和知識工程,目標是培養(yǎng)出擁有扎實的理學(xué)和教育學(xué)基礎(chǔ)及寬廣的專業(yè)知識,動手能力強,具有創(chuàng)新精神和實踐能力,能駕馭計算機及網(wǎng)絡(luò)等現(xiàn)代教育技術(shù),從事多媒體教學(xué)軟件和網(wǎng)上教學(xué)系統(tǒng)設(shè)計、開發(fā)、運用、管理和評估的教育技術(shù)學(xué)科的高素質(zhì)應(yīng)用型人才。
為了滿足專業(yè)的實際應(yīng)用要求,從2002年開始,學(xué)院領(lǐng)導(dǎo)與各任課教師多次探討,對培養(yǎng)計劃進行了不斷的調(diào)整和完善。軟件工程課程作為高年級的專業(yè)課,需要綜合運用多門先修課程,涉及領(lǐng)域較廣,所以在開課學(xué)期、學(xué)時安排、實踐性環(huán)節(jié)的銜接等方面更要精心安排。我校的教育技術(shù)學(xué)專業(yè),軟件工程課程的開設(shè)時間由最初的大三第一學(xué)期調(diào)整為第二學(xué)期,因為此時專業(yè)基礎(chǔ)課和專業(yè)課基本開設(shè)完畢,能更好地將以前所學(xué)課程結(jié)合起來。學(xué)時數(shù)在以往教學(xué)中為理論授課32學(xué)時,軟件設(shè)計實踐性環(huán)節(jié)40學(xué)時。在最新版的培養(yǎng)計劃中,為了突出課程的重要地位,理論和實踐性環(huán)節(jié)的學(xué)時比重均有增加。實踐性環(huán)節(jié)的設(shè)置除了認知性導(dǎo)入實驗程序設(shè)計(上機),還安排了軟件設(shè)計Ⅰ,另有專門針對本課程,完整實踐軟件工程理論的軟件設(shè)計Ⅱ。這三門實踐性環(huán)節(jié)分別在第三、四、六學(xué)期開設(shè),學(xué)時分別為32、16、32。這種模塊化的實施,可以讓學(xué)生有充足的時間,更好地掌握專業(yè)知識和強化實踐能力。具體理論課相關(guān)信息參見表1。
根據(jù)這份培養(yǎng)計劃,我們在課程建設(shè)時,以課程群為目標,以此實現(xiàn)多課程之間的協(xié)作和有機聯(lián)系,便于學(xué)生從整體上綜合掌握知識。
2 加強課程開發(fā),更新教學(xué)內(nèi)容
為滿足培養(yǎng)應(yīng)用型人才的目標,課程內(nèi)容的選擇應(yīng)具有實用性。相應(yīng)地,教材也應(yīng)以學(xué)用結(jié)合為著眼點,根據(jù)實際需要進行選用,同時反映軟件開發(fā)技術(shù)的現(xiàn)狀和未來發(fā)展的方向,使教材的選擇緊跟時代步伐。我們的教材基本三年更新一次,先后使用過的教材有清華大學(xué)出版社的“軟件工程與軟件開發(fā)工具”,高教出版社史濟民主編的“軟件工程~原理、方法與應(yīng)用”等,目前采用的是軟件工程領(lǐng)域的經(jīng)典教材,張海藩編寫的“軟件工程導(dǎo)論(第五版)”。這本入門教材從實用角度講述軟件工程的基本原理、概念和方法,符合“穩(wěn)定性和先進性相協(xié)調(diào)”的原則,很適合作為基礎(chǔ)性教學(xué)的教材。國外引進的教材一般更多強調(diào)軟件工程的實踐性,可以作為補充,我們把鄭人杰翻譯的“軟件工程(實踐者的研究方法)”和“軟件工程一理論與實踐(影印版)”這兩本經(jīng)典書籍作為教學(xué)參考書。
3 創(chuàng)新教學(xué)模式,改進教學(xué)方法
根據(jù)調(diào)研,國內(nèi)外在軟件工程課程的教學(xué)和實踐中,較常采用的有面向?qū)嵺`教學(xué)法和模擬教學(xué)法。面向?qū)嵺`教學(xué)法包括與行業(yè)人員合作的教學(xué)法、基于項目維護的教學(xué)法、強調(diào)團隊合作的教學(xué)法、以及項目驅(qū)動教學(xué)法等。模擬教學(xué)法使學(xué)生能在一個較大規(guī)模層次上以快捷方式在學(xué)術(shù)環(huán)境里參與實踐的軟件工程實踐,這種教學(xué)法可以使課堂教學(xué)以一種更貼近現(xiàn)實軟件開發(fā)環(huán)境的方式來進行,讓學(xué)生得到應(yīng)有的軟件工程實踐能力的培養(yǎng)。但是該方法需要購買模擬器,目前在在國外教學(xué)中使用較多。我們的教學(xué)將實踐教學(xué)法的幾種方式進行了有機結(jié)合,合理運用。
3.1 構(gòu)建學(xué)生團隊,實現(xiàn)項目驅(qū)動教學(xué)
項目驅(qū)動教學(xué)法以“案例導(dǎo)向、項目驅(qū)動”為指導(dǎo)思想,進行開發(fā)實踐。軟件工程的課堂教學(xué)中案例的選擇非常重要,很大程度上決定了課堂教學(xué)效果。課程教材會配套一些實例,例如張海藩的教材附錄中,分別針對結(jié)構(gòu)化開發(fā)方法和面向?qū)ο蠓椒?,給出了完整的開發(fā)過程的描述。除了教材的這些實例,我們從歷屆學(xué)生的軟件作品,以及教師自己的科研項目中,選擇了一些合適的課題,作為案例的補充。給學(xué)生展示往屆同學(xué)的優(yōu)秀設(shè)計,可以給他們一些信心,覺得自己有能力通過課程學(xué)習(xí),最終具備開發(fā)完整系統(tǒng)的能力;而教師選擇自己的科研課題,因為是本人熟悉的領(lǐng)域,講解時更加具體生動,有助于學(xué)生理解和掌握項目開發(fā)過程。
在教授學(xué)生理論知識的同時,還應(yīng)讓學(xué)生有足夠的合作學(xué)習(xí)實踐的機會,學(xué)會與人交流協(xié)作的技巧。學(xué)習(xí)該課程之前,絕大多數(shù)同學(xué)沒有開發(fā)完整軟件項目的經(jīng)歷,雖然有了課堂上的案例示范,但要做到在掌握理論的基礎(chǔ)上,進一步融會貫通,需要學(xué)生根據(jù)自己的實力以及興趣方向,模擬公司的項目組織方式建立團隊,選擇題目,開展實踐。在授課過程中,設(shè)置了一些階段檢查點,團隊定期提交作業(yè),前期主要是文檔的形式(此時因為學(xué)生開發(fā)經(jīng)驗所限,教師會提供文檔大綱和樣例),并且分組在課堂上對項目進展情況進行匯報,實現(xiàn)師生互動。在實踐性環(huán)節(jié)的軟件設(shè)計階段,要求學(xué)生將項目形成可運行的軟件,并完善所有的文檔,最后演示和答辯。
3.2 多課程協(xié)作,建立實踐教學(xué)團隊
為了取得更好的教學(xué)效果,我們在教學(xué)過程,特別是實踐性環(huán)節(jié)中,實現(xiàn)了課程體系整體設(shè)計、層層遞進,從而增強了學(xué)生的適應(yīng)性。實踐環(huán)節(jié)內(nèi)的課程不是各自為戰(zhàn),一開始就要聯(lián)動效應(yīng),為此建立了一個實踐教學(xué)團隊,協(xié)調(diào)合作。這是一個貫穿四年的長期任務(wù)。例如最早的一個實踐環(huán)節(jié)是程序設(shè)計(上機),本環(huán)節(jié)要求學(xué)生充分發(fā)揮已有的編程能力,選擇審題、分析、設(shè)計、實現(xiàn)和調(diào)試,寫出實驗報告;軟件設(shè)計I的實踐內(nèi)容是綜合性的,包括高級語言程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計及C++,數(shù)據(jù)結(jié)構(gòu)A,可視化編程等相關(guān)課程的知識點。在這兩個實踐性環(huán)節(jié)實施過程中,可以讓學(xué)生初步了解工程化軟件設(shè)計的基本方法,逐步將軟件工程的原理、方法、工具應(yīng)用于自己的設(shè)計中,使學(xué)生初步體會軟件工程方法與各種軟件開發(fā)的關(guān)系。
軟件設(shè)計Ⅱ要求學(xué)生對三年來所學(xué)的軟件類課程的知識融會貫通,進行一套需求分析,做一套完整的軟件設(shè)計,編碼完成一個完整的軟件系統(tǒng),進行一次完整的軟件測試,實施一次系統(tǒng)運行和軟件后期制作。在結(jié)束一個完整的軟件開發(fā)周期后,學(xué)生可以從中發(fā)現(xiàn)和彌補其知識體系中的不足,了解與本專業(yè)有關(guān)的業(yè)務(wù)與技能,提高了解決實際問題的能力。這是最關(guān)鍵的一個實踐性環(huán)節(jié),對該環(huán)節(jié)的實施過程,我們還須逐步探索,不斷完善。例如在指導(dǎo)方式上,由原先的單個教師指導(dǎo)改為團隊指導(dǎo),團隊中的老師有各自的研究方向,可以給學(xué)生全面的輔導(dǎo)。在這個階段,學(xué)生可以稍微調(diào)整課堂項目中的組合方式,可以讓選修了Web技術(shù)的同學(xué)與其他同學(xué)合作,以開發(fā)出質(zhì)量更高的系統(tǒng)。
與此同時,鼓勵學(xué)生利用各種機會進行實踐,除了課堂同步的實驗任務(wù)上述的三個實踐性環(huán)節(jié)以外,讓同學(xué)們積極參加科技創(chuàng)新項目以及其他競賽項目。這些項目一般從大二開始,我們采用跨年級組隊的方式。這種組合方式使得低年級的同學(xué)可以盡早積累項目開發(fā)經(jīng)驗,有利于以后的課程教學(xué)。在畢業(yè)設(shè)計時也可以繼續(xù)早期的軟件設(shè)計項目,開發(fā)出—個功能更完善的系統(tǒng),以保持教學(xué)的延續(xù)性。
為了提高教學(xué)團隊的素質(zhì),鼓勵教師積極將科研心得、科研成果引進課堂教學(xué)以及實驗項目設(shè)計中。通過吸收本科生參與教師科研、為學(xué)生科研創(chuàng)新配備指導(dǎo)教師、將教師科研基地同時作為學(xué)生創(chuàng)新基地等措施的良性互動機制,促進了學(xué)生創(chuàng)新精神和實踐能力的培養(yǎng),有效地提升了教學(xué)質(zhì)量。
3.3 改革傳統(tǒng)考試方式,建立合理的評價機制
在課程教學(xué)中,學(xué)生以項目為驅(qū)動組成團隊進行軟件工程全過程的實踐。傳統(tǒng)的考試模式很難反映學(xué)生的合作學(xué)習(xí)能力和在實際工程中運用項目的能力,因此必須建立一套更合理的評價機制,對學(xué)生進行綜合考核。一個好的評價機制,一方面能夠促發(fā)學(xué)生的團隊工作效率,同時,出于教學(xué)方面的原因,教師應(yīng)該要求所有學(xué)生必須參與到項目工作中。在我們的考核中,筆試考核學(xué)生對課程的基本理論、基本知識和技能的掌握情況,同時也考核項目開發(fā)全過程,這一部分成績在總成績中的比例占到50%或以上。項目評分采用“團隊分為主、個人分為輔”的方式。要求每個團隊提交作業(yè)文檔時有個自我考核部分,說明每人所做的貢獻。教師先以團隊為單位,對項目作業(yè)劃分出初步的等級,然后根據(jù)各人在項目中的分工進行調(diào)整。這種評價機制既可以培養(yǎng)學(xué)生的團隊合作精神,又可以發(fā)揮學(xué)生個人專長。
3.4 充分利用Blackboard網(wǎng)絡(luò)教學(xué)輔助平臺,實現(xiàn)信息化教育
我校非常重視網(wǎng)上教學(xué)資源的建設(shè),于2006年購買了國際高校通用的Blackboard網(wǎng)絡(luò)輔助教學(xué)平臺。利用該平臺,可實現(xiàn)課程的教學(xué)大綱、多媒體課件、教學(xué)錄像、實踐教學(xué)、課程習(xí)題、電子教案等教學(xué)資源的網(wǎng)絡(luò)共享;在線教學(xué)與學(xué)習(xí)、在線實時交互討論等功能的利用,豐富了教學(xué)手段,調(diào)動了學(xué)生學(xué)習(xí)的積極性和主動性。
在軟件工程課程的教學(xué)實施過程中,該平臺還可以幫助教師在網(wǎng)上實現(xiàn)團隊管理。教師發(fā)布項目任務(wù),學(xué)生進行選題與分組等都通過該平臺實現(xiàn)。每個項目根據(jù)軟件開發(fā)進程劃分為若干子階段,每一個子階段都設(shè)置了提交成果的截止日期,超時者無法提交所完成的作品,這保證了教學(xué)過程的嚴謹、有序。同時通過網(wǎng)絡(luò)交流平臺及時反饋,進行教學(xué)互動,極大地提高了教師工作效率。
以上這些都體現(xiàn)了信息化教育的特點:教材多媒化、教學(xué)個性化、活動合作化、管理自動化以及系統(tǒng)開放化。
4 不同專業(yè)學(xué)生學(xué)習(xí)軟件課程效果調(diào)研
為了進一步了解軟件工程課程教學(xué)中存在的問題,參考國內(nèi)外文獻[5],我們設(shè)計了一份問卷,選擇了一些不同專業(yè)的同學(xué)進行調(diào)研。研究對象包括最近兩屆計算機專業(yè)和非計算機專業(yè)畢業(yè)班的同學(xué),以及一些已走上工作崗位的同學(xué),結(jié)果如表2所示。篇幅所限,在此沒有列出所有問題的具體選項,僅把它簡單劃分為五個等級。針對不同的題目,這五個等級分別表示少到多,或者差到好的漸變程度。例如第一題:你在大學(xué)獲得多少關(guān)于軟件工程的知識?五個等級分別代表什么都沒學(xué)到、學(xué)到基礎(chǔ)、學(xué)得比較多、學(xué)得很深入、達到專業(yè)水準五個選項。為了讓讀者對研究結(jié)果有更直觀的認識,在表中我們并沒有給出每個選項的選擇人數(shù)在總?cè)藬?shù)中的具體比重,只是標注出被學(xué)生選擇最多的一個選項。每個問題之后的第一行和第二行結(jié)果分別代表計算機專業(yè)和非計算機專業(yè)同學(xué)的選擇。第九個問題因為對后繼教學(xué)改革有較大影響,所以標注出選擇人數(shù)相對較多的幾項。
對比兩者不難發(fā)現(xiàn),計算機專業(yè)相關(guān)的同學(xué)認為在教學(xué)中學(xué)到了較多的知識,且項目完成的滿意度也較高。由于這些同學(xué)的專業(yè)培養(yǎng)目標就是軟件行業(yè)的從業(yè)者,所以對軟件工程的知識相對掌握得更熟練。對于非計算機專業(yè)的學(xué)生而言,先修課的教學(xué)還得進一步增強。先修課的不足容易導(dǎo)致開發(fā)進程的不順利,學(xué)生無法把理論上的知識很好地運用到實踐中去。在調(diào)查中,所有的同學(xué)都認為實踐性環(huán)節(jié)的實施還需要繼續(xù)改進,這一點在以后教學(xué)改革中需要更加關(guān)注和完善。
5 結(jié)束語
信息化環(huán)境下,為了在非計算機專業(yè)學(xué)生中有效實施軟件工程課程的教學(xué),推進信息學(xué)科與其他學(xué)科的交叉,我們依據(jù)學(xué)科特色,因?qū)I(yè)施教,借助網(wǎng)絡(luò)信息技術(shù)平臺,全面優(yōu)化了教學(xué)過程,對教學(xué)模式進行了改革。實踐表明,效果良好,激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生的實踐能力和綜合素質(zhì)。