Toggle open
Homepage
Learning Library Blog 3 best practices for pair programming
Expand breadcrumbs

3 best practices for pair programming

By Kiki Prottsman
November 18, 2014
Img id 221 Version Idc Mc J62 I9g W2 S56 Z64 Tuuga v Azn FHFJJ

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.

Computer programming, it turns out, 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 most 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.  

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 also improves overall 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 that, 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.

student-ranking-pair-chart

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.

Kiki Prottsman is the executive director of Thinkersmith and a former computer science instructor at the University of Oregon. She writes for the Huffington Post, sits on the Education Advisory Council for Code.org, is a member of the advisory board for Wonder Workshop and is a member of the Oregon Girls Collaborative Project leadership team. Check out Thinkersmith's IndieGoGo campaign to build a prototype computer science facility where community members of all ages can get effective and engaging CS education.