Teaching with Speliora

Grading a class

Grading a class is an Education feature: spl grade today, and the class page in a later release, need an Education license on the computer that grades. Students need no license: Check my work gives them the same marks, free, in every edition.

Collect the hand-ins

  1. Students hand in with File › Export…, then Project file: one .speliora file each, with the model, its training settings, the lab and their session summary.
  2. Download them from your learning management system into one folder. Subfolders are fine.
  3. Keep the lab’s own assignment.json next to it. The grader uses yours, never the copy inside a student’s file.

Grade the folder

Run spl grade submissions/ --assignment assignment.json -o grades/.

Nothing in a hand-in runs: the grader reads each file and applies the lab’s checks, as Check my work does. Hundreds of files take seconds. It writes three things into grades/:

  • grades.csv, one row per file: its points, each check passed or failed, the error codes its model still had, the feedback of the checks it failed, and the session’s times and counts. A cell that would start a spreadsheet formula is made safe.
  • summary.txt: the average, how many got every point, each check’s share of passes, each error’s share, the files that could not be read and why, and the class’s median session times.
  • feedback/: one text file per student, each check with what it found and its points. You can hand these back as they are.

A file that is damaged, too large or not a project gets 0 points, with the reason in its row and in the summary.

Read the results

  • Start with the summary. “41% hit E_PORT_RANK_NEEDS_FEATURES” says what to explain first in the next class.
  • The session times say how long the lab took: to a first model without errors, to a first training run and to full points.
  • Runs stopped by the admin are counted, so a run cut short by the next class doesn’t count against a student.
  • A student’s model opens in the app from their file, to see what they built. A hand-in that kept its saved versions shows how the model grew, with File › Compare models….

Put the grades in your gradebook

grades.csv opens in any spreadsheet, and most learning management systems import a CSV of points. Match the submission column to your roster.

With the class page

The class page will show a lab and its hand-ins on one page of the app, from files, with nothing sent anywhere:

  • the roster from your LMS’s CSV, beside the files found, with who is missing and who handed in twice;
  • each student’s points and checks, their feedback, and their model, read-only;
  • the class’s summary;
  • exports to grades.csv, Gradescope’s results file and PrairieLearn’s.

The roster, the hand-ins and the grades stay in your folder, and the support bundle leaves them out.