Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions docs/labs/create_checker.md
Original file line number Diff line number Diff line change
Expand Up @@ -763,19 +763,24 @@ and answers are visible to those who look at its source.
In addition, some learners may be unable to figure out the answer, so we
provide a "give up" button.

However, cheating is fundamentally a lazy approach, and we take steps to
However, cheating is fundamentally a lazy approach, and we take some steps to
address this.
The "give up" button has a timer, so people can't load the page and
*immediately* give up to see the answer.
When a lab is completed, that is clearly indicated at the bottom.
In English this stamp has the word "Completed" at the bottom.
After that, it has a datetime of the completion time, followed
by a random unique value (a UUID).
That is followed by `(GA)` if the learner gave up in this session.
If two learners have the same random value, then a single lab
session being claimed by more than one learner (thus, there was cheating).
This doesn't detect all cheating, but it does provide a way to detect
some kinds of cheating.
After that, it has a precise datetime of the completion time, followed
by a random unique value (a UUID), and a hash value computed from the
datetime stamp and random value.
All of this is followed by `(GA)` if the learner gave up in this session.
If two learners submit labs with the same datetime and random value,
then a single lab
session is being claimed by more than one learner (in other words,
there was cheating).
Changing the datetime or UUID, without fixing the hash, can also be used
to detect an invalid lab submission.
This doesn't detect all cheating, but these mechanisms
do provide a way to detect some kinds of cheating.

## Potential future directions

Expand Down