The case for collaborative programming
Communications of the ACM
The costs and benefits of pair programming
Extreme programming examined
Pair Programming Illuminated
The effects of pair-programming on performance in an introductory programming course
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Strengthening the Case for Pair Programming
IEEE Software
Exploring the Efficacy of Distributed Pair Programming
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
The impact of pair programming on student performance, perception and persistence
Proceedings of the 25th International Conference on Software Engineering
The collaborative software process(sm)
The collaborative software process(sm)
Assessing distributed pair programming
OOPSLA '02 Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Investigating pair-programming in a 2nd-year software development and design computer science course
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Promoting communication and inclusiveness in the IT classroom
Proceedings of the 6th conference on Information technology education
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
An empirical study of the effects of personality in pair programming using the five-factor model
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Hi-index | 0.00 |
Pair programming is a concept where two programmers work side by side at the same computer, writing code jointly. One of them, called the driver, is in control of the keyboard and mouse. The other, called the navigator, observes what the driver is doing and offers advice. It is the driver's job to write the code. The navigator has a chance to observe the larger picture, evaluating the driver's code for correctness of design and implementation. Studies have shown that pair programming is very effective. Two programmers can finish a task in little over half the elapsed time that a single programmer takes. And the quality of the code-measured in terms of absence of defects-is much higher.In the past few years, pair programming has made inroads into industry and into programming courses. However, it has not typically been used in courses that teach subjects other than programming or software engineering, nor has it been used in the analysis of experimental results. This paper reports on an experiment in a combined senior/masters-level computer architecture class, using Hennessy & Patterson's Computer Architecture: A Quantitative Approach as a text. Students were required to implement three projects simulating various aspects of a microarchitecture (cache, branch predictor, dynamic instruction scheduler). Then they engaged in an experimental analysis to find the best configuration in a design space. Students reported high levels of satisfaction with the experience of pair programming. Pair programmers obtained significantly higher grades on Project 1; however, differences on the other projects were not statistically significant.