Cheating in computer science is far from binary

Abby Krishnan

Peer collaboration can be essential to academic success, whether it jogs your brain for the answers or gives you a different perspective on the assignment. However, computer science students face a unique problem when it comes to working with their peers or consulting online sources for help on assignments — taking mere inspiration for a solution to a coding problem could result in their code being similar enough to create suspicion about cheating. 

Academic dishonesty in computer science isn’t as black and white as written plagiarism. Using paragraphs from other sources without attribution can be immediately detected. But in coding, two people could solve a problem in a similar way without any contact. Each assignment is designed to teach each student the same computer science principle through the understanding of common algorithms and concepts. This can result in students writing similar solutions that could be scrutinized for cheating. 

The procedures for identifying and dealing with cheating should be defined with more clear and realistic terms to eliminate uncertainty in academic dishonesty cases. Current rules, detection mechanisms for cheating and ways of resolving academic dishonesty cases all contribute to the confusion CS students face when working on assignments. Common punishments for academic dishonesty are failing the course and being dismissed from the CS program; this creates a great deal at stake for students and their assignments. 

In many entry-level CS courses, professors allow high-level discussion of what the assignment calls for but forbid any discussion of the code itself. In the syllabus for CS 314: Data Structures, a core computer science class, the professor emphasizes a line that reads, “The moment you start looking at someone else’s source code (the code written by the programmer) or showing someone else your source code, you have crossed the line into cheating.”

But this type of blanket statement policy is an unrealistic expectation, especially when discussion is allowed, since it could lead to similar code. It creates confusion about what exactly constitutes cheating. Exactly how detailed is the big-level discussion allowed to get? We are always encouraged to collaborate and learn with our peers in computer science, and it’s even considered in the scientific community as the best way to complete a task. The extent and definition of collaboration in our education should be clear.

The way cheating is identified also creates difficulty for students. Currently, many professors rely on software called MOSS, an open-source tool from Stanford University that checks for plagiarism in code. It doesn’t just look for similarities in text — rather, it uses a complex algorithm to determine the true similarity between two programs. However, MOSS only reports on similarity. It’s up to a human to determine whether the two programs have clearly colluded. Computer science professor Sarah Abraham explains that professors are allowed to set their own standards for dealing with academic dishonesty and evaluating MOSS results. This essentially leaves the standard of cheating up to the whims of the professor. 

Cases of academic dishonesty contribute to this problem of confusion for students. Recently, to deal with a case of academic dishonesty in a CS class, teaching assistants caused paranoia when they asked the students who had cheated to independently come forward, rather than directly approaching them. People who had discussed the assignment together could have written code that was very similar, putting them at risk of being accused of academic dishonesty by the professor. The TAs claimed that, in the past, when not directly discussing the issue with students, they received hundreds of emails from students explaining that they worked on the assignment alone. 

As students, we shouldn’t have to frantically explain the integrity of our work, even when innocent, when there are academic dishonesty incidents. The ambiguity of these policies led to the amplification of stress, as they could have been mislabeled as cheaters, losing credit for the assignment and possibly the class. 

Ultimately, there needs to be more clear-cut standards for computer science students. This can ensure that students are getting the most from working with their peers to complete assignments. Let’s incentivize integrity in student work, rather than creating policies that cause unnecessary stress. 

Krishnan is a computer science freshman from Plano, TX.