Centre for Scholarship and Innovation
Pair programming promotes immediate, informal collaboration over coding activities. The driving developer writes the code and controls the keyboard and mouse; the navigating developer checks the code as it is written by the driver, and the developers swap their roles frequently. In agile development, programmers often code in pairs, to detect errors faster, produce higher code quality and discover better solutions. There is substantial research providing evidence of enhanced self-confidence and programming and communication skills if pair programming is used in teaching. However, the use of pair programming in higher education is mostly in co-located settings at campus-based universities. Our overall objective is to investigate how the benefits of pair programming can be brought to students learning to program online at a distance.
This project presents two initial studies looking at remote pair programming (RPP) also called distributed pair programming at the Open University, where students typically follow an unscheduled self-study style, have little interaction with each other, and have little time for extra activities. We investigated: whether readily available generic communication tools, instead of purpose-built academic prototypes, were sufficient for RPP; whether student pairs ‘jelled’ (learned to function well together) quickly; whether how the partners interact or existing programming experience affected jelling; and whether students felt positive about, and saw benefits in RPP, despite the overhead on their limited study time.
Our findings support the use of remote pair programming in teaching, with the majority of students considering it to be beneficial. Remote pair programming can enhance the learning experience in part-time distance education provided that potential barriers are dealt with by providing guidance on how best to use existing communication tools instead of developing bespoke ones, taking time availability and leadership style into account when pairing students, and choosing appropriate programming activities.
The overall outcomes of the project are: