如何检查抄袭源代码 - 作业?

问题描述:

我如何判断两个源代码(独立于它们的语言C,Java,Lisp ...)有强烈的迹象表明它们可能会相互剽窃?如何检查抄袭源代码 - 作业?

背景:我要给我的第一个计算机语言研讨会。我们为C/C++,Python,Java等......以及OCaml,Haskell等主要编程语言编写了小练习,为学生们提供了一些实用的介绍(也涉及编程范例)。我们估计有大​​约300名学生每人有超过50个编程任务。所以一个人不能检查所有的作业。

我想用于自然语言(散文,论文,书籍章节等)的反剽窃技术不适用于源代码,对吧?由于所需的接口,这些编程任务的解决方案也会具有内在的相似性。

我已经做了一些搜索,发现:Checking for code plagiarism with JavaScriptVariable renaming for plagiarism detection for C/C++

+0

不错的主意。我想你可以在上面写博士:) – gefei 2012-04-25 09:39:02

+0

最近有人测试了一些关于科学家庭作业的剽窃检测软件(所以这里没有检查源代码):http://plagiat.htw-berlin.de/software-en/test2013/但仍可能对其他家庭有用。 – math 2013-10-08 06:20:36

+0

关于源代码抄袭检测的​​几篇论文在这里找到:http://www.ics.heacademy.ac.uk/resources/assessment/plagiarism/research_sourcecode.html – ElFik 2014-01-08 11:34:41

奖检测它一个小奖:中提到MOSS。考虑到两杯啤酒的可能性,学生们会将网倒在网上数小时,寻找其他学生提交的作品。

对犯罪行为处以巨额罚款,这是自负盈亏,奖励学生们自己做工作 - 他们想要啤酒,并且不会为自己的剽窃工作而开放报复。

+5

小心谨慎,学生们将互相配对,根据惩罚的严重程度“检测”彼此的抄袭行为和学生的冷漠/态度 – Gareth 2012-04-30 01:33:09

+0

总有一群学生彼此不喜欢,所以我猜马丁所说的不仅仅是授予。我只是要小心,不要公开发现它的那个人的名字,但是在一天结束时,你必须问自己这个学生会建立什么样的人格。 – Marco 2015-06-04 16:27:02