From bf56e6e1289cc834866f1473fd265468852c2aab Mon Sep 17 00:00:00 2001 From: "David A. Wheeler" Date: Tue, 4 Feb 2025 11:17:54 -0500 Subject: [PATCH 1/2] Add lab documentation section on academic cheating Signed-off-by: David A. Wheeler --- docs/labs/create_checker.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/labs/create_checker.md b/docs/labs/create_checker.md index a3b4814d..d69ba27d 100644 --- a/docs/labs/create_checker.md +++ b/docs/labs/create_checker.md @@ -11,6 +11,7 @@ The main sections are: [Debugging](#debugging)) * [Localization](#localization) (aka translation) * [Submitting a new or updated lab](#submitting-a-new-or-updated-lab) +* [Academic use](#academic-use) * [Potential future directions](#potential-future-directions) ## Introduction @@ -751,6 +752,29 @@ under the `docs/labs` directory. Simply fork the repository, add your proposed lab in the `docs/labs` directory, and create a pull request. +## Academic use + +These labs were created for LFD121. However, they can (and are) also used +for other situations, such as for academic use. +We welcome those other uses! This does raise the issue of countering cheating. + +We can't prevent all cheating. The answers can be shared among students, +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 +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, and we also add +a random unique value to the bottom of the completed lab. +That random value also includes `(GA)` if the learner gave up in this session. +If two learners have the same random value, then one copied directly +from the other. +This doesn't prevent all cheating, but it does provide a way to detect +some kinds of cheating. + ## Potential future directions Below are notes about potential future directions. From 8401366d14a90ac05cc7de7318f01ebb171294d0 Mon Sep 17 00:00:00 2001 From: "David A. Wheeler" Date: Tue, 4 Feb 2025 11:30:05 -0500 Subject: [PATCH 2/2] Tweak explanation Signed-off-by: David A. Wheeler --- docs/labs/create_checker.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/labs/create_checker.md b/docs/labs/create_checker.md index d69ba27d..086bcd2e 100644 --- a/docs/labs/create_checker.md +++ b/docs/labs/create_checker.md @@ -767,12 +767,14 @@ However, cheating is fundamentally a lazy approach, and we take 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, and we also add -a random unique value to the bottom of the completed lab. -That random value also includes `(GA)` if the learner gave up in this session. -If two learners have the same random value, then one copied directly -from the other. -This doesn't prevent all cheating, but it does provide a way to detect +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. ## Potential future directions