Pair Programming
Back to All actionsWhat is the Action?
Pair students together in the class/lab setting for practical work. Pair programming is a social process that involves two collaborators who work and own the code together. One of the programmers, the “driver” is responsible for entering the code. The other programmer, the “navigator”, sits next to the driver and offers suggestions, as well as monitors possible errors. It is common to reverse the roles frequently.
This action can be used in introductory courses as well as in more advanced modules.
Less experienced students benefit the most from the pair programming.
Quick Facts to Support this Action
- Pair programming can help women persist in computing majors.
Having women work in a pair with another woman leads to accomplishing a greater portion of an assignment.
- Pair programming with all-female pairs is known to improve the gap previously documented on code quality and complexity differences between different genders.
Who would benefit from this Action?
Less experienced students benefit the most from the pair programming.
Ways to Implement this Action
Explore each of the steps by expanding options below.
Step-by-Step Guide
➤ Ensure Student Understanding
Remote Pair Programming
Women’s experience with remote pair programming has proven to be quite different to men’s. Women tend to report higher level of stress and lower level of perceived competence during the process of remote programming.
Additionally, research indicates that in a remote pair-programming setting men tend to make gender-based assumptions about women and women can feel dominated and interrupted with their male partners. Therefore, it is not advised to implement this action where remote programming is the only option for students.
Evaluation Approach
- To assess the impact of pair programming on interest, perceptions, and performance in computer science coursework, US study The impact of pair programming on college students’ interest, perceptions, and achievement in computer science used student surveys with items such as interest, intentions to take more computing courses, comfort/confidence, lack of anxiety and performance/drop out statistics. Below are items and response options for outcome measures from the mentioned study that had nearly 2000 undergraduate participants in nearly 100 lab sessions.
| Outcome Variable | Original Item Phrasing | Response Option Endpoints |
|---|---|---|
| Interest in Computer Science | How interested are you in computer science? | 1 = Not at all interested 5 = Very interested |
| Interest in Computer Programming | How interested are you in computer programming? | 1 = Not at all interested 5 = Very interested |
| Interest in Course Content | How interested are you in the content of this particular course? | 1 = Not at all interested 5 = Very interested |
| Plan to Take More CS Courses | What are the chances that you will take more computer science coursework in the future? | 1 = 0% (no chance) 7 = 100% (absolutely certain) |
| Comfort in CS Course | How comfortable do you feel about taking this computer science course? | 1 = Not at all comfortable 5 = Very comfortable |
| Confidence in CS Skills | How confident are you in your computer science skills? | 1 = Not at all confident 5 = Very confident |
| Lack of anxiety about CS | How anxious are you about computer science? | 1 = Very anxious 5 = Not at all anxious |
- When asking to submit the practical work, to see quantitative records of the process, ask pairs to also submit logs indicating the amount of time spent on the exercise for each session (depending on how many sessions of programming are allocated to this part of the course. They should include hours outside of the class/lab time as well). The logs should contain the information on time spent driving, reviewing, and alone.
- If you would like additional feedback, ask students to submit a short description on their level of confidence in their solution, how much they enjoyed working on this assignment and how satisfied they were with the process.
Next Actions to Consider
Consider using this action along with some others, such as Personalised Emails or Class/Lab Dynamics.
Albarakati, N., DiPippo, L., and Fay-Wolfe, V. 2021. Rethinking CS0 to Improve Performance and Retention. In Australasian Computing Education Conference (ACE ’21). Association for Computing Machinery, New York, NY, USA, 131–137.
Bevan, J., Werner, L., and McDowell, C. 2002. Guidelines for the use of pair programming in a freshman programming class. In Proceedings of the Conference on Software Engineering Education and Training.
Bowman, N.A., Jarratt, L., Culver, K.C. and Segre, A.M., 2021. The impact of pair programming on college students’ interest, perceptions, and achievement in computer science. ACM Transactions on Computing Education, 21(3), pp.1-19.
Denner, J., Werner, L., Campe, S. and Ortiz, E., 2014. Pair programming: Under what conditions is it advantageous for middle school students?. Journal of Research on Technology in Education, 46(3), pp.277-296.
Graßl, I. and Fraser, G., 2023, May. The ABC of Pair Programming: Gender-dependent Attitude, Behavior and Code of Young Learners. In 2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET) (pp. 115-127). IEEE.
Jarratt, L., Bowman, N.A., Culver, K.C. and Segre, A.M., 2019, July. A large-scale experimental study of gender and pair composition in pair programming. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (pp. 176-181).
Lott, C., A. McAuliffe, A., and Kuttal, S. Remote Pair Collaborations of CS Students: Leaving Women Behind? 2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2021, pp. 1-11.
McDowell, C., Werner, L., Bullock, H., and Fernald, J. 2006. Pair programming improves student retention, confidence, and program quality. Commun. ACM 49, 8 (August 2006), 90–95.
McDowell, C., Werner, L., Bullock, H., and Fernald, J. 2003. The impact of pair programming on student performance, perception, and persistence. In Proceedings of the 25th International Conference on Software Engineering (Portland, OR). 602-607.
Werner, L., Hanks, B., and McDowell, C. 2004. Pair-programming helps female computer science students. J. Educ. Resour. Comput. 4, 1 (March 2004), 4–es.
Williams, L.A. and Kessler, R.R., All I Really Need to Know About Pair Programming I Learned in Kindergarten. Communications of the ACM, 2000. 43(5): p. 108-114.
Ying, K., Rodríguez, F., Dibble, A., and Boyer, K. 2021. Understanding Women’s Remote Collaborative Programming Experiences: The Relationship between Dialogue Features and Reported Perceptions. Proc. ACM Hum.-Comput. Interact. 4, CSCW3, Article 253 (December 2020), 29 pages.