Cheating in ICS: Insights from students

Philip Johnson
10 min readOct 17, 2020


I’ve heard a number of disconcerting comments recently indicating how widespread cheating might be in the lower-level ICS courses:

  • A TA for ICS 111 did an analysis using MOSS and concluded that up to 30% of ICS 111 students might currently be cheating in Fall 2020.
  • An instructor for ICS 211 complained to me that cheating was “rampant” in the course.
  • An instructor for ICS 311 offered “amnesty” to those students using Chegg to cheat on their homework, and over half the class admitted to doing it.

Cheating in ICS is not a victimless crime. Cheating results in the student not learning the material in the course. Not learning the material creates the following problems:

  • It’s bad for the cheater: For the student who cheats, cheating leads to low self-esteem, a feeling of “imposter syndrome”, and a lack of preparation for future courses making future courses even more difficult. Some cheaters might get to the point of feeling that cheating is their only way “out” of the program.
  • It’s bad for the non-cheater: For non-cheaters, the presence of cheaters can produce a feeling that they are “suckers” for actually doing the work. As the cheaters move into future classes, the quality of the learning environment deteriorates because cheaters don’t know concepts covered in previous courses.
  • It’s bad for everyone when they try to get a job: As cheaters graduate and try to get jobs, they can perform poorly in interviews and/or in the jobs they obtain due to lack of proficiency. This can create a poor reputation regarding the preparation of ICS graduates in general. It’s possible that some employers, having had a bad experience with a cheater, could decide to not consider ICS students at all. This negatively affects the career prospects of all ICS students regardless of whether they cheat or not.

Given that cheating is bad for cheaters, and also bad for non-cheaters, how can we, as a community of ICS faculty and students, come together to address this problem? The next section presents ideas from a poll of 60 students in ICS 314, along with comments made in response to a draft of this essay by ICS students in various Discord servers. The final section provides proposals for next steps.

Student perspectives on cheating

In October, 2020, I asked 60 students in ICS 314 the following question:

“How can we reduce cheating in ICS classes?”

Here is a summary of their comments, organized according to some of the themes I observed:

Why students cheat

“If you don’t spend the time beforehand to prepare for class, then you don’t know what to ask for help on during class, and eventually it pushes you to cheat.”

“When the assignments are really boring, you get tempted to cheat. Assignments need to be more interactive, more relatable to the real world.”

“When the class is a boring lecture, I just fall asleep. And then I have to learn it by myself later.”

“I think that a lot of students come to University thinking that just showing up for the lecture is enough to pass the class. But for computer science, the lecture is just the start: the real learning happens from doing the coding and the assignments. It’s not emphasized how much you have to practice. So, somehow students need to change their understanding of the learning process from what they did in high school. If they don’t understand the need to practice, then they will eventually need to cheat.”

“Some students don’t know how to get started solving a problem on their own. They think the way to get started is to try to google the answer, then throw that in, and see if it works, and go from there.”

Provide better help, make it more accessible

“We need to provide better ways to get help to students, so they don’t get desperate and turn to cheating.”

“It would be great to get the TAs more involved. Sometimes all they do is just grade the homeworks and they don’t give students any help. And sometimes the professor doesn’t really give much help either!”

“I think the main reason students cheat is because they get discouraged. And they think that finding the answer on the Internet or getting a friend’s solution is going to be better than anything they could ever do. Another problem is when you grind and grind and get 80% of the way there, but don’t know how to finish, so you give up and turn in a solution from the Internet because at least you know that one is right.”

“I think group work can really help, because when you are in a group, there’s sometimes a person who really gets it, and then they can explain it in a way that’s more useful than the way the professor explained it.”

“I think a major problem is the availability of TAs and Professors for help. If help was available when you needed it, then you wouldn’t feel pressure to go online or copy answers off the Internet.”

“It would help to have a place like Discord where it’s easy to ask for help from other students, or from the TA or the Professor. Basically make it easier to get help in your class than to get the assignment from the Internet.”

“I’m helping mentor some students in ACM, and one observation is that material is sometimes glossed over. This is both a fault of the student for not speaking up and asking clarification, and of the instructor for potentially not explaining a particular topic in enough depth to be well comprehended. Sometimes there is a “knowledge gap” where the instructor assumes the student will get it, or challenges the student to make that mental leap, where other times I think it is necessary to show exactly how something works the first time, then build similar lessons or assignments based on that construction. Cheating because the student did not apply themselves is hopefully something we can resolve through motivation and “tough love” (don’t apply yourself, don’t pass), but cheating because of lack of clarity or explanation I think is a two-way discussion between the student and instructor. Students shouldn’t be afraid to ask the TA or the instructor for clarification when it is needed, and if the instructor checks in with students to ask if they comprehend something, they should press the students to be honest, because it’s OK to not get it the first time. That’s why we are here to learn.”

Change professors’ behaviors in response to questions

“When I was a learning assistant for 241, some students told me that they are afraid to talk with TAs or profs. I can relate to that since some profs did belittle me.”

“I think some students are afraid to ask questions bc they don’t want to ask “dumb” questions (and risk being belittled) or don’t know how to phrase what they are trying to ask. I think a lot of people look at it as a skill you either have or don’t have (like it’s somehow innate, like being introverted or extroverted) when in reality it’s just that people don’t have the skill because they are inexperienced. The only way you can get experience is by asking, but it can seem like college is an unforgiving environment to learn this because you are expected to already come with the knowledge of how to ask questions (hence the belittling)”

Change assessment

“It would be good to have part of the class assessment involving you explaining your code and what it does. If that was a normal part of the educational experience, then cheating would be less useful. And, once we have jobs, we’ll need to be able to explain our work to others, so it’s a useful skill.”

