黎明 杜敏 呂蘭蘭
摘要:針對(duì)傳統(tǒng)實(shí)踐方式周期長(zhǎng)、難度大、難以培養(yǎng)團(tuán)隊(duì)精神的弊端,提出在軟件工程專業(yè)實(shí)踐課程中引入結(jié)對(duì)編程模式。并選擇多組學(xué)生結(jié)對(duì)編程完成同一項(xiàng)目,進(jìn)行了對(duì)比試驗(yàn)。對(duì)比試驗(yàn)結(jié)果表明結(jié)對(duì)編程模式能有效提高學(xué)生的軟件工程思想和質(zhì)量意識(shí),促進(jìn)團(tuán)隊(duì)合作意識(shí),參與學(xué)員的學(xué)習(xí)能力和溝通能力得到較大的提高。
關(guān)鍵詞:結(jié)對(duì)編程;實(shí)踐課程;團(tuán)隊(duì)協(xié)作
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)16-3840-03
Abstract: Against traditional practice way cycle long, difficult, difficult to cultivate team spirit, proposed the introduction of pair programming in software engineering practice course. for Contrast test, select more groups of students to complete the same project. Contrast test results show that pair programming model can effectively improve the quality of students of software engineering idea and consciousness, promote the team cooperation consciousness, to participate in the students' learning ability and communication skills to get a larger increase.
Key words: Pair Programming; Practical Curriculum; Teamwork
1 概述
軟件工程專業(yè)相對(duì)其他專業(yè)而言,更注重實(shí)踐能力、解決問(wèn)題能力的培養(yǎng)。實(shí)踐教學(xué)是專業(yè)培養(yǎng)計(jì)劃中最重要的組成因素,而提高學(xué)生程序設(shè)計(jì)能力、轉(zhuǎn)化實(shí)踐技能、掌握軟件工程思想、培養(yǎng)團(tuán)隊(duì)協(xié)作和溝通管理技能是實(shí)踐教學(xué)中很重要的環(huán)節(jié)和目標(biāo)[1]。
目前,軟件工程專業(yè)的實(shí)踐教學(xué)環(huán)節(jié)主要包括了實(shí)驗(yàn)課程、課程設(shè)計(jì)、實(shí)習(xí)實(shí)訓(xùn)、和畢業(yè)設(shè)計(jì)以及創(chuàng)新性實(shí)驗(yàn)計(jì)劃及課外科技創(chuàng)新活動(dòng)等方面。實(shí)踐組織方式主要分為獨(dú)立開(kāi)發(fā)和團(tuán)隊(duì)開(kāi)發(fā)兩種。但兩種組織方式均有不足,如獨(dú)立開(kāi)發(fā)方式缺乏必要的師生和同學(xué)之間的交流不利于培養(yǎng)團(tuán)隊(duì)合作精神、開(kāi)發(fā)周期長(zhǎng)、設(shè)計(jì)和程序沒(méi)有足夠的審查而導(dǎo)致bug數(shù)量大、不利于掌握軟件工程思想。而團(tuán)隊(duì)開(kāi)發(fā)方式不能有效監(jiān)督各成員的工作流程,很難保證成員根據(jù)其編程能力進(jìn)行了有效分工并能各司其職,個(gè)別能力強(qiáng)的1、2個(gè)人真正動(dòng)手完成項(xiàng)目開(kāi)發(fā),存在部分學(xué)生偷懶懈怠,利用團(tuán)隊(duì)成果完成考核目標(biāo)的現(xiàn)象,無(wú)法達(dá)到全面促進(jìn)學(xué)生提高程序設(shè)計(jì)能力、培養(yǎng)團(tuán)隊(duì)協(xié)作和溝通管理的目標(biāo)[2]。該文通過(guò)分析軟件工程專業(yè)能力培養(yǎng)的指標(biāo)、指出軟件工程專業(yè)實(shí)驗(yàn)和實(shí)踐教學(xué)方式中存在的問(wèn)題,提出利用結(jié)對(duì)編程方式改革軟件工程實(shí)踐教學(xué)模式,并通過(guò)實(shí)驗(yàn)驗(yàn)證結(jié)對(duì)編程教學(xué)模式對(duì)于多項(xiàng)專業(yè)能力培養(yǎng)的促進(jìn)作用。
2 結(jié)對(duì)編程概述
結(jié)對(duì)編程的定義為:兩個(gè)程序員共用一臺(tái)計(jì)算機(jī),合作完成開(kāi)發(fā)任務(wù),比如一個(gè)算法、一段程序、一個(gè)模塊等。兩個(gè)程序員一個(gè)負(fù)責(zé)輸入代碼,擔(dān)任”駕駛員”角色,另一個(gè)負(fù)責(zé)審查代碼,擔(dān)任”導(dǎo)航員”角色。結(jié)對(duì)雙方的角色并不是固定不變的,可以周期性地進(jìn)行交換[3]。
結(jié)對(duì)編程的優(yōu)勢(shì)主要有以下幾個(gè):
1)規(guī)范意識(shí)的增加。個(gè)人獨(dú)立開(kāi)發(fā)很容易懈怠,但是結(jié)對(duì)編程的話,互相之間有所監(jiān)督,就會(huì)保持思維一直高度集中,可以提高雙方的規(guī)范意識(shí)。
2) 提高程序質(zhì)量。結(jié)對(duì)編程多了一道設(shè)計(jì)與代碼評(píng)審的過(guò)程,是的設(shè)計(jì)和編碼bug大幅度減少,提高設(shè)計(jì)與程序的質(zhì)量。
3) 開(kāi)發(fā)效率的提高。獨(dú)立開(kāi)發(fā)時(shí),開(kāi)發(fā)流程可能因如需求變化、被其他業(yè)務(wù)打斷等會(huì)改變,經(jīng)常在作業(yè)時(shí)會(huì)遇到需要考慮接下來(lái)應(yīng)該做什么的場(chǎng)景。而結(jié)對(duì)編程方式如果有其他因素,其中一方可以應(yīng)對(duì)。并且兩個(gè)人的思想1+1會(huì)大于2,考慮會(huì)更周全一些[4]。
4)更容易實(shí)現(xiàn)核心代碼的共享。通過(guò)結(jié)對(duì)成員組合的變化實(shí)現(xiàn)項(xiàng)目組全員對(duì)代碼的共享。
5) 團(tuán)隊(duì)合作精神。通過(guò)結(jié)對(duì)編程讓項(xiàng)目組成員能互相了解,提高溝通能力和團(tuán)隊(duì)凝聚力。
6) 促進(jìn)團(tuán)隊(duì)成員工作積極性。結(jié)對(duì)編程的方式比獨(dú)立開(kāi)發(fā)的方式更容易讓開(kāi)發(fā)者感到快樂(lè)。
雖然結(jié)對(duì)編程有以上的優(yōu)點(diǎn),但是在我國(guó)開(kāi)發(fā)現(xiàn)場(chǎng)中采用的并不多,主要理由有開(kāi)發(fā)團(tuán)隊(duì)人手不夠、對(duì)經(jīng)驗(yàn)豐富者來(lái)說(shuō)指導(dǎo)初學(xué)者的他人很難激發(fā)工作熱情等。但我們從高校實(shí)踐教學(xué)目標(biāo)出發(fā),認(rèn)為結(jié)對(duì)編程模式可以有效幫助學(xué)生提高程序設(shè)計(jì)能力、培養(yǎng)團(tuán)隊(duì)合作精神,選擇湖南科技學(xué)院計(jì)算機(jī)系軟件工程專業(yè)2012級(jí)本科學(xué)生的多種組合模式進(jìn)行了對(duì)比試驗(yàn),以檢測(cè)結(jié)對(duì)編程對(duì)學(xué)生的編程質(zhì)量和能力的影響,并通過(guò)問(wèn)卷調(diào)查分析驗(yàn)證對(duì)學(xué)生學(xué)習(xí)積極性和團(tuán)隊(duì)精神的促進(jìn)作用。
3 結(jié)對(duì)編程應(yīng)用探索
3.1 實(shí)驗(yàn)概要
驗(yàn)證學(xué)生編程能力和協(xié)作精神的最好的方式是項(xiàng)目驅(qū)動(dòng)式。該文組織湖南科技學(xué)院計(jì)算機(jī)系軟件工程專業(yè)2012級(jí)本科部分學(xué)生開(kāi)發(fā)一個(gè)web平臺(tái)的考試系統(tǒng)項(xiàng)目,針對(duì)傳統(tǒng)考試方式的問(wèn)題,實(shí)現(xiàn)web平臺(tái)下的自動(dòng)出卷、改卷、評(píng)分等功能。參與人員共有12人,分別分成3組2類。1類為獨(dú)立組4人,由有經(jīng)驗(yàn)同學(xué)組成。另1類為兩個(gè)結(jié)對(duì)組,每組均為4人,第1組為兩位能力強(qiáng)和能力弱同學(xué)混合結(jié)對(duì),另一組為4位中等能力同學(xué)組隊(duì)。結(jié)對(duì)組按時(shí)間周期交換搭檔。這3組的項(xiàng)目需求和目標(biāo)都是一樣的。該項(xiàng)目提供了基本素材,如數(shù)據(jù)資料,學(xué)生主要完成其中的在線考試部分。主要分四個(gè)階段(數(shù)據(jù)庫(kù)設(shè)計(jì)、在線答題、判卷并分析結(jié)果、記錄學(xué)習(xí)軌跡)。endprint
3.2 實(shí)驗(yàn)結(jié)果分析
項(xiàng)目結(jié)束時(shí)的結(jié)果對(duì)比如表1所示。從表1可以看出,在項(xiàng)目初期,結(jié)對(duì)組合所花費(fèi)的時(shí)間比較多,主要是因?yàn)槌跗跍贤ㄐЧ蛥f(xié)調(diào)都還不理想,進(jìn)入項(xiàng)目中后期,結(jié)對(duì)組的總體效率有了較大提高。相互之間的協(xié)調(diào)和溝通也進(jìn)步了許多。
進(jìn)一步對(duì)比分析兩個(gè)結(jié)對(duì)分組,可以看出中等能力組合的進(jìn)步比強(qiáng)弱能力組合的進(jìn)步要大。另外我們對(duì)3組的bug數(shù)量也進(jìn)行了統(tǒng)計(jì),結(jié)果顯示結(jié)對(duì)組的bug數(shù)量遠(yuǎn)少于獨(dú)立組。
3.3 問(wèn)卷調(diào)查及分析
針對(duì)結(jié)對(duì)編程本身及對(duì)學(xué)生程序設(shè)計(jì)能力和團(tuán)隊(duì)合作精神,我們?cè)O(shè)計(jì)了多個(gè)問(wèn)題的調(diào)查問(wèn)卷。主要包括以下內(nèi)容(以獨(dú)立開(kāi)發(fā)作為對(duì)比):
1) 編程能力是否得到了提高
2) 工作效率是否得到了提高
3) 學(xué)習(xí)方法是否有所改進(jìn)
4) 團(tuán)隊(duì)合作是否比個(gè)人開(kāi)發(fā)更有趣
5) 是否與結(jié)對(duì)的伙伴相處愉快
6) 是否在合作中得到了學(xué)習(xí)
問(wèn)卷調(diào)查中,每個(gè)問(wèn)答的回答分為5檔,如果有回答滿意度低于中間值,需要說(shuō)明理由。根據(jù)調(diào)查結(jié)果,總體上來(lái)說(shuō)項(xiàng)目參與同學(xué)在相互的協(xié)作開(kāi)發(fā)中,編程能力有了較明顯地提高,工作效率相對(duì)來(lái)說(shuō)比獨(dú)立開(kāi)發(fā)更高,經(jīng)過(guò)相互的幫助,學(xué)習(xí)方法有所改進(jìn),更能夠感受到開(kāi)發(fā)的樂(lè)趣。
但是也有一些不夠積極的意見(jiàn):有部分組合覺(jué)得效率不夠高,壓力大;個(gè)別組員需要時(shí)間來(lái)獨(dú)立解決問(wèn)題,有時(shí)候會(huì)覺(jué)得資源沖突;搭檔是編程高手,會(huì)有自負(fù)情緒,不愿意接受他人的建議。
經(jīng)過(guò)分析,我們認(rèn)為主要是以下的原因產(chǎn)生了一些對(duì)結(jié)對(duì)編程消極的意見(jiàn):
1) 合作雙方水平差距較大,低水平同學(xué)感覺(jué)跟不上對(duì)方思路,壓力大,另一方覺(jué)得對(duì)方拖累了自己,希望獨(dú)力開(kāi)發(fā),但計(jì)算機(jī)資源被占用。
2) 有些同學(xué)不善于與他人交流,與其說(shuō)與他人打交道,不如集中個(gè)人精力埋頭苦干。但項(xiàng)目中不可能由個(gè)人完成,所以需要將結(jié)對(duì)編程看成是一種習(xí)慣,培養(yǎng)與人交流的能力。
3) 喜歡獨(dú)自思考、解決問(wèn)題的習(xí)慣背后,可能存在著害怕自己弱點(diǎn)被他人看破,不愿意被他人看到自己的無(wú)知的一面。但是,作為一種互相學(xué)習(xí)的方式,暴露自己缺點(diǎn)本身就是提高編程能力的一個(gè)必經(jīng)途徑。
本文認(rèn)為可以通過(guò)改進(jìn)工作方式、改進(jìn)結(jié)對(duì)匹配方式、設(shè)置合適的結(jié)對(duì)組織策略來(lái)進(jìn)一步改善結(jié)對(duì)編程方式的效果。(1)每對(duì)組合設(shè)置兩臺(tái)計(jì)算機(jī),在檢查他人代碼和設(shè)計(jì)時(shí),也可以同時(shí)自己完成一些需要獨(dú)立開(kāi)發(fā)的工作。(2)盡量讓中等學(xué)員組對(duì),避免強(qiáng)強(qiáng)聯(lián)手,因?yàn)閺?qiáng)者容易自負(fù),互相不同意對(duì)方意見(jiàn),會(huì)影響項(xiàng)目中的共事。強(qiáng)弱組合中,需要水平強(qiáng)的學(xué)員有一定耐心,這樣才能促進(jìn)水平弱學(xué)生的快速進(jìn)步,作為指導(dǎo)者水平強(qiáng)的一方,也能培養(yǎng)自己的領(lǐng)導(dǎo)能力。
在改進(jìn)措施中,重點(diǎn)要注意三點(diǎn):(1)注重效果而不是形式。(2)每次配對(duì)周期要完成一個(gè)較完整的迭代過(guò)程。(3)要學(xué)生堅(jiān)持在整個(gè)項(xiàng)目中保證結(jié)對(duì)編程的持續(xù)性。
4 總結(jié)與展望
傳統(tǒng)實(shí)踐方式的獨(dú)立開(kāi)發(fā)和團(tuán)隊(duì)開(kāi)發(fā)方式均有弊端。獨(dú)立開(kāi)發(fā)方式開(kāi)發(fā)周期長(zhǎng),遇到問(wèn)題難以解決,不能培養(yǎng)團(tuán)隊(duì)精神;團(tuán)隊(duì)開(kāi)發(fā)方式難以有效監(jiān)控成員是否完成分配任務(wù),因此我們提出將結(jié)對(duì)編程模式引入軟件工程專業(yè)編程類課程實(shí)踐,并選擇湖南科技學(xué)院計(jì)算機(jī)系軟件工程專業(yè)2012級(jí)本科學(xué)生的多種組合模式進(jìn)行了對(duì)比試驗(yàn),以檢測(cè)結(jié)對(duì)編程對(duì)學(xué)生的編程質(zhì)量和能力的影響,并通過(guò)問(wèn)卷調(diào)查分析驗(yàn)證對(duì)學(xué)生學(xué)習(xí)積極性和團(tuán)隊(duì)精神的促進(jìn)作用。
對(duì)比試驗(yàn)結(jié)果和問(wèn)卷調(diào)查分析結(jié)果表明結(jié)對(duì)編程方式能有效提高參與者的軟件工程思想和質(zhì)量意識(shí),加強(qiáng)了團(tuán)隊(duì)建設(shè),促進(jìn)了團(tuán)隊(duì)合作,學(xué)習(xí)能力和溝通能力得到了很大的提高。可以說(shuō)結(jié)對(duì)編程方式是一種有效的實(shí)踐教學(xué)方式。
針對(duì)試驗(yàn)中的一些個(gè)別消極意見(jiàn),該文提出了改進(jìn)工作方式和結(jié)對(duì)匹配方式來(lái)避免出現(xiàn)合作中會(huì)產(chǎn)生的配合、溝通不理想的問(wèn)題。在今后的工作中,我們將進(jìn)行更細(xì)致的配對(duì)組合來(lái)驗(yàn)證結(jié)對(duì)組合策略。
參考文獻(xiàn):
[1] 林丕源,劉財(cái)興,張明武.軟件工程專業(yè)的實(shí)踐教學(xué)改革初探[J].實(shí)驗(yàn)室研究與探索,2007(12):245-247.
[2] 趙法信.程序設(shè)計(jì)與創(chuàng)新人才培養(yǎng)[J].電腦知識(shí)與技術(shù),2011(5):1090-1091.
[3] 詹英,王黎征.結(jié)對(duì)編程在程序設(shè)計(jì)課程實(shí)踐教學(xué)中的應(yīng)用[J].南陽(yáng)理工學(xué)院學(xué)報(bào),2009(5):123-125.
[4] 謝國(guó)波,劉竹松,陳平華.結(jié)對(duì)編程在計(jì)算機(jī)專業(yè)學(xué)生編程實(shí)踐的應(yīng)用[J].廣東工業(yè)大學(xué)學(xué)報(bào),2008(7):65-66.endprint
3.2 實(shí)驗(yàn)結(jié)果分析
項(xiàng)目結(jié)束時(shí)的結(jié)果對(duì)比如表1所示。從表1可以看出,在項(xiàng)目初期,結(jié)對(duì)組合所花費(fèi)的時(shí)間比較多,主要是因?yàn)槌跗跍贤ㄐЧ蛥f(xié)調(diào)都還不理想,進(jìn)入項(xiàng)目中后期,結(jié)對(duì)組的總體效率有了較大提高。相互之間的協(xié)調(diào)和溝通也進(jìn)步了許多。
進(jìn)一步對(duì)比分析兩個(gè)結(jié)對(duì)分組,可以看出中等能力組合的進(jìn)步比強(qiáng)弱能力組合的進(jìn)步要大。另外我們對(duì)3組的bug數(shù)量也進(jìn)行了統(tǒng)計(jì),結(jié)果顯示結(jié)對(duì)組的bug數(shù)量遠(yuǎn)少于獨(dú)立組。
3.3 問(wèn)卷調(diào)查及分析
針對(duì)結(jié)對(duì)編程本身及對(duì)學(xué)生程序設(shè)計(jì)能力和團(tuán)隊(duì)合作精神,我們?cè)O(shè)計(jì)了多個(gè)問(wèn)題的調(diào)查問(wèn)卷。主要包括以下內(nèi)容(以獨(dú)立開(kāi)發(fā)作為對(duì)比):
1) 編程能力是否得到了提高
2) 工作效率是否得到了提高
3) 學(xué)習(xí)方法是否有所改進(jìn)
4) 團(tuán)隊(duì)合作是否比個(gè)人開(kāi)發(fā)更有趣
5) 是否與結(jié)對(duì)的伙伴相處愉快
6) 是否在合作中得到了學(xué)習(xí)
問(wèn)卷調(diào)查中,每個(gè)問(wèn)答的回答分為5檔,如果有回答滿意度低于中間值,需要說(shuō)明理由。根據(jù)調(diào)查結(jié)果,總體上來(lái)說(shuō)項(xiàng)目參與同學(xué)在相互的協(xié)作開(kāi)發(fā)中,編程能力有了較明顯地提高,工作效率相對(duì)來(lái)說(shuō)比獨(dú)立開(kāi)發(fā)更高,經(jīng)過(guò)相互的幫助,學(xué)習(xí)方法有所改進(jìn),更能夠感受到開(kāi)發(fā)的樂(lè)趣。
但是也有一些不夠積極的意見(jiàn):有部分組合覺(jué)得效率不夠高,壓力大;個(gè)別組員需要時(shí)間來(lái)獨(dú)立解決問(wèn)題,有時(shí)候會(huì)覺(jué)得資源沖突;搭檔是編程高手,會(huì)有自負(fù)情緒,不愿意接受他人的建議。
經(jīng)過(guò)分析,我們認(rèn)為主要是以下的原因產(chǎn)生了一些對(duì)結(jié)對(duì)編程消極的意見(jiàn):
1) 合作雙方水平差距較大,低水平同學(xué)感覺(jué)跟不上對(duì)方思路,壓力大,另一方覺(jué)得對(duì)方拖累了自己,希望獨(dú)力開(kāi)發(fā),但計(jì)算機(jī)資源被占用。
2) 有些同學(xué)不善于與他人交流,與其說(shuō)與他人打交道,不如集中個(gè)人精力埋頭苦干。但項(xiàng)目中不可能由個(gè)人完成,所以需要將結(jié)對(duì)編程看成是一種習(xí)慣,培養(yǎng)與人交流的能力。
3) 喜歡獨(dú)自思考、解決問(wèn)題的習(xí)慣背后,可能存在著害怕自己弱點(diǎn)被他人看破,不愿意被他人看到自己的無(wú)知的一面。但是,作為一種互相學(xué)習(xí)的方式,暴露自己缺點(diǎn)本身就是提高編程能力的一個(gè)必經(jīng)途徑。
本文認(rèn)為可以通過(guò)改進(jìn)工作方式、改進(jìn)結(jié)對(duì)匹配方式、設(shè)置合適的結(jié)對(duì)組織策略來(lái)進(jìn)一步改善結(jié)對(duì)編程方式的效果。(1)每對(duì)組合設(shè)置兩臺(tái)計(jì)算機(jī),在檢查他人代碼和設(shè)計(jì)時(shí),也可以同時(shí)自己完成一些需要獨(dú)立開(kāi)發(fā)的工作。(2)盡量讓中等學(xué)員組對(duì),避免強(qiáng)強(qiáng)聯(lián)手,因?yàn)閺?qiáng)者容易自負(fù),互相不同意對(duì)方意見(jiàn),會(huì)影響項(xiàng)目中的共事。強(qiáng)弱組合中,需要水平強(qiáng)的學(xué)員有一定耐心,這樣才能促進(jìn)水平弱學(xué)生的快速進(jìn)步,作為指導(dǎo)者水平強(qiáng)的一方,也能培養(yǎng)自己的領(lǐng)導(dǎo)能力。
在改進(jìn)措施中,重點(diǎn)要注意三點(diǎn):(1)注重效果而不是形式。(2)每次配對(duì)周期要完成一個(gè)較完整的迭代過(guò)程。(3)要學(xué)生堅(jiān)持在整個(gè)項(xiàng)目中保證結(jié)對(duì)編程的持續(xù)性。
4 總結(jié)與展望
傳統(tǒng)實(shí)踐方式的獨(dú)立開(kāi)發(fā)和團(tuán)隊(duì)開(kāi)發(fā)方式均有弊端。獨(dú)立開(kāi)發(fā)方式開(kāi)發(fā)周期長(zhǎng),遇到問(wèn)題難以解決,不能培養(yǎng)團(tuán)隊(duì)精神;團(tuán)隊(duì)開(kāi)發(fā)方式難以有效監(jiān)控成員是否完成分配任務(wù),因此我們提出將結(jié)對(duì)編程模式引入軟件工程專業(yè)編程類課程實(shí)踐,并選擇湖南科技學(xué)院計(jì)算機(jī)系軟件工程專業(yè)2012級(jí)本科學(xué)生的多種組合模式進(jìn)行了對(duì)比試驗(yàn),以檢測(cè)結(jié)對(duì)編程對(duì)學(xué)生的編程質(zhì)量和能力的影響,并通過(guò)問(wèn)卷調(diào)查分析驗(yàn)證對(duì)學(xué)生學(xué)習(xí)積極性和團(tuán)隊(duì)精神的促進(jìn)作用。
對(duì)比試驗(yàn)結(jié)果和問(wèn)卷調(diào)查分析結(jié)果表明結(jié)對(duì)編程方式能有效提高參與者的軟件工程思想和質(zhì)量意識(shí),加強(qiáng)了團(tuán)隊(duì)建設(shè),促進(jìn)了團(tuán)隊(duì)合作,學(xué)習(xí)能力和溝通能力得到了很大的提高??梢哉f(shuō)結(jié)對(duì)編程方式是一種有效的實(shí)踐教學(xué)方式。
針對(duì)試驗(yàn)中的一些個(gè)別消極意見(jiàn),該文提出了改進(jìn)工作方式和結(jié)對(duì)匹配方式來(lái)避免出現(xiàn)合作中會(huì)產(chǎn)生的配合、溝通不理想的問(wèn)題。在今后的工作中,我們將進(jìn)行更細(xì)致的配對(duì)組合來(lái)驗(yàn)證結(jié)對(duì)組合策略。
參考文獻(xiàn):
[1] 林丕源,劉財(cái)興,張明武.軟件工程專業(yè)的實(shí)踐教學(xué)改革初探[J].實(shí)驗(yàn)室研究與探索,2007(12):245-247.
[2] 趙法信.程序設(shè)計(jì)與創(chuàng)新人才培養(yǎng)[J].電腦知識(shí)與技術(shù),2011(5):1090-1091.
[3] 詹英,王黎征.結(jié)對(duì)編程在程序設(shè)計(jì)課程實(shí)踐教學(xué)中的應(yīng)用[J].南陽(yáng)理工學(xué)院學(xué)報(bào),2009(5):123-125.
[4] 謝國(guó)波,劉竹松,陳平華.結(jié)對(duì)編程在計(jì)算機(jī)專業(yè)學(xué)生編程實(shí)踐的應(yīng)用[J].廣東工業(yè)大學(xué)學(xué)報(bào),2008(7):65-66.endprint
3.2 實(shí)驗(yàn)結(jié)果分析
項(xiàng)目結(jié)束時(shí)的結(jié)果對(duì)比如表1所示。從表1可以看出,在項(xiàng)目初期,結(jié)對(duì)組合所花費(fèi)的時(shí)間比較多,主要是因?yàn)槌跗跍贤ㄐЧ蛥f(xié)調(diào)都還不理想,進(jìn)入項(xiàng)目中后期,結(jié)對(duì)組的總體效率有了較大提高。相互之間的協(xié)調(diào)和溝通也進(jìn)步了許多。
進(jìn)一步對(duì)比分析兩個(gè)結(jié)對(duì)分組,可以看出中等能力組合的進(jìn)步比強(qiáng)弱能力組合的進(jìn)步要大。另外我們對(duì)3組的bug數(shù)量也進(jìn)行了統(tǒng)計(jì),結(jié)果顯示結(jié)對(duì)組的bug數(shù)量遠(yuǎn)少于獨(dú)立組。
3.3 問(wèn)卷調(diào)查及分析
針對(duì)結(jié)對(duì)編程本身及對(duì)學(xué)生程序設(shè)計(jì)能力和團(tuán)隊(duì)合作精神,我們?cè)O(shè)計(jì)了多個(gè)問(wèn)題的調(diào)查問(wèn)卷。主要包括以下內(nèi)容(以獨(dú)立開(kāi)發(fā)作為對(duì)比):
1) 編程能力是否得到了提高
2) 工作效率是否得到了提高
3) 學(xué)習(xí)方法是否有所改進(jìn)
4) 團(tuán)隊(duì)合作是否比個(gè)人開(kāi)發(fā)更有趣
5) 是否與結(jié)對(duì)的伙伴相處愉快
6) 是否在合作中得到了學(xué)習(xí)
問(wèn)卷調(diào)查中,每個(gè)問(wèn)答的回答分為5檔,如果有回答滿意度低于中間值,需要說(shuō)明理由。根據(jù)調(diào)查結(jié)果,總體上來(lái)說(shuō)項(xiàng)目參與同學(xué)在相互的協(xié)作開(kāi)發(fā)中,編程能力有了較明顯地提高,工作效率相對(duì)來(lái)說(shuō)比獨(dú)立開(kāi)發(fā)更高,經(jīng)過(guò)相互的幫助,學(xué)習(xí)方法有所改進(jìn),更能夠感受到開(kāi)發(fā)的樂(lè)趣。
但是也有一些不夠積極的意見(jiàn):有部分組合覺(jué)得效率不夠高,壓力大;個(gè)別組員需要時(shí)間來(lái)獨(dú)立解決問(wèn)題,有時(shí)候會(huì)覺(jué)得資源沖突;搭檔是編程高手,會(huì)有自負(fù)情緒,不愿意接受他人的建議。
經(jīng)過(guò)分析,我們認(rèn)為主要是以下的原因產(chǎn)生了一些對(duì)結(jié)對(duì)編程消極的意見(jiàn):
1) 合作雙方水平差距較大,低水平同學(xué)感覺(jué)跟不上對(duì)方思路,壓力大,另一方覺(jué)得對(duì)方拖累了自己,希望獨(dú)力開(kāi)發(fā),但計(jì)算機(jī)資源被占用。
2) 有些同學(xué)不善于與他人交流,與其說(shuō)與他人打交道,不如集中個(gè)人精力埋頭苦干。但項(xiàng)目中不可能由個(gè)人完成,所以需要將結(jié)對(duì)編程看成是一種習(xí)慣,培養(yǎng)與人交流的能力。
3) 喜歡獨(dú)自思考、解決問(wèn)題的習(xí)慣背后,可能存在著害怕自己弱點(diǎn)被他人看破,不愿意被他人看到自己的無(wú)知的一面。但是,作為一種互相學(xué)習(xí)的方式,暴露自己缺點(diǎn)本身就是提高編程能力的一個(gè)必經(jīng)途徑。
本文認(rèn)為可以通過(guò)改進(jìn)工作方式、改進(jìn)結(jié)對(duì)匹配方式、設(shè)置合適的結(jié)對(duì)組織策略來(lái)進(jìn)一步改善結(jié)對(duì)編程方式的效果。(1)每對(duì)組合設(shè)置兩臺(tái)計(jì)算機(jī),在檢查他人代碼和設(shè)計(jì)時(shí),也可以同時(shí)自己完成一些需要獨(dú)立開(kāi)發(fā)的工作。(2)盡量讓中等學(xué)員組對(duì),避免強(qiáng)強(qiáng)聯(lián)手,因?yàn)閺?qiáng)者容易自負(fù),互相不同意對(duì)方意見(jiàn),會(huì)影響項(xiàng)目中的共事。強(qiáng)弱組合中,需要水平強(qiáng)的學(xué)員有一定耐心,這樣才能促進(jìn)水平弱學(xué)生的快速進(jìn)步,作為指導(dǎo)者水平強(qiáng)的一方,也能培養(yǎng)自己的領(lǐng)導(dǎo)能力。
在改進(jìn)措施中,重點(diǎn)要注意三點(diǎn):(1)注重效果而不是形式。(2)每次配對(duì)周期要完成一個(gè)較完整的迭代過(guò)程。(3)要學(xué)生堅(jiān)持在整個(gè)項(xiàng)目中保證結(jié)對(duì)編程的持續(xù)性。
4 總結(jié)與展望
傳統(tǒng)實(shí)踐方式的獨(dú)立開(kāi)發(fā)和團(tuán)隊(duì)開(kāi)發(fā)方式均有弊端。獨(dú)立開(kāi)發(fā)方式開(kāi)發(fā)周期長(zhǎng),遇到問(wèn)題難以解決,不能培養(yǎng)團(tuán)隊(duì)精神;團(tuán)隊(duì)開(kāi)發(fā)方式難以有效監(jiān)控成員是否完成分配任務(wù),因此我們提出將結(jié)對(duì)編程模式引入軟件工程專業(yè)編程類課程實(shí)踐,并選擇湖南科技學(xué)院計(jì)算機(jī)系軟件工程專業(yè)2012級(jí)本科學(xué)生的多種組合模式進(jìn)行了對(duì)比試驗(yàn),以檢測(cè)結(jié)對(duì)編程對(duì)學(xué)生的編程質(zhì)量和能力的影響,并通過(guò)問(wèn)卷調(diào)查分析驗(yàn)證對(duì)學(xué)生學(xué)習(xí)積極性和團(tuán)隊(duì)精神的促進(jìn)作用。
對(duì)比試驗(yàn)結(jié)果和問(wèn)卷調(diào)查分析結(jié)果表明結(jié)對(duì)編程方式能有效提高參與者的軟件工程思想和質(zhì)量意識(shí),加強(qiáng)了團(tuán)隊(duì)建設(shè),促進(jìn)了團(tuán)隊(duì)合作,學(xué)習(xí)能力和溝通能力得到了很大的提高。可以說(shuō)結(jié)對(duì)編程方式是一種有效的實(shí)踐教學(xué)方式。
針對(duì)試驗(yàn)中的一些個(gè)別消極意見(jiàn),該文提出了改進(jìn)工作方式和結(jié)對(duì)匹配方式來(lái)避免出現(xiàn)合作中會(huì)產(chǎn)生的配合、溝通不理想的問(wèn)題。在今后的工作中,我們將進(jìn)行更細(xì)致的配對(duì)組合來(lái)驗(yàn)證結(jié)對(duì)組合策略。
參考文獻(xiàn):
[1] 林丕源,劉財(cái)興,張明武.軟件工程專業(yè)的實(shí)踐教學(xué)改革初探[J].實(shí)驗(yàn)室研究與探索,2007(12):245-247.
[2] 趙法信.程序設(shè)計(jì)與創(chuàng)新人才培養(yǎng)[J].電腦知識(shí)與技術(shù),2011(5):1090-1091.
[3] 詹英,王黎征.結(jié)對(duì)編程在程序設(shè)計(jì)課程實(shí)踐教學(xué)中的應(yīng)用[J].南陽(yáng)理工學(xué)院學(xué)報(bào),2009(5):123-125.
[4] 謝國(guó)波,劉竹松,陳平華.結(jié)對(duì)編程在計(jì)算機(jī)專業(yè)學(xué)生編程實(shí)踐的應(yīng)用[J].廣東工業(yè)大學(xué)學(xué)報(bào),2008(7):65-66.endprint