Skip to content

Best Practices: Accessibility, Diversity, Cheating Prevention

Armando Fox edited this page May 19, 2021 · 2 revisions

Diversity

Yes, the standard characters in a crypto scenario are Alice, Bob, and Carol (A, B, C) along with malicious Mallory, eavesdropper Eve, etc. But unless you're doing a crypto problem and feel bound to stick to those characters, consider using characters whose names reflect a more diverse population. Some sources:

Accessibility (a11y)

A basic rule is: don't embed style hints into HTML markup in question.html. For example, avoid things like <p style="size: 11pt;"> or <div bgcolor="yellow">. PrairieLearn uses Bootstrap, which already has a lot of symbolic class names to support semantic markup and does a decent job with baseline accessibility. Rather than applying visual tweaks, study the Bootstrap documentation and figure out which class(es) are appropriate to highlight the semantics of an element you want to represent.

Watch this space for further required practices on making question generators accessible.

Preventing "collaborative cheating"

In the 2018 paper How Much Randomization is Needed to Deter Collaborative Cheating on Asynchronous Exams?, the PrairieLearn authors studied collaborative cheating, in which a cheater tries to get information about the exam from a student who has already taken the exam. The authors found as follows:

  • An exam should consist mostly of variant-rich questions (vs. fixed questions with no variation)
  • Each exam question "slot" should randomly draw from a pool of three or four possible "equivalent" questions for that slot

In these cases, cheaters were unable to score more than 2-3% higher than the students they were trying to cheat off of. Note: in their studies, students take exams in a proctored classroom, not remotely.

Detecting "remote cheating"

Watch this space for info on enhancing PrairieLearn with cheating-detection mechanisms such as UI event timing hooks and Nick Weaver's "cheat trap" detection.