Skip to content

Comment on Did a reporter just solve the bitcoin mystery?parent

Comments

One of my CS professors claimed he had a script to analyze all of his students' programming assignments to find possible instances of cheating. I have no idea how extensive his algorithm was: it could have been anything from a simple whitespace and variable name normalization to an analysis of the abstract syntax tree. Or he may have just been bluffing.

Here's a very simple trick that works for programming languages with a C-style syntax: strip out everything except parentheses, braces, and semicolons and compare. I know that it was used successfully in an algorithms course (shortest paths, flows, that kind of stuff) which had stand-alone implementations of the algorithms as assignments.

Edit: Of course there was a manual inspection step involved as well, this matching process was only used to flag suspicious instances.

And I wouldn't punish cheating in those courses directly: Just add the requirement that people need to be able to explain their solutions however they arrived at them. Being able to explain other people's code is a useful skill, too.

It may be a useful skill, but it's also not what's being taught in an algorithms course.

Likely something like http://theory.stanford.edu/~aiken/moss/, I'd guess.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.