The Collaboration Policy

Your code is like your boyfriend or girlfriend. It’s okay to talk about it on an abstract, high level. But you don’t want to go into the specific details, and you certainly don’t want to share.
- Pascal Van Hentenryck, Professor of CS, Brown University, 1997

Half of your course grade (and pretty much all of your learning) comes from doing the assignments. We can talk about Java all day in lecture and section, but you will only truly absorb the material after spending some quality one-on-one time with the language and tools. The programming assignments are non-trivial and you will find them time-consuming and sometimes frustrating. We also hope you will find the work to be rewarding and that you will be proud of your accomplishments and the new skills that you will gain.

We do believe it is important that you do your own independent work on the assignments. However, that doesn’t mean that it shouldn’t be possible to get help or talk to anyone else when you get stuck. We definitely want you to be able to succeed in your endeavors, but would like to be clear about what is and what isn’t considered acceptable collaboration.

We are confident that all of you have come to Stanford planning to respect and uphold the Honor Code. In order to make you successful in upholding your end of the bargain, we need to be very clear about what we expect from you. The basic premise of our course policy is that you should do your own thinking, your own design, and your own coding. You should never let yourself be led by another student, or receive an amount of help which makes an assignment significantly easier. Conversely, you should never assist another student in a matter that would overly lead them or make their job much easier.

On our part, we will treat you with trust and will protect the honorable student’s interests by investigating and prosecuting dishonorable behavior.

Things that are allowed

These things are encouraged and allowed at all times for all students.

Collaboration that is allowed if documented

Whereas high-level abstract discussions are always allowed, two students engaging in a more detailed discussion of a particular design decision or a student helping another to track down a particularly nasty bug will cross into the area of collaboration that is acceptable only if documented. We require that you include the name of any student(s) who you received such assistance from and properly credit their contribution to your work. This is akin to acknowledging a reference in a research paper. Some examples:

Collaboration that is NOT allowed

Basically, the rule is that you should be handing in code which represents your original, independent work. It should not be based on, influenced by, or copied from anyone else’s.

Above all you should use your common sense. If you suspect that what you are about to do is a violation, play it safe and ask a staff member first. When we confront a student with a case of suspected violation, an answer of “I didn’t know that this is wrong” is not likely to find much sympathy.

We take the Honor Code very seriously in this course and we have no tolerance for behavior that falls outside our boundaries for acceptable conduct. Please do your part in maintaining a community where academic work is done with a high standard of integrity!

Some parts of this document based on a similar collaboration policy for Brown’s CS courses.