Building Pair Programming Knowledge through a Family of Experiments

Author(s): Laurie Williams, Charlie McDowell, Nachiappan Nagappan, Julian Fernald, Linda Werner
Venue: Proceedings of the 2003 International Symposium on Empirical Software Engineering
Date: 2003

Sample Size: 1200
Class/Experience Level: Undergraduate Student
Participant Selection: class participation
Data Collection Method: Survey, Project Artifact(s)



Type of the study: Experimental study
How Pair Programming Was Used: Pair programming was implemented all but one of the in the introductory computer science classes at North Carolina State University during Fall 2001, Spring 2002, and Fall 2002, and at the University of California Santa Cruz during Fall 2000, Winter 2001, and Spring 2001.

H1. An equal or higher percentage of students in paired labs will complete the class with a grade of C or better compared to solo programmers.
H2. Students who work in paris will earn exam scores equal to or higher than solo programming students.
H3. Students who complete programming projects using pair programming produce better programs than students working alone.
H4. Students in paired labs enjoy pair programming and will have a positive attitude towards collaborative programming settings.
H5. The use of pair programming in an introductory computer science course does not hamper student performance in future solo programming courses.
H6. Students participating in pair programming will be significantly more likely than solo programmers to pursue computer science-related majors one year later.

The authors defined success rate as the percentage of students who get a C or above in the course. A statistically significant result indicates that pair programming and success rate in the classroom are related, thereby verifying H1. However, in terms of performance on exams, there was no statistically significant difference between the final exam scores for the pairing students and the non-pairing students, thereby refuting H2. In terms of project scores, there were no statistically significant differences in overall project scores between the pairing sections and the solo sections for any of the semesters at NCSU, however at UCSC the programming projects completed by pair programmers were much better than the projects completed by individuals, yielding a statistically significance. These findings therefore support H3. With regard to attitude towards pair programming, through an attitude survey given to students at the end of the class, results showed that students in paired labs enjoy pair programming and have a positive attitude towards collaborative programming settings, thereby supporting H4. In terms of performance in subsequent solo programming courses, the authors believe that pair programming is not detrimental to a student’s performance in future solo programming classes, thereby supporting H5. And lastly, in terms of persistence in computer science, pair programming students were significantly more likely to have declared a Computer Science major than solo programming students one year after taking the introductory computer science class, thus supporting H6.