Academic Honesty

The University of Chicago has a formal policy on academic honesty that you are expected to adhere to. In this page, we elaborate on what we understand by academic honesty, and provide specific rules to ensure that you do not cross the line into academic dishonesty.

Academic dishonesty can encompass many activities, but one of the gravest is plagiarism: knowingly handing in someone else’s work as your own, whether it be work done by another student in the class or available publicly on the Internet. This class has a ZERO TOLERANCE policy on plagiarism. If we determine you committed plagiarism, you will receive an F in the class regardless of how small the offence was. You will also be referred to the Dean of Students in the College for further adjudication. The College may impose further penalties, up to and including suspension and expulsion.

Please note that plagiarism is fairly easy for us to detect: we use a series of automated tools that look for similarities between your code and other students’ code (across all sections of the class), including code submitted in previous offerings of this class. If you use someone else’s code, it is very likely you will get caught and, to reiterate, you will then automatically receive an F in the class.

Fortunately, avoiding plagiarism is very simple! For the most part, you just need to follow these rules:

  • DO NOT ask another student in the class to show you or e-mail you their code. It doesn’t matter how you want to use it: even if you just want to skim through their solution for inspiration, this is still plagiarism. Needless to say, you MUST NOT use someone else’s code (with or without their permission) in your own solution.

  • Similarly, DO NOT show or share your code with another student in the class. If someone in the class asks you to share your code with them, even if you’re certain they won’t use it and they just want to look at it to get “unstuck”, please point them to this page. Take into account that, if you willingly share your code with someone else, you are not being a “Good Samaritan”: you are an equally guilty party in a plagiarism offence, and will also receive an F.

  • DO NOT post your code in publicly-accessible websites, like pastebin, a public GitHub repository, GitHub gists, etc. While it may seem like a convenient mechanism to share code with an instructor/TA, it can also expose your code to other students in the class. You are provided with a private repository on our GitLab server, and you should use that repository exclusively to share code with the instructional staff.

    If you do post your code in a publicly-accessible location, and we find out about it outside of a plagiarism incident, you will just get a warning. However, if another student in the class uses code that you posted on such a site (even if you did not intend for that code to be used by someone else), you will receive an F in the class.

  • Please note that the above two prohibitions also apply after the course is over! You should NEVER share your code from this class with other people. Not now. Not after the quarter is over. Not after you graduate. Never.

    We make only one exception to this rule: if a prospective employer asks to see samples of your code, you are welcome to send them your code from this class, but must do so privately, not by posting your code in a publicly-accessible location.

  • In general, DO NOT use code you find on the Internet. There are certain situations where consulting and citing online sources (including those that may show code examples) is appropriate, and we elaborate on this point below. However, please be aware that, the moment you use code on the Internet, you are walking into an academic honesty minefield (and, even if you provide a citation, you may not get any credit for that code).

We realize that sometimes students commit plagiarism out of desperation and as a measure of last resort. If you are in this situation, please just ask the course staff for help. If you are having a hard time in the class, we will provide as much assistance as we can. Plus, a poor performance in one assignment is unlikely to wreck your grade for the class. Plagiarism is never worth it.

Students often turn to their roommates, friends or paid tutors for help. While you are welcome to ask friends and tutors for help understanding concepts, you should never ask someone outside the course staff for help with on short exercises, programming assignments, or timed assessments. We want to know what you can accomplish, not what your roommate, friend, or tutor can do. If you need help with understanding concepts, deciphering assignments, finding bugs in your code, etc, please consult the course staff. (See help for ways to get help.)

All that said, we do encourage a collaborative environment in this class, as long as it doesn’t slip into the realm of plagiarism. If a given assignment allows you to work with another student, you may share code with that student only for that assignment. You are also welcome to discuss aspects of an assignment with other students in the class, as long as you don’t share or write code together.

Please note that this also includes “whiteboarding”: discussing an assignment with other students by sketching out code on a whiteboard can easily cross the line into academic dishonesty (even when using pseudocode). If you do sketch out code on a whiteboard, do not rely on the verbatim contents of the whiteboard when writing your solution (we recommend that you do not take photos of the whiteboard or verbatim copy anything from the whiteboard into your own code). You should instead focus on using the whiteboard discussion as a way to understand the high-level aspects of the problem, and then write your own code from scratch.

In any case, if you have discussed parts of an assignment with someone else, then make sure to say so in your submission by including a comment at the top of your source code file.

Using outside sources is generally acceptable as long as:

  1. You cite the source you used.

  2. You do not use verbatim blocks of code from that source.

  3. The source does not provide a complete (or nearly complete) solution to the assignment.

Some sources may provide small code examples that are used to illustrate a concept. We encourage you to never use those examples verbatim in your code, but we understand that, in some cases, your own code may be reasonably similar to those examples (e.g., because there are very few ways in which a given piece of code could be written). To ensure this is not flagged as plagiarism, always err on the side of including a citation.

Finally, if you have any questions regarding what would or would not be considered academic dishonesty in this course, please don’t hesitate to ask the instructor.