Plagiarism is a common problem in undergraduate computer science courses that involve assessment of programming assignments, and the Department of Informatics (Ifi) at the University of Oslo is no exception. One way of addressing the problem is to use tools that can automate the detection of suspected plagiarized solutions.
In this thesis I describe an algorithm for identifying suspicious student solutions of programming assignments, and a new stand-alone system built around the algorithm. A similar version of the underlying algorithm has been used for several years in three courses in Java programming at the department. The algorithm has been incorporated into the Joly application, and it has proven effective in identifying cases of plagiarism. It has been applied as part of anongoing effort to reduce code plagiarism, and there are already indications of improved learning outcomes in one of the courses where it is used. I will call the algorithm Preprocess-Reorder-Diff (PRD), which indicates the main steps it uses to compare the structure of program codes. The new stand-alone application is called Antics -- Anti-Cheating System for source code assignments. It wasdeveloped as a bridge between the plagiarism detection system Joly, and Devilry, the new system for delivery of student assignments being used at Ifi.