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
- be resistant initially to pair-programming, and
- find it very beneficial and enjoyable once they get over their
initial resistance.
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:
- working together following the pair programming guidelines below, or
- carefully documenting your attempts to do so and the reasons why you
were unable to follow the guidelines. In this case the grade will depend
upon your effort and reasons.
Pair Progamming Guidelines
- 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.
- 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.
- You and your partner should alternate driving and navigating spending
roughly equal amounts of time in each role.
- You should change roles (driving/navigating) no less than every half-hour.
- 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.
- You and your partner complete the program together but substantially deviate
from one of the 5 guidelines above (e.g. too much time working alone).
- You begin working with your partner but then you cannot finish it together
and you finish it on your own.
- You and your partner never manage to get together.
- You get together with your partner but it just isn't working for some reason
(e.g. they always want to drive, they never want to drive, they clearly aren't
studying and don't come prepared to your planned sessions).
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.
- If your partner doesn't show up for a scheduled meeting, email them asking why
they didn't show up and cc your instructor.
- If you feel your partner is not coming prepared to your work sessions talk to
your instructor.
- If you feel your partner is not switching roles appropriately or balancing the work
talk to your instructor.
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.
- You can submit your own solution and your partner can work
alone, completing their own solution (see Pair Split below).
- 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.
- 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.
- You can each submit your own solution (see Pair Split below).
- 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.
- 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.