Cheating Detector from Georgia Tech
brightboy writes "According to this Yahoo! News article, Georgia Tech has developed and implemented a "cheating detector"; that is, a program which compares students' coding assignments to each other and detects exact matches. This was used for two undergraduate classes: "Introduction to Computing" (required for any student in the College of Computing) and "Object Oriented Programming" (required for Computer Science majors)." Cuz
remember programmers: in the real world you are fired if you consult
with a co-worker ;)
Your Hello World program is exactly the same as Johnny's. You fail. You're kicked out of school. Good bye.
m00.
I always found that it wasn't easy to cheat. If I copy and pasted somebodies code, I had to go back through and change it all around so that I couldn't be caught cheating. This often proved to be more difficult than actually doing the project myself would have been.
to stop cheating, will GT bust them for plagiarism? ;-)
Read the EFF's Fair Use FAQ
In the real world, you _would_ get fired for taking credit for someone else's work, trying to pass it off on your own.
Actually, from what I've seen, in the real world you get promoted for taking credit for someone else's work, especially when it's one of your underlings who slaved away while you were out on the golf course.
Then you are known as a JavaScript coder
"Flame away, I wear asbestos underwear"
Knowing slashdot, they'd prolly implement it by comparing how well they compress.
You know they're dying to use this revolutionary compression filter technology in other places!
C-X C-S
in general... they are the extreme... there is a lot of general cheating going on and I think something like this is a good idea... to catch "the smarter cheaters"
-- Note: These Comments are Generated by ME! Not You! ME!
Hmmm...
Makes me think of the possibility of a new product! anti-cheatfinder!
Parse the original code and then re-organize the parse tree to be different yet functionally equivalent. Output the new code based on the modified parse tree. No need to change the variable names since cheatfinder ignores them anyways.
Then, sell the product to cheaters around the world! Hopefully they will go get jobs at microsoft!
Jeff
ipv6 is my vpn
....who thought he would cheat by copying someone else's code.
But he was pretty paranoid about getting caught, and realised that a verbatim copy wasn't enough, you'd have to change the variable names, comments etc.
So he did some research, wrote himself a little parser that read in the source code and built a parse tree of the program. He then wrote another function that spat out all the code again but with different spacing, block ordering and some simple variable renaming (e.g. x,y,x->a,b,c)
To make sure the structure of the code didn't give him away, he wrote a few code transformations, e.g. if a then b else c became if !a then c else b. The order of non-conflicting assignments were swapped, and mathematic expressions were re-arranged (sometimes actually optimising the original code in the process!).
Still wasn't good enough, the comments needed changing and the structure of the code looked the same. So he linked in a thesaurus and NLP/AUG engine to change the words in a meaning-preserving manner. Same principle could be applied to the more complex variable and function names, so buildTree became makeStructure etc.
Finally, to put the icing on the cake he modified the program so it could output the code in a couple of different functional languages. Made the plagiarism almost impossible to spot.
Best programmer I ever met.
Oh my God. I have to get some underlings. I'd love to go golfing.