A Replicated Experiment of Pair-Programming in a 2 nd - year Software Development and Design Computer Science Course Emilia Mendes Computer Science Department The University of Auckland, New Zealand emilia@cs.auckland.ac.nz Lubna Basil Al-Fakhri Computer Science Department The University of Auckland, New Zealand lubna@ww.co.nz Andrew Luxton-Reilly Computer Science Department The University of Auckland, New Zealand andrew@cs.auckland.ac.nz ABSTRACT This paper presents the results of a replicated pair programming experiment conducted at the University of Auckland (NZ) during the first semester of 2005. It involved 190 second year Computer Science students attending a software design and construction course. We replicated the experiment described in [18], investigating similar issues to those reported in [32] and employing a subset of the questionnaires used in [32]. Our results confirm the use of pair programming as an effective programming/design learning technique. Categories & Subject Descriptors k.3.2 [Computer and Information Science Education]: Computer Science Education. General Terms Experimentation, measurement. Keywords CS2, pair programming, collaboration, software design. 1 INTRODUCTION Pair programming is a programming technique in which two programmers work together on the same task. Williams et al. [32] describe the process as follows: “One partner, the driver, controls the pencil, mouse, or keyboard and writes the code. The other partner continuously and actively observes the driver’s work, watching for defects, thinking of alternatives, looking up resources, and considering strategic implications. The partners deliberately switch roles periodically.” ____________ Permission to make digital or hand copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, require prior specific permission and/or a fee. ITiCSE’06, June 26-28, Bologna, Italy. Copyright 2006 ACM 1-XXXXXX-XXXXXX….$5.00 We previously conducted a pair programming experiment during the first semester of 2004 at the University of Auckland (NZ). The subjects of our study were second year Computer Science students enrolled in a software design and construction course. Each student was assigned to either a control group (solo programmers) or an experimental group (paired programmers). Results showed that a significantly greater number of the paired students passed the course compared to solo students. In addition, exam scores, test scores, assignment scores and final grades for paired group were all significantly higher than those for the solo group. Further details of this experiment can be found in [18]. In 2005 we replicated the experiment described in [18] to verify the validity and generalisability of its results. This paper describes the replicated experiment and its results. Our contribution is therefore twofold: i) to replicate Mendes et al.’s experiment [18], also applied to 2 nd year computer science students; ii) to add empirical evidence to the current body of knowledge on pair programming regarding this technique’s usefulness or not for improving educational outcomes and enjoyment of students. Similar to [18], we looked at whether pair programming improves learning and the enjoyment of those students who participate in collaborative activities. We did not investigate the quality of the code produced through the pair-programming process. The hypotheses we investigated were (only the alternative hypotheses are presented): H1 – An equal or higher percentage of students in paired labs will complete the course with a grade of C- or better compared to solo programmers. H2 – Students in paired labs will earn exam scores equal to or higher than solo programming students. H3 – Students in paired labs will earn assignment scores equal to or higher than solo programming students. H4 – Students in paired labs will earn test scores equal to or higher than solo programming students. H5 – Students in paired labs enjoy pair programming and will have a positive attitude towards collaborative programming settings. Our results support all alternative hypotheses, and confirm results obtained in [18], thus providing additional empirical evidence of the benefits of pair programming for learning.