acm - an acm publication

Cheating in Computer Science

Ubiquity, Volume 2010 Issue October, October 2010 | BY William Hugh Murray 


Full citation in the ACM Digital Library  | PDF

Many computer science teachers are very concerned about students cheating in their courses. Surveys report that almost three-quarters of high school students admit to cheating within the past year. John Barrie, founder of the plagiarism-detecting Web site, says that about a third of the papers submitted to the site have significant levels of plagiarism. Many people say that the Internet has made cheating easier and harder to detect and they wonder if the moral fabric of our youth is fraying. In the trenchant analysis below, Bill Murray approaches the teaching-learning system as a game in which students, teachers, and others play various roles. He wonders whether the game itself encourages cheating, and suggests that teachers could restructure the game so that cheating is less rewarding and less likely.
--Peter J. Denning

Nice people do not invite small children to lie, cheat, or steal or troops to mutiny.

A recent report suggested that there are more academic honor violation accusations among computer science students than in any other single academic discipline. While one or two suggested systemic problems, the somewhat defensive response from computer science faculty seemed to suggest that most of these violations take the form of plagiarism, i.e., submitting someone else's computer program as one's original work. They contend that there are no more such violations in CS than in other disciplines, but rather that they, the faculty, are simply more clever at detecting plagiarism, mostly through "automagic" methods, than are other faculty. Said another way, CS students do not plagiarize more than other students but, to the extent that they plagiarize, they are more likely to be caught and accused.

I propose to respond to the problem suggested by the report without addressing the question of whether or not CS students plagiarize more or less than students in other disciplines, or whether or not CS faculty are more or less clever than other faculty. These questions avoid the fundamental problem. I propose to address the underlying problem of cheating.

I tend to see "cheating" as a symptom that something is wrong in the system, in pedagogy. Students tend to see it, not so much as a matter of honor but, as a game. "Clever" faculty are simply good at the game. Clever faculty tactics simply confirm the student's view.

When I was in prep school, Latin was mandatory but it was defined as cheating to use an interlinear translation. Indeed most of the tools that are routine in teaching language today were considered cheating then. Learning was not the issue, difficulty was the issue. Learning "should be difficult" and things that made it easy were "cheating."

Of course, most learning takes place outside school, is easy, and efficiency is the yardstick. Where efficiency is the measure, things like "code re-use" are rewarded, not penalized. Code re-use is a valuable skill not easily taught. Similarly, since most production coding takes place in teams, cooperation and collaboration should be rewarded. Restricting them teaches that the game is more important than the lesson.

I suggest that we have gotten the cart before the horse. We are less concerned with whether students learn the right thing than whether they learn in the way that we rely upon to measure how well they learn when compared to their peers. We do this without even having considered whether the measurement is even useful, much less necessary or even counter-productive. We do it without considering whether encouraging sin is a good way to teach morals. We do it for no better reason than tradition, habit, and inertia.

As a student, I often wondered why everything in school seemed so hard and everything in real life comparatively easy. I wondered why no one ever really taught me anything but expected me to learn it on my own. I wondered why no one ever taught me the skill of learning but expected me to intuit it from trial and failure. They persisted in this strategy even when failure became so routine as to suggest that intuition had failed me, even when failure led to discouragement and more failure. Discouragement was seen as a character flaw to be punished. "The beatings will continue until morale improves."

Note that no one ever really expected me to learn to read, write, or speak Latin. Fluency in Latin was not what it was about. It really was about discipline. Latin was useful for developing rigor and discipline precisely because it was abstract, difficult, and otherwise useless. We are still teaching computer science as if it were about programming and programming as if it were a language, like Latin, taught more for grading than for developing knowledge and skill.

At some level or another students suspect all of this. If school is more about grades and grading than about learning, then "code re-use" is the right strategy. If the simulation has only "no-win scenarios," then change the simulation.

I used to teach programming by teaching a language, vocabulary and grammar, and then saying to the student, write a program that does this, that, or some other thing. I expected the student to compose and required originality. I expected the student to respond to a specification so incomplete that one would never tolerate it outside academia.

I no longer teach programming by teaching the features of the language and asking the students for original compositions in the language. Instead I give them programs that work and ask them to change their behavior. I give them programs that do not work and ask them to repair them. I give them programs and ask them to decompose them. I give them executables and ask them for source, un-commented source and ask for the comments, description, or specification. I let them learn the language the same way that they learned their first language. All tools, tactics and strategies are legitimate.

As a teacher, my job is to help students learn, not create artificial barriers to learning in the name of equitable grading. Nice people do not put others in difficult ethical dilemmas. Grading should be a strategy for making learning more satisfying by demonstrating accomplishment. Many students demand grading so that they can measure themselves against their competitors. I cannot remedy the fact that society has turned grades and grading into something else, but I do not have to get so caught up in that agenda that I lose sight of my goals.

It is my job to satisfy the student, the paying customer, not the other way around. Perhaps cheating is a strategy that students bring to an artificial problem that I have created. Perhaps it is a symptom of my failure to teach. I may not be able to compensate for the culture and life experience that might predispose them to cheat but I should not make it worse. If one of my students responds to conditions that I have set by behavior that violates the code of honor, then I am guilty of a grave offense. If there is a contest between us, then we both just lost the game.

