Collaboration policies in computer programming classes have been the subject of much debate lately, and this collaboration policy is rather long as a result. Please read this document to the very end, because you are responsible for abiding by all the rules set forth here. Every year, far too many students get sent to the Board of Control because of programming assignments, and we would like that to stop. Therefore, we are trying to be extra clear on what constitutes fair collaboration in this course.
You are welcome to collaborate informally on your assignments with other individuals who are taking or have taken the class, but you must write all of your own code and you must not look at other students' code, except to help them as described below. Copying another student's code verbatim or nearly verbatim is not acceptable and is an Honor Code violation. Taking another student's file and modifying it to make it look different is definitely not acceptable and is an Honor Code violation. Consulting a printed or electronic version of another student's code and referring to it while you write your own code is not acceptable either, and is also an Honor Code violation. Having someone dictate code while you type isn't acceptable either. Basically, you have to do your own work.
Getting advice on algorithms or syntactic details of the language, or suggestions on how to debug a part of your program that isn't working, is fine.
All of the above also applies if you are getting tutored for the course, officially or unofficially.
All of the above also applies to student work from previous years. We re-use some problems in assignments, and copying answers from an assignment that was submitted in previous years is an Honor Code violation just as much as copying from a students who is currently taking the course.
It is common for students to want to help other students to write and debug their assignments. While we prefer that you go to a CS 11 teaching assistant when in need of help on the assignments (it doesn't matter which one), we don't forbid you from seeking help from other students or offering your help to other students. However, we do insist on some guidelines to make the process fair to everyone.
When you are helping another student with their homework, you are acting as an unofficial teaching assistant, and thus you must behave like one. A teaching assistant will not just tell you the answer or dictate code to you; he/she will help you work through the problem so that you understand what you were doing wrong. If you don't have the time or the inclination to do this, do not assist other students. If you just give them your code, you are violating the Honor Code and both you and the people you are giving the code to may be in for some serious consequences.
As a way of clarifying the way in which you can help other students (especially when it comes to debugging their code), we want you to obey the "50 foot rule". This rule states that if you help another student with their programming problems (including debugging), you must not consult your own code while doing so. Specifically, we ask that your own code be at least 50 feet away i.e. not visible to you or the person you are helping while you are helping them. (It doesn't have to be exactly 50 feet; the point is that you can't see your code while helping the other person and you shouldn't run back and forth between your computer with your code and the computer of the person you're helping.) The slogan of the 50-foot rule is: "Help them with your brain, not with your code." Please do not try to find a loophole kind of way around this e.g. projecting your code on a building 50 feet away; that is clearly not what we mean. Posting your code on a pastebin-like internet site, or emailing your code to other people, or printing it out, or even referring to it on your laptop while helping someone else, are all clear violations of the collaboration policy for CS 11. Also, we don't want you to put your code up on your computer in your room 50 feet away from their room and run back and forth, dictating a line at a time. If you can't help them without consulting your code, don't help them. Refer them to a teaching assistant. Most of the teaching assistants in CS 11 tell us that relatively few people come to their office hours, so it shouldn't be hard to track down a TA who is willing to help you. We realize that it's more convenient to ask someone in your house than to walk all the way to the Annenberg building. A possible solution is to get to know a TA and meet with them in their dorm room (if they are willing).
Be aware that letting another student copy from you is just as bad as copying from another student, and can get you into just as much trouble.
Be aware that we use plagiarism detection software to check for copying, and students with assignments that are suspiciously similar will be referred to the Board of Control (BoC).
If you have any questions about the course collaboration policies, please send an email to the course instructor, Mike Vanier. Do not ask the teaching assistants; they may not give you the best answer.
We realize that the vast majority of you (hopefully all of you) have no intention of cheating or overcollaboration in any way, and we hope that this collaboration policy won't get in the way of your enjoyment of the course.