What is Pair Programming?

“Pair Programming” is a collaboration technique, where two people share one computer and take turns typing on it. It is common in the programming industry and we’ve been using it in teaching for almost a decade.

While the ‘Driver’ (person who types) talks out loud about what they are doing, the ‘Navigator’ (person who accompanies) is looking out for mistakes and asks clarifying questions. This allows the driver to focus on the challenge at hand, knowing that another set of eyes is checking what they are doing. At the same time the navigator supports and questions them. (I like to conjure an image of a little angel and devil duo sitting on the shoulders of a cartoon character). Every 15 minutes they swap roles, giving both participants the opportunity to practise both skills. This usually is repeated a number of times over a 2h session (see Hawlitschek, A., Berndt, S., & Schulz, S. (2022). Empirical research on pair programming in higher education: a literature review. Computer Science Education, 1-29.)

Using Pair Programming in teaching:

Did you ever notice that in the process of explaining your problem to someone you often find a solution by yourself? For example you cannot find something, and as soon as you ask your flatmate you find it (“oh, nevermind, I found that folder / wrench / salt. It was in front of my eyes all along”). Verbalising/spelling-out a problem (to someone, or to yourself) often facilitates solving it by yourself. Such structured ‘talking to yourself’ is very common in programming and we call it “dubber-ducking”. That’s because if there is no one there to listen to your problem, just find a rubber duck (a floating bath-toy type) and talk to it. In pair programming we have something even better – a partner who can not only listen, but also asks questions. Often they are at a different level than you, so questions can be unexpected and enlightening.Through this practice students learn transferable skills of how to talk, listen and negotiate in a collaborative environment.