Skip to content

Proposition for a generic marking scheme #427

@nthiery

Description

@nthiery

Motivations

  • Enable mixed schemes with positive and negative comments;
    e.g. bonus points.
  • Enable criteria which can have several values;
    e.g.: grammar between 0 (crappy) and 3 (perfect), readability between 0 (crappy) and 3 (perfect).
  • Enable retrospective changes to the total score of an exercise without affecting its normalized scores.
  • Enable exam comments that can be applied to each exercise;
    E.g. correct: all points; empty: 0 points.

Examples

Exam-wide comments:

  • correct: 100%
  • empty: 0%
  • false: 0%

Question 1 on 10 points with three criteria:

  • readability: 30%, 3 stars
  • grammar: 30%, 3 stars
  • content: 40%, 4 stars

Question 2 on 4 points with a negative scale:

  • default value: 100%
  • mistake 1: -1
  • mistake 2: -1
  • syntax: -2, 2 stars (can be bad or very bad)
  • bonus: +1

Question 3 on 4 points with a positive scale:

  • default value: 0%
  • item 1: +30%
  • item 2: +40%
  • item 3: +30%
  • readability: -5%

Note: changing the total number of points for Question 1 and Question 3 automatically rescales the scores and relative weight of these scores, but not not the normalized scores; for Question 2, the normalized scores are also affected.

Formalization (draft of)

An exercise has:

  • a total score;
  • a default score, expressed in percentage of the total score;
    e.g. 100% for use cases using a negative scale.

A comment c has:

  • a value v_c. The value can be:
    • expressed in points (e.g. 5), or in percentage (e.g. 25%) of the total score of the exercise
    • absolute (e.g 5 or 25%) or relative (e.g +2, -3)
  • a maximal number max_c of stars (default: 1)

On a given copy C, a comment:

  • can be activated or not; default: not activated;
  • has a number of stars 0 <= s_c(C) <= max_c; default: m_c?
    In addition, at most one (exactly one?) absolute comment must be activated.

The score of a copy C is:

a + sum( score_c(C), for c activated and relative)

where:

  • points_c = v_c if v_c is expressed in points, and points_c = v_c * total_score, otherwise;
  • score_c(C) = s_c(C)/m_c * points_c;
  • a = score_c(C) if some activated comment c is absolute and a is the
    default score otherwise.

(implicit: if score < 0, set it to 0; if score > total_score, make it total_score).

Marking UI

  • a comment can be selected or not;
  • clicking on a comment selects it / deselects it
  • when a comment is selected, tab / shift-tab moves the selection to
    the next/previous comment; if at the last comment, create a volatile
    box "hit Return to create new comment". Hitting Return creates that
    new comment, and opens it for edition.
  • when a comment is selected, typing 0-9 sets the its number of stars;
  • when a comment is selected, typing space toggles the comment (but
    does not reset the number of stars, so that the information is not lost in
    case the comment is toggled by accident and toggled back).
  • when a comment is selected, typing Return opens the comment (and
    just that comment) for edition;
  • double clicking on a comment opens it for edition;
  • when in edition mode: Esc escapes edition mode
  • when a comment is selected, typing ??? moves it up and down in the
    list of comments
    or just use click and drag for moving comments around?
  • typing the shortcut of a comment toggles it and selects it;
  • when annotating, if the comment is selected, the annotation is
    attached to that annotation;
  • when a comment is selected, the annotations attached to that comment
    are highlighted (e.g. slightly bolder).
  • an exercise comment can be upgraded to an exam comment (if not a
    session comment); in that case, it will be available for all
    exercises in that exam/session.
  • a comment has an icon to choose the keyboard shortcut
  • a comment displays the absolute or relative score in points; for criteria comments: the number of stars and the maximal score is displayed as well, in percent or points.

Student view

All of the above items that are read-only are still valid.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions