Building pair programming knowledge through a family of experiments

Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, code, or test. Pair programming is becoming increasingly popular in industry and in university curricula. A family of experiments was run with over 1200 students at two US universities, North Carolina State University and the University of California Santa Cruz, to assess the efficacy of pair programming as an alternative learning technique in introductory programming courses. Students who used the pair programming technique were at least as likely to complete the introductory course with a grade of C or better when compared with students who used the solo programming technique. Paired students earned exam and project scores equal to or better than solo students. Paired students had a positive attitude toward collaboration and were significantly more likely to be registered as computer science-related majors one year later. Our findings also suggest that students in paired classes continue to be successful in subsequent programming classes continue to be successful in subsequent programming classes that require solo programming.

[1]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[2]  Laurie Williams,et al.  Computer Science Attitude Survey , 2003 .

[3]  Lynda Thomas,et al.  Code warriors and code-a-phobes: a study in attitude and pair programming , 2003 .

[4]  Charles E. McDowell,et al.  Guidelines for the use of pair programming in a freshman programming class , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[5]  A. Agresti,et al.  Statistical Methods for the Social Sciences , 1979 .

[6]  Laurie A. Williams,et al.  In Support of Pair Programming in the Introductory Computer Science Course , 2002, Comput. Sci. Educ..

[7]  James E. Tomayko A Comparison of Pair Programming to Inspections for Software Defect Reduction , 2002, Comput. Sci. Educ..

[8]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[9]  Adam Wojciechowski,et al.  Experimental Evaluation of Pair Programming , 2001 .

[10]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[11]  References , 1971 .

[12]  Eric N. Wiebe,et al.  Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations , 2002 .

[13]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[14]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[15]  Robert R. Kessler,et al.  The collaborative software process(sm) , 2000 .

[16]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[17]  Stewart Marshall,et al.  Student Perceptions of the Suitability of Extreme and Pair Programming , 2001 .

[18]  Laurie A. Williams,et al.  Improving the CS1 experience with pair programming , 2003, SIGCSE.