Come faccio a sapere che due codici sorgente (indipendentemente dalla loro lingua C, Java, Lisp ...) hanno forti indizi che potrebbero essere un plagio l'uno dell'altro?Come posso controllare i compiti del codice sorgente per i plagi?
Contesto: Ho intenzione di tenere il mio primo seminario sui linguaggi del computer. Abbiamo preparato piccoli esercizi per i principali linguaggi di programmazione come C/C++, Python, Java, ... ma anche OCaml, Haskell, ... per dare agli studenti qualche introduzione pratica (anche in paradigmi di programmazione). Stimiamo di avere ~ 300 studenti con più di 50 attività di programmazione per persona. Quindi una singola persona non può controllare tutti i compiti a casa.
Immagino che le tecniche anti plagio utilizzate per le lingue naturali (saggi, articoli, capitoli di libri, ecc.) Non funzionino per il codice sorgente, giusto? Anche le soluzioni a quelle attività di programmazione avranno una somiglianza intrinseca a causa dell'interfaccia richiesta.
Ho fatto un po 'di ricerca ed ho trovato: MOSS menzionate: Checking for code plagiarism with JavaScript e Variable renaming for plagiarism detection for C/C++
Bella idea. Immagino che tu possa fare un dottorato su di esso :) – gefei
Recentemente qualcuno ha testato alcuni software di rilevamento di plagio sui compiti scientifici (quindi questo non sta controllando il codice sorgente): http://plagiat.htw-berlin.de/software-en/test2013/ ma può ancora essere utile per altri proprietari di casa. – math
Ci sono alcuni documenti sul rilevamento del plagio del codice sorgente trovato qui: http://www.ics.heacademy.ac.uk/resources/assessment/plagiarism/research_sourcecode.html – ElFik