Slashdot Mirror


Why Computer Science Students Cheat

alphadogg writes "Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration, and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

6 of 694 comments (clear)

  1. keyword: caught by Surt · · Score: 5, Interesting

    They're cheating just as much in other disciplines, it's just in CS we have a lot of good tools to catch them. Plus, we get a lot of false positives with no defense, so we get to inflate our successful catch statistics.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  2. Because that first step is a doozy by gestalt_n_pepper · · Score: 3, Interesting

    CS is just difficult for some people. We didn't all grow up programming in the basement. I've seen students who finally got their program to "run" by commenting out every line, and sadly, were so clueless that they were quite proud of the fact.

    Oddly, it's actually easier now that computers are ubiquitous and going to the CS lab to complete an assignment isn't necessary.

    --
    Please do not read this sig. Thank you.
  3. software sucks by InsprdInsnty · · Score: 5, Interesting

    One of my lecturers decided to test our university's plagarism software as it was coming back with a unusually high number of false positives. As soon as he submitted a sample he wrote it came back positive for plagarism even though he answered a question just using the knowledge he had gained over his 20+ years experience in the industry. He and many other people in the department put hardly any weight on the results that pop up. His issue with using it is that the content of the course changes so little that with every iteration of students passing through the school its more likely to have incorrect results as its saves a copy of the submission to add to its database. I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

  4. Much easier to catch by cfulmer · · Score: 4, Interesting

    So, back in the 'day (1989 or so), I was grading for the first data structures course for computer science majors, and wrote a very simple program that stripped comments out of programs and then counted the number of semi-colons, colons, parentheses and so in in each program's source code, then sorted them. When two programs were sufficiently close, I compared them side-by-side and came up with more obvious cheaters than I was expecting. (Including one from two roommates who happened to be alphabetically next to each other.) If those programs have advanced *at all* in 20 years, they're now comparing parse-trees.

    The problem is that computer programs have structure, and it's impossible to copy somebody else's work and then 'only' replace the underlying structure. Instead, cheaters reorder their code, add a bunch of comments, rename variables, change indentation and so on. That sort of thing doesn't change the structure, so it's easy to catch.

    And, yes, this method only works on sufficiently large programs -- there are only a handful of ways of doing "Hello World." But, nobody cheats on "Hello World."

  5. Re:How many ways are there to do simple things? by DrgnDancer · · Score: 3, Interesting

    Let's say a professor gives us both the same very easy assignment. Something that can be done in ten lines or less, and is meant to display how a for-loop works. We're to comment the code and explain what each line does (because it's a classroom assignment, and that's almost always a requirement even for the simplest tasks). Now chances are we'll need at least two or three variables, and just like the comments we'll be expected to use descriptive names; even though the task is mind numbingly simple. You just have to do these thing in classrooms, even when you're only dealing with two variables and "x" and "y" would serve just fine.

    So, what are the chances that we will choose the same variable names, use the same comments, put the same number of spaces and/or tabs in our indents, and insert our white space lines in the same places? Pretty slim most likely. It's more than just "did they use the same basic approach to the problem" or even "did they use the same functions and control structures in the same order?". It's more like "Is this exactly the same program?" or at least "are parts of these two programs completely identical or nearly so?" Of course they also manually chaeck what the automated tools flag. Or at least they should and they claim too.

    --
    I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
  6. What is your quest? What is your favorite color? by proarchist · · Score: 5, Interesting

    It has always bothered me why CS assignments in some classes are so strangely off from what is supposedly being learned. Often there is some trick and the solution can be found only by not being deceived by the weaselly wording of the assignment, nor by being misled by the current subject matter in the class.

    If you are already a successful programmer, these CS projects seem especially surreal given that "cheating" is the label given for all those things you would do in real life to learn and solve, including collaboration and seeking example code.

    As an assignment in a computer ethics class I gave a talk on how the internet was going to bring college level CS education, especially self-education, to global masses. (Some universities even put their class materials online and available to everyone.) The idea was that once these useful information and materials got out there, they become part of a more advanced world culture.

    During Q and A the teacher criticized that I didn't account for how hard it was to come up with new problems year after year to test and grade CS students, and that putting everything online made this only more difficult. The teacher was actually advocating holding information back to make it easier to rate students.

    I answered by saying that there are two competing motivations for teaching methods in university classes: one is to enlighten, feed and grow minds, especially all the minds that paid through the nose for the service; the other was to "weed out," and to grade--like putting the class into a series of sifting screens--the course objects getting removed first and labeled low grade, and the finest ones coming out the end and getting labeled "academic excellence." I asked how much the former was to be sacrificed for the latter.

    Didn't finish that class.