2 ms·
There's software to detect copy-pasted code or plagiarized (it analyses the syntax tree so renaming the variables and changing indentation won't fool it!). The
by 908B64B197 6y ago
There's software to detect copy-pasted code or plagiarized (it analyses the syntax tree so renaming the variables and changing indentation won't fool it!).
The best however, is a 1:1 code review with a TA or Prof. Randomly jumping to files, reading the code and asking questions about it. Extremely hard to copy a codebase and learn it well enough you can explain it but really easy to do if you wrote it yourself.
- leetcrew 6y agoI have to wonder how well that analysis code works in practice. for a lot of intro-level (and some mid-level) course assignments, there's only one or two straightforward ways to write the code. sometimes these assignments are just pasting together sample code from the powerpoint with a couple tweaks. I was a TA for a few of these courses, and the correct solutions tended to be very similar. I was only sure students were cheating when they made several of the same mistakes. re the 1:1s with TA/professor, I agree. if you can explain code that you didn't even write, you might be even more deserving of that A.
- lostcolony 6y ago100%. We had similar software when I was a TA, and I just ignored it and left it to the professor to deal with. I found a few cases of obvious plagiarism though, for the exact same reason you mention, too - the same mistakes.
- 908B64B197 6y agoIt's completely useless for intro courses. But in my experience, intro courses are completely bimodal for CS: some students just get it and some just don't. Sure the later can copy their assignments. But once they'll hit a non-trivial assignment or a code review in a more advance class they won't be able to fake it anymore. You are just delaying their transfer to another major. And that gives the CS department one extra course they can collect tuition from and justify hiring TAs for...
- amalcon 6y agoYeah, this description immediately brought to mind FizzBuzz. In a C-like language, there's basically a whole 3 ways to write it without doing something esoteric (loop a switch, loop an if/elseif construct, try to be cute with independent ifs and a boolean).
- oxylibrium 6y agoThere's always going to be software to defeat those tools! I've done my fair share of experimentation with source-to-source transformations; you can do things like substitute for/while loops, change conditions around, inline/outline various constants and variable declarations... The sky's the limit when you think about it really.