As any middle schooler will tell you, everything is better when a friend is around. Whether shopping for a new outfit or studying for a test, having a partner means getting access not only to companionship, but also a valuable second opinion.
As it turns out, computer science is no different. Learning how to code is a challenging endeavor with many stumbling blocks that can intimidate young students. Luckily, using pair programming can help prevent many of them.
Pair programming, as the name suggests, is the act of programming in a two-person team at a single computer. One team member is usually the driver, who controls the keyboard and maneuvers the mouse, and the other is the navigator, who keeps an eye out for issues and minds the way everything fits into the bigger picture.
The benefits of student collaboration extend beyond the initial learning phase of computer science, and have inspired standards and competencies for CS Education. ISTE highlights pair programming in the Computational Thinking Competencies, encouraging teachers to:
“Apply effective teaching strategies to support student collaboration around computing, including pair programming, working in varying team roles, equitable workload distribution and project management.”
When machines are scarce, pairing up students seems like an obvious solution. But it may surprise you to know that pair programming is considered a superior practice even when there are enough computers to go around. Pair programming has been shown to improve confidence, satisfaction and test scores in classes compared to learning how to code as an individual.
These results are not unique to education. Industry professionals who program in pairs report fewer bugs, higher-quality code, better design, improved morale and the benefits of learning from a partner. There is often an enjoyment curve when a workplace first implements pair programming, but over time teams usually come to appreciate how productive collaboration can be. With the right pairing, each individual’s technique and form improves because they know someone else is constantly watching them work.
To get the greatest outcomes from pair programming in your classroom, make sure you follow these best practices:
1. Pair carefully.
You can decide whether your students get to choose their own partner or have one assigned to them. But keep in mind, although students often enjoy working with their friends hand-selecting partners gives each team the best shot at succeeding. This does not mean pairing the highest-achieving students with those most in need of help, however. That kind of disparity can damage the experience for both teammates if one partner feels they are being held back and the other worries that their best simply isn’t good enough.
A good rule of thumb is to pair students whose rankings in success/confidence fall in the same half of the class. Take a look at the diagram below to see how you might make your selections.
It works just as well, and perhaps better, if you try to keep each student within one-third of a deviation from their point on the scale. The goal is for both partners to feel like valued and effective members of the team.
2. Switch often.
One of the great things about collaboration is that each team member brings unique skills to the table. To make the most of this benefit, it is important to create a culture of sharing. Let the students know they will be expected to spend an equal amount of time as both driver and navigator, so one person doesn’t feel like they have done more or less than the other.
It’s also helpful to set a timer and sound an alert to encourage students to change every three to six minutes. Children work best when they get frequent breaks and periods of movement, so this short work interval keeps them alert and prevents the navigators from getting bored during long stretches away from the mouse.
3. Encourage respect.
Tensions can flare when one teammate feels picked on or ignored. Help keep frustration at bay by setting a few rules of respect at the outset, such as:
Respect ideas. It’s impolite for the driver to ignore the navigator when they are trying to help. If the driver hears the navigator but is not ready to react to their suggestion, they can simply acknowledge that they have heard and understood the request, then revisit it after completing the thought or task at hand.
Respect personal space. Students should never be put in a position where they fear bodily harm. Let students know it is against the rules of pair programming to touch the other person in any way. This includes putting your hands or fingers over your partner’s while they are operating the mouse or keyboard.
Respect your role. The driver drives and the navigator navigates until it is time to switch. Students should not try to give up their position or take over someone else’s unless they officially swap roles.
Respect the class. Pair discussions should stay between the driver and navigator. Tell students to keep their voices quiet enough to avoid disturbing other teams. If there’s a dispute that will require a lot of discussion or might lead to raised voices, they should conduct the conversation on paper, where there is no danger of disrupting another pair that is “in the zone.”
If you use these ideas and give students plenty of opportunities to get used to the pair programming approach, you just might find that your students exceed everyone’s expectations, learn a valuable skill and have fun doing it.
This is an updated version of a post that originally published on Nov. 18, 2014.
Kiki Prottsman is a computer science educator, as well as the author of several books, including Computational Thinking and Coding for Every Student, My First Coding Book, and Disney’s Coding with Anna and Elsa. In her spare time, Kiki runs an educational YouTube channel called KIKIvsIT, which helped her win silver for Stevie’s coveted 2017 Female Innovator of the Year Award.