涂小琴,張春紅,商偉
(云南師范大學文理學院,云南 650222)
結對編程方法在C語言教學中的應用
涂小琴,張春紅,商偉
(云南師范大學文理學院,云南650222)
針對計算機專業基礎必修課程《C語言程序設計》,根據教學實踐經驗,提出在課程的教學過程中引入結對編程方法來提高學生的編程能力以及學生的編程興趣。分析結對編程的組合原則,以及針對大一新生的項目設計原則,并與傳統教學方法的教學效果進行比較。
C語言程序設計;結對編程法;傳統法
《C語言程序設計》是計算機相關專業的一門重點必修課程,也是學生學習編程的基礎。該課程學習的好壞直接影響到高年級一些重點專業課的學習,如《數據結構》、《C#程序設計》、以及C版的《操作系統》、《Java程序設計》等。所以對于大一的新生來講,學習好《C語言程序設計》這門課程至關重要,通過在教學過程中引入結對編程方法可以有效地提高教學效果。
結對編程方法的提高是在20世紀90年代中期,到目前已經經過了近30年的發展。結對編程技術概念被提出來時是指兩位程序員坐在同一臺電腦前進行編程,如圖1所示。與兩位程序員各自獨立工作相比,結對編程能編寫出質量更高的代碼。

圖1 結對編程樣例圖
結對編程方法在企業中經過了一段時間的實踐,得出了較高質量的代碼,但因投入的人力比較多,所以目前的企業采用結對編程的比較少,采用團隊編程的比較多。但對于高校來講,不需要考慮投入的人力問題,反而能節省教學中的計算機資源。通過結對編程可以提高學生的編程興趣,更能突出教學質量及教學效果,同時也能夠培養學生的團隊合作精神。
結對編程包含了以下四個步驟:討論、設計、編碼和測試[1]。討論:以交流為基礎,討論設計方案;設計:設計出有效的結構,共同設計算法;編碼:寫出具體的代碼實現;測試:對代碼進行完整性測試。在結對編程中,有人充當“駕駛員”,有人充當“導航員”,“駕駛員”負責代碼的輸入,“導航員”負責整體方案的設計以及及時發現程序中的錯誤。當然“駕駛員”和“導航員”的角色可以隨時互換[2]。同時也允許也其他結對小組中的成員進行交換。
結對編程有著近30年的使用及發展經驗。根據國外的權威數據表明,在教學過程中有效的使用結對編程方法,對提高學生的編程興趣,提高學生的記憶力,有很大的幫助。同時也能提高學生寫出的代碼的質量以及學生的整體成績。同時,國內的研究也表明,使用結對編程方法編出程序的成功率明顯高于獨立學習同學的成功率。根據教學實踐也表明,在教學上采用結對編程方法的班級整體水平也高于傳統的實踐教學班級。
對于結對編程方法的使用,在教學過程中須遵循以下原則:
(1)男女搭配優先
在實際的教學過程中,讓學生自主地選擇結對編程的對象,以男女搭配優先。通過國內外的實驗研究證明,男女搭配的工作效率是最高的。從心理學中來講,異性相吸,而大一的學生又處于相互比較陌生的階段,不少學生會為取得他人的良好印象而努力。在實踐的過程中,男同學在這方面的積極性特別的高,也對此教學方法充滿了興趣,為以后的學習建立了一個良好的開端。由于在實際的教學班級中,男生往往比女生數量多,所以還會存在一部分的學生是男男搭配。也正好檢測男女搭配與同性搭配的效果。
(2)開學初期以“高水平+低水平”優先,開學中期以“同水平+同水平”優先
隨著全國計算機基礎知識的普及,有的學生在上大學之前,已經接觸過計算機,并對計算機操作非常熟悉,有的學生在高中時就已經學過一些編程語言,如“VB”;但還有一些是偏遠山區的學生,他們在高中時甚至沒有摸過計算機。我們還設計了一份問卷調查報告,來收集學生的背景數據,以此來評估學生的編程水平。為了滿足未接觸過計算機的學生的需要,讓他們也能快速跟上班級的平均水平,讓一個水平相對較高的學生帶著,以達到“高手”培養“新手”目的。所以在以下組合中:“高水平+高水平”、“高水平+中水平”、“高水平+低水平”、“中水平+中水平”、“中水平+低水平”、“低水平+低水平”,在開學初期,“高水平+低水平”的模式是相對較好的。這樣能帶動整個班級的集體水平。
隨著教學知識的越來越深入,為了避免“低水平”的學生形成對“高水平”學生的依賴,在開學中期,進行一次組合與組合之間的調整,讓相同水平的學生進行結對,以達到相互促進的目的。
(3)性格互補優先
如果兩個學生性格能夠互補的話,經過一段時間的磨合,結對編程的效果會越來越好。隨著教學的深入,學生對于自己的結對對象已經有了相當的了解,在一些小組中會出現兩個都不善于表達的學生,或者兩個性格都比較外向甚至是比較強硬的學生,這樣在結對編程的過程中,就會存在不發言或者是爭執不下的現象,所以要在教學中進行相應的調整。
《C語言程序設計》課程分為實驗課與理論課,理論課中,以教師講授知識為主,實驗課中,以學生完成實驗為主,教師給出實驗題目,學生通過結對編程實現,并在規定時間內完成實驗報告。除了實驗課中應用結對編程方法外,在課外的程序設計上也主張學生進行結對編程,這樣可以充分利用學生的計算機資源。
由于大部分的學生才開始學習程序設計,所以在項目設計中,不宜以工程量大,代碼量多的作為實踐項目,這樣會打擊一大部分的學生的學習積極性,宜以工程量小,代碼量相低較少的項目作為實踐,在課程的設計中要圍繞課程的重難知識點,以達到學習基礎知識的目的,這樣能給高年級的學習打下扎實的基礎。
在我所教的班級中,有一個班級采用傳統的實驗方法,“一人一機”模式,另外一個班級中采用結對編程方法,“二人一機”模式,兩個班級人數分別為42人。其中班級中男女生人數及性格如表1所示:

