https://github.com/earwig/kgrader
A code autograder for student homework submissions
https://github.com/earwig/kgrader
autograder ruby
Last synced: 6 months ago
JSON representation
A code autograder for student homework submissions
- Host: GitHub
- URL: https://github.com/earwig/kgrader
- Owner: earwig
- Created: 2016-03-18T23:10:37.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-04-28T17:49:56.000Z (over 9 years ago)
- Last Synced: 2025-02-10T00:24:50.368Z (8 months ago)
- Topics: autograder, ruby
- Language: Ruby
- Homepage:
- Size: 45.9 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
kgrader
=======__kgrader__ is a code autograder, originally created by the course staff of
[CS 296-41](https://cs.illinois.edu/courses/profile/CS296) (Systems Programming
Honors) at the University of Illinois to grade student homework submissions.It is written in Ruby.
Installation
------------kgrader was developed using Ruby 2.2, though it should work with any recent
version of Ruby.Install dependencies with gem:
gem install nokogiri ruby-progressbar
Download kgrader over git:
git clone https://github.com/earwig/kgrader.git kgrader
cd kgraderIf you want to use UIUC-specific assignment specifications (requires special
permissions, but you have those if you want to grade our assignments, right?):git submodule update --init
Usage
-----kgrader uses rake as its command-line interface.
### Setup
To show all known classes, semesters, and assignments:
rake list
To load a roster (a newline-delimited list of student identifiers) for the
current semester of a particular course (e.g. "cs123"):rake roster cs123 myroster.csv
You can also specify the semester:
rake roster cs123 myroster.csv sp16
### Grading
To grade a particular assignment (e.g., "mp1" for "cs123"):
rake grade cs123 mp1
After verifying that everything looks good, push the grade reports with:
rake commit cs123 mp1
### Housekeeping
To do some basic cleanup (i.e., trash uncommitted grading attempts, or reset
messy internal state after a bad run):rake clean
To restore kgrader to its "factory defaults" (i.e., everything `clean` does,
but also delete checked-out student repos and roster files -- dangerous!):rake clobber
### Advanced
`grade` has an extended syntax for different options.
To specify the semester, instead of the inferred current one:
rake grade cs123 mp1 semester=sp16
To set a cutoff date after which commits will be ignored:
rake grade cs123 mp1 due="March 20, 2016 11:59:59 PM CDT"
To grade without fetching new student repo changes:
rake grade cs123 mp1 fetch=no
To grade specific students only:
rake grade cs123 mp1 students=ksmith12
rake grade cs123 mp1 students=ksmith12,bcooper3,mjones14Normally, kgrader will only regrade a particular student's assignment if their
repo has changed since the last run. To forcibly regrade:rake grade cs123 mp1 regrade=yes
You can enable superscoring as well, which will re-run tests that a student
failed in an attempt to see if they can get a higher grade:rake grade cs123 mp1 superscore=yes
You can combine these arguments in any meaningful way. `semester` and
`students` are also available options for `commit`.