近年來,大多數(shù)高校計算機(jī)專業(yè)畢業(yè)生的專業(yè)素質(zhì)跟不上時代發(fā)展的步伐,在工作中綜合運(yùn)用所學(xué)知識解決實際問題的能力達(dá)不到要求。本文從傳統(tǒng)方式下計算機(jī)專業(yè)畢業(yè)設(shè)計存在的問題出發(fā),提出了基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式,并對該模式進(jìn)行了教學(xué)實踐研究。
極限編程 畢業(yè)設(shè)計 教學(xué)實踐
一、前言
近年來,盡管大學(xué)本科畢業(yè)生的數(shù)量在大幅度增長,但質(zhì)量卻并不令人滿意。很多畢業(yè)生在工作中只能做一些基礎(chǔ)性和輔助性的工作,無法成為單位的主要科技力量。大學(xué)畢業(yè)生質(zhì)量滑坡的原因雖然是多方面的,但從本科教育的角度來看,就是我們培養(yǎng)的學(xué)生走向社會后,綜合解決實際問題的能力達(dá)不到要求。
計算機(jī)專業(yè)畢業(yè)設(shè)計是本科教學(xué)中的最后一個環(huán)節(jié),對于訓(xùn)練學(xué)生綜合運(yùn)動所學(xué)的理論知識與實踐技能分析問題和解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)新能力和初步科研能力的起著至關(guān)重要的作用。
二、傳統(tǒng)方式下計算機(jī)畢業(yè)設(shè)計存在的主要問題
從某種角度上來說,本科畢業(yè)設(shè)計是一扇窗口,其成果是對計算機(jī)專業(yè)本科教學(xué)質(zhì)量的全面綜合檢驗,同時也是用人單位選拔人才的重要依據(jù)之一。近年來,由于擴(kuò)招以后師生比例過低以及教育觀念的改變,目前很多高校本科畢業(yè)設(shè)計存在著不少問題,畢業(yè)設(shè)計的作用正在逐漸減弱,畢業(yè)設(shè)計的質(zhì)量呈逐年下滑的趨勢,已引起了教育專家的廣泛關(guān)注。由于計算機(jī)技術(shù)的發(fā)展速度最快,相比之下,計算機(jī)專業(yè)畢業(yè)設(shè)計的問題就更為突出。
1.流于形式,不能有效提高學(xué)生的綜合實踐能力,達(dá)不到預(yù)期效果
多年來的實踐表明,每屆學(xué)生在進(jìn)行畢業(yè)設(shè)計的時總是虎頭蛇尾,過程平淡甚至經(jīng)常出現(xiàn)消極狀態(tài)。
通過考查我們了解到計算機(jī)專業(yè)的學(xué)生對畢業(yè)設(shè)計是既期待,又擔(dān)心。期待是因為希望過畢業(yè)設(shè)計提高和鍛煉自己綜合運(yùn)用所學(xué)知識分析問題、解決問題的能力,真正體驗一次做項目經(jīng)理或數(shù)字藍(lán)領(lǐng)的感覺,擔(dān)心的是怕答辯過不了關(guān)。然而,當(dāng)畢業(yè)設(shè)計真正進(jìn)入實質(zhì)性階段后,各種問題就開始慢慢出現(xiàn),而且越來越多,工作進(jìn)度緩慢,偶爾還會出現(xiàn)一兩個星期都沒有任何進(jìn)展的情況。于是,學(xué)生們的情緒便立刻降到了低谷。然后便慢慢轉(zhuǎn)入一種消極被動的狀態(tài)。當(dāng)答辯時間越來越近時,學(xué)生們便開始慌亂起來,便著手思考如果過關(guān)的問題,普遍的做法是草草弄個系統(tǒng)應(yīng)付交差,答辯能勉強(qiáng)通過即可。因此,很我學(xué)生雖然參加了畢業(yè)設(shè)計,但動手實踐能力并沒有實質(zhì)性的提高。
2.理念陳舊,閉門造車
目前,大多數(shù)高校計算機(jī)專業(yè)畢業(yè)生的專業(yè)知識和技能跟不上時代的要求,與社會對計算機(jī)軟件開發(fā)人員專業(yè)素質(zhì)的要求脫節(jié)的現(xiàn)象十分嚴(yán)重。近幾來,許多高校在畢業(yè)設(shè)計宏觀管理方面上取得不少的成果,但在畢業(yè)設(shè)計教學(xué)模式與前沿技術(shù)和先進(jìn)理念相結(jié)合方面所做的研究還十分有限。
近年來,軟件工程領(lǐng)域產(chǎn)生了許多新的方法和技術(shù),包括:敏捷軟件開發(fā)(Agile Software Development)、極限編程(eXtreme Programming,XP)、測試驅(qū)動的開發(fā)(Test-Driven Development,TDD)、面向Agent的軟件開發(fā)(Agent-Oriented Development)、面向方面的編程(Aspect-Oriented Programming,AOP)、模型驅(qū)動體系結(jié)構(gòu)(Model-Driven Architecture,MDA)等。與傳統(tǒng)的軟件工程方法相比較,這些方法和技術(shù)為軟件工程實踐提供了新的思路,已在許多軟件工程實踐中取得了積極的效果。
然而,多年以來,傳統(tǒng)的軟件開發(fā)理念和技術(shù)一直是高校計算機(jī)專業(yè)本科畢業(yè)設(shè)計的主流。很多先進(jìn)的理念和技術(shù)學(xué)生們都沒有接觸過,畢業(yè)后根本無法適應(yīng)新工作的需要。
3.能力強(qiáng)的學(xué)生不易體現(xiàn)優(yōu)勢,能力弱的學(xué)生難以完成任務(wù)
隨著信息時代的到來和計算機(jī)軟、硬件技術(shù)的飛速發(fā)展,信息技術(shù)的應(yīng)用已滲透到各行各業(yè),軟件開發(fā)平臺、軟件工程方法和應(yīng)用系統(tǒng)規(guī)模隨著時代的發(fā)展不斷升級。傳統(tǒng)的以“單打獨(dú)斗”為主的畢業(yè)設(shè)計模式對于強(qiáng)、弱兩極學(xué)生的影響尤其明顯。
對于動手能力強(qiáng)的學(xué)生來說,雖然能夠順利完成任務(wù),但由于沒有形成團(tuán)隊,僅靠一個人的力量難以開發(fā)出符合社會要求、能夠投入實際應(yīng)用、具有一定規(guī)模的應(yīng)用系統(tǒng),再強(qiáng)的能力得不到充分的體現(xiàn)。而對于能力弱的學(xué)生來說,要獨(dú)立承擔(dān)一個畢業(yè)設(shè)計選題又確實非常困難,必須依靠他人的幫助才能勉強(qiáng)交差,由于這種幫助純屬義務(wù),幫助者與被幫助者之間既沒有共同的責(zé)任,也沒有明確的目標(biāo),無法形成正式的合作關(guān)系。當(dāng)施助者因為各種原因無法繼續(xù)幫助受助者按部就班地完成任務(wù)時,部分同學(xué)為了過關(guān)就開始鋌而走險——弄虛作假。
4.選題的時代性不強(qiáng),實用價值不高,不利于培養(yǎng)學(xué)生的創(chuàng)造性思維能力
很多老師多年來的選題都一直是那幾個,跟不上時代的脈搏,不能充分體現(xiàn)實用價值。一些老師明確表示:“學(xué)生做能得出這些選題就不錯了,不敢搞什么新花樣”。
計算機(jī)專業(yè)本科學(xué)生做畢業(yè)設(shè)計屬于研究與設(shè)計方面的工作,就像我們的老師做課題,應(yīng)該具有時代特征和一定的實用價值,這樣才能體現(xiàn)研究的必要性和研究價值。不僅如此,學(xué)生做畢業(yè)設(shè)計的選題還要與面向能力的復(fù)合型、應(yīng)用型人才的培養(yǎng)目標(biāo)相結(jié)合。所以,如何結(jié)合社會對軟件人員專業(yè)素質(zhì)的要求,設(shè)計出更多更好的有利于培養(yǎng)學(xué)生創(chuàng)造性思維能力的選題,從整體上提高畢業(yè)設(shè)計選題的質(zhì)量,也將成為畢業(yè)設(shè)計教學(xué)實踐改革的重點(diǎn)之一。
5.答辯與評價機(jī)制不完善
傳統(tǒng)方式下的計算機(jī)專業(yè)本科畢業(yè)設(shè)計答辯及成績考核有兩個較為突出的弊端。一個是答辯主要由學(xué)生的講解和老師的提問兩個環(huán)節(jié)組成,這種考核評價方式不僅過于簡單,而且容易造成答辯走過場,不能全面考核學(xué)生綜合應(yīng)用專業(yè)知識分析解決問題和管理、協(xié)調(diào)工作等方面的能力。另一個是考核只局限于個人成績,而在現(xiàn)實工作中,單人單干軟件開發(fā)的模式無論從工作量還是從技術(shù)能力的角度來說都不能適應(yīng)社會的需求,團(tuán)隊開發(fā)模式才是必然的結(jié)果。因此,學(xué)生畢業(yè)設(shè)計成績的考核應(yīng)該除了個人成績以外,還應(yīng)該包括集體成績。
三、基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式
1.敏捷開發(fā)與極限編程
敏捷軟件開發(fā)方法并不是一個具體的過程,而是一個涵蓋性術(shù)語,“敏捷”這個詞是指軟件開發(fā)的一種理念。敏捷開發(fā)方法主要有極限編程(eXtreme Programming,簡稱“XP”)、特征驅(qū)動的開發(fā)(Feature Driven Development,簡稱“FDD”)、動態(tài)系統(tǒng)開發(fā)方法(Dynamic Systems Development Methodology,簡稱“DSDM”)、自適應(yīng)軟件開發(fā)(Adaptive Software Development,簡稱“ASD”)以及SCRUM方法等,其中,最具代表性的敏捷方法當(dāng)屬極限編程。
極限編程(Extreme Programming,簡稱“XP”)是由KentBeck于1996年提出的,是一種以編碼為核心任務(wù)并且經(jīng)歷過實踐考驗的輕量級軟件開發(fā)方法,是敏捷軟件開發(fā)方法中最著名的一個。它的基礎(chǔ)和價值觀是溝通、簡單、反饋、勇氣和尊重。
XP是一種近螺旋式的開發(fā)方法,它將復(fù)雜的開發(fā)過程分解為一個個相對比較簡單的小周期;通過積極的交流、反饋以及其它一系列的方法,開發(fā)人員和客戶可以非常清楚開發(fā)進(jìn)度、變化、待解決的問題和潛在的困難等,并根據(jù)實際情況及時地調(diào)整開發(fā)過程。極限(eXtreme)是指,對比傳統(tǒng)的項目開發(fā)方式,XP強(qiáng)調(diào)把它列出的每個方法和思想做到極限、做到最好。
2.在畢業(yè)設(shè)計中引入極限編程的意義
計算機(jī)專業(yè)本科畢業(yè)設(shè)計的主要目的是對學(xué)生四年所學(xué)知識的一次綜合檢驗。由于傳統(tǒng)模式中存在上述若干問題,經(jīng)過深入研究,我們在畢業(yè)設(shè)計模式中引入了極限編程的敏捷軟件開發(fā)方法,稱為“基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式”(以下簡稱為“XP模式”)。
首先,XP模式強(qiáng)調(diào)完整團(tuán)隊的合作,并要所有項目參與者(開發(fā)人員、客戶、測試人員等)一起工作在一個開放的場所中,業(yè)務(wù)人員和開發(fā)人員應(yīng)該在整個項目過程中始終朝夕在一起工作,以便進(jìn)行面對面的交流和溝通。對于在校大學(xué)生來說,宿舍就是一個現(xiàn)成的可朝夕在一起工作的開發(fā)場所,對于實踐XP模式來說環(huán)境條件完全具備。。
其次,能夠最大限度的發(fā)揮優(yōu)秀學(xué)生的優(yōu)勢,讓能力較弱的同學(xué)取得最大的進(jìn)步。極限編程在任務(wù)階段,任何一位程序員都將尋找一位同伴、在同一臺電腦上共同完成編程任務(wù),稱為結(jié)對編程。在結(jié)對編程的過程中,能力強(qiáng)的學(xué)生的既能充分發(fā)揮他的能力為集體做出突出貢獻(xiàn),為了使能力弱的同學(xué)也能為團(tuán)隊出力,能力強(qiáng)的學(xué)生有責(zé)任幫助能力弱的學(xué)生以使其盡快能投入到畢業(yè)設(shè)計的工作中來。
第三,作為一種輕量級軟件開發(fā)方法,極限編程有于提高工作效率,樹立成就感。鼓勵從最簡單的解決方式入手再通過不斷重構(gòu)達(dá)到更好的結(jié)果,這就是極限編程所倡導(dǎo)的“簡單”的標(biāo)準(zhǔn)。傳統(tǒng)的軟件開發(fā)過程強(qiáng)調(diào)設(shè)計先行,任何系統(tǒng)的開發(fā)在代碼編寫之前首先要設(shè)計出一個完美的模型。另外,傳統(tǒng)模式中測試是在全部編碼都已完成之后才進(jìn)行,一般的經(jīng)驗是,如果編碼使用了20%的時間,測試至少要用掉40%以上的時間。而XP提倡在開始寫程序之前先寫單元測試,每一次修改了程序之后,都要運(yùn)行測試代碼來檢查程序是否有問題,這種方法可提高學(xué)生的工作效率,還可避免過多的重復(fù)勞動,學(xué)生能較快地獲得成就感。
3.基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式
我們將基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式分為以下五個環(huán)節(jié):
環(huán)節(jié)一:對學(xué)生專業(yè)素質(zhì)與心理特征進(jìn)行調(diào)查。
對學(xué)生專業(yè)素質(zhì)與心理特征進(jìn)行調(diào)查是XP模式環(huán)節(jié)中的第一步。主要工作是考查學(xué)生已有的專業(yè)基礎(chǔ)理論水平、實踐技能以及心理特征。掌握學(xué)生進(jìn)行基于極限編程的畢業(yè)設(shè)計的優(yōu)勢和存在的問題,研究合理運(yùn)用優(yōu)勢、解決現(xiàn)有問題的方案。調(diào)查畢業(yè)班學(xué)生目前所具備的知識水平、實踐技能、心理特征、協(xié)作能力等情況,根據(jù)調(diào)查結(jié)果分析學(xué)生進(jìn)行基于極限編程的畢業(yè)設(shè)計可能存在的問題和不利因素,針對問題及時進(jìn)行解決。
環(huán)節(jié)二:基于極限編程的畢業(yè)設(shè)計科學(xué)選題策略。
由于做畢業(yè)設(shè)計項目的學(xué)生絕大多數(shù)都沒有項目實戰(zhàn)開發(fā)經(jīng)驗,面對學(xué)科提供的一堆選題往往都比較茫然,不知道該如何入手。為此,可從以下三個方面去啟發(fā)和引導(dǎo)學(xué)生:
開設(shè)一門小課時的專業(yè)選修課,給學(xué)生講解敏捷軟件開發(fā)理念、極限編程相關(guān)知識和結(jié)合我院實際的XP模式實施辦法,使學(xué)生充分了解分組合作的意義,幫助學(xué)生克服心理上的畏難情緒,樹立信心,相信團(tuán)隊的力量,并初步設(shè)計自己在XP方法中所扮演的角色,定位自己的在本次畢業(yè)設(shè)計中的目標(biāo)。
舉行一次選題講座,讓每一位指導(dǎo)教師針對自己所設(shè)計的選題從意義、規(guī)模、關(guān)鍵技術(shù)、計劃人數(shù)和人員結(jié)構(gòu)等角度進(jìn)行一個概述性的介紹,使學(xué)生對所有選題都有一個初步的了解。
舉辦一次畢業(yè)設(shè)計雙向選擇交流會,讓學(xué)生在明確畢業(yè)設(shè)計方法、初步了解選題的前提下與指導(dǎo)老師有一個充分交流、了解的機(jī)會。學(xué)生通過等量選擇指導(dǎo)老師后,指導(dǎo)教師利用交流會提供的機(jī)會讓和學(xué)生面談,更加具體地了解學(xué)生的情況和想法。
環(huán)節(jié)三:畢業(yè)設(shè)計項目開發(fā)小組分組方案。
分組是XP模式中一個非常重要的環(huán)節(jié)。科學(xué)合理的分組不僅能夠使工作順利開展,還能提高畢業(yè)設(shè)計的效率和質(zhì)量。分組過程可以依次分為以下幾個步驟進(jìn)行:
第一步,同題同組。選擇了同一個題目的學(xué)生自成一組,這種情況下可能出現(xiàn)兩種情況,第一種是選擇同一題目的人數(shù)剛好合適組成一組,第二種是選擇同一題目的人數(shù)過多或過少,出現(xiàn)這種情況就需進(jìn)入第二步進(jìn)行調(diào)整。
第二步,選題同一題目的人數(shù)過多時可考慮將部分學(xué)生調(diào)整到同類選題但人數(shù)較少的小組中去,選題同一題目的人數(shù)過少時當(dāng)然得考慮另外接收新成員的問題了。
在XP模式中,每個對項目做貢獻(xiàn)的人都應(yīng)該是項目開發(fā)小組中的一員。良好的團(tuán)隊結(jié)構(gòu)可以減少人員因素對項目的影響。
環(huán)節(jié)四:基于極限編程的畢業(yè)設(shè)計指導(dǎo)方法。
由于絕大多數(shù)學(xué)生是沒有實際開發(fā)經(jīng)驗的,所以,無論是傳統(tǒng)模式還是XP模式,指導(dǎo)教師在整個畢業(yè)設(shè)計過程中的指導(dǎo)工作是非常重要的。
XP模式下,指導(dǎo)教師對學(xué)生畢業(yè)設(shè)計的指導(dǎo)過程和指導(dǎo)步驟為:進(jìn)度控制——技術(shù)性指導(dǎo)(貫穿全程)——階段性工作小結(jié)——工作總結(jié)。
進(jìn)度控制:負(fù)責(zé)控制畢業(yè)設(shè)計的總體進(jìn)度,及時了解項目開發(fā)的情況。
技術(shù)性指導(dǎo):指導(dǎo)學(xué)生使用增量式開發(fā),密切關(guān)注結(jié)對編程的狀態(tài),給予學(xué)生技術(shù)性指導(dǎo)。對于難度較大的軟件,可以先做出基本功能,然后再逐步增加和完善功能。
階段性工作小結(jié):按計劃對階段性成果進(jìn)行考查,進(jìn)行階段性工作小結(jié),并作好會議記錄。
環(huán)節(jié)五:基于極限編程的畢業(yè)設(shè)計成績考核辦法。
XP模式既強(qiáng)調(diào)團(tuán)隊的協(xié)作力量,又重視每一位成員的為項目所作的貢獻(xiàn)?;跇O限編程的畢業(yè)設(shè)計成績的考核也要充分體現(xiàn)這兩點(diǎn)。具體做法是:
第一步:集體考核。制定小組成績考核標(biāo)準(zhǔn),主要包括系統(tǒng)質(zhì)量、工作效率、協(xié)作情況等各項成績的評定。
第二步:角色(個人)成績的考核。主要包括:實習(xí)態(tài)度、綜合運(yùn)用所學(xué)專業(yè)知識與技能的能力、完成角色分工任務(wù)的情況、角色工作任務(wù)以外的協(xié)作能力與貢獻(xiàn)等。
第三步:畢業(yè)設(shè)計綜合成績評的最終認(rèn)定。將質(zhì)性評價與量化評價相結(jié)合,最終得出每一位同學(xué)在本次畢業(yè)設(shè)計中的最終成績。
基于極限編程的計算機(jī)專業(yè)本科畢業(yè)設(shè)計模式將使合作的學(xué)生能更有效地交流,相互學(xué)習(xí)和傳遞經(jīng)驗;能有效提高設(shè)計的質(zhì)量和代碼的質(zhì)量;訓(xùn)練學(xué)生更強(qiáng)的問題解決能力;有利于學(xué)生在工作中獲取更多的成就感與滿足感。
參考文獻(xiàn):
[1]陳鶴鳴,汝一飛.本科畢業(yè)設(shè)計模式改革的探索[J].電氣電子教學(xué)學(xué)報,2009,(9).
[2]馬靜媛,薛惠.極限編程在高職計算機(jī)專業(yè)畢業(yè)設(shè)計中的應(yīng)用[J].電腦知識與技術(shù),2009,(3).
[3]極限編程.百度百科.
[4]劉竹松,李振坤,王文彥.極限編程在計算機(jī)本科畢業(yè)設(shè)計中的應(yīng)用[J].計算機(jī)教育,2007,(7).
基金項目:貴州省教育廳教學(xué)研究和教學(xué)改革項目([2011]第10號)。