Pair Programming

Pair programming is the Software Engineering term for when two people collaborate and interact to create a software solution. Both partners must take equal responsibility for reading the class notes, reading the assignment requirements, typing code, reviewing their partner's code, planning the direction of the project, etc. For the purposes of our course, pair programming requires that all of your work is done with your partner at the same computer at the same time. One person should be typing, one person should be directing; each person is responsible for all parts of the project. It is not allowable to have one person work on the first half and the other work on the second. Again, both partners must be actively working together at the same time for all aspects of the problem set.

Pair Programming

Working in a Team can be more than twice as effective as working alone. You can feed off of each others knowledge and excitement. You can help each other when things go wrong. You can learn from each other and study twice as much material. Sometimes you can finish assignments in less than half the time a single person would take!

We will refer to our partnerships as "Pair Programming". Pair programming is a technique where two programmers sit side by side helping each other to complete a project. By working together, syntax errors are more easily avoided, and more importantly logic errors can often be caught before running the program.

In Pair Programming, one programmer is the driver and the other is the navigator. While the driver is typing (i.e., coding) the navigator is making strategic plans and correcting tactical (logical) errors.

Each partner should actively communicate with the other, bouncing ideas off one another, searching for information in the notes or book to solve the current problem (together), reviewing each others typing (in real time), etc. By being able to "multi-task", each partner bringing their own view and expertise, the partnership will enable both partners to learn more, and learn "better".

When pair up, you will gain certain rights and be held to certain responsibilities.


Pair Programming, Rights and Responsibilities


Finding a Partner

We will not force you to partner up initially, but we will highly recommend it. How you find your partner is up to you; look around in class and in the lab and talk to your peers, try the partner forum on the web page.


Not working with a Partner

If you choose not to work with a partner, you must handin a "why_i_didnt_work_with_a_partner" file (see below).


Partnership Documentation

You and your partner should immediately create a text file in your working directories with the file name 'i_worked_with'. This file should simply contain your name and your partners name, the name of the assignment, and the current date.

------- i_worked_with file -------              
Homework X - Partner Declaration
My Name: Jim de St. Germain, germain@eng.utah.edu
Partner: Dav de St. Germain, dav@eng.utah.edu
Date:    The current date
----------------------------------
      

Each of you should immediately submit this file to the current homework web page.

Once your programming project is complete, you should, separately from your partner, create another text file called "partner_evaluation". This file should contain your name. Your partners name. A ranking from 1-5 detailing how much your partner contributed. Here are the possible values:

  1. Partner did very little.
  2. Partner did less work than I did.
  3. Partner did an equal value of work as I did.
  4. Partner did more work than I did.
  5. Partner did almost all the work.

Additionally, the file should contain a short paragraph describing the strengths and weaknesses of your team and how it worked/didn't work. This file should also contain the number hours you worked on the project, so please keep careful track of how much time you are working (Note: Do not report the number of hours combined that you and your partner worked, just your hours).

---- partner evaluation file -----
Homework X - Partner Evaluation
My Name: Jim de St. Germain, germain
Partner: Dav de St. Germain, dav
Date:    The current date

Hours Worked on Project: 8 hours

Partner Score: # - Parter did .....

Group Analysis:  

Our group worked/didn't work because.....
----------------------------------
      

If you work with the same partner more than once, you should comment on how your partner ship is "maturing" or growing, and what went better the 2nd time around, etc.

Alternatively, it is to your advantage to work with several partners over the course of the semester to be able to learn from the strengths of other people. Don't feel that you have to stay with the same partner every week.

A final note: I suggest you remove your partner_evaluation file from your directory after confirming that it was indeed handed in (so you can be honest with your analysis without worrying about offending your partner).


Solo Work

If for some reason you are not able to work with a partner you must write a one page (500 word) essay on why it was impossible for you to find and work with a partner. Call this file "why_i_didnt_work_with_a_partner" and submit it along with your homework. Remember, partners will learn more, learn more quickly, and retain more.

This file should also contain the number hours you worked on the project, so please keep careful track of how much time you are working (Note: Do not report the number of hours combined that you and your partner worked, just your hours).

The first homework for which partners are allowed is exempt from the 500 word essay. Use the time you would have to write the essay finding a partner for the next assignment.

---- why i didn't work with a partner -----
Homework X 
My Name: Jim de St. Germain, germain
Date:    The current date

Hours Worked on Project: 8 hours

500 words on why I didn't work with a partner (first project exempt)
----------------------------------
      

Back to Topics List