Academic Honesty Policy
1. Introduction
One of the primary goals of this course is for you to become a stronger
programmer and problem-solver. The only way to do that is by engaging deeply
with the work yourself: writing and debugging your own code, reasoning about
designs, and learning from mistakes. Because of this, all work you submit must
represent your own understanding and effort.
You should carefully read the full policy, but here are the three most important points:
- Write your own code – All work must be your own. Even if collaboration or AI tools are permitted, you must still do the thinking and the coding yourself.
- Do not copy code – You may look at another student’s code when collaborating, but you must follow the 5-Minute Rule (see below). You are encouraged to discuss ideas and help debug together, but you may never copy code directly.
- Protect your code – Do not share your code in a way that others could copy it, and take all necessary precautions precautions to keep it secure.
The largest amount of learning in this course happens while completing homework assignments and practicing on your own. If you copy work from others or rely too heavily on AI tools, you deprive yourself of this essential practice. This almost always leads to poor performance on quizzes, exams, and projects where outside help is not available.
The best way to avoid the temptation to take shortcuts is to start your homework
early and practice regularly. Beginning early gives you time to attend office
hours, ask questions, and work through problems productively. Waiting until the
last minute creates pressure and increases the risk of making poor choices that
hurt both your learning and your grade.
2. The 112 Homework Collaboration Policy
Note that this policy is only for homework, and not for labs, projects, quizzes,
or exams. For all homework problems, students may collaborate with each other,
with others outside the course, and even with AI tools like ChatGPT, so long as
you follow these rules:
2.1. No-Copying Rule
At no time can you copy code from any source. We take this very broadly. Not
only does this mean you cannot copy-paste code from anywhere (including the
course material, slides, code demo, whiteboard), it also means that you cannot
manually type code that you are looking at, nor can you manually type code that
someone is telling you to type. In addition, you cannot copy code even if you
then edit it, even a lot. You simply cannot copy code, full stop.
2.2. 5-Minute Rule
To help prevent code copying, we have a simple rule: any time you look at 5 or
more lines of code (or pseudocode or anything code-like) that is not yours (and
is not from the course website, CS Academy, or course faculty or staff), then
you must wait 5 minutes before you can edit your own code. This is a simple rule
that will prevent most cases of code copying.
2.3. Debugging Rule
You are allowed to help debug other students’ code, and you are allowed to have
other students help debug your code. However, all the rules above apply. You are
allowed to make live edits with the debugging help of a friend. But you cannot
copy code. And you must obey the 5-Minute Rule if you look at their code.
2.4. Citation Rule
While we are not requiring citations for allowed collaboration, you should know
that citations are always a very good idea, and are very strongly encouraged. In
professional settings, you are flatly required to cite any use of non-original
code. At CMU, in any course (not just CS courses), properly cited collaboration
cannot be considered an AIV. So it’s just a very good practice. Cite your
collaboration!
2.5. Ask-First Rule
If you are unsure about anything regarding any of these policies, it is always
safe for you to ask about it on Ed-Discussion or in email or at faculty or TA
office hours. We are happy to discuss anything, and there is no penalty for you
asking for a clarification about any of these policies.
3. Cheating
This is a non-exhaustive list of things considered cheating in this course:
3.1. Homeworks
- Using AI tools to generate any content (code, text, images, etc.) for an assignment or classroom exercise and submitting it as your own.
- Copying or stealing any amount of code from someone currently in the class or someone who has taken the class before.
- It does not matter if the code is provided electronically, visually, audibly, on paper, etc.
- Finding code online and using it in the assignment.
- Putting code solutions from the course assignments online, even after the semester.
- Getting someone else to write some or all of the assignment code for you.
- Attempting to ‘hack’ or decompile the autograder to produce solutions. (If you want to do this for fun, let the instructor know. I can set you up with something to play with.)
- Leaving your laptop unattended, allowing others to access your work without your knowledge.
- Failing to secure your laptop with a password, which could enable a roommate or friend to access your work without your consent. If you need help setting up proper security, CMUQ IT can assist you.
- In the case that you have taken 15-112 before, copying your own code from a previous time you took the course. You are required to solve the problems again without referencing your previous solutions.
3.2. Quizzes and Exams
- Having any electronic device, including phones, digital watches, and laptops, on your person during a paper-based assessment — whether in use, in a pocket, or in a bag kept nearby — is strictly prohibited and considered an academic integrity violation. Before the exam begins, all electronic devices must be placed in a designated area as instructed.
- Referring to any external resources while completing the assessment (phones, notes, other people, etc.).
- Copying part of an answer off of another student’s paper, even if it is very small.
- Violating proctoring policies, like continuing to work on the assessment (even briefly) after the proctors announce the stop time.
3.3. Labs
Labs are conducted using the cluster computers and CS Academy quizzes. The
following actions are strictly prohibited and will be treated as academic
integrity violations:
- Copying from another student.
- Having any electronic devices on your person (same policy as in quizzes and exams). All phones, digital watches, laptops, and similar devices must be stored away before the lab begins.
- Accessing any website or online resource other than the official CS Academy assessment.
- Allowing another person to use your CS Academy account.
- Submitting work while not physically present in the lab.
- Using or attempting to use AI tools during the lab.
- Copying code from any source, including your own prior work.
- Violating proctoring policies, like continuing to work on the assessment (even briefly) after the proctors announce the stop time, or falsifying/fabricating a tech fail.
- Providing or receiving another person’s CS Academy links, passwords, or login credentials.
Monitoring Notice: After you log in on the cluster computers, all activity — including keyboard and mouse events, as well as the computer screen — may be recorded. Any suspected cases of cheating will be thoroughly investigated.
You are free to use AI tools (like ChatGPT), so long as you closely follow the rules above. However, to be clear:
- Homework may be graded at times against the 112 style guide. AI tools often violate these rules. You should expect that code derived from AI tools would often receive very low homework grades.
- You also will not have access to AI tools on labs, quizzes, or exams.
- If you rely too heavily on AI tools to complete your homework, you will not learn the material well. This will result in lower scores on quizzes and exams, and in an overall worse learning and grade outcome for you in the course.
The bottom line: while you may use AI tools, it is your responsibility to use them appropriately and effectively, and in a way that does not compromise your learning experience. If you are unsure if you are compromising your learning, it is best to simply avoid using them.
5. Good Collaboration
When working on homework, you are allowed to collaborate with other students in the course in the form of talking about the assignment together. The basic idea here is that you are encouraged to discuss the assignment together, but you should write your solution by yourself.
Here are some examples of healthy ways you could collaborate:
- Talk about the homework problems and discuss potential, high-level, approaches to solving them.
- Discuss ideas for useful testcases.
6. Bad Collaboration
It is strongly advised that you do not look at another student’s code — and that no other students look at yours — while the involved parties are still in the process of solving the problems. You also need to be careful to make sure that you are not “short-circuiting” the learning process for each other by over-explaining ideas and robbing other students of the ability to learn by experience.
Here are some examples of bad collaboration that is academic dishonesty:
- Working together to write pseudo-code (or code) that solves a problem.
- Talking through a solution in detail.
7. Dangerous Collaboration
There are certain things students tend to do that inevitably lead to academic dishonesty occuring, and as such we strongly discourage you from doing them:
- Working near each other and talking about the homework while you are writing your code. Discussing homework while you are simultaneously typing your solutions almost always crosses into improper collaboration.
- Relying too heavily on one peer. If you always ask the same student for help (or always help the same student), you create an unhealthy dependency that short-circuits the learning process. Instead, make use of office hours, where staff can support you fairly and consistently.
Important: If you look at another student’s code, you are responsible for following the 5-Minute Rule. Likewise, if you allow another student to look at your code, you cannot control whether they follow this rule. This can put you in uncomfortable situations — for example, if their work ends up looking too much like yours, or if questions arise about whether copying occurred.
8. Foolish Collaboration
Sometimes students share code by accident or without thinking about it. Here are some annecdotes to consider:
- Don’t post pictures that include your code to social media. That Instagram photo of you with your laptop that happens to have your code open might get used by someone else…
- When your friend emails you near the deadline and says “Hey, I finished the homework and got 100%! I feel great. Can I look at your solution so I can see how someone else did it?” What they really mean is, “This is due tomorrow and I don’t know what I’m doing. I’m going to message my gullible friend and trick them into sending me their code.” Even after the deadline you shouldn’t do this, because you never know if that student worked out an extension with the instructor.
- Your friend might come to you in tears because the homework is due soon and they haven’t solved it and if they fail then…
… their family with disown them
… they’ll be forced to leave the university when they fail the class
… they’ll be forced to leave the university when they fail the class and then sent back to their home country
… they’ll lose their scholarship
… other very horrible situation
So please can’t you help me!
Usually these claims are exaggerated, even if only in the student’s mind. Even if they aren’t, the situation is complex enough that it isn’t wise for you to try and figure out what is best for that student. Encourage them to see their academic advisor and/or the instructor to discuss their situation. The faculty members are in the best position to be able to help. We don’t want to see students fail and get sent away, either. If you give them your code, they’ll definitely fail (for academic dishonesty) and this time they’ll take you with them.
- Sending someone a copy of your solution after the deadline. That student
might have an extension that you don’t know about, or they may give your
code to someone else that turns it in during a later semester.
9. Penalties
Penalties come from the course instructor and are decided based on the severity of the offense. Here are some past examples:
- Receive a -100% on the assignment.
- Receive a full letter-grade reduction in the course.
- Fail the course automatically.
A letter will also be sent to student affairs, which in the case of repeat offences may lead to further penalties such a suspension or expulsion.
10. Plagiarism Detection
We will look for cheating using both automated and manual means. If you copy code, we will find you.
11. Regret Period
Sometimes people make mistakes. Sometimes they regret them. We’ve all done stupid things and wished we could take them back.
If you commit an academic integrity violation on the homework, but bring it to the attention of the course instructors and have an open and frank discussion about it within 48 hours of your submission, we will allow you to withdraw the submission with no further action taken beyond that. An individual student may invoke this policy at most once during the course.
Parts of the policy come from Kelly Rivers and 15-112 in Pittsburgh. The regret period is adapted from “Teaching Academic Honesty in CS50” by Malan et al.