plagiarism-detection

How do I check source-code-homework for plagiarism?


How do I tell that two source-codes (independent of their language C,Java,Lisp...) have strong indications that they could be plagiarism of each other?

Background: I going to give my first seminar on computer languages. We have prepared small exercises for major programming languages such as C/C++, Python, Java,... but also OCaml, Haskell,... to give the students some practical introduction (also into programming paradigms). We estimate to have ~300 students with more than 50 programming tasks per person. So a single person cannot check all homeworks.

I guess anti plagiarism techniques used for natural languages (essays, papers, book chapters, etc) will not work for source code, right? Also solutions to those programming tasks will have inherent similarity due to the demanded interface.

I've done a little search and found: MOSS mentioned in: Checking for code plagiarism with JavaScript and Variable renaming for plagiarism detection for C/C++


Solution

  • Award a small prize for detecting it. Given the possibility of a couple beers, students will pour over the net for hours, looking for matches from other students submissions.

    With large fines for offences, it's self-financing and rewards students who do their own work - they want beer and are not going to leave themselves open to revenge by plagiarising work themselves!