shriram / gradescope-racket

Infrastructure to autograde Racket code on Gradescope
MIT License
17 stars 8 forks source link

better support for multi-function assignments #4

Open shriram opened 4 years ago

shriram commented 4 years ago

Some assignments (e.g., cs019 summer placement, or equivalent of cs019 data scripting) have lots of separate problems bundled into one homework. Students are likely to develop these incrementally. Should they get output for each function?

Right now the autograder halts when it can't find a definition of any of the required functions. This means they would get no feedback at all even if they're done with some problems. They can manually work around it with stub functions, but that would create busywork and produce irritating output, for no good use. (And may reveal something of the intended tests before they've even tried anything.)

There seem to be two alternatives:

  1. Break down the homework into several individual assignments. This seems quite annoying.

  2. Add support to the auto-grader to just skip tests associated with a name. This requires some redesign of the infrastructure, because name-extraction and testing are currently disjoint.

Nevertheless, the second option above seems to be the best way to go?

max-heller commented 4 years ago

Another way to handle this if the functions are independent of one another might be to split up the test suite into files for each function, so they don't need all of the functions to be defined to run. Not sure how well that fits into your current model for racket, but I could see making it work for 19/pyret.