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:

  1. 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.
  2. 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.
  3. 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

3.2. Quizzes and Exams

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:

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.

4. ChatGPT or Similar Tools

You are free to use AI tools (like ChatGPT), so long as you closely follow the rules above. However, to be clear:

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:

  1. Talk about the homework problems and discuss potential, high-level, approaches to solving them.
  2. 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:

  1. Working together to write pseudo-code (or code) that solves a problem.
  2. 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:

  1. 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.
  2. 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:

  1. 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…
  2. 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.
  3. 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.
  4. 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:

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.