Why are we working in pairs?

For Exercises 2 and beyond, you will be working with a partner as a pair. Here, we briefly explain why we’re doing this, and how we feel this group work should go.

Why pairs?

As it turns out, the idea of programming in pairs is not something unique, or an idea we’ve come up with. Pair programming is an established technique for writing code together with another person, and part of an approach called agile software development. The basic idea is that one person has their hands on the keyboard writing the code (the driver), while the other person (the navigator) looks over their shoulder and reviews each line that is written. This helps catch small typographical mistakes quickly, as well as having both people being able to discuss the code as it is being written.

How we will use pairs

Rally driver and navigator

A rally car driver and navigator in action.

We don’t intend to implement all aspects of pair programming in our pairs, but we want to capture the essence of the practice. Here is how we suggest you work in your pairs:

  • One person will be designated as the driver each week, and the other person will be the navigator

    • You will alternate roles each week

  • The driver will clone the GitHub repository and be responsible for the version of the exercise solutions that will be graded

  • When working, the driver should open the exercise on their computer and arrange for the navigator to be able to view their screen

    • This can be done in person (following relevant COVID guidelines) or via screen sharing in Zoom (or other similar software)

  • The driver will write the Python and/or Markdown code, while the navigator follows on their screen

  • The navigator should be actively involved in suggesting ideas, corrections, and otherwise interacting with the driver to help jointly generate the code

  • The driver should regularly commit their modified exercise code to GitHub, and the navigator can help remind the driver to do this

  • Once finished, the driver should ensure the final version of the exercise has been committed to their GitHub repository, as only this version will be graded (we will not grade the navigator’s exercise)

Our hopes

We hope that coding in this way will help you feel you have support in learning to code in Python, and that you will spend less time stuck when working on the exercises. We also hope that this will be a fun way to learn from one another, while putting a real-world coding practice into action!

A few final notes

We would like to remind you that:

  • Only the driver’s GitHub repository will be graded

    • The navigator is welcome to make their own copy of the exercise if they would like to complete the exercise themselves for practice, however we will not grade the navigator’s exercise

  • The driver can add the navigator as a private collaborator in GitHub, but we would prefer that only the driver make changes to the exercise code in their GitHub repository