Advantages of pair programming

Education and Leadership in Glocalization : What does “think globally, act locally” mean for education around the world? 21-24 2014 255 Recent studies also suggest that the problems remain the same when it comes to the difficulties many students experience when learning basic programming. Research studies further show that students don’t have basic problem solving skills and don’t know how to create algorithms Mikum, Suksakulchai and Chaisanit, 2013; Gomes Mendes, 2007. Problem solving is essential to computer programming and requires multiple abilities that students often don’t have Gomes Mendes 2007. Although, this study proposes several methods and tools to support programming learning and to solve the problems of students, some problems still occur with students in the programming class. In Thailand, Sankas 2010, found 61 of the students in his research group had low academic performance. And Sanrach and Houdsunthorn 2010, found in 2005 and 2006, students were failing the Principle of Programming course 33.34 and 27.77 respectively. This paper is organized as follows: Section two provides a brief explanation of pair programming. Section three, provides information about pair programming within the context of Thai student. The study concludes with a discussion and summary in section four.

2. Strategies of Pair Programming in education

Pair programming is one of the practice areas in Extreme Programming XP methodology to improve the quality of software more productively Phongpaibul Boehm, 2006. Pair programming is a style of programming in which two programmers work together on the same problem, algorithm, design, code or test, and work side by side at one computerWilliams, 2010; Anderson Gegg- Harrison, 2012; Cockburn Williams ,2000; Ma, Ferguson, Roper, Wilson, and Wood 2004. One of the programmers, called the driver, is responsible to design and write the code. The other partner, called the navigator, is the responsibility to observe the work of the driver looking for mistakes and providing strategic suggestions Ma et al. 2004; Jan Chong, 2005; Anderson Gegg-Harrison, 2012. Additionally, according to Laurie Williams the driver and the navigator can brainstorm on-demand and problems solve. An effective pair programming relationship is very active. The driver and the navigator communicate and talk more, if they talk together at least every 45 to 60 seconds. It’s also very important to periodically switch roles between the driver and the navigator Williams, 2003. When using pair programming in an educational setting, students work in tandem at one computer while completing regular programming assignments. Before introducing the pair programming formula and purpose to the students, the teacher decides how to choose effective pairs. The teacher may allow the students to choose their partners, or may proactively form student pairs that are most likely to work well together Williams, 2010. A study by Maree Mujeeb-u-Rehman indicates that pairs formed of a male and a female worked better and had more innovative ideas Mujeeb-u- Rehman, Yang, Dong, Ghafoor, 2005. A study by Joseph Chao indicates that if pairs were matched based on their level of Open mindedness and Responsibility the result was a higher quality code Chao Atli, 2006. The study indicated that most often 93 of pairs students report being compatible with their partners Williams, 2010. Pair rotation is also important. Teacher should switch partners because this will spread information and knowledge will be spread throughout the whole group Laurie Williams, 2003. As defined by Laurie Williams, “the results also indicated that the teacher can use the following information to form highly-compatible pairs:  Pair students together who have a similar a skill level as measured by computer science andor total grade point average qualitative results by Toll et al. also support having students of similar skill level Williams, 2010;  Pair a Myers-Briggs sensor with a Myers- Briggs intuitor; andor Williams, 2010  Pair students together who have a similar work ethic, determined by asking students to provide a number from 1 to 9 where a 1 indicates the student works hard enough to just barely get by and a 9 indicates they work hard enough to get the best possible grade Williams, 2010.” Researchers at several universities have used pair programming in computer science courses and found this practice to be helpful to students. The advantages, disadvantages, and concerns with pair programming in an educational context as are discussed below.

2.1 Advantages of pair programming

Pair programming improves quality, teamwork, and communication. Researchers demonstrated that students who work in pairs tend to write programs of higher quality, have higher course passing ratesPreston, 2005; McDowell, Werner, Bullock, and Fernald 2006; Mendes, Al-Fakhri, and Luxton-Reilly 2006 and reduce time to complete the programs Preston, 2005. Additionally, the researchers found that students working in pairs solved tougher problems faster, and had improved teamwork and communication skills and overall team effectiveness that is similar to what is found in the Education and Leadership in Glocalization : What does “think globally, act locally” mean for education around the world? 21-24 2014 256 computer industry Williams, 2010; Williams,2000; Gallis, Arisholm, and Dyba 2003. Pair programming improves retention and confidence. Researchers observed pair programming conducted with undergraduates. The pairing students demonstrated that pairing helped improve retention Williams, 2010; Anderson Gegg-Harrison, 2012 and increase confidence Anderson Gegg- Harrison, 2012; McDowell et al. 2006; Cockburn Williams 2000. Additionally, the students who paired were more likely to succeed in programming courses than those who solo program Williams et al. 2003. Pair programming leads to improved comprehension and learning. Researchers observed that when pair programming is conducted with students, The pairing students improved their understanding of the programming process Preston, 2005 and enhanced their learningparticularly on the part of the novice developerSison,2008; Williams, 2010. Pair programming leads to increased enjoyment of programming. Researchers observed that pair programming conducted with sophomore- level undergraduates, created a laboratory environment conducive to more active learning and are more enjoyable than traditional labs Songsriwittaya, 2011. Additionally, the researchers found that the students working in pairs were more satisfied and that pairing increased the happiness of developers Songsriwittaya, 2011; Phongpaibul Boehm, 2006; Cockburn Williams, 2000; Gallis et al. 2003.

2.2 Disadvantage of pair programming Pair programming could lead to pair