Pair programming refers to the practice whereby two programmers work together at one computer, collaborating on the same design, algorithm, code, or test. The pair is made up of adriver, who actively types at the computer or records a design; and a navigator, who watches the work of the driver and attentively identifies problems, asks clarifying questions, and makessuggestions. Both are also continuous brainstorming partners. Throughout the world, many universities are using pair programming in their computer science classes – and a number of high schoolshave begun using the practice as well. Generally, current-day students much prefer to collaborate than to work alone and find computer science more attractive if they are not forced to work alone themajority of the time. Between the two students, they can generally figure out most problems and can avoid pesky syntax and semantic errors that can cost many hours to debug. Perhaps during thosemulti-hour debugging sessions (that are greatly reduced with pair programming) some students vow to never take another computer science course!
Though some educators may be concerned that only half the students learn with pair programming, pair programming has been shown to help students learn fundamental skills on inindividual level. At North Carolina State University (NCSU) and the University of California – Santa Cruz (UCSC), extensive pair programming studies were conducted with approximately 1200beginning computer science students (CS1) and with almost 300 third/fourth year software engineering students over a three year periods.
- Students in classes in which pair programming was required generally had higher project scores and higher exam scores – a sign that the students are learning the material on an individualbasis as well.
- More students passed CS1 with a grade of C or better.
- At NCSU, when these students went on to the second programming class (CS2) in which they were forced to work alone (and, thereby, demonstrate their individual competence), the students who hadpair programmed in CS1 were more likely to have maintain or improve their grades than the students who had worked alone in CS1. At UCSC, more students who had paired in CS1 attempted CS2 (77% vs.62%) and slightly more of these students passed CS2 compared with the students who had worked solo in CS1.
- Most importantly, a higher percentage of the students who took a paired CS1 class chose to pursue a computer science-related major one year later (NCSU: 57% vs. 34%, p < 0.001; UCSC 25% vs11%, p < 0.008) compared with their solo counterparts.