“Maybe have pop quizzes, out of nowhere, so your grade depends more upon being ready in the moment to demonstrate your competency?”

“Maybe think about a more competency-based approach, with less emphasis on exams at fixed times?”

“Heavier weighting for exams feels like a good solution to me. Perhaps not as great in our present situation of distance learning, but exams really test if you know the material yourself or not. If you learned while doing the homework, exams should be no issue, if you blindly copied, you’ll have a much harder time, if you copied but took the time to understand the code you were copying, you’ll do fine on the exam, but I’d also say that the class has achieved the desired goal of teaching the material anyways.”

Change the homework

“Break down the assignments into small pieces, and provide evaluation and assessment each tiny chunk. That way, if you get lost at some point, you can get help at that point, and you can recover to complete the rest of the assignment. When assignments are big, if you get stuck, you don’t have a way to recover so you think you should just cheat and get the entire assignment solved for you.”

“Don’t make the homework worth so many points that you can pass the class just by doing homework. They are too easy to cheat on.”

“Instead of just creating a toy problem from scratch, which makes it easy to find on the Internet, you could instead be given some code and asked to modify it: either extend the functionality, or fix a bug, or improve the performance, or whatever.”

“Professors don’t understand that creating good homework assignments is probably the most important part of their job of “teaching”. Students need assignments that you can’t google, that aren’t tiny variations of what they assigned the previous semester. Professors need to take more responsibility.”

“It would be good to break up assignments into smaller chunks.”

Make homework more interesting

“I liked Jason’s approach to ICS 111: where most of your grade was based on three projects. Because you were using his framework, it was basically impossible to look up solutions on the Internet, and since it was very visual, it is obvious when two assignments are the same. But in addition: it was fun! And that made you want to work on the assignments, even if you weren’t an ICS major.”

“If the assignments are something unique, something that excites you, then there won’t be a solution already on Google and you will be motivated to try to solve it on your own because you want to get the knowledge.”

Don’t assign the same things semester after semester

“Some instructors use the same, or extremely similar problems every semester. So all you have to do is find a friend who’s taken the course and you basically have the answers to all the assignments.”

“The problems for 111 and 211 are so similar from semester to semester that all you have to do is get a friend who’s taken it and you’re golden. ”

Teach what it means to cheat, and why it’s bad

“Our generation is really stupid when it comes to understanding cheating and plagiarism. We have grown up thinking that learning means knowing how to google the answer, because it seems like everything you might ever want to answer is already on the Internet. When a teacher assigns standard algorithm problems for which there are already a dozen examples on the Internet, it just reinforces this idea. We need to be taught that not everything is already on the Internet, and to learn that, we need to be assigned problems to be solved that are not already on the Internet.”

“I don’t think Professors do a good job of explaining why cheating is bad. They need to help us to understand what it means to really understand the material, and what the impact of not understanding it will be. Sometimes that is not obvious to us as students.”

Group work is good

“I think we have to change the culture. The more comfortable I get with my classmates, the more I want to help them.”

“I think some Professors don’t realize that when we are in a group, we really want to help each other, we don’t want to just give each other the answers.”

“When I ask a classmate for help, they often explain things to me in a way that is easier to understand than the way it was presented in class.”

Learn from Ruth Haas in the Math Department

“I took Discrete Math (Math 301) with Ruth Haas and she organized the class in a discovery style. She would lecture for just the first 10 minutes, and then you’d spend the rest of the class working on a related problem and asking questions.”

“I took Ruth Haas’s Math class, and it was really chill but I also learned a lot because it was really hands on. I never felt that much pressure because I knew I was always able to get help either from my group or from the TA or from the Professor.”

Maybe ICS 311 has too much material to assimilate in one semester?

“A lot of my friends feel that ICS 311 should be a two semester class. The material gets pushed at you so quickly that you just don’t have time to assimilate one chapter before you get pushed on to the next one.”

Athletic software engineering works

“I think the athletic approach in 314 is good because of the timed WODs.”

“ICS 314 keeps me pretty honest — I practice the WODs pretty hard before the tests.”

“Not to be a kiss-ass, but I think it would help if more classes were like ICS 314 where you spend a lot of time working in groups with other students. It’s a no-brainer: working with another person is more fun. Some professors consider it cheating when you work with other students under any circumstance. That policy makes it more difficult to learn.”

“It’s really hard to learn coding from sitting in a class and having a professor talk about it. I like the way this class is structured, where we use class time to work on examples.”

And finally: No pity, tough love

“Just let them burn. Let them bomb their way through the whole four years and waste all their money.”

What does the Chronicle say?

Here is an interesting article from the Chronicle of Higher Education: Students Cheat: How much does it matter? (You must login with your UH credentials to see this article).

The short answer is: yes, it does matter, and no, there aren’t any silver bullets.

Next steps

So, where do we go from here? I’d like to propose a radical idea: since students are the ones who are most affected by cheating, maybe students need to take a leadership role in addressing the problem?

This is not to abdicate the responsibility of faculty: the above comments indicate that there are a lot of things faculty can do, from changing assignments to making help more available.

But faculty action can only go so far. It is critical that students work to “change the culture”. Advanced students and clubs need to stop being silent and complicit in the culture of cheating. As noted above, cheating hurts non-cheaters too. Advanced students can help beginning CS students to understand that learning CS is hard, it takes a lot of time, and cheating just won’t work in the end.

Stop sharing your notes! When a friend asks you for your assignments, tell your friend that you’ll give them help when they need it instead. Such a simple idea!

Finally, students could help faculty identify trouble spots: where is cheating occurring, why is it occurring, and what can we do about it? You’re not being a snitch, you’re being a friend.