Pair Programming Grading Policy

The intent of this policy is to provide some incentive for students to give pair programming a serious try. Research suggests that both experienced and inexperienced programmers tend to It is specifically not the intent of this policy to coerce students into giving an uncooperative partner credit for work they did not do just so that both can say they followed the instructions to do pair programming.

Five percent of the grade for each programming assignment will depend upon you either:

Pair Progamming Guidelines

  1. You and your partner should work together as much as possible, spending at most 25% of your total programming effort on the assignment working alone.
  2. When the pair gets back together after either partner has worked on the code alone, review, line by line, the work done alone before doing any new work. Strictly speaking, pair programming when done as part of the "Extreme Programming" software development process, requires that any code written by a solo progammer must be discarded and rewritten.
  3. You and your partner should alternate driving and navigating spending roughly equal amounts of time in each role.
  4. You should change roles (driving/navigating) no less than every half-hour.
  5. You can spend at most 15 minutes alone finishing up a program after your last meeting with your partner.

Documenting Failed Attempts at Pair-Programming

The following are examples of failed attempts at pair programming that require documentation. The list is by no means complete. How you document your deviations from the guidelines depends upon what happened. You will have to decide what is best for your situation. You must always describe what happened in the webct log for that assignment. In addition you might want to do one or more of the following.

What do I do if my partner doesn't show up to our scheduled meeting for working on a programming project?

Answer:

You may work on your own. If you complete it, there are several options that depend on what happend with your partner.

Case 1: Your partner has not yet done the assignment.

  1. You can submit your own solution and your partner can work alone, completing their own solution (see Pair Split below).
  2. You can scrap your solution and work with your partner on a pair solution. In this case your partner must drive and you must review until you have a program that is at least as good as the one you scrapped.
  3. Your partner can work alone until they have a solution. At this point it becomes Case 2 below.

Case 2: Your partner also completed the assignment alone.

  1. You can each submit your own solution (see Pair Split below).
  2. You can scrap both solutions and redo a combined solution. This is referred to as "flushing" in the Pair Programming paper handed out the first day.
  3. You can combine your solutions into a single solution. In this case the work incorporated into the final solution must be carefully reviewed by the partner that did not write it.
If you work alone but do not complete the assignment, you may meet later with your partner to complete the assignment with the following provisions. Either the total amount of time you spent working alone must be no more than about 25 percent of your total effort on the projects, OR you must scrap the code you wrote on your own and rewrite it with your partner.

Consider the following scenario. Your partner fails to show for your first meeting. You spend 2 hours on the assignment but do not finish. The next day you meet with your partner who has not worked on the assignment at all. You review the work you already completed with your partner and then you work together and in less than an hour finish the assignment. Now what? You spent more than the allowed 25 percent of your time alone but you finished it together. At this point you have several options:

The best option is to simply throw away your old code and rewrite it from scratch with your partner. This will almost certainly result in a much better program. Programs are almost always better the second time. This is true in commerical software developement as well as in educational settings. You will also learn from the experience.

Another option is to spend additional time with your partner doing additional testing, cleaning up the documentation, adding new features, or rewriting sections of the code. You can continue doing this until you have reduced your time alone to 25 percent. This is not the best option for total effort. To comply with the guidelines, you will need to have spent 8 hours in total to balance your 2 hours alone in the example scenario.

A third option would be to simply turn in the program listing both partners as authors and report the actual time spent. This situation does not comply with the pair programming guidelines but if properly documented with good reasons can still result in full credit for the pair programming portion of the grade. Full credit in this situation may be withheld until you have met with an instructor or TA to demonstrate that both partners fully understand all of the code.

A final option is not really an option but I feel compelled to mention it. You can lie by being dishonest about what you put in the log. Of course if this is discovered you will be disciplined appropriately.

Pair Split

If you spent any time working on a program with your partner but then do not finish it together (recall that you can spend at most 15 minutes finishing up alone after your last meeting with your partner and still say you used pair programming), finish it on your own and include a header comment such as:
/**
 * Assignment #3.
 * This program ...
 * 
 * Author: Charlie McDowell
 *        I spent 3 hours with my previous partner Jane Programmer
 *        working on this assignment. I spent another hour finishing it
 *        up on my own.
 */
In no case should you list your partner as a co-author if they did not finish the program with you.

This page maintained by Charlie McDowell Email regarding this site.