Pair Programming in an Introductory Computer Science Class: Initial Results and Recommendations

Author(s): Laurie Williams, Kai Yang, Eric Wiebe, Miriam Fezli, Carol Miler
Venue: 17th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications
Date: 2002

Sample Size: 199
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 in the labs of one of the two sections of the Introduction to Computing class at North Carolina State University during the Fall 2001 semester.

H1. A higher percentage of students that have participated in pair programming in CS1 will succeed in the class by completing the class with a grade of C or better.
H2. Students’ participation in pair-programming in CS1 will lead to better performance on examinations (exams are completed solo by all students) in that class
H3. Students’ participation in pair-programming in CS1 will lead to better performance will lead to better performance on course projects in that class
H4. Students’ participation in pair-programming in CS1 will lead to a more positive attitude toward the course and toward Computer Science in general
H5. Students’ participation in pair-programming lead to a lower workload for course staff.

In the solo section, only 45% of the students studied successfully completed the course with a grade of C or better, whereas 68% of the students in the paired section met this criteria. Thus, H1 is supported. Also, on average, the students in the paired section performed better on the two midterm examinations and the final examination. However, the students in the paired section also had a higher average SAT-M score than the solo section, so the exam grades may not allow for concluding that the paired programming laboratory helped students perform better on exams, so no conclusion can be made for H2. As for projects, the paired section scored higher (statistically significant) on two of the three projects in the class, thereby supporting H3. Through the use of course evaluations, students felt more favorable toward the course and the instructor in the paired section (though no statistical analysis could be performed), so H4 is somewhat supported. Next, in the paired section, students showed a high level of interaction and frequently answered each others questions regarding the assignments. Instructors therefore spent very little time answering questions, and those that were answered were brief. In the solo section, on the other hand, the labs were very quiet and students had questions on a frequent basis. As a result, instructors remained busy answering questions for the duration of the lab period. This comparison therefore supports H5.

Lastly, the authors of this paper provide a few recommendations to future introductory classes implementing the paired programming paradigm. The recommendations include that students must be instructed on how to use pair programming and a hands-on pair programming tutorial should be conducted. Moreover, paired programming should be implemented in a closed lab section and the rotation of roles between the driver and navigator should be enforced. Also, since there are fewer questions in the paired programming lab, the instructor should follow the industrial practice of “Management by Walking Around”. In terms of grading, a peer evaluation system should be incorporated into the course practices to ensure that the students’ grades are impacted based upon their peer evaluation. Furthermore, the paired partners should be mixed up throughout the semester and different students should start the lab as driver each week. As for classes with no lab, consider making pair programming optional. And lastly, if the class has an odd number of students, have one three-person group before requiring any student to work alone.