Academic Integrity Policy
In its simplest form, our policy is that we ask you not to cheat, in any way, shape, or form. In return, we will try our best to be fair about the amount of work we are giving you, in the grading of that work, and in giving you a course grade. You can always talk to us if you have any gripe or criticism about the course, and we will attempt to respond to it immediately.
Some forms of cheating are pretty straight-forward. Others, less so. Every year, we find several academic integrity violations. In many of these cases, the students were not necessarily intending to cheat. The rise of generative AI has made this even more complicated.
In order to manage a course this size we have created a very clear policy about what does and does not constitute cheating. This is why we require all students to read (and take a reading quiz about) this page before the semester starts. Please read this entire page carefully.
The course policy has significantly changed for Fall 2026. Please be careful when asking alums about the course policy.
Table of Contents
- Cornell Code of Academic Integrity
- The Fundamental Principle
- Specific Policies
- Preventing Violations
- Scenarios
Cornell Code of Academic Integrity
Cornell University has a Code of Academic Integrity, which explains clearly what is academic cheating and what is not. This website explains the academic integrity procedures from the standpoint of the student, the instructor, and the members of an Academic Integrity Hearing Board.
When you have time, we recommend that you spend some time to read this document. However, you will notice that some of the terms (such as unauthorized assistance) are somewhat vague. Therefore we have a much more detailed explanation below.
Academic Integrity Hearings
One thing that can be a little hard to glean from the Code of Academic Integrity is the actual penalty for violating the Code. A quick browse through the text makes it appear that the instructor just assigns a grade penalty. As a result, students who are doing poorly feel that they have nothing to lose and so take the risk. However, this is a bad idea, because the penalties are much more severe than a grade penalty.
If we believe that you have violated the code, you will be called in for a formal hearing. The formal hearing is our chance to present the evidence that we have uncovered, and you are given a chance to respond to the evidence. Guilt or innocence is not determined until you have had a chance to respond. If we determine you are innocent (which commonly happens when only one partner cheats), then all correspondence will be destroyed and there will be no evidence that a hearing was held.
If you are found guilty, we get to assign a grade penalty. This includes giving you a negative score on the assignment or exam, or even failing you for the course. Such a penalty is intended to discourage you from cheating when you feel you have “nothing left to lose”.
In our opinion, the most significant outcome of a guilty verdict is the letter. For any student found guilty of an academic integrity violation, a letter goes on file with the registrar of his or her school recording the violation. Fortunately, the letter does not become part of your transcript. Cornell likes to give students a second chance after just one violation, and so will not advertise it to the world. However, any potential employer or school can ask you to authorize Cornell to disclose whether you have a letter on file. That most commonly happens when applying to law school, medical school, or for security clearance from the government.
When a letter is sent, Cornell keeps this letter on file and only takes action if it receives a second letter (for an additional violation). In that case the student has to go before an official board, where they talk about suspension or permanent expulsion. At that point, grades are irrelevant.
This is why the letter is very bad. Do not get the letter.
The Innocent Bystander
Sometimes your assignment partner may have violated academic integrity without you knowing about it. If we can determine that this was the case, then you will be found innocent. However, since assignment violations are determined using code similarity, we will still need to include you in an academic integrity hearing. We will use this hearing to gather evidence from you and determine who did what in the assignment. If your partner vouches that you knew nothing about the violation, then the hearing will be short. Otherwise, we might need some more evidence from you.
Accepting Responsibility
While Academic Integrity hearing can be scary, they are a necessary part of making sure that our courses are fair to everyone. With that said, many of you are new to college, and have never been in a situation where cheating is taken so seriously. It is for that reason that Cornell has created a program for first-time offenders called Accepting Responsibility.
This program is intended for small, first-time offenses (which is the vast majority of Academic Integrity Hearings in CS 1110). While we still need to investigate the violation to determine who exactly is at fault (and eliminate any innocent bystanders), we may elect to forgo the the formal hearing described above. Instead of a formal hearing, the investigation will take place by email or informal conversations, solely to gather evidence.
Once this investigation is finished, we will identify the students that we believe are guilty. Those students are expected to admit their guilt and attend an education workshop on academic integrity. In addition, we will assign a reasonable grade penalty. In exchange for all this, no letter will go on file recording this incident. Think of this as a plea deal to prevent the really bad outcomes of a hearing.
If we ask you to accept responsibility, it is possible for you to refuse and not admit guilt. However, if you do, we will revert to the regular, formal Academic Integrity hearing. Furthermore, if this your second offense, we cannot offer you this option. See the official page on Accepting Responsibility for more information.
Finally, we have seen cases where an innocent student is made to appear guilty of an academic integrity violation because of another’s actions. This can happen if one student steals code from another and hands it in as their own without their knowledge. If this is the case, we will not use the accepting responsibility process. Instead will hold a regular hearing with the full range of possible penalties.
The Fundamental Principle
The academic integrity policy is for CS 1110 is defined by a single principle.
You may not submit work the work of others and claim it as your own.
This can be the work of other people in the class. This can be the work of generative AI. If you did not do the work yourself, you must be honest about it, or it is an academic integrity violation. To not disclose this fact is a form of academic fraud.
Note that both sides of the “and” are required for it to be violation. If you submit work, but are honest who or what was involved in creating it, it is not an academic integrity violation. Some work of the work that you will do in this course is expected to be done with other people, so when you submit it your are not claiming as solely your own.
When we prosecute cases of academic integrity, our primary concern is for the student that submitted work without properly attributing its source. However, there is the issue of students that enable academic integrity violations. What happens if you give your assignment to another student and they then pass that work off as their own?
In that case, we will only prosecute for an academic integrity violation if you were reasonably aware of that the other student would pass if off as their own work. In that case you are part of a conspiracy to commit fraud. This may sound sinister, but conspiracy is just a legal term meaning a plan by two or more people to do something not permitted. We have more on this in the section on preventing violations below.
Specific Policies
There are four parts of the course that are used to determine your grade: exams, labs, assignments, and in-class polling. Each one of these has its own policies.
Exams
Exams are the easiest type of academic integrity to understand, as it closely follows what you have been taught before coming to Cornell. You should not have outside materials accessible while you work on an exam. You should not copy from the exam of another person. You should not show your exam to another person currently taking the exam or waiting to take the exam. You should not discuss exam questions with another person while students are still taking the exam.
With that said, the rise of generative AI means that we have to have an additional requirement for our exams. You may not have any phone or electronic device visible while taking an exam (unless it is cleared for SDS reasons). If we see a phone visible, we will immediately take your exam and you will be charged with an academic integrity violation. In addition, we will not permit you to accept responsibility in this case as this is not a minor violation.
We understand that sometimes you feel that you must have your phone available because of family emergencies. If this is the case, then you are not ready to take the exam and we will work with you to schedule a make-up.
In-Class Polling
Answering polls with your Poll Everywhere is a small, but significant portion of your grade in this class. Therefore, you must not submit answers for anyone else, particularly since it requires access to the other student’s netid. This is a form of impersonation and is knowingly aiding the other person in committing fraud.
Assignments
Assignments are the most common case of academic integrity violations and they are the one most subject to the Fundamental Principle. When complete an assignment, you are expected to submit work that is largely your own.
With that said, it is possible to get some help on an assignment. For each assignment, you have the option of working with a partner. Obviously that partner can help you 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 (though we will not suggest or debug code).
Getting help from anyone or anything else is not allowed. You may not get aid on assignment from a current or former student of CS 1110. You may not get aid from online forums. You may not get aid from generative AI.
If you do find yourself getting aid from anyone other than your partner or the course staff, you must disclose it during submission (see Preventing Violations) or it will be considered an academic integrity violation.
If you do disclose this outside aid, it will not be considered an academic integrity violation, though you will receive a grade penalty depending on the amount of aid received.
Giving Unauthorized Help
If you give aid to another student in the course that is not your partner, you run the risk of that person passing off that work as their own. So while you may not have committed fraud yourself, you are enabling that person to commit fraud. This is therefore an academic integrity violation on your part if you are reasonably aware that this is a possibility.
What does this mean? Does this mean you should never talk to other students in the course about the assignment? Talking is fine so long as it is done at a high level and focuses only on how hard/difficult something was or how long it took to complete. Talking about how to explicitly do something is not acceptable. And sharing files will absolutely be treated as an academic integrity violation, for both the person that sent the file and the person that used it.
Detecting Unauthorized Help
We promise not to use AI detectors in this course. This software is unreliable and is often on the losing side of an arms race. But there are older techniques, such a code similarity, that we do use. We will compare your code to that online or submitted by other students and look for matches. We care less about whether your code come from another person or an AI. We just care about whether the work is actually your own.
One of the most important things to understand about academic integrity is the burden of proof is not beyond a reasonable doubt. It is the much lower bar of clear and convincing evidence, which is used in civil trials. Code similarity – where your code matches another batch of code in a way that is unusual – is one of the most common ways of establishing that code is not your own. In a very famous civil trial, Epic Games won a large lawsuit against Silicon Knights – bankrupting the company – by showing that they copied code from the Unreal Engine that “did nothing”.
With this said, this course does not over-prosecute. Even if we discover that your code matches another student or source online, we will always review it first to make sure that this match is statistically improbable. Similarity by itself is not enough for us to levy a charge. Again, we use the same burden of evidence that civil courts do.
Lab Activities
Labs are a little more complicated than assignments. Except in the case of a review activity, you are free to work with whomever you want on a lab. In fact, we encourage lab study groups outside of class! This is true both outside of class for an independent activity or during discussion for a classroom activity.
However, there is one possible academic integrity violation for labs. During discussion time, you may not access any form of generative AI. If we see generative AI on your computer or phone during a discussion section, this is an immediate academic integrity violation.
Note that this is only true during discussion. We will not consider it a violation if you use generative AI for an independent activity outside of class. We strongly recommend against it (as we have seen from the dropping grades in this course), but it is not an academic integrity violation.
So academic integrity violations for labs are limited to the use of generative AI during discussion section. Discussion section is a no-AI zone.
Preventing Violations
The easiest way to avoid an academic integrity is to acknowledge your sources, just as you would in essay or any other form of written expression. We do not require a formal bibliograph.. An acknowledgement can be a simple sentence such as
I wrote this function after looking at the following page on Stack
Overflow: http://stackoverflow.com/questions/9189172/python-string-replace.
Just tell us the source, and how you it helped you with your code.
When explaining how it helped you with this function, you should be specific. If you say “Bob helped with this function”, that means Bob gave some advice. If you say “we wrote this function with Bob”, that means we should expect the code to be the same as Bob’s and we should expect to see a corresponding citation in Bob’s program. If you say “Bob wrote this function”, that means Bob did it first and then you transcribed the code into your program (and Bob does not need to cite your code).
It is also very important where you place your acknowledgements. All acknowledgements are written using comments. There are three primary places to put acknowledgements, depending on how the source was used when writing your program. Depending on the contribution of the source, we may ask that you put your acknowledgements in more than one of these three places.
Header Comments
The header comments are the comments at the very top of an assignment file, where we ask you to put your net-ids and the date. These comments should contain the names of everyone who contributed to the submission. You can omit obvious contributions such as the course staff, but you should list everyone else.
Any and all contributions should be acknowledged in the header comments. These comments work as a summary for the rest of the assignment.
Example
"""
Test Cases for Assignment 1
Some of these test cases were suggested by Lillian Lee (ljl2).
Walker M. White (wmw2)
September 1, 2017
"""Function Specifications
If your source only helped you with a specific function, then you should include your acknowledgement inside the specification (a topic we will cover in class) for that function. This is in addition to the acknowledgement in the header comments. You do not have to write anything new. You can write exactly the same thing in both the header comment and the function specification. It just makes it easier for us to find the acknowledgement if it is in both places.
Example
collide(shape1,shape2):
"""
Returns: True if shapes shape1 and shape2 overlap; False otherwise
Acknowledgement: Uses the Gilbert-Johnson-Keerthi algorithm.
http://wikipedia.org/wiki/Gilbert-Johnson-Keerthi_distance_algorithm
Precondition: shape1 and shape2 are both shape objects.
"""If you got a entire function from either generative AI or another person, it is best that you use this type of comment so that we know exactly how much of the remaining code is your own when assigning you a grade.
Block Comments
Sometimes the source (human or AI) helps you with an even smaller amount of code, such as generating test cases. If it is just a single line of code, you can write it using a # comment off to the side. If it is more than one line (but much less than a whole function), you might want to write the comments in a block. You write a comment with the acknowledgement at the start of the code, and another comment at the end.
As with function specification, these comments are in addition to the acknowledgement in the header comments. You do not have to write anything new. You can write exactly the same thing in both the header comment and the block comment. It just makes it easier for us to find the acknowledgement if it is in both places.
Example:
introcs.assert_equals(trim(' a'), 'a')
introcs.assert_equals(trim('b '), 'b')
# Lillian Lee (ljl2) suggested these additional test cases
introcs.assert_equals(trim(' '), '')
introcs.assert_equals(trim('a b'), 'a b')
# End Lillian's suggestionsScenarios
We do not want to discourage all forms of collaboration. You can certainly talk with students outside your group about an assignment. And sometimes students find themselves in a bit of a “grey area” where they are unsure of whether or not some form of collaboration will hurt their grade. For that reason, we present several scenarios that highlight the types of things that we see in this course.
Scenario 1 (Good Collaboration)
You work on your program with your partner, trade debugging strategies and maybe a test case or two with your friend Joe. Your friend Mary also mentions that her code needed three four-loops, which gave you a hint about how to approach it. At the top of your submission you write
We discussed this project with Joe and Mary, and we thank Joe for
suggesting some test cases (noted below). The idea of using three
nested for-loops in the function compute_data came from Mary.
In addition, you add detailed comments at the appropriate places. A few of the
test cases are marked with a comment like “This test case is due to Joe.” You
also repeat “The idea of using three for-loops is due to Mary” in the
specification for compute_data.
In this scenario, you understand why the test cases are useful. You also
understand how compute_data works and typed in the implementation yourself
after Mary explained it to you. In this case we are happy. You learned a lot by
doing the project and had fun helping each other out. There is no academic
integrity proceeding, and no grade penalty.
Scenario 2 (Grade Penalty but no Academic Integrity Violation)
You work on your program with your partner, but you got a few test cases from
Joe. More importantly, you got stuck on compute_data and so you gave the
specification and test cases to Claude Code. Claude was able to show you how
it would implement the function. You copy the function from Claude, but make
some changes to make it better fit the way you think.
In this case, you should write at the top of your program
We discussed this project with Joe, who gave us the idea for some test
cases (noted below). We used these test cases to get an idea of how to
write the function from Claude Code, though we rewrote the code in our
own words.
In this scenario you have kept your integrity, and we will not be upset with you or hold an academic integrity proceeding. However, it is unlikely that we can give you credit for the assignment. We may ask for a transcript of the chat logs with Claude to see just how much you changed the code for determining how many points we can give you for the assignment.
Scenario 3 (Academic Integrity Violation)
In this assignment, you did the same thing as Scenario 2, but did not credit your other sources at all (or untruthfully downplayed their contributions). However, Claude Code writes Python in a way that is closer to a professional Python engineer than a student and we were able to identify a clear and convincing code fragment that was not your own.
In this scenario you are guilty of an academic integrity violation and we will hold a hearing if you do not accept responsibility.
Scenario 4 (The Partner Divorce)
This last scenario is unfortunately very common in this class. You have found a partner and decided to work together on an assignment. However, somewhere along the way, 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
compute_data function by ourselves.
Group divorces will be handled on a case-by-case basis. As long as you explain what happened in the comments, a group divorce will never lead to an academic integrity hearing. In addition, if it only happens once, there will be no grade penalty either. But if you are involved in a group break-up more than once, we will have to talk to you about the circumstances and make sure that you are doing your fair share of the work.