Collaboration policies
Overview
The CS 164 collaboration policies determine if, and how much, you are allowed to collaborate with other students while working on your assignments.
Please read this document to the very end, because you are responsible for abiding by all the rules set forth here. Failure to abide by these rules may cause you to get sent to the Board of Control (BoC), and that is not pleasant for anyone concerned. Therefore, we want to be extra clear on what constitutes fair collaboration in this course.
Note
In some places in this document, you will read that some kind of behavior is strictly forbidden. We are not trying to scare you or intimidate you, and we're not trying to be jerks. We just want to make absolutely sure that you know what the rules are, and saying that something is strictly forbidden is pretty unambiguous. (We apologize in advance if you find this annoying.)
Basic policy
As this course is a partnership course, you are expected to collaborate 100% with your partner. You can discuss anything related to the assignments with them, share code with them (obviously), ask each other questions, etc. Nothing is off-limits collaboration-wise as long as it's with your partner. Everything else that is described below refers to "collaboration"-style activities with people who are not your partner. When we refer to "you" below we mean the collective "you" i.e. your team.
You are welcome to collaborate informally on your assignments with other students who are taking or have taken the class, but you must write all of your own code and you must not look at code from other groups. Copying another group's code verbatim or nearly verbatim (from a file, a whiteboard, a screen share or anywhere else) is not acceptable and is an Honor Code violation. Taking another group's code and modifying it to make it look different is definitely not acceptable and is an Honor Code violation. Consulting a printed or electronically displayed version of another group'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 not in your group dictate code while you type isn't acceptable either. Basically, your group has 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 as long as no code sharing is involved.
All of the above also applies to student work from previous years. Copying code from an assignment that was submitted in previous years is an Honor Code violation just as much as copying from a group who are currently taking the course.
Use and abuse of pseudocode
In the past, some students in CS classes have been called in to the BoC because of very similar code that was ultimately traced to pseudocode written on a whiteboard which was almost exactly like the final code. Pseudocode is supposed to be an informal, non-executable description of an algorithm. If you write or consult pseudocode which is (say) 80% or more of the way to being actual runnable code as a way to do an end run around the collaboration policies, be advised that we and the BoC are well aware of this problem and you will not get away with it. On the other hand, if you (or a TA) write out or read pseudocode which is a human-readable description of an algorithm without any actual code in it, you are fine. If in doubt, ask the instructor.
Teleconferencing software (e.g. Zoom)
If you use teleconferencing software (like Zoom) or software with teleconferencing capabilities (like Discord with VOIP), you may not share your screen with students from another group, whether to help them or to get help from them. This also applies to non-students (with the obvious exception of the course instructor or TAs).
Also, it is strictly forbidden to dictate code over teleconferencing software, except (obviously) with your partner. This is consistent with the rules in the other sections of this document.
Discussion boards and chat programs
You are strictly forbidden from posting code from your assignments to a discussion board (such as Piazza) unless it's a private message to one or more instructors/TAs. If this happens you may lose the ability to use the discussion board for any purpose. On the other hand, if you post a private message you can include your partner in the message (if Piazza allows this).
This also applies to programs with chat features that are not used in the course (like Slack or Discord), or email for that matter.
Use of websites
Your code repository must be and must remain private. Do not allow outsiders to see your code, even after the course is finished. Public repos can quickly make the assignments worthless.
In the event that a student from a previous year makes their repo public and you find out about it, please inform the instructor, and, of course, you aren't allowed to consult this code.
Use of code hinting software (e.g. Github Copilot, ChatGPT)
You are strictly forbidden to use code hinting software such as Github Copilot or ChatGPT for any part of this course. It's unlikely that it would benefit you anyway, but whether it would be helpful or not, you can't use it.
Summary
These are resources that you may or may not be allowed to consult while working on your assignments.
Item | Status |
---|---|
Course book | OK |
Course textbook | OK |
Official OCaml documentation | OK |
Other OCaml documentation | OK |
Other OCaml books | OK |
Your notes or your partner's notes | OK |
Notes of other students not in your group | Not allowed |
Other students' code repositories (not including your partner) | Not allowed |
Material in non-course code repositories (Github, Bitbucket, Gitlab etc.) | Not allowed |
Code hinting software (e.g. Github Copilot, ChatGPT) | Not allowed |
Consequences for violating these policies
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.
Finally...
If you have any questions about the course collaboration policies, please contact the instructor. 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.