In this blog, Yousef Al-Gumaei, Assistant Professor , Global College (Edinburgh), shows the impact of pair programming on the confidence of students from diverse learning backgrounds who are learning to code.
Engagement and Equity Challenges
Teaching programming at foundation level often means working with students who arrive with very different prior experiences, confidence levels, and expectations of learning. Introductory programming is widely recognised as a complex intellectual activity, where students often struggle with concepts such as syntax, semantics, and problem-solving.
In my past computing classes, most lab activities were completed individually, and I observed a familiar pattern: while some students progressed quickly, others struggled to complete tasks within the allocated lab time. This was particularly noticeable among female students and students from diverse educational or cultural backgrounds, who were often less confident in asking questions or participating in technical discussions, despite being equally capable.
The literature highlights a gender confidence gap in computing, with female students reporting lower confidence despite comparable ability, a trend that persists in introductory programming contexts (Nea Pirttinen et al., 2020) and reflects a mismatch between performance and self-concept (Ross & Hooshangi, 2024). In addition, research highlights a cultural confidence and participation gap, where programming environments may embed implicit cultural assumptions that disadvantage international and non-Western learners (Sthapit et al., 2024). Cultural differences in learning behaviours and orientations toward collaboration further shape student engagement and learning outcomes in programming courses (Popov et al., 2014). Overall, these findings indicate that disparities in computing education are driven less by ability and more by confidence, cultural background, and prior educational experiences, reinforcing the need for inclusive and culturally responsive teaching practices.
These observations led me to reflect on how my teaching approach could better support engagement, confidence, and inclusion, rather than rewarding only those who were already comfortable with programming. Williams et al. (2002) suggest that collaborative approaches based on pair programming can improve students’ participation, enhance completion course performance, and reduce reliance on instructors, particularly in first programming courses where confidence plays a significant role. As a result, I introduced pair programming as a structured teaching strategy within the practical lab sessions.
What Is Pair Programming?
-

Figure 1 (AI-generated): Pair programming roles
Pair programming is a collaborative learning approach commonly used in professional software development. Two students work together at one computer:
- The driver writes the code
- The navigator reviews the work, asks questions, and suggests improvements
The roles are swapped regularly so that both students engage actively with the task.
How Pair Programming Was Implemented
The implementation of pair programming within the practical laboratory sessions was structured to foster collaborative learning and skill development among students. Pairs were formed ad hoc based on physical seating arrangements, with deliberate efforts, where feasible, to balance levels of programming confidence and prior experience within each pair. This grouping strategy aimed to promote mutual scaffolding and reduce intra-pair disparity in participation. The pedagogical framework incorporated several key components. First, the distinct roles of driver and navigator were explicitly defined and communicated to all participants. The driver assumed control of the keyboard and wrote the code, while the navigator reviewed each line for logical and syntactical accuracy, contributing strategic direction. Second, frequent role switching was mandated during each session to ensure balanced engagement and to expose both students to the cognitive demands of each function. Third, the programming tasks were designed to be concise, well-scaffolded, and inherently suited to collaborative resolution, thereby minimizing ambiguity and allowing pairs to focus on process rather than problem interpretation. Fourth, students were instructed to maintain respectful communication and engage in shared decision-making, reinforcing the social and cooperative dimensions of the activity.
Observed Impact on Learning and Engagement
The impact of implementing pair programming became evident within a few weeks. Compared with earlier individual lab sessions, I observed:
- Higher task completion rates during practical classes
- Increased verbal participation, particularly from quieter students
- Improved confidence when explaining code or problem-solving steps
- More effective peer support, reducing pressure on the instructor
Students frequently commented that working with a partner helped them clarify their thinking, catch mistakes earlier, and feel less isolated when encountering errors.
Supporting Marginalised and Underrepresented Students
A particularly encouraging outcome of the pair programming implementation was its positive impact on students from marginalised or underrepresented groups. My observations showed that pair programming implementation reduced feelings of intimidation within technical settings, created a safer environment for posing questions, promoted active participation in place of passive observation, and fostered a heightened sense of belonging. Notably, female students emerged as more visible contributors during laboratory discussions. This finding is consistent with existing literature, which suggests that collaborative learning environments can help mitigate gender and background-related disparities in computing education (Maguire et al., 2014).
Pair programming challenges
Despite its pedagogical benefits, pair programming presents challenges, including disparities in commitment and confidence that require careful facilitation. During the early implementation, some students handled most of the task while others became passive observers, highlighting the need for more structured facilitation. In response, clearer guidance was introduced through defined driver and navigator roles, while regular role switching helped promote more balanced participation and reinforced the importance of intentionally designing inclusive learning activities. Critically, pair programming complements rather than replaces individual learning, enhancing confidence, understanding, and engagement.
Conclusion
Reflecting on this experience, has shown me that pair programming is more than a technical teaching strategy. It has become a practical way to support inclusive learning, enhance engagement, and improve student performance, particularly for those who may otherwise feel marginalised in computing classrooms.
References
Pirttinen, N., Hellas, A., Haaranen, L., & Duran, R. (2020). Study major, gender, and confidence gap: Effects on experience, performance, and self-efficacy in introductory programming. IEEE Frontiers in Education Conference (FIE), 1-7.
Ross, A., & Hooshangi, S. (2024). “I Always Feel Dumb in Those Classes”: A Narrative Analysis of Women’s Computing Confidence. ASEE Annual Conference & Exposition.
Sthapit, S., Thomas, M., Brock, J., & Barnes, T. (2024). Cracking the cultural code: Understanding the cultural barriers for international CS students in the US. Proceedings of the 2024 on RESPECT Annual Conference, 293-301.
Popov, V., Noroozi, O., Barrett, J. B., Biemans, H. J., Teasley, S. D., Slof, B., & Mulder, M. (2014). Perceptions and experiences of, and outcomes for, university students in culturally diversified dyads in a computer-supported collaborative learning environment. Computers in Human Behavior, 32, 186-200.
Williams, L., Wiebe, E., Yang, K., Ferzli, M., & Miller, C. (2002). In support of pair programming in the introductory computer science course. Computer Science Education, 12(3), 197-212.
Maguire, P., Maguire, R., Hyland, P., & Marshall, P. (2014). Enhancing collaborative learning using pair programming: Who benefits? AISHE-J: The All Ireland Journal of Teaching and Learning in Higher Education, 6(2).
Image credits
Featured image: ‘Coding’, MS 365 stock image.
Figure 1: Generated by ChatGPT (GPT-4), prompt: ‘Pair programming is a collaborative learning approach commonly used in professional software development. Two students work together at one computer’, 22 April 2026.