徐長梅 閻 巍
摘要:大學(xué)計算機(jī)專業(yè)教育需要著重培養(yǎng)學(xué)生的協(xié)同工作能力、人際交往能力,但是通常的教學(xué)方法與這個目標(biāo)之間存在一定的差距。我們將軟件開發(fā)實(shí)踐中“結(jié)對編程”方法應(yīng)用到計算機(jī)專業(yè)課程的實(shí)驗(yàn)組織過程中,通過學(xué)生之間輪換式的“一對一”交流,培養(yǎng)學(xué)生的團(tuán)隊精神,達(dá)到了良好的教學(xué)效果,提高了學(xué)生的學(xué)習(xí)興趣。本文介紹了這種教學(xué)方法。
關(guān)鍵詞:結(jié)對實(shí)驗(yàn);實(shí)驗(yàn)組織方法;相互學(xué)習(xí)
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
計算機(jī)科學(xué)是一門注重實(shí)踐能力的學(xué)科。在《中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002》對畢業(yè)生特征的能力與技能要求中,明確指出實(shí)踐能力和技能是計算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的必備能力和技能。在隨之而來的我國大學(xué)計算機(jī)專業(yè)課程設(shè)置和課程標(biāo)準(zhǔn)改革中,對學(xué)生實(shí)踐能力的培養(yǎng)進(jìn)一步增強(qiáng),對學(xué)生的計算機(jī)研究和應(yīng)用技能進(jìn)行了系統(tǒng)的設(shè)計。
計算機(jī)專業(yè)培養(yǎng)方案的頂層設(shè)計已經(jīng)比較合理和可行,但是課程實(shí)驗(yàn)的實(shí)施方法依然存在著很多的問題。
首先,計算機(jī)專業(yè)課程實(shí)驗(yàn)(實(shí)踐課程)的現(xiàn)有模式影響了學(xué)生的學(xué)習(xí)效率。隨著高校辦學(xué)能力的提高和招生規(guī)模的擴(kuò)大,學(xué)校的機(jī)房一般可以容納100~200名學(xué)生,但是輔導(dǎo)教師的配備一般不會超過5名,1∶20(甚至1∶40)的比例顯然無法滿足教學(xué)實(shí)踐中個別輔導(dǎo)的要求。學(xué)生從發(fā)現(xiàn)問題到解決問題的時間太長,會影響部分學(xué)生的積極性,甚至降低學(xué)生專業(yè)學(xué)習(xí)的興趣。
其次,大多數(shù)課程(實(shí)驗(yàn))注重學(xué)生技術(shù)、技能的培養(yǎng),但是不注重學(xué)生協(xié)作能力的培養(yǎng)。在計算機(jī)系統(tǒng)大型化發(fā)展中,計算機(jī)系統(tǒng)的設(shè)計和開發(fā)不再單純依靠個人的單兵作戰(zhàn)能力,更多地注重團(tuán)隊的整體能力,其中團(tuán)隊成員之間協(xié)作能力是一個重要的成分。
雖然“軟件工程”一類的課程專門安排了大型實(shí)驗(yàn),著重培養(yǎng)學(xué)生的團(tuán)隊精神,但是由于在團(tuán)隊組織上存在必要的實(shí)踐經(jīng)驗(yàn)和管理指導(dǎo),團(tuán)隊中人員職責(zé)不清,人員之間的時間協(xié)調(diào)存在困難,最后的實(shí)驗(yàn)結(jié)果往往是團(tuán)隊中能力最強(qiáng)的同學(xué)完成了絕大部分的工作,這不是實(shí)驗(yàn)的預(yù)期目的。
在《中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002》中對專業(yè)實(shí)踐進(jìn)行了專門的討論,學(xué)生口頭和書面交流能力、協(xié)同
工作能力、人際交往能力分別排在社會能力需求的前4位,目前課程實(shí)踐教學(xué)活動的一般方法往往不能達(dá)到社會需求。
為了解決這些問題,我們將軟件開發(fā)中的結(jié)對編程技術(shù)引入到課程實(shí)驗(yàn)中,既可以更好地完成課程實(shí)驗(yàn)內(nèi)容,也讓學(xué)生掌握了一種計算機(jī)系統(tǒng)設(shè)計的實(shí)踐技術(shù),同時也培養(yǎng)了蘊(yùn)含在計算機(jī)科學(xué)領(lǐng)域內(nèi)的科學(xué)素養(yǎng)和工程技能。
2結(jié)對編程
結(jié)對編程是一種軟件開發(fā)實(shí)踐,在結(jié)對編程場景中,兩名程序員并肩工作在同一臺計算機(jī)前,共同探討設(shè)計方案、共同設(shè)計算法、共同編寫程序代碼、共同完成各種測試。在結(jié)對的兩人之中,負(fù)責(zé)編寫程序的稱為“駕駛員”,另一方則稱為“領(lǐng)航員”。“領(lǐng)航員”的主要任務(wù)是觀察“駕駛員”的工作情況,發(fā)現(xiàn)并糾正其操作性和策略性錯誤。
“駕駛員”和“領(lǐng)航員”分別使用兩個不同的鍵盤和鼠標(biāo),但是共享同一個主機(jī)和屏幕較大的顯示器,大多數(shù)情況下都有“駕駛員”使用鍵盤和鼠標(biāo),而只有在“領(lǐng)航員”發(fā)現(xiàn)問題或者“駕駛員”提出問題,“駕駛員”主動放棄鍵盤鼠標(biāo)“主控權(quán)”的情況下,“領(lǐng)航員”使用幾個簡單的鍵盤和鼠標(biāo)動作,啟示或者演示程序設(shè)計中的重要方法和步驟。
“駕駛員”和“領(lǐng)航員”是結(jié)對編程中兩個關(guān)鍵的人物,但是程序員在一次結(jié)對編程中需要經(jīng)常交換“駕駛員”和“領(lǐng)航員”角色。也就是說,某個程序員在頭一個小時內(nèi)是“駕駛員”,而在下一個小時中應(yīng)該是“領(lǐng)航員”。而且在團(tuán)隊內(nèi)部,“駕駛員”和“領(lǐng)航員”的配對并不固定,一個程序員在軟件開發(fā)周期中可能與團(tuán)隊其他所有的程序員都有過配對的經(jīng)歷。
這樣的軟件開發(fā)模式可以降低團(tuán)隊的培訓(xùn)成本,提高開發(fā)效率和軟件質(zhì)量,增強(qiáng)團(tuán)隊的凝聚力和信心。
3結(jié)對實(shí)驗(yàn)
結(jié)對編程技術(shù)來源于工程實(shí)踐,項(xiàng)目的開發(fā)和大學(xué)教學(xué)存在著工作目的、工作環(huán)境、人員構(gòu)成等方面的差異,我們針對教學(xué)工作中學(xué)生和教師的特殊對象,特別就“數(shù)據(jù)庫系統(tǒng)原理”和“大型數(shù)據(jù)庫應(yīng)用開發(fā)”課程采用了結(jié)對實(shí)驗(yàn)的方法。
在課程實(shí)驗(yàn)的初期,結(jié)對是很困難的。一方面,學(xué)生之間的了解不是很深,潛在的防范意識會讓學(xué)生自然地選擇熟悉的朋友作為搭檔;另一方面,學(xué)生之間能力和知識上存在一定的差距,成績差的同學(xué)不愿與成績好的同學(xué)搭檔,害怕暴露自己的缺陷;而成績好的同學(xué)也不愿意與成績差的同學(xué)聯(lián)盟,擔(dān)心他們會影響實(shí)驗(yàn)的進(jìn)度和質(zhì)量。這些現(xiàn)象都是正常的,我們在課程實(shí)驗(yàn)開始的時候,讓學(xué)生自由組對,而且成對完成課程的最初1~2個實(shí)驗(yàn)。我們稱之為固定搭檔,它的目的是消除學(xué)生對結(jié)對的憂慮,增強(qiáng)同學(xué)之間交流的信心,提高學(xué)生之間結(jié)對實(shí)踐的能力。
經(jīng)過這樣的適應(yīng)期后,我們特意打亂學(xué)生結(jié)對的次序,一般采取交叉結(jié)對的方式,比如按照10個人為一段,學(xué)號為1的與學(xué)號為11的結(jié)對,學(xué)號2的學(xué)生與學(xué)號12的學(xué)生結(jié)對,如果剛好某一對是之前的搭檔,則進(jìn)行微調(diào)。我們以一個實(shí)驗(yàn)為周期,完成一個實(shí)驗(yàn)后,加大交叉的力度,試圖讓學(xué)生在課程中盡量經(jīng)歷不同的搭檔。我們將這個階段稱為輪流搭檔。
結(jié)對實(shí)驗(yàn)也遵循結(jié)對編程的一般原則。一個實(shí)驗(yàn)過程中,不是一個人唱主角,另一個跑龍?zhí)?固定的結(jié)對方式對搭檔雙方都不利。我們將一次上機(jī)時間分為四段,一個時間段甲同學(xué)坐在鍵盤前,下一個時間段就輪到乙同學(xué)坐到鍵盤前操作。這樣的安排可以使得每個同學(xué)擔(dān)當(dāng)不同角色的時間盡量相同,他們在實(shí)驗(yàn)中擔(dān)當(dāng)同樣的責(zé)任。
對于“大型數(shù)據(jù)庫應(yīng)用開發(fā)”課程的大型實(shí)驗(yàn),輪流搭檔的方式不利于實(shí)驗(yàn)的連續(xù)性,分組既是實(shí)驗(yàn)內(nèi)容的需要,同時也是結(jié)對實(shí)驗(yàn)的需要。特別是在“大型數(shù)據(jù)庫應(yīng)用開發(fā)”課程完成了結(jié)對實(shí)驗(yàn)的實(shí)驗(yàn)之后,我們在同一班級的“大型數(shù)據(jù)庫應(yīng)用開發(fā)”課程中開始實(shí)施相對穩(wěn)定的結(jié)對實(shí)驗(yàn)小組,小組在機(jī)房的座位安排一般都集中在一個范圍較小的區(qū)域,小組人員結(jié)對的數(shù)量盡量是偶數(shù),便于在機(jī)房中可以面對面、相鄰而坐。分組結(jié)對便于小組人員在實(shí)驗(yàn)中的交流,同時相對減少大范圍討論對其他小組的干擾。
教師在課程實(shí)驗(yàn)中承擔(dān)的責(zé)任非常重要。教師首先是一名好的“教練”,除了介紹實(shí)驗(yàn)技能和工具之外,在“駕駛員”和“領(lǐng)航員”都束手無策的時候,幫助解決學(xué)生的疑難問題。教師還應(yīng)該是一名“協(xié)調(diào)員”,兩名喜歡抬杠、或者談話漫無邊際、或者沉默寡言的學(xué)生都不是好的搭檔,教師應(yīng)該及時發(fā)現(xiàn)問題和調(diào)整學(xué)生對子,幫助學(xué)生按時、按量、按質(zhì)完成任務(wù)。教師有時還必須擔(dān)當(dāng)“領(lǐng)航員”的角色,如果班級學(xué)生的數(shù)目是奇數(shù)、或者有的學(xué)生堅持不愿結(jié)對的時候,教師應(yīng)該適當(dāng)充當(dāng)他們的”領(lǐng)航員”,甚至是“駕駛員”。
4教學(xué)效果及其分析
結(jié)對實(shí)驗(yàn)有效減輕了學(xué)生的負(fù)擔(dān)。“駕駛員”在“領(lǐng)航員”的注視下,無形中就會更加集中注意力,實(shí)驗(yàn)的效率得到了提高。而且在“領(lǐng)航員”的提醒和幫助下,“駕駛員”可以減少很多不必要的錯誤,可以共同糾正不良的編碼習(xí)慣,共同的調(diào)試也可緩解單獨(dú)調(diào)試的緊張和憂慮。
結(jié)對實(shí)驗(yàn)是一個相互學(xué)習(xí)的過程,“駕駛員”和“領(lǐng)航員”的相互配合可以相互學(xué)習(xí)編程經(jīng)驗(yàn)和調(diào)試方法。“領(lǐng)航員”的觀察可以學(xué)到“駕駛員”的許多經(jīng)驗(yàn),即使是“領(lǐng)航員”的能力高于“駕駛員”,在解決“駕駛員”產(chǎn)生的莫名其妙錯誤的時候,“領(lǐng)航員”也可以積累新的調(diào)試經(jīng)驗(yàn)?!榜{駛員”能力高于“領(lǐng)航員”的時候,“領(lǐng)航員”的一些提問也可以引起“駕駛員”的反思,可以促進(jìn)實(shí)驗(yàn)質(zhì)量的提高。
結(jié)對實(shí)驗(yàn)中“領(lǐng)航員”和“駕駛員”的隨時交談無形中鍛煉了學(xué)生的交流能力,“駕駛員”和“領(lǐng)航員”的交叉配對鍛煉了學(xué)生適應(yīng)不同對象的人際交往能力。相互幫助和配合無疑加深了學(xué)生之間的相互了解,學(xué)生之間不再只是“一張熟悉的面孔”。相互了解可以使同學(xué)們之間的關(guān)系更加融洽,在學(xué)習(xí)中的協(xié)作關(guān)系減少了同學(xué)之間的矛盾,也提高了他們緩和矛盾的社交能力。
結(jié)對實(shí)驗(yàn)增強(qiáng)了學(xué)生的學(xué)習(xí)信心,提高了學(xué)生學(xué)習(xí)和實(shí)驗(yàn)的積極性。學(xué)生在交流和相互學(xué)習(xí)中更加善于提出問題和尋求幫助。
作為另一個收獲,結(jié)對實(shí)驗(yàn)減少了實(shí)驗(yàn)作弊情況。實(shí)驗(yàn)作弊的直接原因是無法完成實(shí)驗(yàn)或者不感興趣,而結(jié)對實(shí)驗(yàn)降低了實(shí)驗(yàn)失敗的可能性,也提高了學(xué)生對專業(yè)知識的學(xué)習(xí)興趣。
5結(jié)論
結(jié)對實(shí)驗(yàn)是一個相互配合的活動,它實(shí)際上不是一個新鮮的實(shí)驗(yàn)教學(xué)方法(在物理和化學(xué)實(shí)驗(yàn)中已經(jīng)進(jìn)行過長期的實(shí)踐,產(chǎn)生了良好的教學(xué)效果),我們僅僅是將計算機(jī)工程實(shí)踐和其他課程的實(shí)驗(yàn)教學(xué)方法在計算機(jī)課程中進(jìn)行了嘗試。
結(jié)對實(shí)驗(yàn)的嘗試改變了計算機(jī)實(shí)驗(yàn)教學(xué)的一貫?zāi)J?充分發(fā)揮學(xué)生的自主能動性,降低了課程實(shí)驗(yàn)對輔導(dǎo)教師配備數(shù)量上的要求,提高了學(xué)生的實(shí)踐能力和合作交流能力。
為了更好地增強(qiáng)教學(xué)效果,結(jié)對實(shí)驗(yàn)對機(jī)房環(huán)境和教師能力提出了其他方面的要求。比如加大顯示器的尺寸、增加實(shí)驗(yàn)桌面的寬度,以便于結(jié)對雙方的合作。教師不再僅僅關(guān)注學(xué)生是否順利地解決實(shí)驗(yàn)中的問題,而且需要觀察結(jié)對的交流情況,及時采取措施平衡結(jié)對的氣氛。
參考文獻(xiàn):
[1] 中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002研究組. 中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002[R]. 北京:清華大學(xué)出版社,2002.
[2] Laurie Williams & Robert Kessler. 結(jié)對編程技術(shù)[M]. 楊濤,楊曉云,譯. 北京:機(jī)械工業(yè)出版社,2004.