Similarity detection in Java programming assignments

Mohamed El Bachir Menaï, Nailah Salah Al-Hassoun · 2010

Similarity detection tools are nowadays commonly used by instructors to prevent student cheating and to enforce academic integrity. Systems identifying similarity in programming assignments are generally classified as either attribute-based or structure-based systems. Attribute-based methods make statistical analysis of the program attributes to detect lexical changes. Whereas structure-based methods complete a deeper analysis of the program structure to detect hidden structural similarities. Both methods can be useful for student programming assignments which consist generally of small to medium size source codes. In this paper, we introduce a method that encompasses both approaches to fit characteristics of student Java programming assignments. Similarities between pairs of programs can be detected by either profiling their source codes and measuring their distance or parsing them and comparing their encodings using a method inspired by DNA sequencing. We describe our experimental prototype, called CAPlag (Computing Assignment Plagiarism), and illustrate the results of some exploratory experiments. We demonstrate that our method is able to accurately find similarities in Java programs by comparing our results against those obtained with JPlag, a Web based service, and show that our system can be useful for instructors to deal with different programming assignment cases.

Read the paper · More papers on PaperTik