GitHub Classroom and Travis CI Improved Students’ Grades(github.blog)
github.blog
GitHub Classroom and Travis CI Improved Students’ Grades
https://github.blog/2019-02-12-how-github-classroom-and-travis-ci-improved-students-grades/
9 comments
Wouldn't this be the case for any class that supplies an auto grader or test suite?
Yup, but using Travis as the platform for an autograder makes it A LOT easier for teachers/professors with less access to dev time to implement a great iteration platform. At Berkeley our intro classes had world-class infrastructure autograders (release I believe as ok.py https://okpy.org/) - but I imagine less staffed courses could benefit from a workflow like this. Plus, it gives students the benefit of familiarity with actual tools that are in use in the industry.
How can they learn anything when there is no one looking at their code !? It would probably be easy to cheat too.
> It would probably be easy to cheat too.
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.
---
[1] http://theory.stanford.edu/~aiken/moss/
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.
---
[1] http://theory.stanford.edu/~aiken/moss/
Minor correction: moss operates at the lexical/token level, not the syntax tree. It matches fragments like IDENT EQUALS LPAREN NUMBER TIMES IDENT RPAREN DIVIDE NUMBER -- so renaming and changing indents (the most common cheater obfuscations) don't change anything!
Second hand anecdote: In a university C++ class, programming assignments were headed by deducting points for number of compiler errors, once you roughly had all the pieces. So students would write lots of code that roughly looks relevant to the problem and then put a semicolon on the main() function declaration to make it look like there was only one compiler error :-)
> How can they learn anything when there is no one looking at their code !?
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.
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.
People who wanted to cheat were already cheating.