In academic courses students frequently take advantage of someone else’s work to improve their personal evaluations. This unethical behavior threatens the integrity of the academic system in several ways. Fortunately, when students take examinations by producing machine-readable artifacts, plagiarism detection can be semi-automated. A common case consists of students who are asked to develop simple programs, as it frequently happens when taking an exam on a first course of computer programming. Courses about programming are regularly present not only in curricula about computer science, but in almost all scientific curricula. To compare programs, teachers can take advantage of several analysis techniques that semi-automate plagiarism detection These techniques are useful, but lose effectiveness when the text of the exam describes some of the elements that should be structurally part of the solution, e.g., signatures of methods and attribute names. Texts with this characteristic are typical in early programmino courses. Loss of effectiveness is caused by the many common parts that are shared between programs due to the suggestions in the text of the exam, rather than because of plagiarism. The major consequence of the reduced effectiveness is the generation of many false alarms that cause teachers to waste a significant amount of time on peer inspections of program pairs that do not result from plagiarism.
The AuDeNTES plagiarism detection technique has the unique capability to use the solution of the exam (developed by teachers) for automatically filtering the parts that are not relevant for plagiarism detection from students’ programs and thus focusing the analysis on the most relevant parts of the programs. Exploiting the solution produces a significant improvement on the quality of the results.