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.'"

25 of 694 comments (clear)

  1. Problem by COMON$ · · Score: 5, Insightful

    True CS curriculum require a massive amount of critical thinking and other analytical skills. Something the recent graduates of HS are not prepared for. Match that up with the sense of entitlement and you get expected results. Back when I was in CS the dropout rate was around 90%. There were no rent-a-coders and using the web for a resource was a very new thought. So it was write your own damn code or head over to liberal arts...

    --
    CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    1. Re:Problem by eln · · Score: 5, Insightful

      Leaving aside the usual nonsense that kids today are worthless and can't do anything right, the problem is more complicated than that. Many universities have stepped away from the idea of going to college as a way to get a well-rounded education and have positioned themselves as places to get a piece of paper that will let you get a good job. Combine this with the increasing number of positions requiring a college degree, and you get a lot more people more interested in just getting through and getting that piece of paper as quickly as possible than they are with actually learning anything.

      College is quickly becoming like high school: It's a base requirement that everyone has to go through if they don't want to spend the rest of their lives picking lettuce, so people are going to go and try and get through it as quickly and painlessly as possible. There have always been people who do this of course, and cheating is certainly not a new problem, but the above-mentioned issues may make it more prevalent than it once was.

      Remember, though, that our generation cheated as well. Every college in the country has an honor code, and many of them have been in place for decades (or longer). These codes wouldn't exist if no one was cheating before.

  2. 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
  3. Re:How many ways are there to do simple things? by keithpreston · · Score: 4, Informative

    This would be flagged but wouldn't pass the manual review. As a former Graduate Teaching Assistant, cheaters are easy to spot because they are LAZY! They turn in the exact same files (same comments with same misspellings) with maybe a different name at the top. The only good way to cheat is to make sure every things is perfectly correct and has no identifying characteristics.

  4. What is the sound of one hand coding? by WillAffleckUW · · Score: 5, Insightful

    When the most optimum solution to any problem is frequently the same code, and the same exact question gets asked every single time for that course, is it cheating or is it just optimization?

    I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

    --
    -- Tigger warning: This post may contain tiggers! --
  5. My opinion: by butterflysrage · · Score: 5, Funny

    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.'"

    --
    the preceding post was not spell checked... suck it.
  6. Re:How many ways are there to do simple things? by TitusC3v5 · · Score: 4, Insightful

    If the person you copied it from also mistakenly used an assignment operator instead of a conditional, then yes. :)

    --
    And the masses cried out, "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!"
  7. Re:Why? by Z34107 · · Score: 5, Insightful

    Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do... Schools are always trying to make you implement retarded things anyway...

    You re-use code to avoid "reinventing the wheel." The intent is to 1) save time developing what already exists, and 2) take advantage of all the debugging that was already done for you.

    The goal of getting a CS degree is to understand what the fuck a wheel is. Copying from expert sex change is not going to make you a good computer scientist; it won't even make you a good software developer.

    --
    DATABASE WOW WOW
  8. how to not cheat by Anonymous Coward · · Score: 5, Insightful

    I used to cheat in college, and all my friends do. I don't cheat anymore. My secret? I switched to a major I like. For the most part, I enjoy and look forward to assignments, and haven't cheated on any since changing majors. For me the subject is CS, but I'm sure that most people could find something they like well enough to look forward to assignments.

  9. Re:And then they check it? by emurphy42 · · Score: 4, Insightful

    That's taken out of context. In context, it carries a clear implication of "manually examined for the specific purpose of confirming or denying plagiarism", on top of whatever manual examination takes place for the purpose of confirming or denying that the code is any good.

  10. 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.

  11. Re:How many ways are there to do simple things? by fucket · · Score: 5, Funny

    for (indexnt index=1;index=10;index++) { System.out.prindexntln(index); }

  12. Re:How many ways are there to do simple things? by CorporateSuit · · Score: 4, Insightful

    What are these unneccesssary scribblings you're adding to your code? This is a job for a single line:

    System.out.println("12345678910");

    --
    I am the richest astronaut ever to win the superbowl.
  13. Re:Why? by Z34107 · · Score: 4, Informative

    It's neither new nor subtle; it's why expertsexchange now hyphenates their URL: experts-exchange.com.

    --
    DATABASE WOW WOW
  14. Methinks many are missing the point by mschuyler · · Score: 4, Informative

    The many examples here of array declarations or variable initializations are not sufficient to get you pegged as a cheater. But when you get multi-line programs of dozens of lines that are precisely the same, even including comments, THAT will ring alarm bells. I don't think anyone writing a simple 'Hello, world' program that is exactly like mine will get called out. If you turn in a hundred line program full of regression equations to plot the Fry Readability Index in a matrix graph that is precisely like mine? Busted!

    --
    How about a moderation of -1 pedantic.
  15. 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."

  16. Re:CS classes need to be in the real world. by pclminion · · Score: 4, Insightful

    I disagree. Computer science has never really been about what happens in the real world. What happens in the real world is engineering. And before you scoff that most code you've ever seen is terribly engineered, remember that these people didn't study engineering at all -- they studied computer science. The problem is that people keep trying to glob CS and software engineering into a single idea, when it's not. CS is no more engineering than organic chemistry is chemical engineering. The goals, practices, daily ways of thinking are not the same.

    If I work with CS graduates who can't engineer their way out of a wet sack, I'm not very surprised, because engineering wasn't what they actually studied. And it's not their fault either, because the distinction is never explained in the first place. Students are prepared and told that to be a programmer, they need to study CS. I think CS is something you should study if you want to be a computer scientist. If you want to develop real world code, you need to be on an engineering track.

  17. Re:How many ways are there to do simple things? by Normal+Dan · · Score: 4, Funny

    I have a similar question,
    If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

    for (int i=1;i=10;i++) {
    System.out.println(i);
    }

    So would most other people. Would this flag me as a cheater?

    --
    A unique way to learn a language: http://languageloom.com
  18. Re:How many ways are there to do simple things? by Monkeedude1212 · · Score: 4, Insightful

    Woosh.

    There is no need for an assignment like that to be scalable (as is kind of his point). If they were going for scalability they need to be using more variables, like i=x;i==y, and then setting x and y previously so it actually counts the range dependant on what you pass it. And then take out i++, because you don't know if you'll be iterating by one. Maybe you'll need every second number, or third number.

    The amount of things you can do to make a simple project "Scalable" is very overwhelming. You need to assess at what point does a scalable option becomes pointless.

    And in the case of counting from 1 to 10, he said scalable options ARE pointless already.

  19. Re:How many ways are there to do simple things? by Mike+Buddha · · Score: 4, Funny

    If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

    for (int i=1;i=10;i++) {

        System.out.println(i);
    }

    So would most other people. Would this flag me as a cheater?

    No, the system would flag you as being wrong. "i=10" would give an error either in compile time in a strongly typed language, or in runtime in a loosely typed one. FAIL.

    --
    by Mike Buddha -- Someday the mountain might get him, but the law never will.
  20. Re:How many ways are there to do simple things? by natehoy · · Score: 4, Funny

    But we didn't wirk togehter you isnensitive cold!!

    --
    "This post contains words, known to the State of California to cause thought. Wash brain thoroughly after reading."
  21. Re:How many ways are there to do simple things? by Khisanth+Magus · · Score: 4, Funny

    One of the more amusing moments of my time as a Graduate Teaching Assistant was when I caught 3 students working together in a class where no collaboration was allowed. The sad thing is that in this particular class, there was only one correct way of doing the assignments, so anyone who did it correctly could not be caught. These three had such a horribly wrong answer that there was no way that 3 independent people could have gotten that answer.

  22. 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.

  23. Re:How many ways are there to do simple things? by fataugie · · Score: 4, Insightful

    So how did writing the tuition check feel after knowing they were rubber stamping things? It would piss me off knowing I was supporting some lazy ass professors.

    --

    WTF? Over?

  24. Re:How many ways are there to do simple things? by Asclepius99 · · Score: 4, Funny

    But we didn't wirk togehter you isnensitive cold!!