Radu Nicolescu, Robert Plummer
A Pair Programming Expriment in a Large Computing Course

Abstract.
Pair programming is a methodology where two programmers sit at the same machine to code – one typing and the other ``navigating''. In an advanced course on Distributed Computing, we used conventional ``solo'' (i.e., individual) programming for the first three home assignments, and allowed the students to pair freely on the last two home assignments, over a relatively short period. A midterm exam was given before pair programming was introduced, and a final exam was given at the end of the course. This approach allowed us to contrast practical results and exam performance before and after pair programming. We report on an after-the-fact survey, which shows strong positive attitudes toward the paired approach. We also analyze the marks of the assignments, the midterm exam, and the final exam. Students who paired performed significantly better on assignments but didn't improve their scores on written examinations. Overall, the results seem to support the idea that pair programming has a positive role in the classroom, but more experience seems necessary, to answer some still open questions.