The grading engine is deterministic and stores both the raw answer and the normalized answer.
exact: string comparison after trimming and spacing normalization.integer: integer numeric comparison.decimal: decimal numeric comparison with tolerance.fraction: rational equivalence, so3/6equals1/2.set: unordered collection of values.1, 2is equivalent to2; 1. Useful for problems with multiple answers.multiple: any answer in the list ofacceptedAnswersis correct (e.g., choice A or B).multiple_choice: two to 20 visible options; the exact, case-sensitive stored option selected by the student is graded. Choices may contain LaTeX and safe problem image tokens. This is distinct frommultiple, which is a free-response field with alternative accepted answers.expression: numeric evaluation. The system calculates the numeric value of theanswerKeyand compares it to the value of the student's input.- Equivalency:
0.5matches1/2.sqrt(2)matches2^0.5. - Implicit Math:
2piis recognized as2 * pi. - Functions: Supports
sin,cos,tan,ln,log, etc.
- Equivalency:
- Trim leading and trailing whitespace.
- Collapse repeated whitespace.
- Normalize case unless the problem is case-sensitive.
- Preserve the original raw answer in the response record.
- Normalize equivalent fractions for
fractionanswers. - Sort unordered values for
setanswers.
When an admin edits an answer key or accepted answers, the system should:
- Create an audit record.
- Regrade affected responses.
- Update attempt totals.
- Notify students if a score changed.