表1 實驗班級人數分配對比
經過一個學期的測試,以期末考試成績為例,得出了兩個班級的成績對比表,如表2所示:
將每個班的學生期末成績按升序排序后,再進行對比,得出如圖2所示的線性圖形。

圖2 結對法—傳統法教學實踐效果對比圖

表2 實驗班級期末成績對比
在時間上,結對編程在開始初期沒有多大的優勢,因為需要對其成員進行熟悉,但在熟悉了之后,結對編程就顯示了它的優勢,以期初、期中、期末練習時間為例。得出兩個班級的實驗練習花費時間表,如表3所示。

表3 實驗班級練習花費時間對比
根據圖2所示的線性圖,以及表3的花費時間表,可以看出,結對編程方法在時間上要優于傳統的單打獨斗的教學方法。教學成績也要明顯要高于傳統法的教學成績。
(1)充分利用學生的電腦資源
這門課程開設在大一學年,經過統計,在該學年中,班級中僅有一半的學生擁有個人計算機。結對編程可以讓學生充分利用現有資源。
(2)學習效果更佳
經過實踐發現,在教學中使用結對編程的教學效果更佳。在應用結對編程方法中,男女搭配要比男男搭配及女女搭配的學習效果要好,也更能激發學生的學習積極性。
(3)建立學生的團隊意識,寫出更高質量的代碼
結對編程方法,可以及時的發現程序中的錯誤,并進行改正。在結對編程中兩個人頻繁地變換角色,在思想的碰撞中,更容易培養學生的創新精神,也能夠培養學生的團隊意識及責任意識。
(4)相互學習
在結對編程,學生能學習同伴的優點,促進知識的傳遞,使學生自身編程能力得到提高,并相互促進。
(5)能取到相互監督的效果
兩人結對,在規定時間內需上交實驗報告,相當于兩位學生相互監督,這樣可以有效的避免學生上實驗課時,進行玩游戲、聊天等現象。
(6)學生動手能力加強
在結對過程中不斷地變換“駕駛員”與“導航員”的角色。使每個學生都具有自己動手操作的機會。
(7)提高學生的交流能力及表達能力
在合作中,需要不斷的與對方交流自己的思想,久而久之,可以鍛煉學生的交流能力與表達能力。更能促進學生之間的情感。
結對編程是一種比較好的編程思想,雖然該方法不被大的企業所采納,但是將該方法應用在教學中卻取到了良好的教學效果。能夠提高學生的編程能力,也能加強學生的交流及表達能力;同時還能提高代碼的質量,加強學生的團隊合作精神。
事物都具有兩面性,有一小部分的學生喜歡獨立編程,還有一部分“低水平”的學生形成了依賴心理,如何能讓這些“低水平”的學生參與編程,也是我們在下一步的教學過程中需要考慮的問題。
[1]陳斐.結對編程技術[M].北京:機械工業出版社,2004:1-3.
[2]劉峰.結對編程軟件方法的研究與應用[J].電子設計工程,2010,18(7):204-205.
[3]張猛.結對編程的研究與擴展[J].計算機系統應用,2008(4):62-65.
[4]袁紅照,關涌濤.程序設計教學中結對編程的實踐和效能分析[J].安陽師范學院學報,2014(5):79-81.
[5]詹英,王黎征.結對編程在程序設計課程實踐教學中的應用[J].南陽理工學院學報,2013(3):123-125.
C Language Program Design;Pair Programming;Traditional Teaching Method
Pair Programming method in C Language Teaching
TU Xiao-qin,ZHANG Chun-hong,SHANG Wei
(College of Arts and Sciences,Yunnan Normal University,Kunming 650222)
In view of the computer specialized compulsory course for C Language Program Design,according to the teaching practice and experience,proposes introduction of pair programming method to improve the students'programming ability and students'interest in programming in the teaching process.Analyzes the combination principle of pair programming,the design principles for the freshmen of the project and with the traditional teaching method,compared the pair programming method and traditional teaching method in the teaching effect.
1007-1423(2016)28-0028-04
10.3969/j.issn.1007-1423.2016.28.008
涂小琴(1981-),女,江西九江人,碩士,研究方向為計算機軟件與理論張春紅(1977-),女,云南昆明人,教授,研究生,研究方向為圖像處理多媒體應用商偉(1979-),男,山東濟寧人,講師,研究生,研究方向為美術應用
2016-08-03
2016-09-20