Finding Plagiarisms among a Set of Programs with JPlag
By Lutz Prechelt, G. Malpohl, M. Philippsen. Journal of universal computer science (Online), 2002
665 citations recorded by the source corpus.
JPlag is a web service that finds pairs of similar programs among a given set of programs. It has successfully been used in practice for detecting plagiarisms among student Java program submissions. Support for the languages C, C++ and Scheme is also available. We describe JPlag's architecture and its comparsion algorithm, which is based on a known one called Greedy String Tiling. Then, the contribution of this paper is threefold: First, an evaluation of JPlag's performance on several rather different sets of Java programs shows that JPlag is very hard to deceive. More than 90 percent of the 77 plagiarisms within our various benchmark program sets are reliably detected and a majority of the others at least raise suspicion. The run time is just a few seconds for submissions of 100 programs of several hundred lines each. Second, a parameter study shows that the approach is fairly robust with respect to its configuration parameters. Third, we study the kinds of attempts used for disguising plagiarisms, their frequency, and their success.
Subfields: Safety Research
View Paper: https://www.semanticscholar.org/paper/3b40ae4486e8f455331692e07a06a46b25728f68
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Safety Research
- Kirsti Ala-Mutka
- Philip S. Yu
- Shan Lu
- Yuanyuan Zhou
- Satish Narayanasamy
- Michael J. Cafarella
- Jonathan Crussell
- Clint Gibler
Citations in the corpus
- GPLAG: detection of software plagiarism by program dependence graph analysis (2006, methodology): “We spent two hours plagiarizing it such that both Moss and JPlag were confused.”
- Using web corpus statistics for program analysis (2014, methodology): “Existing methods for our two target applications (plagiarism detection [4, 6, 7, 10, 11, 13, 16, 22, 25] and copy-paste bug finding [3, 11, 14]) do not exploit corpus-derived data.”
- CP-Miner: finding copy-paste and related bugs in large-scale software code (2006, background): “Index Terms—Software analysis, code reuse, code duplication, debugging aids, data mining.”
- Quantifying Contamination in Evaluating Code Generation Capabilities of Language Models (2024, neutral): “Yu et al. (2023) uses two methods, JPlag (Prechelt and Malpohl, 2003) and Dolos (Maertens et al., 2022) to calculate similarity scores between programs.”
- A Survey on Software Clone Detection Research (2007, background): “Both Winnowing [203] and JPlag [192] are well know plagiarism detection tools and based on token based techniques.”
- A Survey of Automated Assessment Approaches for Programming Assignments (2005, methodology): “MOSS is based on document fingerprinting (Schleimer, Wilkerson, & Aiken, 2003) and JPLAG uses string tokenization with sub-string pattern matching (Prechelt, Malpohl, & Philippsen, 2002).”
- CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code (2004, methodology): “Those tools, such as the commonly used JPlag [33], were designed to measure the degree of similarity between a pair of programs in order to detect cheating.”
- Following Devil's Footprints: Cross-Platform Analysis of Potentially Harmful Libraries on Android and iOS (2016, methodology): “Also importantly, the techniques not relying on behavior and content signatures, as proposed in the prior research [64], should be developed for detecting the PHAs with previously unknown harmful behavior.”
- Attack of the Clones: Detecting Cloned Applications on Android Markets (2012, methodology): “Examples of this approach include JPLAG [38], Winnowing [40] and MOSS [18].”