Evaluating Effectiveness of Pair Programming As a Teaching Tool in Programming Courses
Total Page:16
File Type:pdf, Size:1020Kb
Information Systems Education Journal (ISEDJ) 12 (6) ISSN: 1545-679X November 2014 Evaluating Effectiveness of Pair Programming as a Teaching Tool in Programming Courses Silvana Faja [email protected] School of Accountancy and Computer Information Systems, University of Central Missouri, Warrensburg, Missouri, 64093, USA Abstract This study investigates the effectiveness of pair programming on student learning and satisfaction in introductory programming courses. Pair programming, used in the industry as a practice of an agile development method, can be adopted in classroom settings to encourage peer learning, increase students’ social skills, and enhance student achievement. This study explored students’ perceptions on effectiveness of pair programming and the influence of student’s level of experience with this activity and perceived partner involvement on effectiveness outcomes. Findings suggest that the more students are involved in this activity, the more they enjoy it and the more they learn by collaborating with their partners. When comparing different effectiveness measures, their perceived learning, quality of work, and enjoyment during pair programming was found to be at a higher level than increased productivity outcome. Keywords: Pair Programming, Teamwork, Collaborative Learning, Programming Course. 1. INTRODUCTION information systems courses. It discusses what was learned about the impact of this type of Software development is typically a process that collaborative activity on students’ attitudes and requires the coordinated efforts of the members learning. The following section provides a of one or more teams. As such, it is important review of existing research on pair that computer programming courses provide programming, collaborative learning and students not only with technical knowledge, but research questions and hypotheses. Next, the also with the skills required to work in real-life description of the study’s methodology, results projects. It is not sufficient for IS graduates to of data analyses and discussion are presented. be technically competent. Social competence, such as teamwork and communication, are also 2. PAIR PROGRAMMING AND important (Figl, 2010). COLLABORATIVE LEARNING Pair programming is one of the collaborative Pair programming is the term used to describe leaning activities that has found support in the process in which two programmers work side academic environments as a promising strategy by side, on the same task at one computer to approach learning programming. This paper designing and coding the same algorithm. It is presents a study on the implementation of pair suggested that there are typically two roles in programming as a team-based activity in pair programming: the “driver”, who has control ©2014 EDSIG (Education Special Interest Group of the AITP) Page 36 www.aitp-edsig.org /www.isedj.org Information Systems Education Journal (ISEDJ) 12 (6) ISSN: 1545-679X November 2014 of the mouse and the keyboard and the 2001; Werner, Hanks & McDowell, 2004; “navigator”, who observes the work of the McDowell et al., 2006; Braught, Wahls & Eby, driver, offers suggestions and corrections to 2011). Several studies indicate that pair both algorithm and code. Each programmer programming reduced student frustration takes a turn at being the “driver” and the (Howard, 2007; Simon & Hanks, 2008; Braught, “navigator”. The two programmers collaborate Wahls, & Eby, 2011). Collaborative learning is in designing, coding and reviewing. Pair considered one of the main benefits of pair programming is one of the key practices in programming in both professional and Extreme Programming (XP) (Beck, 2000). XP is educational setting. Several studies indicated one of the most popular agile software that students perceive they learned more by development methodologies with a strong focus working with a partner than they would have by on personal interactions among software working alone (Cliburn, 2003; Carver et al., developers. Benefits of pair programming 2007; Edwards et al., 2010). include ability to notice more details when working in pairs, encouragement of best Other studies have focused on the impact of programming practices and sharing expertise implementation of pair programming on (Wray, 2010). academic performance and learning. The findings of these studies are not consistent. Collaborative learning involves groups of Some of them report higher assignment grades students working together. Pair programming for pairs compared to solo programmers, greater can be considered a model of collaborative likelihood of course completion and higher pass learning. It incorporates the critical attributes of rates (Williams et al., 2002; McDowell et al., a collaborative learning activity: 1) common 2006; Mendes et al., 2006; Chigona & Pollock, task; 2) small group learning; 3) cooperative 2008). These findings are not supported by all behavior; 4) interdependence; and 5) individual studies. A study by Zacharis (2011) showed accountability (Preston, 2005). There has been that assignment grades for pairs were not a significant amount of research on pair significantly different from solo students. programming used as a collaborative learning Individual exam grades (a measure of their tool in the traditional classroom. More recently, knowledge of course material) were not different pair programming has been adopted in distance for those who used pair programming vs. those education, also known as virtual pair who did not (Williams et al., 2002; McDowell et programming or distributed pair programming al., 2006). There were cases when students felt (Hanks, 2008; Edwards, Stewart & Ferati, 2010; that they understand their programs better Zacharis, 2011). when they work by themselves (Simon & Hanks, 2008). Studies on pair programming in the classroom have sought to capture both students’ attitudes In addition to academic performance, previous towards pair programming, as well as measure research has focused on other potential benefits the actual benefits of pair programming such as of pair programming in the classroom, such as improved learning and academic performance. program quality and productivity. Many studies Most of the previous research that has explored showed that pair programming improves the students’ perceptions suggests that students quality of the programs. Studies by Williams & have a positive attitude toward collaboration and Kessler (2001), McDowell et al., (2006), Chigona communication that takes place during pair & Pollock (2008) and Zacharis (2011) report programming (Howard, 2007) and that they findings that students working in pairs produced perceive that pair programming helped them better programs and higher software quality. develop teamwork skills (Cliburn, 2003; Muller (2007) also showed that for simple Edwards, Stewart & Ferati, 2010). It has been problems, pair programming lead to fewer reported that students enjoyed working in teams mistakes. (Williams & Kessler, 2001; Cliburn, 2003; McDowell et al., 2006; Howard, 2007; Chigona & However, previous research does not provide the Pollock, 2008; Mentz at al., 2008; Zacharis, same support for the impact on productivity. 2011). In addition, students who worked in Zacharis (2011) and Salleh et al., (2011) found pairs reported higher confidence in the that paired students were more productive than correctness of program solutions compared to individual programmers and they completed individual programmers (Williams & Kessler, tasks in a shorter amount of time. On the other ©2014 EDSIG (Education Special Interest Group of the AITP) Page 37 www.aitp-edsig.org /www.isedj.org Information Systems Education Journal (ISEDJ) 12 (6) ISSN: 1545-679X November 2014 hand, Simon and Hanks (2008) found that pair effectiveness of pair programming as a programming may or may not take less time. teamwork activity: confidence in quality of work Another study by Williams & Kessler (2001) completed in pair, perceived productivity, found that time for pairs and individuals was the enjoyment, and perceived learning. One same. This is in line with research findings on approach to examine these perceptions would be pair programming in general that indicate that to analyze which of the outcomes were collaborating pairs do not exceed the considered to be more strongly impacted by the performance of its best member working alone use of pair programming. The following (Balijepally et al., 2009). research question will be addressed in this study: Outcomes of the adoption of pair programming have not been the only areas examined by Research question 1: What is the relative previous research. The review of the literature importance of perceived outcomes of pair on pair programming in computing education programming by students? revealed other areas that have been of interest to educators and researchers. Several studies Despite significant amount of research focused on the pair formation approach. In conducted on pair programming as a some studies, pairs were assigned randomly collaborative teaching method, there is still a (Mendes, Al-Fakhri & Luxton-Reilly, 2006; need to investigate the factors affecting pair Muller, 2007; Hahn, Mentz & Meyer, 2009). programming’s effectiveness (Salleh, Mendes, & Some other studies used matching pairs, based Grundy, 2011). As indicated in the previous on criteria such as academic performance literature review, most of the previous research (Williams & Kessler, 2001; Choi et al., 2009; has focused on factors such as the optimal pair Zacharis,