Something or other, whatever!

Christian Lawson-Perfect's homepage

JME marking algorithms

A language for defining marking algorithms

Demo

A marking algorithm is a set of notes.

A note is a name, an optional description, and a list of procedures.

Applying a procedure returns a JME value or an operation on the state.

The state is a stack of credit/validation/feedback instructions. The only operation is to append instructions to the stack.

Evaluating a note consists of applying all of its procedures, and storing the final JME value and state.

Execution order of the notes is determined by dependency.

(Some context: 'JME' is the name for the scripting language used by the e-assessment system Numbas. Here's a reference for the JME language.)

Special notes

The following notes are required:

State operations

These operations are implemented as functions which return a list of state instruction tokens.

Inputs

The following variables are available at any point: