Who is my partner?
If you know someone in the class that you would like to partner with for PSA assignments all quarter long please go to this website to submit your partner request. This must be done by Friday, January 9 5pm.
If you don't know anyone you wish to work with -- or you want to meet someone new -- that's fine. If you haven't submitted a pair request by Friday, we'll automatically assign you a partner. Starting Monday 8am, you can go to this website and type in your UCSD PID (Starts with A) and you will be shown the name and email address of your partner for CSE8A. We recommend that you contact them ASAP and arrange to meet no later than Wednesday of week 2.
How do we do this?
Pair programming means that two people will work together, simultaneously, at ONE machine and collectively write a program. So you need to meet your partner, introduce yourself, and find some time in your schedule each week where you can work together (probably in the basement lab, B260) on the homework assignments.
For the first homework assignment (PSA2) you should try to find a minimum of 10 hours to work together. For one of the points on the quiz Friday, Week 2 -- you and your partner must submit a list of at least 6 hours that you are available and plan to work together each week. You can submit those hours here. YOU MUST DO THIS BEFORE THE QUIZ ON FRIDAY
Many of these hours may be on Mondays (since that is when homeworks are due), but we recommend some hours Wed-Fri as well so that you have a chance to get started and ask about any questions that come up.
What assignments are to be done in pairs?
All but PSA1.
No really, how do we do this?
When you get together to program, you start with one person "driving" (using the keyboard) and one person "navigating" (sitting right next to the driver and watching and advising about what is going on). You should switch roles every 10-20 minutes. I suggest you get a watch with a timer on it and set it to go off every 15 minutes.
There should be a LOT of talking going on. The goal is that BOTH of you completely understand why you are developing the code that you are and how it works. You'll need to know this to pass your interview.
The navigator plays an especially important role in pair programming. One of the reasons pair programming is more productive
in industry is because of the navigator. The navigator is freed from the cognitive load of typing and managing the
editor. The navigator is repsonsible for managing the high level decisions about where this code is going, and
thinking ahead to whether the current code will really lead the team to the final desired destination (e.g a
solution to the posed problem). Additionally, the navigator can often catch small mistakes as they happen -- maybe a mistyped
variable, a missing semicolon, a forgetten variable declaration. These small mistakes can often be fixed easily at the
time you make them, but if you wait to catch them later (at compile time, for example), they may take longer to find and
fix.