-
Notifications
You must be signed in to change notification settings - Fork 3
Grading (for humans)
The whole point of grader
is to make the burden of grading easier on human graders.
Let's say a human grader (you, perhaps) is preparing to evaluate a new assignment. Their interaction with grader
will be something like the following:
Sets up the grader by creating a grader.yml
at the root of the grader directory.
grader.py init course_name
Initializing an assignment prepares a place in grader
's folder structure for a new assignment. Refer to the [[ page on grader
's folder structure | Folder-Structure ]] for details on how that is laid out. The main idea is that initializing a new assignment should prepare places for files relevant to a new assignment. This includes configuration files that specify how to grade assignments. There are a couple of different ways to initialize an assignment...
Create a blank assignment with simple configuration files:
grader.py new new_assignment
Create an assignment whose configuration is backed by a git repository
grader.py new [email protected].../new_assignment.git
After creating a place to drop assignments, we need to fetch those assignments. This can be done a couple of different ways:
Use SSH to copy all relevant files into new_assignment
's folder structure
grader.py fetch new_assignment ssh://..../course/8/*.tar.gz
Use git to clone all forks of a repo (may require extra thought)
grader.py fetch new_assignment git@.../forked_assignment.git
Grade 'em.
grader.py grade new_assignment
View the outcome by printing grades to stdout
. This should make it trivial to copy grades into Blackboard/Canvas/Whatever.
grader.py results --sort-by=last_name new_assignment