In the movie Star Trek, real life intervenes in the academic trial of Cadet James Tiberius Kirk for cheating. The intervention comes just in time to prevent an "academic" offense from destroying a promising career. Real life made moot the academic trial just as young Kirk had suggested his defense and the trial ended as the young warriors rushed off to battle. I was disappointed because I was hoping that his argument, that the "no-win scenario" was itself (faculty) cheating, might have vindicated him.

Not only do I think that we should adapt our pedagogy to reduce the motive for, value of, and opportunity for cheating but we should rethink our use of academic honor codes. Honor codes were initiated in elite schools that were engaged in character formation as much as education. Few of today's schools make any attempt at or pretense of character formation; most of the few that do are military or religious institutions. In any case, one teaches character by modeling it, not by forcing the unformed to struggle through artificial trials.

Use of honor codes to resist plagiarism in CS is, at best, arbitrary and capricious. Students, raised on games, "game" the system, sometimes with tragic results. Often the code, for example those with a non-toleration clause, is at odds with a value, for example, peer loyalty, that the student has been taught from sand-pile.

At a cocktail party in Boston, I was asked by a Harvard dean what one change I would make to improve the American school system. I suggested that I would get teachers out of the credential granting business, break down the adversarial relationship between teachers and students, and get them on the same team. He was horrified. "Without the authority of the teacher to grant credentials, the classroom would degenerate into chaos," he said. I told him that as an industrial management trainer, my students graded me, rather than the other way around. Perhaps I did not have a discipline problem because I was interesting, perhaps because my students and I respected one another. In any case, we can divide pedagogy from credential granting. The British have done it with positive results.

The issue should not be whether CS students cheat more or simply are caught more. Rather, it should be whether faculty convenience justifies the ruined lives.

  About the Author
William Hugh Murray, CISSP is a "Pioneer" in computer security, a faculty member at the Naval Postgraduate School, and a founder of the Colloquium on Information System Security Education (


DOI: 10.1145/1865907.1865908



©2010 ACM    $10.00

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.


The author shows interesting ideas about teaching in CS, but I also was expecting some ideas about how the author grades in a way that leaves cheating aside. Maybe the only valid solution is that if you want no cheating at all, then you teach, but yo do not grade.

— Jose L. Crespo, Tue, 01 Mar 2011 09:59:54 UTC

I'll fess up to cheating on my CS exam as soon as the prof fesses up with stealing the test questions.

— Doug, Thu, 16 Dec 2010 21:58:17 UTC

In 1999 I was accused of cheating on the practical portion of my first year CS course at Edinburgh University. The evidence was that my submission was very similar to my best friend from high school. For this all of my marks for all of my practical assignments were discounted causing me to fail the year and requiring me to re-sit the written exam but not the practical. I passed the exam easily with ~ 90%. This was no surprise as I had previously scored a similar mark in the original written exam. A decade later I look back on this with some bitterness, not because it affected my career (I am employed as an engineer at Apple) but that it affected my ability to learn while at school. After this experience I was loath to talk to other students regarding assignments or to discuss what we were learning in class. Today I know that I did not cheat but was penalized for was collaborating with my peers. Edinburgh University's stance on this was, in my opinion was backwards. They were teaching student not to collaborate or share information. Collaboration skills are as important as technical knowledge in industry!

— Alex Carter, Thu, 16 Dec 2010 18:24:15 UTC

Based on what you said about the style of education as a whole, in comparison to how you teach, I think you would really enjoy Paolo Freire's "Pedagogy of the Oppressed" if you haven't already read it. It's his most popular work on education. It focuses on the creation of a new student/teacher dichotomy wherein both parties are mutually invested in learning from each other and there is a mutual respect where expectations are high. It strives to create an environment where actual learning takes places, instead of what Freire refers to as the banking method. It's far too common for teachers to think of their students as receptacles to be filled with information and using that basis to grade them. The more information they can hold, the higher an arbitrary number gets. It's a problem in so many fields and has been for far too long.

— Anonymous, Thu, 16 Dec 2010 16:44:38 UTC

The article states that "there are more academic honor violation accusations among computer science students than in any other single academic discipline". Having graduated from a top-ten engineering school Summa Cum Laude without cheating at all, but being very aware of all the cheating going on and having questioned students who practiced it, I know the reasons for this. A major reason for this is that the majority of CS students at any American university are students from overseas cultures that have completely different ideas regarding cheating. In particular in Asian cultures getting together to work with others is considered cooperation and not cheating. Getting ahold of the test questions in advance is considered fair game. Plagiarizing entire papers is fine, the asian economies are based on copying those who are better. That is how you compete. About the only thing that is considered cheating is copying from someone during an in class test. As you must know, many Chinese students in particular have Chinese translations of many textbooks which are sent to them from China. These textbooks come with supplementary sections, sometimes including the past exams of a specific professor. This is all considered just being smart and well prepared.

— Richard Michelson, Thu, 16 Dec 2010 08:22:18 UTC

As the author correctly puts it, the major problem is that CS education has become too focused on grades rather than actual learning. When I get assignments which are boring and require little creativity, I do not feel guilty at all copying it from my friends. I can spend that time learning something that I like.

— Rohit Mishra, Thu, 16 Dec 2010 08:06:36 UTC

Leave this field empty