Pair programming is a key aspect of Extreme Programming (XP), which encourages informal and immediate communication over joint coding work. The technique involves two developers: one in a driver role writes the code, controlling the keyboard and mouse, and the other, the navigator, reviews the code as the driver writes it. There is now a substantial body of evidence in support of improved coding outcomes when pair programming is used in teaching (Ghorashi 2016; Mehmet et al. 2018).
Despite these proven academic benefits for collocated classroom settings, distance and online settings are yet to benefit. The isolation and impoverished learning experience some students report points to an urgent need for tools and methods that support remote pair programming in a distributed educational setting to be developed.
In a traditional instructor-led teaching environment, pair programming is relatively easy to implement. This is more challenging in distance teaching and learning situations. Some of these challenges include:
- Students experiencing isolation and exclusion
- Problematic communication due to students having fewer interactive and communication options in a remote setting
- Access to code repository
To improve teaching programming at a distance, using Pair-Programming as collaborative learning tool, we will:
- Carry out extensive literature review on existing academic research on collaborative learning, methods and tools developed to support pair programming (both traditional and remote style) and real time coding in education (both collocated and distance settings) to identify principles of effective pair programming.
- Identify and/or develop tools that will support remote pair-programming taking the identified principles of effective pair programming into account.
- Review the current Open University teaching and laboratory practices in use for teaching computing related subjects: TM112 – Introduction to computing and information technology 2, TM129 – Technology in practice, M250 – Object-oriented programming in Java, M269 – Algorithms, data structures and computability.
- In conjunction with student partners, we will carry out two user studies, which will evaluate:
- The effectiveness of collaborative tools.
- The effectiveness of the method of pairing, such as voluntary, randomized, knowledge-based, demographic pairing.
- Evaluation of students’ experience, feedback, programming skills, and evidence of academic improvement.
- Improvement carried out on the methods and tools.
The evidence-based results will support improved learning outcomes when pair programming techniques are used in teaching programming at a distance.
- Reduce collaboration obstacles enough to make remote pair programming worthwhile and attractive to students at the Open University.
- Contribute to the wider academic research think-tank, the development of collaborative techniques for delivery of teaching programming at a distance.