A code autograder for student homework submissions
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.2 KiB

8 years ago
8 years ago
8 years ago
8 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. kgrader
  2. =======
  3. __kgrader__ is a code autograder, originally created by the course staff of
  4. [CS 296-41](https://cs.illinois.edu/courses/profile/CS296) (Systems Programming
  5. Honors) at the University of Illinois to grade student homework submissions.
  6. It is written in Ruby.
  7. Installation
  8. ------------
  9. Download kgrader over git:
  10. git clone https://github.com/earwig/kgrader.git kgrader
  11. cd kgrader
  12. If you want to use UIUC-specific assignment specifications (requires special
  13. permissions, but you have those if you want to grade our assignments, right?):
  14. git submodule update --init
  15. Usage
  16. -----
  17. kgrader uses rake as its command-line interface.
  18. ### Setup
  19. To show all known classes, semesters, and assignments:
  20. rake list
  21. To load a roster for a specific semester:
  22. rake roster cs123 myroster.csv semester=sp16
  23. To load a roster for the current semester:
  24. rake roster cs123 myroster.csv
  25. ### Grading
  26. To grade a particular assignment (e.g., "mp1" for the "cs123" course):
  27. rake grade cs123 mp1
  28. After verifying that everything looks good, push the grade reports with:
  29. rake commit cs123 mp1
  30. ### Housekeeping
  31. To do some basic cleanup (i.e., trash uncommitted grading attempts, or reset
  32. messy internal state after a bad run):
  33. rake clean
  34. To restore kgrader to its "factory defaults" (i.e., everything `clean` does,
  35. but also delete checked-out student repos and roster files -- dangerous!):
  36. rake clobber
  37. ### Advanced
  38. `grade` has an extended syntax for different options.
  39. To specify the semester, instead of the inferred current one:
  40. rake grade cs123 mp1 semester=sp16
  41. To set a cutoff date after which commits will be ignored:
  42. rake grade cs123 mp1 due="March 20, 2016 11:59:59 PM CDT"
  43. To grade without fetching new student repo changes:
  44. rake grade cs123 mp1 fetch=no
  45. To grade specific students only:
  46. rake grade cs123 mp1 students=ksmith12
  47. rake grade cs123 mp1 students=ksmith12,bcooper3,mjones14
  48. Normally, kgrader will only regrade a particular student's assignment if their
  49. repo has changed since the last run. To forcibly regrade:
  50. rake grade cs123 mp1 regrade=yes
  51. You can combine these arguments in any meaningful way. `semester` is available
  52. for `roster` and `commit`, and and `students` is available for `commit`.