This repository provides a framework for autograding in OCaml This is a reimplementation of the ProjectSavannah/autograding utilities, initially forked from the gradescope_ocaml repository.
This repository provides an adaptation of the ProjectSavannah/autograding framework with additional QCheck integration for automatic test case generation.
The codebase, in addition to implementing the autograding functionalities, provides a demo for grading the file sum.ml. It has the following structure:
bin/main.ml- the primary grading mechanism, which runs the designated autograders for each task in a problem according toGraderMap.ml
impl/- Where the student implementation is stored during grading
refsol/- Where the reference solution is stored during grading
tests/GraderMap.ml- a mapping of tasks to their respective autograder for each problem in an assignment- Contains the autograders for each task (for all problems on an assignment)
util/- Autograding utility functions
To run the demo, you should run setup.sh followed by run-autograder.
For a detailed description of the grading utilities, see here.
The code in this repository is based on the following two projects:
- ProjectSavannah/autograding, as this project is effectively a one-to-one translation of the SML autograding utilities defined there,
- gradescope_ocaml, which provided guidance for how to integrate OCaml grading frameworks with Gradescope