Academic Honesty

Warning

This website currently reflects the Spring 2022 offering of CMSC 22000. We are in the process of updating this page for the Autumn 2023 offering of CMSC 22000, which will include several major changes to the class. Most notably, the class will now be taught in Python (instead of C) and will revolve around the development of a Python-based web application.

NOTE: This policy does not apply to the course project.

Please note that the policy outlined in this page applies primarily to the homework assignments, not to the project. Please see the Academic Honesty section of the syllabus for guidance on how to navigate academic honesty in the project.

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. We take incidents of plagiarism extremely seriously in this class, and will escalate any such cases to the Dean of Students in the College for further adjudication. Going through disciplinary proceedings is an unpleasant experience for everyone involved, and the outcome of these cases can have an impact on your grade, up to the possibility of failing the course outright.

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, including code submitted in previous offerings of this class. Any similarities flagged by these tools are then manually checked by an instructor so, if you use someone else’s code (even if you edit the code so it’s not a verbatim copy), it is very likely you will get caught.

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.

  • DO NOT post your code in publicly-accessible websites, like pastebin, a public GitHub repository, GitHub gists, etc. While it can be a convenient mechanism to share code with an instructor/TA or with a project partner, it can also expose your code to other students in the class. You are provided with a private repository on GitHub, and you should use that repository exclusively to share code with your project partner, or 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 be considered an equally guilty party in that plagiarism offense.

  • 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.

  • DO NOT use code you find on the Internet, except in the very limited cases described below.

By themselves, the above academically dishonest behaviors won’t necessarily cross the line into plagiarism (or earn you an automatic referral to the Dean of Students office), but you may still receive a stern warning if we catch you doing any of the above.

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 instructors 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.

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 requires 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 may 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 (e.g., in a README file or as 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.