Pair Programming

Pair programming is an software development technique in which two programmers work together at one workstation/computer. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in and provides guidance. The strategy is often recommended for AP CSP classrooms.

Pair Programming in a Virtual Environment

COVID-19 has caused a number of schools to open under a blended or all virtual environment. While traditional pair programming has two students physically at the same location, there are a number of adaptations that can be made to allow for virtual pair programming. In fact, virtual pair programming is a common industrial practice for companies working in dispersed teams.

Some tips for to pair program virtually include:

  • Collaborative Programming Environments

    • Netsblox, a programming environment based on a previous version of Snap!, allows students to collaboratively program much like multiple people can edit one Google Doc at the same time.

  • Video Conferencing

    • With most programming languages, video conferencing helps students naturally take the driver-navigator roles as only one student can program at a time.

    • Make sure that all code is saved by both students before the pair programming session ends, this is especially important if students are not guaranteed to be with the same partner next time.

    • Check in on students often. Pop into different student room groups just like you would circulate the classroom.

    • Some video conferencing software allows you to put students into break out rooms, and this is the ideal way to get students pair programming quickly. If the software you're using doesn't have this feature, consider setting up multiple rooms in advance for different programming teams. Asking students to set up their own rooms is also an option, but it is more time consuming and makes it more difficult for you to keep track of room URLs to check in on students.

  • Jigsaw Programming

    • In this strategy students break up the coding problem into sections and work on each independently before meeting up to combine their parts together into one final product.

    • This strategy works best for larger programming problems which students are able to break into sections.

    • Students may need support on how to break up coding problems (by function, by sprite, by trigger condition, etc.). Make sure all students are contributing to the coding part of the program, and not just the aesthetics.

    • Students should consider how they're going to recombine their code into one program, with consideration on how inputs should pass between parts of the program.

    • Consider having students propose how they're going to split up the work and recombine their program before letting them begin to code.

  • Asynchronous Support

    • Students, even when programming on their own, will need help and support. When meeting in-person students are able to turn to the person next to them and ask for clarification or support. In a virtual environment students need to have other options made available to them.

    • Make sure students know how to get help from you - whether email, chat message, or through video conferencing. Check in with students regularly to make sure they are progressing through the assignments. Many students do not feel comfortable asking for help.

    • Provide a way for students to get help from each other. You can use the same tactics - open video conferencing room, chat room, etc. While you should be monitoring these channels, it's recommended that you let students ask and answer questions among themselves.

    • Provide a programming buddy. If you're not going to use pair programming, consider pairing up students into programming buddies or small groups so that they have a person to go to when they have questions. These students could have their own private chat group or breakout room online.

Last updated