Academic integrity

Table of Contents


Cornell Code of Academic Integrity

Cornell University has a Code of Academic Integrity, which explains clearly what is academic cheating and what is not.

We recommend that you read this document.

Below is a summary of academic integrity pertaining to CS 1110.

Academic Integrity in CS 1110

First of all, none of these rules apply to labs. For all labs, you are freely allowed to collaborate with, give help to, and get aid from any other student in this class. These rules apply to exams and assignments.

Exams

Remote exams consist of one-on-one or small group meetings between students and course staff. Due to the remote format, exams are ``open book," but the questions are timed. You should not show your exam (for example, using screenshots or recordings) to another person currently taking the exam or waiting to take the exam.

Assignments

Assignments are where the policy is more involved. The basic rule is as follows: You may not get help from or give aid to (either knowingly or through gross negligence) anyone that is not a course staff member or your official partner.

There is a lot to unpack in this single sentence. We break it down into two parts.

Getting Unauthorized Help

When you work on an assignment, you have the option of working with a partner. Obviously that partner can help you work on the assignment with no limitations. In addition, you are free to come to the instructor or any course staff for help. This help can include questions about the assignment, help reading error messages, and hints about where to go if you are stuck. However, we will not debug your code or provide you with the answers.

Getting help from anyone else – be it a current or former student of CS 1110 – is not allowed. Some forms of help, such as asking for clarification on a specification, are innocuous and are not considered a violation. However, those types of questions should always be directed to the course staff, as only they know the official answers. On the other hand, showing your code to someone else, or receiving code from them, is a major violation and will be prosecuted as such. Even just talking about the code (without sharing files) is a problem, since your discussion will likely alter the code that you write.

It is also not okay to copy files from online sources.

Programming forums like Stack Overflow are a bit of a grey area. As long as you stick to basic Python questions, it is okay to use these forums. However, using Stack Overflow to aid you on specific parts of an assignment is not allowed.

Giving Unauthorized Aid

Intentionally sharing a code file with another student is an obvious violation. But you should also avoid talking about the assignment in anything other than the highest generalizations. You can talk about how long the assignment is taking you, or what parts were more difficult than others. But answering questions of the form “how did you do this?” is a very bad idea until grades have been posted. At that point you are free to talk about the assignment as much as you wish.


Code Similarity

Violations are determined using the program Moss, which was developed by a Cornell PhD. This is a program that detects code similarity, and this is what we use to determine whether to call an academic integrity hearing. This may seem a bit unfair. What if your code was similar by accident? Moss is smart enough to ignore code that is similar across a lot of assignments. It primarily detects similarities across a small number of students (the abnormalities). In our experience, these indicate violations 99.9% of the time. If it is an accident, a significant portion of the class will have the same accident (this is CS 1110 after all).

Fooling Moss is very hard. It can tell if you rename variables, if you change comments, reorder code or do anything short of a drastic rewrite. People who have managed to fool Moss will all say that, if you have the skill to fool Moss, then you did not need to cheat on the assignment (or even attend CS 1110) in the first place. So if your code is abnormally similar to another file (either in the class or available online) we will always catch you.

In our experience, Moss will catch you even if you just look at another file without meaning to copy it. Once you see a solution to a problem, it is very hard for your brain to think of another way to do it, and your code will start to look very similar.


Special Precautions

In our experience, there are two special cases that can cause your code to look like a violation when it is not: breaking up with an assignment partner, and using an programming forum like Stack Overflow. To keep us from calling an academic integrity hearing in these cases, there are steps that you can take to protect yourself.

The Partner Divorce

In this scenario, you had a partner for an assignment, but you decided it was not working out. Maybe you or your partner were not doing enough work. Or maybe your partner found someone else that they would rather work with instead. In this case, you decide to go your own separate ways and submit separate assignments.

However, if you did any work together at all, there is guaranteed to be some similarity between your code. Therefore, you need to be very explicit in your code how you collaborated and when you stopped collaborating. You need to tell us this in the comments at the top of your file. For example, you might write something like this:


        I was originally working with Mary. We worked together on the testing
      code. However,we stopped working together after the testing code,
      because I wanted to work with Joe instead. Joe and I worked on the
      widget class by ourselves.
      

Online Forums

As we have mentioned, Stack Overflow is a bit of grey area. It really comes down to how specific was the help to the assignment that you were working on. Questions of the form “How do I do X in Python” are okay. Questions of the form “How do I implement this specific function” are not. If you are unsure of whether you have used an online forum in a way that counts as unauthorized assistance, your best option is to cite the source.

There is no formal style for citing in source code. Just provide a comment together with a link to a source. For example, it might look something like the following comment.

        I wrote this function after looking at this page on Stack Overflow:
      http://stackoverflow.com/questions/9189172/python-string-replace
      

Citing a source is not immunity from prosecution. But if the help provided was minor, we will not consider it a violation. Even in cases where it is a violation, citing will significantly lessen the penalty that we assess.