CS 11: Collaboration Policy

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.

Basic policy

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 student who is currently taking the course.

Helping others and the "50-foot rule"

It is common for students to want to help other students to write and debug their assignments. While we prefer that you go to one of the course teaching assistants when you need 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 for 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 this course. 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. We realize that it's more convenient to ask someone in your house for help 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).

Use of websites

It is strictly forbidden to post any of the problems from the assignments onto websites (for instance, Stack Overflow), and anyone caught doing this will be charged with an Honor Code violation. This includes problems that are similar to assignment problems even if not identical. If you find a discussion of course-related material on internet websites, you may read it as long as the discussion is not about a problem that is identical to or very similar to a problem on one of the course assignments. However, do not transcribe code from the internet into your homework submissions.

Consequences

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).

Finally...

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.


Copyright (c) 2017, California Institute of Technology. All rights reserved.