For programs that allow pair-programming, be sure to register teams BEFORE working together.
Late Programs and Regrades:
Late programs are not accepted for a grade without prior written approval from your instructor. Contact your instructor as early as possible with any concerns that may warrant an extension, and include a copy of your progress on the assignment up to that point for consideration.
Students may request a regrade of their work, if they believe that there was an error in how it was graded. You may make one regrade request to the original grader of your work within one week of the date that grades for that work are posted. Please ensure that your request is as specific as possible when referencing the functionality or style deductions that you believe were incorrectly assessed.
(when explicitly allowed for specific Assignments)
Pair Programming is where two programmers work together to write one program solution. It is critical that both programmers work on all aspects of the solution. Student’s are not permitted to divide the work up and have each student complete only some part.
- Both team members must register their partnership BEFORE the first milestone deadline for a programming assignment.
- You may only have one partner for all milestones of a given programming assignment.
- You may have a different partner on different programming assignments.
- You may not pair program with multiple partners on the same assignment.
- Your partner must be currently enrolled in a CS302 lecture.
- You may partner with someone from a lecture other than your own.
- You must list your partner as a collaborator in the header comments of each of your source files (see Commenting Guide).
- You must follow the principles of pair programming summarized below.
- You may cancel your team membership up until the Milestone 2 due date, but you will not be permitted to join a new team for that programming assignment.
Submitting someone else’s work as your own is academic misconduct, which will result in a zero on the assignment, as well as possible additional penalties in accordance with University Academic Integrity procedures. It is also Academic Misconduct to help another student commit Academic Misconduct. Do not show your solution, or share your files with anyone other than your registered programming pair partner.
Principles of Pair Programming:
The following is a summary of successful pair programming principles taken from a paper by Williams and Kessler:
- Pair programming involves two people working together at one computer, continuously collaborating on design, coding, and testing. One person types; the other either provides directions (“Now we need to write a new method that does …, Now we need a loop to do …”) or constantly reviews what the typer is doing, and provides comments.
- Pair programming has proved successful both in classes and in industry. Programmers usually report having more confidence in their solutions and enjoying programming more when working in pairs.
- It is important to switch roles often (slide the keyboard back and forth). Because pair programming can be quite intense, it is also a good idea to take breaks (to check e-mail, go for a walk, have a snack).
- It is important to provide honest but friendly feedback. To be effective, there needs to be some healthy disagreement and debate, but pairs also need to be respectful of each other, and try to avoid becoming defensive when receiving criticism.
- Inevitably, programmers do some independent thinking/working. For best results, that work should be reviewed by both partners (and perhaps revised) when they start working together again.
- To be successful, pair programmers must realize that the benefits of working together outweigh their usual preference for working alone, they must confidently share their work, accepting instruction and suggestions for improvement in order to improve their own skills and the code they are writing, and they must accept ownership of their partner’s work and thus be willing to constructively express criticism and suggest improvements.