Pair Programming
================

Pair programming refers to the practice whereby two programmers work together
at one computer, collaborating on the same design, algorithm, code, or test.
The pair is made up of a driver, who actively types at the computer or records
a design; and a navigator, who watches the work of the driver and attentively
identifies problems, asks clarifying questions, and makes suggestions.

Rules you must follow in CSS 342:
---------------------------------
-- Partners must be of "equal" ability and experience. 
   For example, do not partner if one person knows C++ well and the
   other does not. Do not partner if one person has a self-perception of being
   a strong programmer and the other has a self-perception of being a
   weak programmer.

   My biggest concern is that if one person is a stronger programmer currently,
   the other person may believe they are understanding, but are not.
   Note that "strong" changes with experience. Also note that I am not
   concerned about one person cheating off another. If you don't understand,
   you WILL do poorly on my exams. 

-- Be sure you have comparable work habits and schedules. For example,
   early-starters don't work well with last-minute workers. If your schedule
   is such that you do all homework on the weekends and you plan to pair with
   someone who works weekends, that won't work well.

-- At least 70% of the work must be done working physically together so you 
   get the benefit of discussion.

-- One person emails me the pairing (copying the other person on the email).

-- If pairing isn't working, contact me immediately.

-- One person will do the electronic turn-in, or if you both want to submit
   (using it for storage), I must be able to grab either one.

The DOs of Pair programming (summary from video)
------------------------------------------------
1. Talk to each other, but be respectful.
2. Listen to each other - either person should be able to do anything on
   the program at any point in time.
3. Change roles of driver/navigator periodically.
4. Be patient - be able to explain your work to your partner (or professor).
5. Respect your partner.
6. Take breaks.
7. Be prepared; be ready to work on arrival and don't be late.
8. Be clean - proper hygiene is essential!
9. Have fun.

The DON'Ts of Pair programming (summary from video)
---------------------------------------------------
1. Don't be a keyboard hog; don't be bossy.
2. Don't be intimidated; you're not alone if you don't understand.
3. Don't be quiet; speak up if you disagree.
4. Don't suffer in silence; talk to the professor if the pairing isn't working out.

