文章編號:1962-5913(2008)11-0040-03
摘要:針對目前軟件工程人才需求的特點,我院對比了學(xué)校人才培養(yǎng)模式與企業(yè)人才需求的差距,結(jié)合“軟件工程”課程教學(xué)和科研的實際體會,選擇了啟發(fā)式教學(xué)模式并加以實踐,本文介紹了我院的探索和實踐效果。
關(guān)鍵詞:軟件工程;教學(xué)實踐;啟發(fā)式
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1現(xiàn)狀的分析與討論
1.1人才的培養(yǎng)與企業(yè)需求之間的差距
軟件工程人才培養(yǎng)在現(xiàn)階段應(yīng)體現(xiàn)國際性、多元化、本地化和工程化的特點。目前,企業(yè)對IT人才的需求主要有:(1)有編程開發(fā)經(jīng)驗的人——編程和測試人員;(2)有編程項目開發(fā)經(jīng)驗的人——系統(tǒng)設(shè)計人員;(3)有系統(tǒng)整合項目開發(fā)經(jīng)驗的人——網(wǎng)絡(luò)架構(gòu)設(shè)計人員;(4)有銷售經(jīng)驗的人——銷售前技術(shù)支持;(5)有項目管理經(jīng)驗的人——項目經(jīng)理;(6)有項目服務(wù)和技術(shù)支持經(jīng)驗的人——技術(shù)支持。
IT技術(shù)的發(fā)展使企業(yè)對人才提出越來越高的要求,其中最重要的是到崗就能產(chǎn)生效益的人才。然而,現(xiàn)在45%的畢業(yè)生不能一次性就業(yè);同時50%的企業(yè)招聘不到所需要的人才;對于所招聘到的人才,往往也需要進(jìn)行3~6個月的培訓(xùn)。傳統(tǒng)的教育模式與企業(yè)的人才需求越來越尖銳化(見表1)。
1.2 “軟件工程”教學(xué)現(xiàn)狀分析
目前,“軟件工程”的教學(xué)主要存在的問題:(1)軟件工程教育觀念落后,教學(xué)計劃陳舊,致使社會需求與培養(yǎng)環(huán)節(jié)脫節(jié),學(xué)生難以參與軟件開發(fā)的全過程,難以想象軟件工程在軟件開發(fā)中的折衷與權(quán)衡;(2)學(xué)生難以體會到軟件工程中關(guān)于反面經(jīng)驗的總結(jié),學(xué)生很少有機(jī)會或有意識地去考察一些不好的軟件系統(tǒng);(3)對軟件工程教育質(zhì)量觀的片面評價,傳統(tǒng)的軟件工程教育質(zhì)量觀是以軟件知識理論的多寡及深淺為主要的質(zhì)量評價標(biāo)準(zhǔn);(4)學(xué)生知識積累程度和流行技術(shù)引入之間存在矛盾,教學(xué)理論與應(yīng)用實踐環(huán)節(jié)的脫節(jié)。
而鑒于教學(xué)時間是一個“常量”,教師無法面面俱到地講述相關(guān)內(nèi)容或者指導(dǎo)系統(tǒng)的實驗。為此,必須提高學(xué)生學(xué)習(xí)的主動性和積極性,教師通過引導(dǎo)、啟發(fā)的方式,讓學(xué)生主動去獵取相關(guān)知識,并通過課堂的演講、討論、提問和實驗等途徑進(jìn)行消化吸收。
2軟件工程啟發(fā)式教學(xué)模式
2.1啟發(fā)式教學(xué)模式
所謂啟發(fā)式教學(xué),是指在教學(xué)過程中,以學(xué)生自主學(xué)習(xí)和合作討論為前提,以教材為基礎(chǔ),在教師的啟發(fā)引導(dǎo)下,學(xué)生自由表達(dá)觀點、置疑探究問題,并通過個人、小組、集體等多種形式的解難釋疑活動,用所學(xué)知識解決實際問題的教學(xué)形式。
如圖1所示,啟發(fā)式教學(xué)特別重視培養(yǎng)學(xué)生的自學(xué)能力,發(fā)展創(chuàng)造性思維,開發(fā)學(xué)生智力,并通過自我探究,掌握科學(xué)方法和學(xué)會學(xué)習(xí),為終身學(xué)習(xí)奠定基礎(chǔ)。教師作為啟發(fā)式教學(xué)的引導(dǎo)者,其任務(wù)是調(diào)動學(xué)生的積極性,促使他們自己去獲取知識、發(fā)展能力,做到自己去發(fā)現(xiàn)問題、提出問題、分析問題、解決問題。因此,對老師的要求也提高了,不僅需要具備專業(yè)的理論知識,而且還需要有一定的實戰(zhàn)經(jīng)驗。與此同時,教師還要為學(xué)生的學(xué)習(xí)創(chuàng)設(shè)合適的情境,營造相應(yīng)的氛圍,促進(jìn)學(xué)生討論的欲望,把握討論的深度,評價成效。學(xué)生作為學(xué)習(xí)的主人,根據(jù)教學(xué)的條件,明確討論目標(biāo),思考相關(guān)問題,掌握方法,敞開思路,交流內(nèi)容,最后總結(jié)學(xué)習(xí)的結(jié)果。整個教學(xué)過程可以多樣化,結(jié)合書本的理論與案例,輔助實驗及企業(yè)論壇,讓學(xué)生能夠用理論知識指導(dǎo)實踐,在實踐中能對理論知識進(jìn)行消化、吸收,甚至升華。
啟發(fā)式教學(xué)與“案例式”教學(xué)的最大差別在于強(qiáng)調(diào)了學(xué)生的參與和自主學(xué)習(xí),不再是“填鴨式”的教學(xué)或者“傳授經(jīng)驗”的教學(xué),而是一種讓學(xué)生在相應(yīng)環(huán)境中自我提高,自我成長,自我學(xué)習(xí)的過程。教師的角色也相應(yīng)地有所變化,課堂不再是教師個人演講的舞臺,而是一個真正實現(xiàn)“師生互動”交流的平臺。
2.2軟件工程啟發(fā)式教學(xué)模式的實施
(1) 吸收消化CCSE2004,更新教案。軟件工程課程的教學(xué)內(nèi)容至少應(yīng)該覆蓋ACM CC2004中所列的七項核心內(nèi)容。在課堂教學(xué)中可以介紹一些目前先進(jìn)的軟件開發(fā)工具和環(huán)境(如UML建模語言、Rational Rose工具等)。
(2) 樹立軟件工程觀念,調(diào)動學(xué)生學(xué)習(xí)積極性,采用案例輔助教學(xué)。案例式教學(xué)貫穿于“軟件工程”的全過程,除了通過案例來講解軟件工程的原理和方法外,還必須讓學(xué)生動手動腦參與案例分析。教師在課堂上要有意識地組織學(xué)生分組討論。培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,鼓勵學(xué)生通過案例提出各種問題,并指導(dǎo)學(xué)生查找、閱讀相關(guān)的資料和國家的GB系列規(guī)范和標(biāo)準(zhǔn)。
(3) 結(jié)合真實案例進(jìn)行綜合性實驗,注重興趣的培養(yǎng),讓學(xué)生在學(xué)習(xí)理論的同時,開始做綜合性實驗,培養(yǎng)實際開發(fā)能力。教師結(jié)合實驗課題進(jìn)行教學(xué),學(xué)生分成若干小組選擇題目進(jìn)行設(shè)計。
(4) 教學(xué)手段多樣化、現(xiàn)代化。在教學(xué)中不僅利用多媒體,而且通過“軟件工程網(wǎng)站”擴(kuò)展了課堂教學(xué),方便學(xué)生和教師在網(wǎng)上進(jìn)行交流和答疑,變有限學(xué)時的教學(xué)為在讀期間的全程教學(xué)。
3啟發(fā)式模式在教學(xué)中的實踐
3.1培養(yǎng)目標(biāo)的制定
我院的培養(yǎng)目標(biāo)為:培養(yǎng)計算機(jī)基礎(chǔ)知識扎實、外語過硬、工程實踐能力強(qiáng)、專業(yè)知識厚實、了解信息產(chǎn)業(yè)動態(tài)和新技術(shù)、具有國際競爭力和市場競爭力的創(chuàng)新型的軟件工程師。該目標(biāo)符合SWEBOK、學(xué)生的現(xiàn)實和市場對工程人才的需求。為了保證培養(yǎng)目標(biāo)的完成,學(xué)院不僅對多門專業(yè)課采用了英文原版教材,還聘請國內(nèi)外知名軟件企業(yè)管理人員和技術(shù)人員授課或舉辦講座,另外在“課程實驗—課程設(shè)計—工程設(shè)計—畢業(yè)設(shè)計”的實驗體系基礎(chǔ)上,提出了重點完成“軟件工程項目復(fù)現(xiàn)”和“畢業(yè)設(shè)計”兩大任務(wù)。
3.2啟發(fā)式教學(xué)模式在課堂中的運(yùn)用
目前國內(nèi)的教材對項目組織、軟件成熟度、軟件構(gòu)架、項目風(fēng)險等重要內(nèi)容未給予足夠的論述,因此在結(jié)合新知識、新技術(shù)的同時,要引導(dǎo)啟發(fā)學(xué)生積極思考,不斷地對比傳統(tǒng)技術(shù)與新技術(shù)的差別。
例如,在講解統(tǒng)一過程開發(fā)方法時,課前先把“結(jié)構(gòu)化過程”開發(fā)的和“面向?qū)ο蟆钡陌咐o兩組學(xué)生,讓他們準(zhǔn)備在課間討論各自案例的開發(fā)過程。課間討論過程中,我們發(fā)現(xiàn)很多學(xué)生并不能很好地理解整個過程,為此我們對RUP與傳統(tǒng)的瀑布模型進(jìn)行了比對(見圖2),通過一步一步的提問、討論等,引導(dǎo)學(xué)生理解開發(fā)過程中各階段主要“做什么”。
接著,讓兩組學(xué)生介紹不同開發(fā)過程的主要特征及應(yīng)該注意的地方,并讓另一組進(jìn)行提問,而教師引導(dǎo)討論的方向。當(dāng)學(xué)生難以理解UML在整個面向?qū)ο蠼V械牡匚粫r,利用“逆反思維”,引導(dǎo)學(xué)生一起總結(jié)UML各元素與使用場合的對應(yīng)關(guān)系(見圖3),同時帶出“需要時再添加”的“增量迭代”原理。
3.3啟發(fā)式模式在實驗中的運(yùn)用
通過項目開發(fā)的實驗,提高學(xué)生在實際工作中需要的專業(yè)技術(shù)技能,培養(yǎng)與其他學(xué)生交流、合作的技能,獲得項目開發(fā)的經(jīng)驗。為此在設(shè)計實驗時,學(xué)生可以根據(jù)已有的項目進(jìn)行“項目的復(fù)現(xiàn)”,也可以結(jié)合我校的“挑戰(zhàn)杯”、“創(chuàng)新實驗”等項目的申請,要求團(tuán)隊開發(fā)(建議每組3人)。
根據(jù)教學(xué)經(jīng)驗,綜合性實驗越早布置越好(建議第6周開始)。實驗環(huán)節(jié)不僅要求學(xué)生能夠掌握課堂所學(xué)到的東西,而且要求對開發(fā)過程的整體把握。例如要求學(xué)生利用RUP提供的VSS(Visual Source Safe)對配置進(jìn)行管理,為項目開發(fā)建立了清晰的過程框架,確保團(tuán)隊開發(fā)人員有共同的認(rèn)識(如圖4所示)。實驗中,要求學(xué)生基于Rose2003對項目進(jìn)行建模(如圖5所示)。
這樣,學(xué)生邊聽課邊實踐,有比較充裕的時間進(jìn)行課外自學(xué)和獨立思考,從而正確地運(yùn)用知識設(shè)計出一個比較科學(xué)、合理的系統(tǒng)。當(dāng)然,指導(dǎo)學(xué)生的課程設(shè)計和上機(jī)輔導(dǎo)所花費的時間和精力遠(yuǎn)比理論教學(xué)付出的多,但所收到的效果卻比較好。理論課講完了,課程設(shè)計也基本結(jié)束,學(xué)生們能從理論和實踐的結(jié)合上,加深對軟件工程知識難點、重點的理解,進(jìn)一步深刻理解軟件過程和系統(tǒng)消化理論知識,訓(xùn)練項目設(shè)計的思路,鍛煉實際開發(fā)能力,培養(yǎng)嚴(yán)格規(guī)范的項目開發(fā)方法和步驟,體驗文檔編寫整理、階段性評審總結(jié)以及軟件測試等各個方面的工作流程,直接培養(yǎng)了學(xué)生從事實際開發(fā)的能力。
參考文獻(xiàn)
[1] 王志和,袁飛勇. 軟件工程課程教學(xué)改革的探究[J]. 電腦知識與技術(shù)—教育論壇,2006,(5):211-212.
[2] 蘇丹. 軟件工程教育的特點與問題[J]. 牡丹江師范學(xué)院學(xué)報(自然科學(xué)版),2006,3(55):64-66.
[3] 楊波. “軟件工程”課程教學(xué)探討[J]. 科技廣場,2004,(9):23-26.
[4] 林丕源,劉才興. 消化吸收SWEBOK,制定科學(xué)的軟件工程專業(yè)教學(xué)計劃[J]. 高等農(nóng)業(yè)教育,2006,6(6):60-62.
[5] 尹鋒. “軟件工程”課程教學(xué)改革初探[J]. 長沙大學(xué)學(xué)報,2004,4(18):77-80.