文章編號:1672-5913(2008)12-0005-03
摘要:本文分析了軟件工程課程傳統(tǒng)教學(xué)中的不足,針對軟件工程課程實(shí)踐性、系統(tǒng)性強(qiáng)等特點(diǎn)提出了多元多環(huán)節(jié)教學(xué)模式。
關(guān)鍵詞:多元化;多環(huán)節(jié);教學(xué)改革
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1傳統(tǒng)教學(xué)模式的問題及改革方向
軟件工程是計算機(jī)學(xué)科的一門重要的必修課。在教學(xué)中,往往是教師感覺不好教、難以調(diào)動學(xué)生的學(xué)習(xí)積極性,而學(xué)生則感覺內(nèi)容空洞、瑣碎、枯燥,提不起學(xué)習(xí)興趣??梢哉f學(xué)習(xí)過程中教師講授的內(nèi)容聽得懂,任何軟件工程圖書也看得懂,但軟件開發(fā)過程中的每件事情都做不好。上述問題的主要根源在以下幾個方面:
(1) 學(xué)生只有簡單的小程序編程經(jīng)驗(yàn),缺乏軟件工程所要求的開發(fā)過程、模型、技術(shù)、驗(yàn)證方法及各類文檔等必要性和重要性的切身體會。
(2) 受實(shí)驗(yàn)環(huán)境限制,傳統(tǒng)教學(xué)模式以教師講授為主,忽視了學(xué)生在教學(xué)過程中的主導(dǎo)地位。教學(xué)中鮮有實(shí)例,更沒有組織學(xué)生以團(tuán)隊形式實(shí)踐軟件系統(tǒng)開發(fā)的全過程。
(3) 單一的評分模式影響學(xué)生綜合能力的提高。歷年來,學(xué)校規(guī)定平時成績占總成績的30%,期末考試占70%。與其他課程一樣,“軟件工程”沿用了閉卷考試方式,任課老師通過期末成績來評價學(xué)生掌握知識情況。這種考評方式雖然可以檢查學(xué)生課程知識掌握的程度,但不能足以激發(fā)學(xué)生平時軟件開發(fā)實(shí)踐的激情和投入。
針對上述問題,本課程的教學(xué)改革應(yīng)該遵循以下幾個方面:
(1) 重視基礎(chǔ)和基本技能的培養(yǎng),強(qiáng)調(diào)理論知識在軟件開發(fā)中的必要性與重要性。軟件工程課程涉及如何按照工程化的方法系統(tǒng)地開發(fā)、測試、維護(hù)和管理大型軟件生產(chǎn)的全過程活動,內(nèi)容包括軟件開發(fā)的基本理論、模型、方法和技術(shù)及生產(chǎn)過程中全程管理與監(jiān)測技術(shù)。所以,要想真正學(xué)好軟件工程,首先必須熟悉并掌握軟件工程有關(guān)的理論知識,另外還要了解一些目前流行的系統(tǒng)、工具和技術(shù)。計算機(jī)技術(shù)發(fā)展迅速,因此在教學(xué)中還必須不斷更新知識體系,強(qiáng)調(diào)原理和準(zhǔn)則,幫助學(xué)生理解和使用新的知識。
(2) 重在實(shí)踐。在教學(xué)過程中不但應(yīng)注重概念、原理、方法和技術(shù)的掌握,更應(yīng)注重方法、技術(shù)在軟件開發(fā)實(shí)踐中的應(yīng)用。例如計算復(fù)雜性理論、軟件可靠性與安全性理論;軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué);結(jié)構(gòu)化方法、面向?qū)ο蠓椒ā⒃头?、軟件靜動態(tài)測試方法等。如果不在軟件開發(fā)實(shí)踐中應(yīng)用,就變得空洞而不可理解。可以這樣認(rèn)為,軟件工程是本科生畢業(yè)參加工作以后最能直接應(yīng)用的一門專業(yè)課程。本課程教學(xué)小組近幾年的實(shí)踐表明,只強(qiáng)調(diào)理論而忽視實(shí)踐能力培養(yǎng)的教學(xué)模式已遠(yuǎn)不能適應(yīng)社會對軟件人才的需求,實(shí)際的軟件開發(fā)經(jīng)驗(yàn)是企業(yè)招聘的起碼條件,而剛走出校門的應(yīng)屆畢業(yè)生恰恰普遍缺乏這一環(huán)節(jié)的訓(xùn)練。
(3) 重在分析和設(shè)計能力,以及文檔撰寫能力的培養(yǎng)。以前的軟件開發(fā)人員特別注重一些編程方面的小技巧,以顯示與別人的不同,學(xué)生也常常會學(xué)著注重編程知識和技巧的積累,而忽視一些更重要的系統(tǒng)分析能力、設(shè)計能力和文檔撰寫能力的提高,但這些能力才正是最應(yīng)具備的知識。
根據(jù)上述問題,為此,課程組提出了一種多元化、多層次的教學(xué)模式,該模式突出教學(xué)內(nèi)容的應(yīng)用性、實(shí)踐性,并要求講、學(xué)、做融為一體才能取得良好的效果。
2多元化多級教學(xué)新模式
2.1教學(xué)內(nèi)容多元化
軟件工程是一門發(fā)展非常快的學(xué)科,而我校該課程只有54學(xué)時,在這么少的學(xué)時內(nèi)要講透軟件工程的所有理論、方法和技術(shù)是不可能的,但只講解以往的成熟理論又會造成與最新技術(shù)的脫節(jié),所以我們采用了多元化教學(xué)模式。具體做法是:
(1) 制作豐富多彩的課件,采用多媒體教學(xué)手段,使教學(xué)內(nèi)容更加充實(shí)和生動。
(2) 引入案例,在每個知識小節(jié)之后,教師安排一節(jié)課把以前做過的便于理解的項目作為案例引入課堂,深入分析討論,讓學(xué)生置身于模擬的真實(shí)環(huán)境中,扮演不同的角色,身臨其境,發(fā)現(xiàn)問題并學(xué)會如何解決問題。培養(yǎng)學(xué)生的興趣和獨(dú)立思考的能力,促進(jìn)學(xué)生課后主動學(xué)習(xí)。
(3) 輔導(dǎo)老師借助該課程的QQ群或其他網(wǎng)絡(luò)通信工具進(jìn)行答疑輔導(dǎo),學(xué)生可以隨時和教師進(jìn)行交流,變有限學(xué)時數(shù)為在讀期間的全程教學(xué),為學(xué)生課后主動學(xué)習(xí)提供良好的學(xué)習(xí)答疑環(huán)境。另外在QQ群上,我們還公布了軟件工程課程安排、教學(xué)大綱、多媒體課件、作業(yè)、實(shí)踐要求等眾多內(nèi)容,同時提供有大量的、有價值的軟件開發(fā)案例、參考書籍清單和電子文獻(xiàn)供學(xué)生隨時查閱,進(jìn)一步鞏固和擴(kuò)充學(xué)生的知識。
(4) 在“吃透”教材基礎(chǔ)上,合理引入最新的前沿技術(shù),擴(kuò)大學(xué)生的知識面。使學(xué)生畢業(yè)后能夠很快適應(yīng)企業(yè)和社會的需要,增強(qiáng)自身的就業(yè)競爭性。
經(jīng)過幾年的教學(xué)實(shí)踐表明,這種模式非常適合軟件工程課程教學(xué)的需要,提高了教學(xué)的效率和質(zhì)量,并且大大提高了學(xué)生學(xué)習(xí)的積極性和主動性。
2.2教學(xué)過程多環(huán)節(jié)
本課程組在上述多元化教學(xué)的基礎(chǔ)上,實(shí)施了“講授+示范+練習(xí)+實(shí)踐”的多環(huán)節(jié)教學(xué)過程。即在講授軟件開發(fā)過程的每個環(huán)節(jié)后,教師選擇合適的案例加以解釋和示范,促進(jìn)學(xué)生知識的鞏固和思考;然后由學(xué)生分組,組成項目組,每個小組選擇一個規(guī)模適中的實(shí)用軟件開發(fā)項目,每個小組成員按項目經(jīng)理、用戶代表、分析員、設(shè)計員、編碼人員、測試員進(jìn)行明確分工與合作,按照工程化開發(fā)軟件的過程并結(jié)合教學(xué)進(jìn)度進(jìn)行項目的開發(fā),實(shí)戰(zhàn)練習(xí),邊學(xué)邊練,并強(qiáng)調(diào)學(xué)生在軟件開發(fā)不同階段的角色轉(zhuǎn)換,使學(xué)生能夠把所學(xué)的知識和技能及時加以運(yùn)用,并完成相應(yīng)文檔的撰寫和系統(tǒng)的實(shí)施,了解文檔撰寫的規(guī)范和文檔的重要性。同時在整個課程講授結(jié)束后的下一個學(xué)期,我校還開設(shè)了大型應(yīng)用軟件設(shè)計課程,目的就是在弄清軟件開發(fā)過程、方法及相關(guān)技術(shù)的基礎(chǔ)上,通過企業(yè)或自選的實(shí)用軟件項目自主實(shí)踐,給學(xué)生進(jìn)行大型項目開發(fā)過程、項目管理、團(tuán)隊合作與溝通、文檔撰寫等全方位的訓(xùn)練,更完整地培養(yǎng)學(xué)生工程化軟件開發(fā)能力、自學(xué)能力和創(chuàng)新能力,提高學(xué)生自信心和成就感。
實(shí)踐表明,上述多元多環(huán)節(jié)教學(xué)過程效果很好,主要體現(xiàn)在:
(1) 學(xué)生了解了軟件開發(fā)的全過程,通過參加團(tuán)隊的開發(fā)實(shí)踐,訓(xùn)練和培養(yǎng)了分析和設(shè)計能力、建模能力、測試能力、文檔撰寫能力、團(tuán)隊協(xié)作和溝通能力、管理能力和自學(xué)能力等。
(2) 學(xué)生所學(xué)專業(yè)知識得到了多次的鞏固和應(yīng)用,例如軟件工程、程序設(shè)計語言、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)編程等,不僅加深了專業(yè)知識的理解,也明確了專業(yè)知識間的相關(guān)性。
(3) 理論聯(lián)系實(shí)際,大大降低了課程內(nèi)容的抽象性和難度,學(xué)生不再認(rèn)為軟件工程是開發(fā)軟件的教條,提高了學(xué)習(xí)興趣。
(4) 提高了學(xué)生的動手能力和探索未知領(lǐng)域的能力,增強(qiáng)了學(xué)生的學(xué)習(xí)自信心和就業(yè)自信心。
2.3考評多元化
傳統(tǒng)的考評方式已經(jīng)不能符合就業(yè)要求,而且與上述教學(xué)模式也極不協(xié)調(diào),為此我們提出了多元化考評新辦法。該辦法主要根據(jù)根據(jù)筆試、課后練習(xí)、課程實(shí)踐和項目總結(jié)四個方面來評定考核成績。
(1) 筆試35%。即傳統(tǒng)的期末考試,主要采用閉卷考試方式,意在檢查學(xué)生平時理論知識的掌握情況和學(xué)習(xí)效果。
(2) 課后練習(xí)15%。5~6人為一組,分項目負(fù)責(zé)人或項目經(jīng)理、需求分析負(fù)責(zé)人、設(shè)計負(fù)責(zé)人、編碼負(fù)責(zé)人、測試負(fù)責(zé)人和用戶代表各一人。每個階段的任務(wù)共同完成,不同階段由不同人負(fù)責(zé),使每個學(xué)生都能得到全面鍛煉。
每位學(xué)生的課后練習(xí)成績由3大部分組成:整個項目的成績、自己負(fù)責(zé)完成的文檔成績和組內(nèi)其他成員負(fù)責(zé)完成的文檔的平均成績。例如項目組甲,項目負(fù)責(zé)人A,需求分析負(fù)責(zé)人B,設(shè)計負(fù)責(zé)人C,編碼負(fù)責(zé)人D,測試負(fù)責(zé)人E,用戶代表F。該組成績?nèi)缦卤怼?/p>
假若小組成員為6人,成績a、b、c、d、e、f、g都是百分制,則:
學(xué)生A的成績u = g / 3 + a / 3 + ( b + c + d + e + f ) / 5 )/ 3
學(xué)生B的成績v = g / 3 + b / 3 + ( a + c + d + e + f ) / 5 )/ 3
學(xué)生C的成績w = g / 3 + c / 3 + ( a + b + d + e + f ) / 5 )/ 3
學(xué)生D的成績x = g / 3 + d / 3 + ( a + b + c + e + f ) / 5 )/ 3
學(xué)生E的成績y = g / 3 + e / 3 + ( a + b + c + d + f ) / 5 )/ 3
學(xué)生F的成績z = g / 3 + f / 3 + ( a + b + c + d + e ) / 5 )/ 3
假若小組成員是5人,沒有學(xué)生E和成績e和成績y,則:
學(xué)生A的成績u = g / 3 + a / 3 + ( b + c + d + f ) / 4 )/ 3
學(xué)生B的成績v = g / 3 + b / 3 + ( a + c + d + f ) / 4 )/ 3
學(xué)生C的成績w = g / 3 + c / 3 + ( a + b + d + f ) / 4 )/ 3
學(xué)生D的成績x = g / 3 + d / 3 + ( a + b + c + f ) / 4 )/ 3
學(xué)生F的成績z = g / 3 + f / 3 + ( a + b + c + d ) / 4 )/ 3
可見,這種方式有助于促進(jìn)組內(nèi)所有成員認(rèn)真完成各自任務(wù)并積極參與到整個項目的開發(fā)過程,對軟件的整個開發(fā)過程進(jìn)行實(shí)踐,也有助于提高項目的整體質(zhì)量并促進(jìn)成員之間的交流和協(xié)作。
(3) 課程實(shí)踐35%。在軟件工程課程講授結(jié)束后的第二個學(xué)期我校還開設(shè)了大型應(yīng)用軟件設(shè)計課程,目的是讓學(xué)生進(jìn)行自主性實(shí)踐,分組方法跟上述的課后練習(xí)大致相同,但組中成員的作用、任務(wù)和評分標(biāo)準(zhǔn)也與上述的組中成員的作用、任務(wù)和評分標(biāo)準(zhǔn)基本一致,不同的是,課程實(shí)踐的要求跟課后練習(xí)的要求不同。嚴(yán)格地說,課后練習(xí)是課堂作業(yè),而課程實(shí)踐是綜合實(shí)習(xí)。所以,課后練習(xí)主要要求學(xué)生能夠運(yùn)用課堂上老師講的知識和范例進(jìn)行項目的開發(fā),對課程知識點(diǎn)加以復(fù)習(xí)、鞏固、應(yīng)用和領(lǐng)會;而課程實(shí)踐則是要求學(xué)生能夠應(yīng)用專業(yè)理論知識和當(dāng)今主流的技術(shù)和工具自主的實(shí)現(xiàn)系統(tǒng)開發(fā)。也就是說,課程實(shí)踐更著重于實(shí)戰(zhàn)及新技術(shù)、新方法的學(xué)習(xí)和使用,促進(jìn)學(xué)生自主學(xué)習(xí),培養(yǎng)學(xué)生的自學(xué)能力、科研能力和創(chuàng)新能力。
(4) 項目總結(jié)或心得體會15%。及時總結(jié)開發(fā)過程中的經(jīng)驗(yàn)和教訓(xùn),培養(yǎng)良好的科研習(xí)慣,要求每個小組成員建立自己個人的開發(fā)記錄或日志。記錄的內(nèi)容可以包括個人在小組中承擔(dān)任務(wù)、計劃與實(shí)際進(jìn)度;相關(guān)學(xué)科與軟件工具學(xué)習(xí)內(nèi)容摘要與存在問題、難點(diǎn);好的創(chuàng)意與建議;重要信息與線索記錄;項目完成的情況等,最后形成個人的項目經(jīng)驗(yàn)總結(jié)或項目開發(fā)的心得體會。
實(shí)踐表明,采用這種多元式的評分方法后,學(xué)生越來越重視團(tuán)隊合作和溝通,更加重視知識的運(yùn)用和創(chuàng)新,主動學(xué)習(xí)的勁頭也明顯提高。
3 結(jié)束語
本課程教學(xué)小組使用上述教學(xué)模式已有5年,認(rèn)為該模式使教學(xué)由枯燥、難理解變得生動、具體,很受學(xué)生歡迎,效果較好,是一種較實(shí)用的教學(xué)模式。當(dāng)然也給教師增加了巨大的工作量,且對教師的實(shí)際軟件開發(fā)能力要求更高。
參考文獻(xiàn)
[1] 陳世鴻等. 軟件工程原理及應(yīng)用[M]. 武漢大學(xué)出版社,2000.
[2] 陳世鴻,彭蓉等. 面向?qū)ο筌浖こ蘙M]. 北京:電子工業(yè)出版社,1999.
[3] 張海藩. 軟件工程導(dǎo)論(第四版)[M]. 北京:清華大學(xué)出版社,2003.
[4] 賈泂. 軟件工程課程教育的特點(diǎn)及相關(guān)問題探討[J]. 計算機(jī)時代,2005,(11).
[5] 沈備軍. 軟件工程教學(xué)的思考和改革[J]. 化工高等教育,2005,(4).
[6] 沈備軍. 軟件工程教學(xué)模式的研究和實(shí)現(xiàn)[J]. 學(xué)科建設(shè)和教學(xué)研究,2005,(1).