Fair graders assignment

Issue #39 resolved
Evgeny Kotelnikov created an issue

Currently, grader assignment is done with this magnificent piece of code:

gs = []
for (weight, grader) in weights:
  gs.extend(weight * [grader])
choice = random.choice(gs)
grader = Grader.get(choice)

That is, it is random (but supposedly obeys the distribution of graders workload). Therefore it is possible to end up with an slightly unfair distribution of assignments, e.g. 20 submissions can be assigned as 12 to one grader and 8 to another, even though their distribution in 50%/50%.

It's not hard to make graders assignment deterministic and fair, so it should be done.

Comments (5)

  1. Evgeny Kotelnikov reporter

    A thing to remember for the implementation: "unsubmitted" submissions are the ones that are automatically assigned with a grader. Currently they might never be submitted at all if the student changes the group and that can skew the distribution of graders.

  2. SLIO

    Would it be okey to only assign a grader when submissions are actually submitted? Or is it important that there is a grader assigned even to unsubmitted submissions in other parts of the system?

  3. Evgeny Kotelnikov reporter

    It is not important for any significant reason. You can see the grader of an unsubmitted submission on the "Administration" tab, but I doubt that anybody ever looks there.

    In the future (hopefully near one) the concept of an "unsubmitted" submission will be removed.

    In the meantime, grader assignments of unsubmitted submissions should probably never be accounted when deciding whom to assign to.

  4. Log in to comment