##### Activity
# Pair Programming

### What is Pair Programming?
Pair programming is an exercise that real-life engineers use to collaborate on code together. One person is the **driver**, who controls the keyboard/mouse, and the other person is the **navigator**, who observes and plans. Pair programming is great because it teaches the value of communication while allowing two brains to work on the same problem at the same time. It also reduces bugs, encourages communication and listening skills, and reinforces existing concept mastery by allowing students to fill in each others' knowledge gaps.

*A great time to introduce Pair Programming is during an early challenging level like Haunted Kithmaze in Course 1. You can also suggest Pair Programming during later levels where there may be a larger mastery gap -- allow a student who has a firm grasp of the concept to be the Navigator.*

### What you need
- One workstation (computer, keyboard, mouse)
- One student to be the Driver
- One student to be the Navigator


### How to set up Pair Programming
1. Pair students up and assign one of them to be the **driver**, the other to be the **navigator**.
2. Remind students of each role’s instructions: the **navigator** should not touch the keyboard/mouse, and the **driver** should communicate what they are doing.
3. Every 15 minutes, switch roles. If one player is much more experienced (or, say, has done all these levels before and is helping out), you can keep them as the navigator instead of switching them into the driver role.
4. Students should practice clear communication, patience and the spirit of collaboration.

### Discussion Questions
**Was it easier to be a Driver or a Navigator? Why?**

**What was challenging about pair programming?**  

**What was useful about pair programming?**  

**When would it be beneficial to pair program with a partner?**  


### Additional Resources
[NCWIT: Pair Programming Activities](https://www.ncwit.org/resources/pair-programming-box-power-collaborative-learning)
