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.
A five percent bonus will be given on each assignment that is completed
following the pair programming guidelines below. These bonuses can be used to
make up for lost points on the current or any other programming assignment. In no case
will the total class points for the programming assigments exceed 20% of the grade.
That is, if you get 100% for each assignment then the bonuses will sadly not make
any difference. However, if you get 95% or less on any one assignment, then following
pair programming on one assignment will raise that to 100%.
Pair Progamming Guidelines
- You and your partner should work together as much as possible, with the stipulation that
at most 25% of your total time coding, testing, and debugging on the assignment can be 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.
- For it to be considered a joint effort, you can spend at most 15 minutes alone finishing up a program after your
last meeting with your partner.
Failed Attempts at Pair-Programming
The following are examples of failed attempts at pair programming.
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).
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 required reading,
All I Really Need to Know about Pair Programming I Learned In Kindergarten
- 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 and would not receive the 5% bonus but could otherwise receive full credit.
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.
Program Logs
With each program submission you must include a program log. This can either be in a separate
log.txt file, or included as part of the opening comment of the main source file.
Please use one of the following templates for preparing your log.
Followed pair programming guidelines
If you successfully followed the pair programming guidelines above please use
this sample log as the template for your programming log.
Worked some with a partner but didn't follow the pair programming guidelines
If you worked with a partner but deviated in a significant way from the pair programming guidelines
use this sample log as the template for your programming log.
Worked alone
If you worked alone
use this sample log as the template for your programming log.
In no case should you list your partner as a co-author if they did not finish the program with you.
Petitioning to keep the same partner.
Although partners will normally be switched at the completion of each assignment, you may
petition to stay with your same partner.
Some reasons that might justify staying with the same partner are:
- I'm a parent and have a particularly difficult schedule. My current partner has a compatible
schedule and I would like to stay with that partner.
- My partner and I didn't quite finish the last assignment but we both feel we are very close and
would like to finish it up together.
- My partner and I both finished up the current assignment early and have already made substantial
progress on the next assignment and would like to finish it up together.
Some reasons that you should not bother offering because they won't help are:
- My partner and I are boyfriend/girlfriend and we would like to keep working together.
- My partner and I are room mates and we would like to keep working together.
To petition to stay with the same partner you and your partner should each send an email message to
charlie@cs.ucsc.edu. Put "Same Partner Petition" in the subject
and make sure it arrives no later than 8am on the day the current assignment is due.
This page maintained by Charlie McDowell
Email regarding this site.