Introduction
Computer Science is a field where collaborative work is the normal method of interaction. You will find yourself, in the ``real'' world, constantly referring to past code that you or others have written. The purpose of education, though, is to ensure that you have grasped the fundamental concepts which are needed to do well in the field. We therefore want to ensure that the work you turn in for evaluation is your own work.
Of course, collaboration is still a valuable way of learning material. But, just as it is wrong to copy an article and turn it in as your own, it is also not ethical to copy someone else's code and submit it as your own. To address both sides of this issue, we have the following guidelines:
Acceptable collaboration
Except for the very simplest of programs, it is almost impossible for two programs produced independently to look very similar to each other. Let's think about this for a second. Suppose you have written 100 lines of code for a fairly short project. In these 100 lines, there are 15 major things happening. Let's suppose that 3 of these are so standard that there's only one good way to do them. That leave 12 blocks of code which are more flexible. Let's suppose, since we are playing hypothetical games here, that there are four good ways to do each of the remaining 12 blocks.
That is 124 possible ways of doing the non-straightforward part of the program. Or 20736 possible programs which could be turned in. If there are 15 people in a class, then the chances that two folks have turned the exact same techniques without consultation are rather low, about a half of a percent chance that the two programs were done independently.
Of course, very few people will turn in code that is identical. However, usually when unethical collaboration has occurred, we find that a few variables have been changed or the order of a few statements have been altered. If you can take someone else's code and alter it so well that we cannot tell where it came from in the class and it still runs, then you could have written the code from the beginning by yourself. Strange, but true.
If a professor suspects a student of cheating, the students involved will be called in to explain the program. If the work was performed independently, then each student should be able to explain the details of their solution. If not, it's more evidence that a cheating event has occurred.
Punishments
OK, it's happened. For whatever reason, you have cheated on an assignment. What are the options we have for punishment? Interestingly, a lot of that depends on you. If you cheat, are beset with feelings of remorse, and come to the professor in question and confess, then a lenient punishment will result. If you cheat, get caught, and confess when first confronted with the act, then a less lenient punishment will ensue. And, if you cheat, get caught, maintain your innocence, and finally are proven to have cheated, a severe punishment will result.
What do we mean by these ``levels'' of punishment? Usually, a lenient punishment would be to be allowed to redo the assignment for half credit. The next level would be to get a 0 on the assignment. And the final level would be to fail the course. Regardless of the punishment, a report will be made to the Dean concerning the incident.
Conclusions
Studies show that most college students think about cheating and that many college students do. This does not mean that it should ever be considered an acceptable form of behavior. It's an old cliche, but you are cheating yourself. And, you are you cheating your friends in the class. If you feel the urge to cheat, if you feel that the class is ``forcing'' you to cheat, please talk to someone. There are many ways to resolve issues without taking on personal and ethical risks with potential lifetime consequences! Don't risk your integrity.
Accepting the policy
It is important for you to understand the rules, the penalties, and
the rationale for them. For this reason you will be asked to read and agree
to this policy before you start working on any of the assignments.