2012-04-25 349 views
19

我如何判斷兩個源代碼(獨立於它們的語言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

回答

6

獎檢測它一個小獎:中提到MOSS。考慮到兩杯啤酒的可能性,學生們會將網倒在網上數小時,尋找其他學生提交的作品。

對犯罪行爲處以鉅額罰款,這是自負盈虧,獎勵學生們自己做工作 - 他們想要啤酒,並且不會爲自己的剽竊工作而開放報復。

+5

小心謹慎,學生們將互相配對,根據懲罰的嚴重程度「檢測」彼此的抄襲行爲和學生的冷漠/態度 – Gareth 2012-04-30 01:33:09

+0

總有一羣學生彼此不喜歡,所以我猜馬丁所說的不僅僅是授予。我只是要小心,不要公開發現它的那個人的名字,但是在一天結束時,你必須問自己這個學生會建立什麼樣的人格。 – Marco 2015-06-04 16:27:02