司春景?李向陽
摘要:“軟件工程”是計算機專業(yè)核心課程,但目前教學(xué)模式存在一定的問題。針對目前高?!败浖こ獭闭n程教學(xué)中存在的問題,分析了現(xiàn)有的5種教學(xué)方法,提出了在軟件工程課程不同的教學(xué)過程中采用多元教學(xué)模式,并給出了具體的實施方案。此方案發(fā)揮了各種方法的優(yōu)勢,為“軟件工程”教學(xué)提供一種基于多元教學(xué)法的課程改革方案,使學(xué)生不僅學(xué)到了基本的理論知識,還培養(yǎng)了學(xué)生實際開發(fā)的能力。
關(guān)鍵詞:多元教學(xué)模式;軟件工程;案例教學(xué)法
作者簡介:司春景(1981-),女,新疆阿拉爾人,塔里木大學(xué)信息工程學(xué)院,講師;李向陽(1973-),男,新疆阿拉爾人,塔里木大學(xué)信息工程學(xué)院,副教授。(新疆 阿拉爾 843300)
基金項目:本文系塔里木大學(xué)本科質(zhì)量工程特色專業(yè)“計算機科學(xué)與技術(shù)”(項目編號:20090627)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)07-0098-03
“軟件工程”是一門指導(dǎo)計算機軟件系統(tǒng)開發(fā)、維護和管理的學(xué)科,主要利用工程概念、原理、技術(shù)和方法,將現(xiàn)代技術(shù)方法和正確的管理技術(shù)相結(jié)合,重點研究應(yīng)用軟件開發(fā)的基本理論和工程技術(shù)來指導(dǎo)軟件系統(tǒng)的開發(fā)、維護和管理?!败浖こ獭闭n程是學(xué)生參加工作以后最能直接應(yīng)用的一門專業(yè)核心課,它要求做出一個滿足用戶要求的系統(tǒng),這是一個很具體的實踐過程,具有很強的工程和項目背景。[1]
一、傳統(tǒng)教學(xué)模式的問題
“軟件工程”是計算機專業(yè)學(xué)生的一門基礎(chǔ)必修課。在目前的教育體系下,大學(xué)生學(xué)習知識的主要途徑是教師講授。傳統(tǒng)的“軟件工程”課程教學(xué)模式在理論教學(xué)方面重視基本知識的教授;在教學(xué)原則上強調(diào)教學(xué)的直觀性、系統(tǒng)性和鞏固性;在教學(xué)方法上強調(diào)學(xué)生預(yù)習、教師講授和學(xué)生反復(fù)復(fù)習記憶;在教學(xué)組織形式上則選用“填鴨式”教學(xué)。這種強調(diào)知識的單線注入和忽略學(xué)生思維訓(xùn)練的方法,不能很好地調(diào)動學(xué)生的學(xué)習主動性,不能起到很好的學(xué)習效果。當前高校軟件工程課程教學(xué)中存在以下突出問題:
1.教材重理論輕實踐
對于沒有任何大型軟件開發(fā)經(jīng)驗或參與開發(fā)的高校本科生,如果教材只關(guān)注軟件工程理論的講解,包括軟件開發(fā)模型、分析和設(shè)計方法等,則學(xué)生無法將理論聯(lián)系實際,所學(xué)內(nèi)容不知所云,更無法在日后發(fā)展中將理論與實際相結(jié)合。
2.實踐教學(xué)缺乏系統(tǒng)性和針對性
目前許多高?!败浖こ獭闭n程除了理論講解外,也加入了實踐教學(xué)部分。往往受學(xué)時所限,實踐分為軟件項目若干設(shè)計文檔的編寫和軟件工程工具的實驗練習。前者受缺乏相應(yīng)的開發(fā)環(huán)境、教師虛擬客戶不能很好地反應(yīng)現(xiàn)實需求、理工科學(xué)生的文字表達能力不足等因素的影響,設(shè)計文檔的編寫不能很好提高學(xué)生能力;后者在一定程度起到了一定的作用,但對于培養(yǎng)學(xué)生分析問題、解決問題、管理和團體協(xié)作能力方面仍顯不足。
3.評分模式單一
軟件工程采用了傳統(tǒng)的閉卷考試方式,平時成績占總成績的30%,期末考試占70%。平時成績=上課出勤情況(10%)+實驗完成情況(10%)+作業(yè)完成情況(10%)。任課教師通過對不同的考核內(nèi)容賦予不同權(quán)重來評價學(xué)生對軟件工程課程的掌握情況,主要考核學(xué)生對課程基本知識的理解。此方法不足以提高學(xué)生實際動手的能力,更不利于激發(fā)學(xué)生實際軟件設(shè)計開發(fā)的興趣。
二、現(xiàn)有的教學(xué)方法的分析
針對上述問題,從事軟件工程的相關(guān)教師從不同角度,對軟件工程課程進行了改革。歸納起來主要有如下幾種教學(xué)方法改革:
1.自底向上教學(xué)法在“軟件工程”課程中應(yīng)用
授課方式主要是用倒敘的方式貫穿完整案例(包含警戒案例),以啟發(fā)、討論、辯論的形式講授軟件工程的原理、方法及過程,使學(xué)生不覺生疏,易接受,又符合IT從業(yè)人員的工作進程。[2]
2.模塊化教學(xué)法在“軟件工程”課程中的應(yīng)用
在尊重教學(xué)規(guī)律和學(xué)生個性發(fā)展的原則上,根據(jù)課程體系和內(nèi)容之間的關(guān)系,將教學(xué)部分劃分為若干獨立的模塊,確定模塊之間的關(guān)聯(lián),針對不同的教學(xué)計劃要求,采用不同的模塊組合有選擇地進行講授和學(xué)習。[3]
3.案例教學(xué)法在“軟件工程”課程中的應(yīng)用
軟件工程案例教學(xué)是根據(jù)“軟件工程”課程的教學(xué)目的和學(xué)生培養(yǎng)目標要求,教師選用相應(yīng)的案例作為基本素材,引導(dǎo)學(xué)生對案例進行調(diào)查、思考、分析、討論、設(shè)計、開發(fā)和交流等相關(guān)活動,在活動中教授學(xué)生軟件工程的原理、方法及過程,進而提高學(xué)生分析和解決問題的能力,加深學(xué)生對基本理論知識的理解和掌握。[4]
4.項目驅(qū)動教學(xué)法在“軟件工程”課程中的應(yīng)用
項目驅(qū)動教學(xué)法是案例教學(xué)法的基礎(chǔ)上采用“案例導(dǎo)向、項目驅(qū)動”的教學(xué)方法。首先,教師根據(jù)要講授的理論知識預(yù)先準備一個或者多個小的軟件開發(fā)項目;然后,將學(xué)生作為主體,以軟件開發(fā)項目的研發(fā)過程為引導(dǎo),采用學(xué)生小組團隊合作和學(xué)生個人獨立完成相結(jié)合的教學(xué)形式,組織學(xué)生開展集體討論并完成相應(yīng)的實踐性活動,在研發(fā)過程中同學(xué)和老師要對每位學(xué)生所完成的每個階段任務(wù)加以點評、督促改進、分享經(jīng)驗等;最后,學(xué)生將成功的軟件給予演示。[5]
5.三位一體式教學(xué)法在“軟件工程”課程中的應(yīng)用
根據(jù)學(xué)生的認識特點和該課程自身的特點以及對“軟件工程”課程在計算機科學(xué)專業(yè)的定位、教材的選取、課程培養(yǎng)目標的分析下,采取以綜合能力培養(yǎng)為中心、項目實踐為標準,模板、案例、指導(dǎo)說明為輔助的三位一體式的教學(xué)思路。[6]
對目前在“軟件工程”課程改革中應(yīng)用的五種方法針對改革側(cè)重點進行匯總發(fā)現(xiàn)(見表1),單一的教學(xué)方法只是在理論教學(xué)、實踐教學(xué)和考核方式某一方面發(fā)揮了很好的作用,而不能從全面發(fā)揮效果,而對于“軟件工程”課程來說三者同樣重要。
三、基于多元教學(xué)法的課程改革新模式
某一種教學(xué)模式改革已經(jīng)不能滿足現(xiàn)代“軟件工程”課程教學(xué)的要求,只有將多元教學(xué)模式組合在一起,充分考慮各自對課程教學(xué)的優(yōu)勢,避其缺點,找到一種既能使學(xué)生具有良好的理論基礎(chǔ),又能充分培養(yǎng)學(xué)生實踐能力,還能準確地考核學(xué)生的教學(xué)模式。本次課程改革就是本著這樣一種思想,從理論教學(xué)、實踐教學(xué)和考核方式三個方面進行多樣化改革。
1.理論教學(xué)內(nèi)容多樣化
理論知識的學(xué)習在學(xué)生以后軟件項目開發(fā)過程中具有必要性和重要性,軟件工程學(xué)習過程中要重視基礎(chǔ)和基本技能的培養(yǎng)。學(xué)生要具有開發(fā)軟件項目的能力,首先要熟悉掌握軟件工程相關(guān)的理論知識,特別是對如何按照工程化的方法系統(tǒng)地設(shè)計、實現(xiàn)、測試和維護大型軟件,內(nèi)容包括:軟件開發(fā)的基本理論、方法和技術(shù);其次是了解目前已有系統(tǒng)、工具和技術(shù)。
(1)授課內(nèi)容引入案例。教師在教學(xué)過程中引入與理論知識相匹配的實際案例,將比較抽象的軟件工程原理、方法和技術(shù)轉(zhuǎn)為具體生動的案例進行詮釋,增強理論教學(xué)的藝術(shù)性、科學(xué)性、趣味性、形象性,使學(xué)生能夠在課堂上深刻領(lǐng)會和理解軟件工程的思想和方法,教學(xué)效果收到了事半功倍。
(2)適時更新教學(xué)內(nèi)容。近幾年,軟件原理、方法和技術(shù)發(fā)展較快,許多適應(yīng)時代發(fā)展的軟件不斷涌出,而目前的教材雖不斷改版更新,但其更新的速度遠遠跟不上軟件工程的發(fā)展。因此,教師在進行理論講解時,除了要教授學(xué)生基本原理、技術(shù)和方法外,還要時刻關(guān)注新內(nèi)容的出現(xiàn)。
(3)制作豐富多彩的課件。采用多媒體教學(xué)手段,在課件中插入圖片、動畫、聲音、視頻等多媒體元素,使教學(xué)內(nèi)容更加充實和生動。
(4)課堂小組討論。從小問題到大問題,讓學(xué)生參與教學(xué)過程,有機會發(fā)表自己的看法。課堂討論和分析試驗,使理論有實踐作支撐,抽象的知識變得看得見,用得著,大大激發(fā)學(xué)生學(xué)習的興趣和自信。
2.實踐教學(xué)內(nèi)容多樣化
軟件工程理論的講解是課程學(xué)習和技能培養(yǎng)的基礎(chǔ),而軟件工程中許多理論內(nèi)容如果只是教師講解不加以實踐,內(nèi)容本身就會變得空洞和不可理解,例如:軟件復(fù)雜性計算、軟件可靠性與安全性的測量標準、結(jié)構(gòu)化的實現(xiàn)方法等都需要學(xué)生動手實踐才能更好地理解知識本身的內(nèi)涵。掌握概念、原理、方法和技術(shù),熟練應(yīng)用軟件開發(fā)實踐中的方法和技術(shù)是“軟件工程”課程對學(xué)生的培養(yǎng)目標。
(1)課程角色扮演。教師預(yù)先選擇若干小項目,班內(nèi)學(xué)生根據(jù)自己對項目熟悉情況選擇項目名稱,劃分項目小組,每組人數(shù)不超過6人,每個項目小組成員根據(jù)自身特長選擇不同軟件工程角色,例如項目負責人、需求分析負責人、設(shè)計負責人、編碼負責人、測試負責人和用戶代表,進行項目分工。項目組成員按時完成自己負責任務(wù),撰寫相應(yīng)文檔。教師幫助學(xué)生分析和解決所遇到問題。在整個開發(fā)過程可以體現(xiàn)“學(xué)以致用”的思想,實現(xiàn)理論與實踐相結(jié)合。
(2)課程設(shè)計。課程設(shè)計主要是針對高年級學(xué)生在學(xué)習軟件工程課程時開展的專項訓(xùn)練。課程設(shè)計采取在學(xué)校內(nèi)模擬IT企業(yè)環(huán)境下完成來自企業(yè)案例或開發(fā)一些具有應(yīng)用價值項目或?qū)W校教師承擔的開發(fā)項目的部分開發(fā)工作,也可以是學(xué)生自選項目,整個課程設(shè)計階段嚴格按照工程實施的基本思想來實施。
(3)加強校企合作。一方面經(jīng)常邀請軟件公司長期從事軟件設(shè)計、開發(fā)和項目管理的工程師和項目經(jīng)理,給學(xué)生講解自己在軟件設(shè)計、開發(fā)和管理中的經(jīng)驗,高質(zhì)量軟件產(chǎn)品需要經(jīng)過怎樣的開發(fā)過程,軟件生命周期中標準文檔如何撰寫等相關(guān)內(nèi)容;另一方面,利用寒暑假時間,讓學(xué)生走出去,到軟件產(chǎn)品的研發(fā)單位實地實習。
3.考試方式多樣化
傳統(tǒng)的考核方式已經(jīng)不能反映學(xué)生實際軟件開發(fā)的水平,也與多樣化的教學(xué)模式不相匹配,為此多樣化的考核方式才符合現(xiàn)實需求,主要包括:筆試、課后角色扮演、課程設(shè)計和項目總結(jié)。
(1)筆試占總成績的35%,主要考查學(xué)生理論知識的掌握情況和學(xué)習效果。
(2)課后角色扮演占總成績的15%。由教師根據(jù)每位學(xué)生在課后角色扮演中的具體表現(xiàn)進行打分,主要由3部分取平均值組成:1/3*(整個項目的成績+自己負責完成的文檔成績+組內(nèi)其他成員負責完成的文檔的平均成績)。
(3)項目總結(jié)或心得體會占總成績的15%。根據(jù)學(xué)生在軟件開發(fā)過程中所撰寫的經(jīng)驗和教訓(xùn)總結(jié)報告、每個小組成員建立的個人開發(fā)記錄或日志的實際情況,相互打分。
四、基于多元教學(xué)模式課程改革方案
基于上述改革理念,按照軟件工程開發(fā)原理、方法和技術(shù),選用典型項目案例,將學(xué)生按照項目分成若干個小組,每組人數(shù)不超過6人。每個小組對應(yīng)著一個具體的項目,每個人對應(yīng)著一個具體工作過程,按照如下步驟進行多元教學(xué)。
第一步,教師選用合適的教學(xué)內(nèi)容,制作豐富多彩的課件,對學(xué)生進行基本理論和基本技能的講解。在每一個軟件生命周期結(jié)束后,教師進行案例場景描述。教師按照理論知識的內(nèi)容,選擇相應(yīng)的案例進行描述,學(xué)生將所學(xué)內(nèi)容運用到相關(guān)案例中。教師通過案例讓學(xué)生明白理論知識如何應(yīng)用,學(xué)生通過案例體會到小項目中所學(xué)的原理、方法和技術(shù)是如何實現(xiàn)的。
第二步,課后角色扮演。學(xué)生通過分組討論的方式,完成項目分工,明確自己在項目中所扮演的角色。所有的任務(wù)通過集體討論的方式,決出所要完成的任務(wù),并由相應(yīng)的角色人實際操作完成。例如,需求分析一章內(nèi)容,學(xué)生課后進行項目小組討論,決定需求分析的內(nèi)容,進行相應(yīng)的需求分析,并由扮演需求分析人員的學(xué)生完成需求報告。軟件開發(fā)過程需要整個團隊的通力合作,根據(jù)學(xué)生的性格、表達能力、開發(fā)能力、理論基礎(chǔ)掌握情況等方面進行人員分組,將具有不同特點的學(xué)生組成一個團隊完成項目開發(fā)。這種團隊合作的方式,既能發(fā)揮學(xué)生各自的特長,又能培養(yǎng)學(xué)生的團隊合作精神。
第三步,課程設(shè)計。當全部內(nèi)容講解完成,就可以開始長達2周的課程設(shè)計內(nèi)容了。這段時間要求項目小組,徹底完成一個由教師虛擬的項目。此步驟中,主要培養(yǎng)學(xué)生良好的科研習慣,在開發(fā)過程中及時總結(jié)經(jīng)驗和教訓(xùn),建立個人開發(fā)記錄或日志,理論聯(lián)系實際學(xué)著開發(fā)軟件。
第四步,學(xué)生總結(jié),教師點評。學(xué)生經(jīng)過多個教學(xué)環(huán)節(jié)后,每個團隊在一定程度上完成了各自的項目任務(wù),對各自團隊的成果進行總結(jié)。教師聽取每個團隊的匯報后,從橫向和縱向兩個方面對項目成果之間進行比較,從而讓每一位學(xué)生明白自己在團隊中發(fā)揮了什么作用,自己哪些方面不足。
第五步,請進來,走出去。通過學(xué)校和企業(yè)合作的方式,一方面經(jīng)常邀請軟件公司長期從事軟件設(shè)計、開發(fā)和項目管理的工程師和項目經(jīng)理,給學(xué)生講解自己在軟件設(shè)計、開發(fā)和管理中的經(jīng)驗,高質(zhì)量軟件產(chǎn)品需要經(jīng)過怎樣的開發(fā)過程,軟件生命周期中標準文檔如何撰寫等相關(guān)內(nèi)容;另一方面,利用寒暑假時間,讓學(xué)生走出去,到軟件產(chǎn)品的研發(fā)單位,實地實習。
五、結(jié)束語
在多元教學(xué)過程中,理論教學(xué)利用多媒體PPT充實了課堂內(nèi)容,小組討論調(diào)動了學(xué)生積極性,不斷更新的教學(xué)內(nèi)容跟上了發(fā)展,以及啟發(fā)式的案例教學(xué)提高了學(xué)生的能力;實踐教學(xué)從課后角色扮演、期末集中時間課程設(shè)計,到寒暑假校企實習,整個過程依據(jù)軟件工程思想逐步的從小角色的扮演,團結(jié)合作做一個虛擬項目,到真正到軟件公司去實習工作,提高了學(xué)生的語言表達能力、分析問題能力、實踐動手能力和軟件工程協(xié)作、紀律等??己朔绞讲辉偈菃我坏姆绞?,除了考查基本理論的掌握情況,還考核學(xué)生是否已經(jīng)具備了一定的動手能力和科研能力。從理論教學(xué)、實踐教學(xué)和考核方式三個方面進行多元教學(xué),按照方案進行實施,強調(diào)動手能力,將工作過程的職業(yè)環(huán)境融入學(xué)習過程中,將學(xué)生對知識、職業(yè)能力的掌握程度提高到了實踐這一層面,使得學(xué)生能真正進入到“在學(xué)中做,在做中學(xué)”的理想學(xué)習環(huán)境中。
參考文獻:
[1]張海潘.軟件工程導(dǎo)論[M].第五版.北京:清華大學(xué)出版社,2008.
[2]溫春友,敖廣武.對軟件工程課程自底向上教學(xué)模式的探索[J].遼寧高職學(xué)報,2008,(3):27-28.
[3]孫知信.軟件工程課程模塊化教學(xué)改革的實踐與思考[J].南京郵電學(xué)院學(xué)報(社會科學(xué)版),2004,(2):39-42.
[4]彭佳紅,彭佳文,等.基于案例的軟件工程課程教學(xué)研究[J].高等農(nóng)業(yè)教育,2009,(11):60-62.
[5]霍英.項目驅(qū)動教學(xué)法在軟件工程課程中的實踐[J].計算機教育,2010,(17):123-125.
[6]薛繼強,劉軍.三位一體式教學(xué)法在軟件工程課程中的應(yīng)用[J].科技信息,2009,(19):187.
(責任編輯:宋秀麗)