One of the things that we firmly believe in is the value of collaboration and learning from each other, especially when programming. "Pair programming" is one practice that promotes that, and is increasingly popular both in the industry and in coding academies, and if you have a classroom, then it's a practice you can introduce into yours!
In pair programming at its simplest, a pair of students will work together on a programming assignment. However, if you just tell your students to "pair", you may find that one person does all the work, or they yell at each other, or just don't end up learning from each other. So it's useful to actually formally introduce pair programming and do it in a more structured way. Here's our recommendation:
- If you can, it can really help if you actually have "pairing stations." Those are desks with two monitors and two keyboards, but the keyboards both control the same monitor. That makes it impossible for students to accidentally start working on their own computer. Assuming pairing stations aren't in the budget, then you can approximate them by shutting every other monitor off.
- On the first day that you introduce pair programming, talk about what it is and why we do it. You can use this slideset to do so:
- Either pre-select the pairs or ask students to form pairs. It might be better to pre-select, so you don't end up with a pair of two students that are at too low of a level together. Get the pairs to sit at a station. To make sure they bond and feel like a team, give them 10 minutes to come up with a team name and team chant. Have each team introduce themselves to the rest of the classroom.
- Begin pairing! Start a timer so that you can yell "Switch!" after some amount of minutes, to make sure the pairs actually alternate.
- Either continue with the same pairs for the rest of the class or switch them for every project. Some pairs work better than others, so pay attention to whether there are problem pairs that need changing up.
Here are additional resources that can help you introduce pair programming:
Have your own ideas? Share them below!