I’ve made it a goal of mine to use Pair Programming a lot more frequently and intentionally in my classes this year. I’m bought-in to pretty much all of the benefits of Pair Programming from an educators perspective, but there are times where I struggle with what to do with navigators. Sometimes I see navigators being too passive, either because that’s just their personality or the assignment is too straightforward that it doesn’t really require 2 people. Sometimes I see navigators being too demanding – they don’t want to give up the mouse and keyboard – either because that’s just their personality or the assignment has so many creative decisions that they want to stay involved the whole time. Sometimes I see navigators look like they’re not doing anything, then I walk over and ask what’s going on, and they tell me they just talked through the problem and now the driver is typing it, and then the navigator explains what their next step is, and then I don’t really know what to do next so I just kinda walk away acknowledging that they’re on the right track… even though one person still isn’t really doing anything at that moment. And I never know how to feel about that.
I also wonder if navigators participate in the coding experience differently depending on what type of coding challenge they’ve been given. Some assignments are long but straightforward, and are really just a way to practice applying syntax and debugging in a structured way (like making a MadLib program) – does this reduce driving & navigating to just waiting until its your turn to type? Some assignments aren’t really about the coding at all, but are more about solving some sort of puzzle or problem for which coding is just the vehicle that you’re using to solve the problem (like drawing a certain picture with a limited number of commands) – does this lend itself to the navigator truly thinking more “big picture” and how to respond to testing? Some assignments are about cleverly using syntax to manipulate code (like designing loops to repeat certain actions over and over again), and I don’t think I’ve ever used pair programming for these types of assignments so I have no idea what it looks like. I wonder if some coding assignments lead to more engaged navigators while the driver is entering code, rather than just sitting and watching them type. I haven’t done pair programming enough (yet) to really know…
Anyway – I’m teaching HTML & CSS and I knew I wanted to do pair programming the first time I had them hand-code their own CSS – there are lots of little syntax things to keep track of and lots of possible properties to remember. So far, they’d only modified pre-written code that I’d given them or that they had referenced in W3Schools – I spent some time training them to look up properties and examples on that website so they knew of it as a resource. Transitioning into writing CSS on their own, I knew I wanted them to have a partner to rely on for this – to talk through their ideas and help remember everything we’ve covered. I also knew the basis of this assignment would be straightforward and really just an excuse for practice – something that doesn’t really require 2 people to complete once you get the hang of it, so I was really worried about the “I’ll just wait until its my turn to type” navigator experience.
So here’s what I did, which worked really well: I gave an explicit task for the navigator that the driver couldn’t do. In this case: the navigator was the only person allowed to have W3Schools open on their computer. This meant, if they ever needed to look up a property or double-check how it worked, the navigator was the only person who could do this.
I told partners to identify the driver and navigator, then I told the drivers to remix the starter project in Glitch and I told the navigators to go to W3Schools. I noticed an immediate attitudinal difference: in the past, the navigator has always just turned off their monitor, possible diminishing their role in the partnership – BUT, with W3Schools opened, they were immediately energized to contribute to the project by looking up the first property they would need.
I also noticed a difference in how the two interacted – the ‘back and forth’ between driver in navigator. In the past, everyone is always looking at the driver’s screen; today, teams were looking back and forth between the driver typing code and the navigator pointing out the correct CSS property. And – since W3Schools has ‘Try Example’ buttons, the navigators could try out certain CSS properties to see if they worked, then the driver could transfer them to their website. It felt a lot more equitable in terms of how each member was participating. Here are some pictures:
I dunno – the point is: I want to keep designing pair programming activities thinking very intentionally about what the navigator contributes to the team. I think it makes the experience more equitable and engaging for students, and definitely more purposeful for the navigator.
Oh – if you’re interested, here are the 5 projects I used for this task: