王辰尹 衣楊
摘要:以“卓越計(jì)劃”的軟件工程實(shí)施為背景,分析面向應(yīng)用型IT人才培養(yǎng)的軟件工程理論與實(shí)踐課程教學(xué)改革中出現(xiàn)的問(wèn)題,提出多層次階梯型教學(xué)目標(biāo)、基于案例的虛擬需求方監(jiān)督、過(guò)程與綜合性雙重考核方式等針對(duì)性的解決方案,為深化教學(xué)改革作進(jìn)一步嘗試。
關(guān)鍵詞:IT應(yīng)用型人才培養(yǎng);卓越計(jì)劃;軟件工程;卓越工程師
0 引言
近年來(lái),應(yīng)用型IT人才的社會(huì)需求日益增長(zhǎng),社會(huì)、企業(yè)急需高素質(zhì)、具有較強(qiáng)實(shí)踐能力的IT工程師人才。在國(guó)家“十二五”發(fā)展規(guī)劃綱要中,將軟件行業(yè)定位為我國(guó)國(guó)民經(jīng)濟(jì)中重要的戰(zhàn)略性新興產(chǎn)業(yè)。教育部提出了“卓越工程師教育培養(yǎng)計(jì)劃”(簡(jiǎn)稱卓越計(jì)劃)。該計(jì)劃旨在培養(yǎng)造就一批創(chuàng)新能力強(qiáng)、適應(yīng)經(jīng)濟(jì)社會(huì)發(fā)展需要的高質(zhì)量各類型工程技術(shù)人才,為國(guó)家走新型工業(yè)化發(fā)展道路、建設(shè)創(chuàng)新型國(guó)家和人才強(qiáng)國(guó)戰(zhàn)略服務(wù),對(duì)促進(jìn)高等教育面向社會(huì)需求培養(yǎng)人才、全面提高工程教育人才培養(yǎng)質(zhì)量具有十分重要的示范和引導(dǎo)作用。
“卓越計(jì)劃”的提出獲得了以培養(yǎng)合格IT工程師為主要目標(biāo)的高校計(jì)算機(jī)學(xué)科的高度關(guān)注和積極響應(yīng),各高校計(jì)算機(jī)專業(yè)、軟件工程專業(yè)紛紛開始針對(duì)包括教學(xué)理念、教學(xué)大綱、教學(xué)目標(biāo)、教學(xué)內(nèi)容、教學(xué)方法、考核方式等在內(nèi)的教學(xué)體系改革探索。作為計(jì)算機(jī)課程體系中唯一講授工程化、系統(tǒng)化、可量化的設(shè)計(jì)實(shí)現(xiàn)軟件系統(tǒng)的課程,軟件工程是高校計(jì)算機(jī)學(xué)科教學(xué)改革的重點(diǎn)內(nèi)容。
軟件工程是一門理論與實(shí)踐并重的課程,具有綜合性、實(shí)驗(yàn)性極強(qiáng)的特點(diǎn),旨在提升學(xué)生的編程能力、分析與設(shè)計(jì)能力、工程素養(yǎng)及團(tuán)隊(duì)協(xié)作精神,為后續(xù)的系統(tǒng)分析與設(shè)計(jì)、畢業(yè)設(shè)計(jì)等課程乃至成為一名合格的軟件工程師奠定良好的理論、技術(shù)及工程基礎(chǔ),因此該課程的教學(xué)效果對(duì)卓越軟件工程師的培養(yǎng)起著舉足輕重的作用。
1 面向應(yīng)用型IT人才培養(yǎng)的課程教學(xué)中存在的問(wèn)題
1.1 單純引入案例教學(xué)法,學(xué)生未“身臨其境”
案例教學(xué)法是指在課堂中運(yùn)用案例進(jìn)行教學(xué)的方式,最初興起于美國(guó),上世紀(jì)80年代進(jìn)入中國(guó)。案例教學(xué)法的興起,改變了傳統(tǒng)的“黑板教育”,有利于提升學(xué)生分析解決問(wèn)題的能力,提高教學(xué)效果。在軟件工程教學(xué)改革中,積極引入大量企業(yè)優(yōu)秀案例并納入日常教學(xué)內(nèi)容中。案例教學(xué)法的引入改變了傳統(tǒng)教學(xué)中知識(shí)內(nèi)容枯燥、陳舊、無(wú)法與企業(yè)需求接軌等現(xiàn)象,新的、優(yōu)秀的企業(yè)案例為陳舊的知識(shí)內(nèi)容輸入了新鮮血液,在一定程度上激發(fā)了學(xué)生的學(xué)習(xí)興趣,活躍了課堂氛圍,提高了教學(xué)的質(zhì)量。但是案例教學(xué)法的效果很大程度上需要師生角色的轉(zhuǎn)換,并做到“身臨其境”,真正的深入案例并體驗(yàn)角色。目前,在軟件工程教學(xué)改革中,只是單純的引入案例教學(xué)法,課堂更多是為了案例教學(xué)而教學(xué),學(xué)生處于旁觀者的角色。案例教學(xué)法的價(jià)值在于基于角色的深入體驗(yàn),軟件工程要求學(xué)生參與完成一個(gè)軟件項(xiàng)目從需求分析、設(shè)計(jì)、編碼、測(cè)試到維護(hù)的全過(guò)程體驗(yàn),“身臨其境”的角色體驗(yàn)對(duì)于學(xué)生對(duì)該門過(guò)程的把握和理解是非常重要的,這也是案例教學(xué)法應(yīng)用于軟件工程課程教學(xué)中的價(jià)值所在。目前,沒有深入案例角色體驗(yàn)的教學(xué)法與其本身意義相悖,也失去其應(yīng)用價(jià)值。
1.2 項(xiàng)目實(shí)踐組隊(duì)完全自由化,導(dǎo)致兩極分化,學(xué)生學(xué)習(xí)興趣消極
軟件工程是一門以編程語(yǔ)言為基礎(chǔ)的課程,在軟件開發(fā)的生命周期中,編程是重要環(huán)節(jié)之一,因此編程能力的優(yōu)劣在一定程度上影響學(xué)生對(duì)該門課程的學(xué)習(xí)。軟件系統(tǒng)的復(fù)雜性決定其必須以團(tuán)隊(duì)化的模式運(yùn)作,軟件工程實(shí)踐教學(xué)改革中,倡導(dǎo)項(xiàng)目驅(qū)動(dòng)、任務(wù)驅(qū)動(dòng)模式,以團(tuán)體為單位進(jìn)行項(xiàng)目實(shí)踐,而項(xiàng)目組隊(duì)多以學(xué)生自由選擇的方式進(jìn)行。在教學(xué)實(shí)踐中,我們不難發(fā)現(xiàn),完全自由化的組隊(duì)方式容易造成“強(qiáng)強(qiáng)自愿優(yōu)先聯(lián)盟、弱弱淘汰被迫聯(lián)盟”的兩極分化。編程能力較強(qiáng)或者人際關(guān)系較好的學(xué)生容易走到一起優(yōu)先結(jié)成團(tuán)隊(duì),編程能力較弱或個(gè)性孤僻的同學(xué)“被拋棄”,最后被迫結(jié)盟。顯然這種組合結(jié)果打擊了后者對(duì)課程的學(xué)習(xí)興趣,對(duì)學(xué)習(xí)產(chǎn)生消極影響,基于目前統(tǒng)一的考核標(biāo)準(zhǔn),后者從一開始就輸在了起跑線上;部分教師在教學(xué)中基于學(xué)生成績(jī)和平時(shí)表現(xiàn)所產(chǎn)生的“不對(duì)等關(guān)注”,也會(huì)影響學(xué)生對(duì)該門課程的學(xué)習(xí)。
1.3 項(xiàng)目驅(qū)動(dòng)教學(xué)模式缺乏引導(dǎo)和監(jiān)督,項(xiàng)目開發(fā)未完全遵循軟件開發(fā)生命周期過(guò)程
軟件系統(tǒng)的完成,包括從需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù)。軟件工程的“工程化、系統(tǒng)化”決定了軟件工程實(shí)踐教學(xué)中必須對(duì)軟件開發(fā)的整個(gè)過(guò)程加以重視,而非只專注結(jié)果。以任務(wù)驅(qū)動(dòng)的軟件工程實(shí)踐明確了軟件開發(fā)的目標(biāo),但在教學(xué)實(shí)踐中,由于實(shí)踐課時(shí)有限、團(tuán)隊(duì)數(shù)量較多、教師精力不足等因素導(dǎo)致缺乏良好的引導(dǎo)和監(jiān)督,項(xiàng)目開發(fā)未完全遵循軟件開發(fā)的生命周期過(guò)程。在實(shí)踐教學(xué)中,學(xué)生以團(tuán)體為單位選擇項(xiàng)目,完成項(xiàng)目需求、分析、設(shè)計(jì)、編碼、測(cè)試和維護(hù)等過(guò)程。由于課堂時(shí)間有限,更多項(xiàng)目由學(xué)生在課余時(shí)間完成。但據(jù)學(xué)生課后反饋,大多數(shù)團(tuán)隊(duì)由于缺乏監(jiān)督、自律性較弱、缺乏教師指導(dǎo)等并未完全遵循軟件開發(fā)生命周期過(guò)程。學(xué)生拿到項(xiàng)目后的第一反映是如何進(jìn)行編碼而不是需求分析和設(shè)計(jì),并未進(jìn)行深入討論和思考,甚至一部分團(tuán)隊(duì)的需求分析在期末需要提交項(xiàng)目大作業(yè)時(shí)才開始進(jìn)行,這顯然與軟件開發(fā)的生命周期過(guò)程相違背。
1.4 實(shí)踐教學(xué)重模仿,輕創(chuàng)新
軟件工程改革針對(duì)長(zhǎng)期存在的重理論輕實(shí)踐的教學(xué)弊端,加大了實(shí)踐教學(xué)的力度,這對(duì)提高學(xué)生的實(shí)踐技能有明顯的促進(jìn)作用。但是在實(shí)踐中,往往單純加大實(shí)踐教學(xué)課時(shí)而非注重實(shí)踐教學(xué)質(zhì)量,結(jié)果只是用“教師課堂演練學(xué)生模仿”模式代替了傳統(tǒng)的“教師講授學(xué)生聽講”模式。這種模仿式教學(xué)無(wú)法培養(yǎng)學(xué)生獨(dú)立自主分析解決問(wèn)題的能力,在一定程度上扼殺了學(xué)生的創(chuàng)新能力。培養(yǎng)出的學(xué)生只能是熟練的技工而非具有創(chuàng)新思維,能夠獨(dú)立分析解決問(wèn)題的軟件工程師。很多學(xué)生在課堂上能夠熟練操作軟件工具,但獨(dú)立面對(duì)問(wèn)題時(shí),卻束手無(wú)策。究其原因,在教學(xué)中學(xué)生缺乏自主學(xué)習(xí)和思考的過(guò)程,只知其然而不知其所以然。
1.5 實(shí)踐中教學(xué)重編碼,輕規(guī)范endprint
軟件工程課程要求學(xué)生通過(guò)理論和實(shí)踐學(xué)習(xí),掌握軟件項(xiàng)目自開發(fā)到維護(hù)的一般過(guò)程,掌握軟件開發(fā)的傳統(tǒng)和最新方法,用軟件工程的方法參與軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)。該課程不僅要求學(xué)生在編程能力上的提高,更要求在軟件分析與設(shè)計(jì)的能力、工程素養(yǎng)、團(tuán)隊(duì)協(xié)作能力上的提升。目前在實(shí)踐教學(xué)中,學(xué)校大都強(qiáng)調(diào)系統(tǒng)的復(fù)雜性,并以此作為學(xué)生實(shí)踐考核的主要依據(jù),忽視了工程化團(tuán)隊(duì)項(xiàng)目中所應(yīng)具有的工程素養(yǎng)及文檔、代碼規(guī)范。軟件開發(fā)是一項(xiàng)需要團(tuán)隊(duì)協(xié)作的系統(tǒng)性工作,優(yōu)秀的編碼能力固然重要,但良好的文檔及代碼規(guī)范也是其保障。
1.6 考核方式重結(jié)果,輕過(guò)程
教學(xué)改革中加大了實(shí)踐技能在考核中的比重,引起了學(xué)生對(duì)實(shí)踐技能的注重,促進(jìn)了教師對(duì)學(xué)生實(shí)踐技能的培養(yǎng),但實(shí)踐技能多以小組項(xiàng)目最終成果作為考核內(nèi)容,在一定程度上造成了重結(jié)果而不重過(guò)程的現(xiàn)象。軟件工程實(shí)踐的教學(xué)目標(biāo)是要求學(xué)生掌握軟件開發(fā)生命周期的整個(gè)過(guò)程,目前的考核方式與教學(xué)目標(biāo)的初衷不符。
2 改進(jìn)舉措
為進(jìn)一步深化軟件工程教學(xué)改革實(shí)踐成果,提升教學(xué)質(zhì)量,培養(yǎng)高質(zhì)量的卓越軟件工程師人才,我們基于教改實(shí)踐中的問(wèn)題,從教學(xué)目標(biāo)、教學(xué)內(nèi)容、教學(xué)模式、考核標(biāo)準(zhǔn)等多方面提出具有針對(duì)性、實(shí)踐性的改進(jìn)措施,對(duì)教學(xué)改革方案進(jìn)行完善。
2.1 多層次梯度學(xué)習(xí)目標(biāo)和多級(jí)考核標(biāo)準(zhǔn)
在教學(xué)目標(biāo)上和考核標(biāo)準(zhǔn)上,基于先修課程的掌握情況對(duì)學(xué)生團(tuán)隊(duì)進(jìn)行多層次有梯度的再分組,變傳統(tǒng)的單一學(xué)習(xí)目標(biāo)和統(tǒng)一考核標(biāo)準(zhǔn)為分層次的目標(biāo)和多級(jí)考核標(biāo)準(zhǔn)。在目標(biāo)設(shè)定上,建議從高到低分為3個(gè)梯度,從而實(shí)現(xiàn)梯度內(nèi)目標(biāo)、考核標(biāo)準(zhǔn)相同,梯度問(wèn)要求逐步提升,滿足不同層次學(xué)生要求。
(1)對(duì)于第三梯度,以項(xiàng)目系統(tǒng)的完整性和可用性為主要目標(biāo)和考核標(biāo)準(zhǔn)。
(2)對(duì)于第二梯度,在系統(tǒng)項(xiàng)目完整性基礎(chǔ)上,以系統(tǒng)項(xiàng)目的復(fù)雜性、功能性、文檔的規(guī)范性為主要目標(biāo)和考核標(biāo)準(zhǔn)。
(3)對(duì)于第一梯度,要求滿足系統(tǒng)項(xiàng)目完整性、功能性、復(fù)雜性的基礎(chǔ)上,著力強(qiáng)調(diào)創(chuàng)新性和技術(shù)前沿性。
各小組根據(jù)先修課程的掌握情況在教師的引導(dǎo)下進(jìn)行不同層次不同梯度目標(biāo)選擇。每一梯隊(duì)內(nèi)的各小組目標(biāo)及考核方式相同進(jìn)行直接競(jìng)爭(zhēng),并根據(jù)排名進(jìn)行成績(jī)?cè)u(píng)定。
這種分層次多目標(biāo)的教學(xué)方式和考核標(biāo)準(zhǔn),滿足不同層次學(xué)生的需要。第一梯隊(duì)學(xué)生具有較好的基礎(chǔ),較強(qiáng)的編程能力,有利于培養(yǎng)他們的創(chuàng)新能力;第二梯隊(duì)學(xué)生在課堂知識(shí)學(xué)習(xí)的基礎(chǔ)上有利于加深知識(shí)的擴(kuò)展;第三梯隊(duì)學(xué)生有利于提高他們學(xué)習(xí)的興趣,完成基本的教學(xué)目標(biāo),為后續(xù)課程打下基礎(chǔ)。而站在同一起跑線上的同一梯隊(duì)下的小組競(jìng)爭(zhēng),更會(huì)促進(jìn)學(xué)生對(duì)學(xué)習(xí)的興趣,軟件工程教改深化體系結(jié)構(gòu)如圖1所示。
2.2 以學(xué)生為主教師為輔的教學(xué)方式
在教學(xué)模式上,提出“以學(xué)生為主教師輔導(dǎo)為輔”的學(xué)生課堂展示教師輔助的教學(xué)方式,加大學(xué)生自主學(xué)習(xí)的空間,引導(dǎo)學(xué)生多思考和討論。教師提前公布下一節(jié)課的教學(xué)內(nèi)容、學(xué)習(xí)要點(diǎn)及學(xué)習(xí)目標(biāo),并輔之以豐富的學(xué)習(xí)資源方便學(xué)生課下學(xué)習(xí),學(xué)生以小組為單位進(jìn)行學(xué)習(xí),互相討論。課堂主要是學(xué)生成果展示,小組間討論和教師引導(dǎo)學(xué)生對(duì)出現(xiàn)的問(wèn)題進(jìn)行思考。通過(guò)學(xué)生小組自學(xué)的方式,培養(yǎng)學(xué)生的自主學(xué)習(xí)能力和團(tuán)隊(duì)精神;通過(guò)學(xué)生課堂成果展示并進(jìn)行評(píng)比,提高學(xué)生對(duì)學(xué)習(xí)的興趣;教師提出問(wèn)題學(xué)生進(jìn)一步思考從而提高學(xué)生思維能力。這種以學(xué)生自主學(xué)習(xí)為主教師輔導(dǎo)為輔的教學(xué)模式提升了學(xué)生的學(xué)習(xí)興趣,加強(qiáng)了對(duì)學(xué)生創(chuàng)新能力的培養(yǎng)。
2.3 引入組建監(jiān)督
此外加大教師在整個(gè)開發(fā)過(guò)程中的監(jiān)督和引導(dǎo)力度,并創(chuàng)新性地引入組間監(jiān)督,即在教師作為監(jiān)督者的基礎(chǔ)上,各小組間進(jìn)行互監(jiān)督,并以軟件需求方的身份進(jìn)行。以項(xiàng)目案例為基準(zhǔn),引入以其他小組為虛擬的需求方。作為需求方的小組有權(quán)根據(jù)給定的項(xiàng)目提出自己的“個(gè)性化需求”。作為開發(fā)方的小組進(jìn)行需求分析不再是對(duì)著文字版的案例進(jìn)行自由發(fā)揮,而是通過(guò)深入了解并與需求方討論進(jìn)行需求分析和設(shè)計(jì)。需求方與開發(fā)方的討論需要從項(xiàng)目伊始持續(xù)到項(xiàng)目最終完成,需求方需要對(duì)開發(fā)方所完成的項(xiàng)目情況進(jìn)行評(píng)定并給定意見。這種虛擬需求方模式引入了第三方監(jiān)督,并對(duì)企業(yè)軟件開發(fā)環(huán)境進(jìn)行了一定程度的模擬。對(duì)于軟件開發(fā)的每個(gè)團(tuán)隊(duì),既作為開發(fā)方又作為虛擬的需求方。開發(fā)方在兩方監(jiān)督(教師和需求方)下,將會(huì)更加注重軟件開發(fā)的過(guò)程性;需求方在模擬角色的同時(shí),也會(huì)對(duì)軟件開發(fā)的整個(gè)生命周期過(guò)程有進(jìn)一步體會(huì)。
在整個(gè)軟件開發(fā)生命周期中,學(xué)生需要深入情景并多次進(jìn)行開發(fā)方與需求方角色轉(zhuǎn)換。在每個(gè)角色中,除了與教師溝通外,包括學(xué)生個(gè)體之間,團(tuán)隊(duì)小組內(nèi)部成員之間,團(tuán)隊(duì)之間等多方討論和溝通,容易獲得較高質(zhì)量的過(guò)程體驗(yàn),潛移默化獲取知識(shí)并轉(zhuǎn)化為能力。
2.4 過(guò)程性考核與綜合性考核并重
基于上述教學(xué)模式,進(jìn)一步改革考核體系,把整個(gè)考核體系分成2個(gè)層次,即過(guò)程性考核和綜合性考核,過(guò)程性考核注重階段完成情況,綜合性考核注重最終結(jié)果。
過(guò)程性考核需要全程監(jiān)督,在考核主體上,從傳統(tǒng)的教師一人考核轉(zhuǎn)變?yōu)椤敖處熞龑?dǎo)的學(xué)生雙向考核”模式。在模擬需求方模式中,每一小組既作為評(píng)估方,也作為被評(píng)估方。評(píng)估方與教師在軟件開發(fā)生命周期的整個(gè)過(guò)程中進(jìn)行監(jiān)督,由于評(píng)估方與被評(píng)估方需要在多個(gè)環(huán)節(jié)中需要進(jìn)行討論,此外小組的最終成績(jī)除自身項(xiàng)目完成情況外,作為評(píng)估方的表現(xiàn)也被納入其中,使高質(zhì)量的過(guò)程性監(jiān)督得以保證。
教師在整個(gè)過(guò)程中,充當(dāng)引導(dǎo)者和第三方監(jiān)督的角色。這種基于過(guò)程化、雙評(píng)式的考核方式,加強(qiáng)了整個(gè)過(guò)程的監(jiān)督,也增加了項(xiàng)目實(shí)踐中的趣味性,使得課堂及考核不再是傳統(tǒng)的枯燥的講授和試卷,提高學(xué)生的學(xué)習(xí)興趣。
在考核內(nèi)容上,加人代碼和文檔的可讀性。傳統(tǒng)教師單一評(píng)估模式中,最后只有教師對(duì)學(xué)生項(xiàng)目成果進(jìn)行評(píng)價(jià),在雙評(píng)模式中,評(píng)估方也需要對(duì)項(xiàng)目成果進(jìn)行評(píng)價(jià),并作為考核的內(nèi)容之一。這種雙評(píng)模式在一定程度上促使各開發(fā)方在撰寫代碼和文檔時(shí),為了使得代碼和文檔能被對(duì)方充分理解,會(huì)更加注重文檔的規(guī)范性。而教師在教學(xué)中的進(jìn)一步引導(dǎo),將起到事半功倍的效果,幫助學(xué)生養(yǎng)成良好的編程習(xí)慣。
3 結(jié)語(yǔ)
未來(lái)我們將進(jìn)一步關(guān)注軟件工程的教學(xué)改革,理論與實(shí)踐教學(xué)相結(jié)合,將理論方法落實(shí)到實(shí)踐教學(xué)中的每個(gè)環(huán)節(jié),積極進(jìn)行教學(xué)效果反饋并進(jìn)一步修正。卓越計(jì)劃的實(shí)施是一項(xiàng)需要長(zhǎng)期堅(jiān)持的系統(tǒng)化工程,需要持之以恒的不懈努力以及教學(xué)實(shí)踐的不斷嘗試和反饋。
參考文獻(xiàn):
[1]關(guān)于實(shí)施卓越工程師教育培養(yǎng)計(jì)劃的若干意見[S].教高[2011]1號(hào).
[2]林健.“卓越工程師教育培養(yǎng)計(jì)劃”通用標(biāo)準(zhǔn)研制[J].高等工程教育研究,2010(7):56-59.
[3]李峰,夏小玲.計(jì)算機(jī)軟件工程專業(yè)卓越計(jì)劃實(shí)踐教學(xué)[J].計(jì)算機(jī)教育,2013(13):18-21.
[4]王燕霞.以“卓越工程師培訓(xùn)計(jì)劃”為平臺(tái),提升工科類大學(xué)生創(chuàng)業(yè)能力[J].中國(guó)校外教育,2011(16):21-84.
[5]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社.2008(3):5-20.
(編輯:趙廓)endprint