A subset of okpy that only does grading.
This library can be used to autograde Jupyter Notebooks and Python files.
Instructors can write tests in a subset of the okpy test format (other formats coming soon), and students can dynamically check if their code is correct or not. These notebooks / .py files can later be collected and a grade assigned to them automatically.
okpy is used at Berkeley for a number of large classes (CS61A, data8, etc). It has a lot of features that are very useful for large and diverse classes, such as:
- Office Hours management
- Student assignment statistics
- Plagiarism detection
- Personalized feedback
- Backups of student submissions
- Support for Python, Scheme and other languages
- Hiding / locking tests when students are running them locally
- Mass automatic grading
And many more.
However, this comes with a complexity cost for instructors who only need a subset of these features and sysadmins operating an okpy server installation.
This project is tightly scoped to only do automatic grading, and nothing else.
Lots of credit to the amazing teams that have worked on okpy over the years.