Plagiarism detectors are a crutch, and a problem
Plagarism Detectors for Code, like MOSS, are a major issue. Take a simple getter&#x2F;setter method. MOSS will mark these as duplicates unless you explicitly go in an say &quot;no, its okay for THIS to be the same&quot;. This adds a degree of bias to what is justifiably &quot;expected&quot; and &quot;unique&quot; for student submissions. As someone that uses MOSS, I regularly look at any flags, &quot;eyeball&quot; them, and in only 2 instances did it result in a legitimate integrity violation. Not to mention that I have to hunt for all possible solutions across the internet and add them to the pile to ensure students didn&#x27;t &quot;copy it from a website&quot;.<p>I think current CS is doing itself a disservice because we want students to collaborate, but discourage them from even looking at each other&#x27;s code (that is literally how students have spoken to me about it). I don&#x27;t know if English or History students refuse to look over each other&#x27;s work, but I doubt it.<p>Soloway described programmers as having &quot;recurring basic patterns&quot;. If you accept his theories, we literally have tiny little rolodexes in our minds and when we encounter a problem we go &quot;hang on, I&#x27;ve done this before&quot; and pull out some code we&#x27;ve worked on in the past. We literally have tiny snippets of code we try to reuse if we can.<p>Instead, for well known algorithms, just give them the code! My research [1] require them to at least do it once, but either way - what good is it to have a student reinvent how A* search works? What about inserting into a Linked List? There are only a finite number of ways to implement these things. Instead of discouraging StackOverflow, and letting students try to sneak that type of work into their code, control it through the use of additional examples. They are less pressed to copy and paste code from a 3rd party if you&#x27;ve literally given it to them.<p>We want students to understand how to take something like a programming language and use it to solve a problem, but then we confound the entire process by not training them on the language. Even among SIGCSE, people can&#x27;t agree what CS1 should be and somehow everyone wants it to be &quot;more than just learning to program&quot; like its a bad thing.<p>Back to plagiarism detectors for code, I think our current track discourages students to be open and help each other because they fear if they describe how they solved the exact same problem, there goes college. The result is encouraging the loner stereotype instead of reducing it. Hell, paired programming has to be forced on us because we can&#x27;t &quot;work with other people&quot;. I recognize some simply don&#x27;t like it, however, my point is we&#x27;ve trained ourselves to not work together for so long that we designed a coding paradigm to have &quot;controlled helping someone code&quot;.<p>[1] <a href="https:&#x2F;&#x2F;research.csc.ncsu.edu&#x2F;arglab&#x2F;projects&#x2F;exercises.html" rel="nofollow">https:&#x2F;&#x2F;research.csc.ncsu.edu&#x2F;arglab&#x2F;projects&#x2F;exercises.html</a><p>[2] <a href="https:&#x2F;&#x2F;www.sciencedirect.com&#x2F;science&#x2F;article&#x2F;pii&#x2F;B9780934613125500422" rel="nofollow">https:&#x2F;&#x2F;www.sciencedirect.com&#x2F;science&#x2F;article&#x2F;pii&#x2F;B978093461...</a>