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.6 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. kgrader was developed using Ruby 2.2, though it should work with any recent
  10. version of Ruby.
  11. Install dependencies with gem:
  12. gem install nokogiri ruby-progressbar
  13. Download kgrader over git:
  14. git clone https://github.com/earwig/kgrader.git kgrader
  15. cd kgrader
  16. If you want to use UIUC-specific assignment specifications (requires special
  17. permissions, but you have those if you want to grade our assignments, right?):
  18. git submodule update --init
  19. Usage
  20. -----
  21. kgrader uses rake as its command-line interface.
  22. ### Setup
  23. To show all known classes, semesters, and assignments:
  24. rake list
  25. To load a roster (a newline-delimited list of student identifiers) for the
  26. current semester of a particular course (e.g. "cs123"):
  27. rake roster cs123 myroster.csv
  28. You can also specify the semester:
  29. rake roster cs123 myroster.csv sp16
  30. ### Grading
  31. To grade a particular assignment (e.g., "mp1" for "cs123"):
  32. rake grade cs123 mp1
  33. After verifying that everything looks good, push the grade reports with:
  34. rake commit cs123 mp1
  35. ### Housekeeping
  36. To do some basic cleanup (i.e., trash uncommitted grading attempts, or reset
  37. messy internal state after a bad run):
  38. rake clean
  39. To restore kgrader to its "factory defaults" (i.e., everything `clean` does,
  40. but also delete checked-out student repos and roster files -- dangerous!):
  41. rake clobber
  42. ### Advanced
  43. `grade` has an extended syntax for different options.
  44. To specify the semester, instead of the inferred current one:
  45. rake grade cs123 mp1 semester=sp16
  46. To set a cutoff date after which commits will be ignored:
  47. rake grade cs123 mp1 due="March 20, 2016 11:59:59 PM CDT"
  48. To grade without fetching new student repo changes:
  49. rake grade cs123 mp1 fetch=no
  50. To grade specific students only:
  51. rake grade cs123 mp1 students=ksmith12
  52. rake grade cs123 mp1 students=ksmith12,bcooper3,mjones14
  53. Normally, kgrader will only regrade a particular student's assignment if their
  54. repo has changed since the last run. To forcibly regrade:
  55. rake grade cs123 mp1 regrade=yes
  56. You can enable superscoring as well, which will re-run tests that a student
  57. failed in an attempt to see if they can get a higher grade:
  58. rake grade cs123 mp1 superscore=yes
  59. You can combine these arguments in any meaningful way. `semester` and
  60. `students` are also available options for `commit`.