GitHub Classroom and Travis CI Improved Students’ Grades
github.blog
github.blog
When I was in college a few years ago, one professor included this thing[1] in his (shell, spit and duct tape) auto-grading system. It works by generating an AST of the input and comparing it against a bank, e.g. other submissions from the same class or prior years' classes. Apparently, it worked pretty well for flagging potentially problematic portions for manual review.
In a well-designed implementation of an auto-grading pipeline, I doubt that plagiarism is much more of a problem than in a purely manual grading scheme.
---
Well, compiler errors are actually quite good nowadays.
And, generally, the test cases are good enough that you make sure that the corner cases are handled.
> It would probably be easy to cheat too.
It depends upon what you mean by "cheat".
Generally, as the instructor, you hold back some tests that you bring online once the assignment "closes". This prevents people from cheating the tester.
If you mean "cheat" as in "have someone else write your code", well, that's what exams are for.