CSE 8A: Pair Programming

Why are we pair programming?

Pair programming is one part of the Extreme Programming software development methdology that is one of the hot new players in the software development field. In addition to having benefits to productivity and security when used in industry, a number of academic institutions have investigated the use of pair programming in teaching computing courses. Specifcially, in one study, students who used pair programming for assignments in a first computer science course SCORED BETTER in a second computer science course (where they worked individually) than similar students who worked alone.

What is pair programming?

According to Laurie Williams (North Carolina State University), pair programming involves:

"[t]wo programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software."