Otter Grader is a light-weight, modular open-source autograder developed by the Data Science Education Program at UC Berkeley. It is designed to work with classes at any scale by abstracting away the autograding internals in a way that is compatible with any instructor's assignment distribution and collection pipeline. Otter supports local grading through parallel Docker containers, grading using the autograder platforms of 3rd party learning management systems (LMSs), the deployment of an Otter-managed grading virtual machine, and a client package that allows students to run public checks on their own machines. Otter is designed to grade Python scripts and Jupyter Notebooks, and is compatible with a few different LMSs, including Canvas and Gradescope.
The documentation for Otter can be found here.
PRs are welcome! Please submit a PR to the master branch with any updates. Make sure to update the changelog in the docs with any information about the contribution.
To set up the testing environment, install the requirements in requirements.txt
and run the test
directory as a module to execute the tests:
python3 -m test
To run the tests for a specific tool, add the command-line path for that tool to the command. For example, to run the tests for otter generate autograder
, run
python3 -m test generate autograder
or to run all tests for commands under otter generate
, run
python3 -m test generate
The changelog can be found in the documentation.