Skip to main content

Pair Programming on Air

We strongly encourage Pair Programming on homework assignments (not quizzes), since it's an extremely effective way to learn and lots of fun! Remember that showing complete solutions to others who are just starting the homework prevents learning and is against the edX honor code.

One way to take part in a pair programming session, is to join the Agile Ventures Pairing Community Opens in new window and then browse the pairing events Opens in new window, noting any that are at an appropriate time for you, and on a topic you want to pair on.

If you can't see any at a good time for then create one at a time that does suit you by creating a new pairing event following the steps below. Note: that there is a fundamental difference between a "Hangout" and a "Hangout on Air" - only the latter can be broadcast and recorded, and creating a hangout through other means than specified below will lead to a non-recordable hangout. All pairing (or solo) sessions should be recorded and set as unlisted, for upload as evidence of working on the assignments.

  1. Go to Agile Ventures Project CS169 Opens in new window and fill in an appropriate title, e.g. "Pairing on CS169 HW0 Ruby Intro":


creating a pair programming event on the AgileVentures website

  1. Leave the Category and Project settings as the default "Pair Programming" and "CS169"
  2. Fill in a description such as "Hoping to work from the beginning" or "I've finished parts 1 and 2 and want to focus on part 3".
  3. Set the start time and date by entering your preferred pairing time (in your local time, use world time buddy Opens in new window to check time in your friend's timezones) and date in the relevant fields.
  4. Select the 'Save' button and your event will appear in the Agile Ventures pairing events Opens in new window
  5. Just before your event starts you will need to navigate to the event page itself, and click on the orange "Start a Hangout on Air" button NOTE THAT IN PRINCIPLE ANYONE CAN START THE EVENT - START IT EARLY IF YOU WANT TO ENSURE TO BE THE EVENT HOST

Start a Hangout on Air Button on the AgileVentures site

This will pop up a new browser window, and the first dialog will ask you to invite guests:

Invite guests screen on hangout

  1. Skip this dialog (press the 'Skip' button) NOTE THAT CAMERA AND MICROPHONE ARE ENTIRELY OPTIONAL - IT IS THE SCREENSHARE FUNCTIONALITY OF HANGOUTS THAT IS MOST IMPORTANT FOR PAIR PROGRAMMING

live hangout

  1. Copy and paste the URL from the address bar of the hangout into the "Edit event details" section of the AgileVentures event. 

Updating the event hangout link

This will then ping the link to the hangout to our gitter chat in order to allow anyone in the our community to join you for the pairing session. If that fails please feel free to paste the link directly into the gitter chat.

  1. Once you are ready you can click the green "Start Broadcast" button at the bottom of the hangout to record your pairing session (see image below). Note that this requires you have linked a YouTube account to your G+ account. The video will show up in your Youtube videos a few hours after you've ended the broadcast. You can then share this recording as necessary.

start broadcast button

and you can screen share via the green screen share button that shows up when you move your mouse to the left of the hangout:

screen share button (among others)

Screenshare by itself is reasonably effective for study groups, although for real pair programming you will need to employ some method for sharing the exact code when you swap drive/navigator roles. Git Pong Opens in new window is a good option but requires good Git skills. We highly recommend Cloud9 Opens in new window.

There are many ways to pair program online Opens in new window but Google Hangouts is a good option to get started as long as you have a reasonably fast computer and a reasonably stable internet connection. Even if you'd like to use a different remote pairing technology it's still worth creating or joining an event in the Agile Ventures Community since you can always switch to (or use in combination with) Skype Screen Share Opens in new window, Screen Opens in new window, Tmate Opens in new windowFloobits Opens in new window, ScreenHero Opens in new window or other alternative once you've established the time and date that you can pair at.

We strongly recommend using the latest version of Chrome for hangouts.

Frequently Asked Questions:

  1. Do I need to find a pair partner in the same location or timezone as myself?

    The location of your pair partner is not at all important - as long as two students are online at the same time that is all that is required.
  2. Must I pair with the same person throughout the course?

    You are not required to pair with the same person each time - in fact you are encouraged to find someone new each time.
  3. How should I find a pair partner?

    One way is to go to the AgileVentures events page and create an event Opens in new window scheduled for a few days in the future at your preferred time - that will remain on the list until it begins - also look at the event list Opens in new window yourself to see if someone else has already posted an event for some time that is good for you and simply plan to join them when it begins - a link into the hangout will be posted on the event page and also in the Gitter chat when the event begins
  4. Can I observe other sessions?

    Everyone is welcome to join and observe any session - even if you only watch - also there is generally nothing wrong with having multiple navigators - as long as there are at least two people who are swapping in and out of the driver role - but please ensure that you driving in any session that you submit as part of an assignment.
  5. What if my pair-programming video records poorly?

    If the video records poorly that is not a problem - these assignments should take several hours per week to complete - we do not expect that any single pairing session will last more than an hour or two (although if both partners are happy you can go on for several hours) - but it's likely that you will make several videos in order to complete each assignment, and as you learn the ropes the the quality will improve with practice, particularly if you watch them afterward and reflect on any flaws in your video.

Tips

  1. Use the cloud9 chat instead of the google chat so that it is visible in the recording
  2. Increase the cloud9 font size so your pair partners and peer reviewers can see your code
  3. Have the initiator of the hangout lock onto the driver's screen so that gets recorded
  4. Have the initiator of the hangout lock onto the new driver's screen when roles change
  5. Swap driver navigator roles as often as possible, ideally at least once every 15 minutes - note that in a real-world situation you might be changes roles much more frequently, or much less frequently depending on the circumstances. This recommendation is to ensure that you are spending approximately equal time in both roles in your pairing session and that you are effectively taking turns, which is a critical part of the pair programming skill. At this stage changing roles at least every 15 minutes is good for your learning and ensuring you are both focused on the same task.