Skip to content

clusterhack/python-autograde

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<style type="text/css"> pre code.language-console { line-height: normal; } </style>

Python autograding framework for GradeScope

A simple (and quite opinonated) "framework" for Gradescope autograders, written in Python, for Python assignments.

Gradescope container

We use the limited shellscript-based method to create the autograder container. Since the gradescope/auto-build container is based on Ubuntu Focal [sic], with no option to use a more recent O/S version, we set up Python from source (using pyenv, as of this writing).

Directory structure summary

📁 /autograder
├─ 📁 source
│  ├─ skeleton.zip [*1]
│  ├─ 📁 assignment [*1]
│  ├─ 📁 pyscope
│  ├─ 📁 etc
│  ├─ run_autograder
│  └─ setup.sh
├─ run_autograder [*2]
├─ setup.sh [*2]
├─ 📁 submission [*2]
└─ 📁 results [*2]

Certain design choices were made in order to support backwards compatibility with our prior unit-testing tooling for homework assingment. In particular, the autograder zipfile may optionally include a skeleton.zip file, whose contents will be unzipped into the assignment folder. The latter does not need to exist in the zipfile. Other than these two items [*1], everything else does not change between assignments.

Gradescope sets up everything else [*2]. We have consciously chosen to re-arrange things within the source folder, which should hopefully simplify testing/debugging the setup on a local machine (i.e., without requiring the full Gradescope environment). Also, decoupling the framework from Gradescope (as much as possible) can't be a bad thing, long term...

Summary of workflow

TODO

About

Simple and opinionated framework for Gradescope autograders for and in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published