1. How can instructors distinguish between copying and coincidental similarity in labs?
Instructors face challenges in distinguishing between copying and coincidental similarity in labs, especially when solutions have low variability. Similarity detection tools, such as MOSS-based checkers, can generate long lists of highly similar solution pairs, making it difficult to identify instances of copying. In scenarios where students A, B, and C have similar solutions with high similarity scores, it becomes hard for instructors to determine if copying occurred. Approaches to reduce false positives include improving similarity detection tools, excluding small files, and examining code modifications. However, the focus of this section is on introducing variability-inducing requirements in labs to reduce coincidentally similar solutions. By providing students with more implementation choices, the number of highly similar pairs decreases, making it easier to identify instances of copying. Experiments have shown that introducing variability-inducing requirements in early labs can effectively reduce coincidentally similar solutions while maintaining similar scores. Instructors can follow a similar procedure to enhance cheating detection in their classes.
read more
2. What challenges did CS1 class face with similarity checking?
The CS1 class faced challenges with similarity checking due to excessively-long similarity lists, making it difficult to effectively use this method in the early weeks of the class. This issue was particularly problematic in the first five weeks, where labs covered more complex topics such as Branches, While Loops, and For Loops/Strings. The long similarity lists hindered the ability to check for copied code, leading to frustration among instructors and students alike. To address this issue, the class implemented variability-inducing requirements in the labs, which helped to mitigate the problem and improve the overall learning experience.
read more
3. How can adding variability-inducing requirements reduce the size of similarity lists and make copying students easier to detect?
Adding variability-inducing requirements can reduce the size of similarity lists and make copying students easier to detect by introducing multiple implementation choices for the same lab requirement. This increases the number of possible solution approaches, reducing the likelihood of coincidentally similar solutions. For example, in Lab 3, the addition of a requirement to output the distance from the start to end numbers resulted in a reduction of similarity scores from 10.0 to 8.8. Similarly, in Lab 1, the requirement to output the number of times the largest number appeared in three input numbers led to various solution approaches. By increasing the number of possible solutions, the odds of coincidentally similar solutions are reduced, making it easier to detect copying students. Additionally, the introduction of variability-inducing requirements can also help in cheat checking by focusing on students who have high similarity scores with classmates, as seen in the reduction of high-similarity pairs from 65% to 22% after adding these requirements.
read more
4. How to add variability-inducing requirements?
To add variability-inducing requirements, general guidelines include adding simpler requirements, such as input validation, output formatting, complementary computations, conditional loops, and counters. Techniques like generalizing problem statements, reformatting equations, and teaching multiple styles can also enhance variability. These approaches encourage diverse solutions and prevent students from creating coincidentally similar pairs. Implementing these techniques can improve the learning experience and detect copying among students.
read more