redpenpal  Documentation

Step-by-step guide

  1. Install this program.
    mkdir redpenpal; cd redpenpal
    fossil clone redpenpal.fossil
    fossil open redpenpal.fossil
    python3 install --user
  2. Create a fossil repository for all your grading stuff and regularly commit to it. While you take a break from marking or you're off showing someone else a funny mistake you found, what if your cat walks on your keyboard and does "ctrl-a, delete, ctrl-s, alt-f4"? OK pretty unlikely but you see my point.
  3. Sort the assignments by student ID.
  4. Download the student list. Open it in a spreadsheet program. Make sure student id column has header student_id. Create a column for the late days. Put header late_days on it.
  5. Go through each assignment, and put a "0" in the late days column if it's there (and leave it empty if they haven't submitted it yet). This should be quick since the assignments are sorted.
  6. Export the spreadsheet to a CSV file, comma-delimited. Save it as students.csv.
  7. Create empty directories students/ and questions/.
  8. Generate the question files. If you have 3 questions, for example, you would enter
    python3 -m --template template.lyx --students students.csv --students-late-column late_days --questions 1,2,3 --question-pattern 'questions/{}.lyx' --generate-question
  9. Set the point weight per question in the question files by modifying the %redpenpal.worth line at the beginning. If you'd like to grade out something other than 5, modify the %redpenpal.outof line as well. The value (in points) of a question is value_you_gave/outof*worth.
  10. Actual marking! Open up questions/1.lyx, and start marking. Put the grade in the LyxNote next to the student id, and enter your remarks below if you have any. Don't forget to refer to them from within the assignment (by which I mean writing something like "[1a]" on the paper copy). Save and commit regularly.
  11. OK, so you're done marking. Generate the student files using the command below, as well as the big combined students.pdf that you can send over to the printer.
    python3 -m --template template.lyx --students students.csv --students-late-column late_days --questions 1,2,3 --question-pattern 'questions/{}.lyx' --generate-student --student-pattern students/{}.lyx' --title "2016F/PHY1000/A3" --grades-csv grades.csv --students-pdf students.pdf
    If you also want the columns in the grades CSV to be prefixed with A3 (as in "assignment 3"), you would use --grades-csv-prefix A3.
  12. You're almost done. Print out students.pdf and attach/staple each student's sheet to their assignment.
  13. Pass out from exhaustion.