This struck out at me: > There are objective measures of code similarity that can be quoted, like the edit distance between abstract syntax trees ... If this became the primary legal metric, then programmers who stole code would change the code so that functions achieved the same output with practically no AST similarity. That is, they could maximize functional similarity while minimzing code similarity. This would b…
It worked fairly well. I basically took the levenshtein algorithm and mapped it directly to ASTs and used that to find the % of similar elements in the code. It worked a few times and I caught 1 or 2 groups of cheaters.
....sadly in that class you were allowed to "work together" you just had to include a note saying you did so I've got no "kill count" anymore and I'm not planning on TAing any time soon (at least not for python).
Also that code was hacked together in a weekend and that anti-cheet was done in 2-3 hr. It's not production ready by a longshot.
[0] - https://github.com/gravypod/GradeO/blob/master/libs/cheating...