Plagiarism in programming assessments: A systematic review

Ibrahim Albluwi

Research output: Contribution to journalReview articlepeer-review

50 Scopus citations


This article is a systematic review of work in the computing education literature on plagiarism. The goal of the review is to summarize the main results found in the literature and highlight areas that need further work. Despite the the large body of work on plagiarism, no systematic reviews have been published so far. The reviewed papers were categorized and analyzed using a theoretical framework from the field of Fraud Deterrence named the Fraud Triangle. According to this framework, fraudulent behavior occurs when the person is under pressure, perceives the availability of an opportunity to commit fraud, and rationalizes the fraudulent behavior in a way that makes it seem not unethical to him or her. The review found the largest amount of the reviewed papers to discuss ways for reducing the opportunity to plagiarize, as well as tools for detecting plagiarism. However, there is a clear lack of empirical work evaluating the deterrent efficacy of these strategies and tools. The reviewed papers also included mentions of a wide range of rationalizations used by computing students when justifying plagiarism, the most important of which are rationalizations that stem from confusion about what constitutes plagiarism. Finally, work on the relationship between pressure in computing courses and plagiarism was found to be very scarce and incommensurate with the significant contribution of this factor to plagiarism.

Original languageEnglish (US)
Article number6
JournalACM Transactions on Computing Education
Issue number1
StatePublished - Dec 2019

All Science Journal Classification (ASJC) codes

  • General Computer Science
  • Education


  • Academic integrity
  • Cheating
  • Introductory programming
  • Plagiarism


Dive into the research topics of 'Plagiarism in programming assessments: A systematic review'. Together they form a unique fingerprint.

Cite this