@@ -763,19 +763,24 @@ and answers are visible to those who look at its source.
763763In addition, some learners may be unable to figure out the answer, so we
764764provide a "give up" button.
765765
766- However, cheating is fundamentally a lazy approach, and we take steps to
766+ However, cheating is fundamentally a lazy approach, and we take some steps to
767767address this.
768768The "give up" button has a timer, so people can't load the page and
769769* immediately* give up to see the answer.
770770When a lab is completed, that is clearly indicated at the bottom.
771771In English this stamp has the word "Completed" at the bottom.
772- After that, it has a datetime of the completion time, followed
773- by a random unique value (a UUID).
774- That is followed by ` (GA) ` if the learner gave up in this session.
775- If two learners have the same random value, then a single lab
776- session being claimed by more than one learner (thus, there was cheating).
777- This doesn't detect all cheating, but it does provide a way to detect
778- some kinds of cheating.
772+ After that, it has a precise datetime of the completion time, followed
773+ by a random unique value (a UUID), and a hash value computed from the
774+ datetime stamp and random value.
775+ All of this is followed by ` (GA) ` if the learner gave up in this session.
776+ If two learners submit labs with the same datetime and random value,
777+ then a single lab
778+ session is being claimed by more than one learner (in other words,
779+ there was cheating).
780+ Changing the datetime or UUID, without fixing the hash, can also be used
781+ to detect an invalid lab submission.
782+ This doesn't detect all cheating, but these mechanisms
783+ do provide a way to detect some kinds of cheating.
779784
780785## Potential future directions
781786
0 commit comments