Forgot your password?
typodupeerror
Education Programming News Technology

Why Computer Science Students Cheat 694

Posted by Soulskill
from the your-comments-will-be-analyzed-for-plagiarism dept.
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.'"
This discussion has been archived. No new comments can be posted.

Why Computer Science Students Cheat

Comments Filter:
  • keyword: caught (Score:5, Interesting)

    by Surt (22457) on Monday April 19, 2010 @01:56PM (#31900154) Homepage Journal

    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.

  • by gestalt_n_pepper (991155) on Monday April 19, 2010 @01:57PM (#31900170)

    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.

  • by Antony T Curtis (89990) on Monday April 19, 2010 @02:06PM (#31900370) Homepage Journal

    When I ran a tutorial group for fellow students who were taking the Imperative Programming module, I can guarantee that there was no plagiarism nor cheating going on. I helped them learn coursework and each of their assignments were done by them and I only intervened if they had made a mistake. They experienced some frustration because I would not give them the solution: I had them work through it themselves and figure out their own mistake. Only one time, I was concerned that they really were considering throwing me out through the 3rd floor window.

    Only after they had completed their assignments, would I show them how I would complete the same assignment.

    I think a difference was that each of them really did want to learn the material but many students today taking these courses just want a job and have no personal interest in the topic.

  • by ravenspear (756059) on Monday April 19, 2010 @02:07PM (#31900410)
    pretty much.

    I rarely cheated in my CS classes, but on some really hard assignments where I just had to reuse code for some sections to avoid going insane, I just copied some code and then made it look different by changing all names, sometimes rearranging order of things, etc but still having it do the same thing.
  • software sucks (Score:5, Interesting)

    by InsprdInsnty (1793100) on Monday April 19, 2010 @02:08PM (#31900412)
    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.
  • by Anonymous Coward on Monday April 19, 2010 @02:08PM (#31900430)

    How does a student defend against a false positive in this environment?

  • by Derekloffin (741455) on Monday April 19, 2010 @02:10PM (#31900456)
    While true, the general issue is that there are only so many ways to go about doing X. Further there are only so many of those that are good ways among those, and even fewer still that students are taught about. When you then compare against both the net and all previous solutions, the odds of a match coming up greatly increases. At a certain point, particularly when we're dealing with introductory courses, you have to ask, are these true or false positives. I know at my work, I rarely can tell if it was me or someone else who coded something originally because the code structure is just that tight that you won't see much variation.
  • by mindbrane (1548037) on Monday April 19, 2010 @02:12PM (#31900496) Journal

    Our big brains are deeply tied into our social matrix. Our value systems, our ethics and our morals, echo within our social system and inform our actions. Context informs values and actions. If disciplines like the hard sciences advertise their wares as facts and require students approach their studies with a "just the facts" attitude then that context will lend itself to a cut and past approach to homework that will more readily accommodate obvious borrowings from other students. If you're in an arts programme and your task is to display imagination and your core inner values in a medium and venue that accentuates individuality and creativeness then, ceteris paribus, it's more likely that context will not only encourage innovative output in homework but also encourage a more guarded attitude toward a peer borrowing your ideas. If you're a C.S. student and the world around you is rife with computer hacks and the news about those hacks inform you that you should be able to not only understand them but, possibly, be able to come up with something similar or better than to a considerable extent the ethics that inform your homework production will reflect the same ethics that inform the hacker culture.

    If as educators you advertise your discipline as an empirical activity scrutinized by peer review then undergraduates just trying to fill out their curriculum with a few tasty bits for their upcoming resume are likely to think, well it's just facts, cut and paste. Let it wash out in the exams.

  • by fuzzyfuzzyfungus (1223518) on Monday April 19, 2010 @02:13PM (#31900504) Journal
    While it is almost certainly the case that comp sci assignments face the best algorithmic scrutiny(CS professors, shockingly enough, are probably more likely and better able than modern literature professors to subject them to such), there are similar algorithmic tools(albeit generally 3rd party contracted stuff) being used against writing assignments at many schools.

    I suspect that there are other factors at work, as well. I'll put out the following conjectures(whether you would prefer to say that I "reasoned from first principles" or "pulled them out of my ass" is at you discretion):

    1. Intro level courses, in all areas of study, will have higher rates of cheating than later courses. Two basic reasons: Intro level courses are much more likely to be mandated under "core curriculum" or "breadth requirements" or whatever the institution's term for the concept is. This makes them much more likely to have a substantial population of students who are deeply disinterested and/or very poorly suited to the subject. People who don't care, or who can't hack it, are the ones with the strongest motives to cheat.

    2. The level of cheating, broadly speaking, will reflect how profitable the area of study is. Other than the accolades of your tiny group of peers, the rewards for being a world-renowned expert in late-middle Assyrian civic structures are basically fuck-all. If you work hard for a decade+, and get lucky, you might get a steady but not-especially lucrative tenured position, maybe a few advances from books, and that's about the best case. Therefore, only people with a genuine enthusiasm for the subject will bother to take more than "Intro to World History 101". There won't be zero cheating(putting your name on the output of your toiling grad students, for instance, is practically a best practice); but there will be less. Things like law, medicine, business, CS(more before the bubble burst than now; but still some) offer relatively good monetary rewards, and so are more likely to attract people who have comparatively little interesting the the subject and just want the diploma. You will therefore expect higher levels of cheating.

    3. The level of cheating, broadly speaking, will reflect the student body's belief about "how relevant" the academic material is to the goals that they seek(this is partly covered by #2; but goes more broadly than that). If you, say, want to make it as an English professor, or in Real Serious Math, cheating is largely counterproductive. You learn to write by writing, so if you skip much of the writing, you won't know how to write at the end of the course. You gain facility in math by doing, so you won't be facile if you cheat rather than work. If, though, you are sitting through CS, with visions of being a .com millionaire(or even just a workaday java monkey) dancing in your head, you'll be thinking "why do I need to know this crap about NP complete Turning machines and O complexity and stuff? I just want to write Facebook 2.0!". People smarter and/or wiser than you may well suggest that you are wrong; but you will still be tempted to cheat your way through the "irrelevant" material.

    I suspect that Intro CS sits at the intersection of the worst of both worlds. On the one hand, since it's an intro course, you get all the people who aren't really cut out for it learning the hard way that programming isn't as easy as playing video games, even though they both involve computers, who then freak out and start cheating(either to pass at all, if they are really hopeless, or to pass without cutting into their drinking time too much). On the other hand, you have all the people who are seeking Technology riches, and don't want to hear this ivory-tower-crap, they just want to write some programs and get a job.
  • Much easier to catch (Score:5, Interesting)

    by cfulmer (3166) on Monday April 19, 2010 @02:18PM (#31900594) Homepage Journal

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

  • Re:keyword: caught (Score:2, Interesting)

    by GrayNimic (1051532) on Monday April 19, 2010 @02:24PM (#31900692)
    In my own undergraduate experience at least, students *did* cheat more in CS courses than in other classes, regardless of major. In part this was due to the different 'honor code' for the CS department than elsewhere (any form of collaboration whatsoever was cheating, unless otherwise specified by the professor), but it was also in the nature of the work. "Copying" someone else's homework in, say, physics or math, a student typically attempts to make their writeup distinct from the original, which involves reprocessing the math and requires some actual understanding of the techniques involved. As a result, they actually did gain some level of learning from the assignment, even if no where near as much as if they'd done it 'properly'. In CS, most people would go for a straight carbon-copy, resulting in zero learning.

    To me, that's the largest distinction - the way in which students leech off each other in CS is different, and results in less learning; combined with more draconian cheating regulations (which, by making any collaboration cheating, encourage people to either work in solitude or go all-out on the cheating, rather than actually trying to work together), it leads to a much worse cheating problem.
  • by Oxford_Comma_Lover (1679530) on Monday April 19, 2010 @02:43PM (#31901038)

    > on some really hard assignments where I just had to reuse code

    Really weird. It's the easy assignments where that might be tempting--they're so mind-numbingnly dull.

    At my undergrad, I successfuly argued against allowing this kind of automated scanning program. Rather than punishing students if the professors discovered cheating, these programs actively assume every student is cheating and try to prove them innocent. This offends me. It's like accusing every professor of plagiarism until he shows fairly conclusively that he hasn't submitted somebody else's article. One professor had the audacity to ask if I was fighting the system because I cheat. He meant it jokingly, but it was still as offensive as hell.

  • Re:keyword: caught (Score:1, Interesting)

    by Anonymous Coward on Monday April 19, 2010 @02:43PM (#31901054)

    There is one easy defense. Comment your code. The language will be yours and the explanation demonstrates you understand the code that is present. I would think an instructor would place value on this even if your code triggered his tools as the intent is that you learn.

  • by DrgnDancer (137700) on Monday April 19, 2010 @03:01PM (#31901296) Homepage

    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.

  • Zero Tolerance (Score:2, Interesting)

    by anorlunda (311253) on Monday April 19, 2010 @03:10PM (#31901428) Homepage

    I have a big problem hiring anyone who ever cheated on anything anywhere. Cheating on a test, padding an expense account, driving with a radar detector in the car; they all indicate lack of integrity. I need to be able to trust my co-workers.

    Therefore, I'm doubly horrified to contemplate the possibility of false positives. It is very hard to reconcile harsh treatment of cheaters, with the possibility of some being falsely accused without adequate opportunity to defend themselves.

  • easy to spot (Score:2, Interesting)

    by cowdung (702933) on Monday April 19, 2010 @03:21PM (#31901568)

    Cheating is usually easy to spot. Because not only do they use the same algorithms and the same sequence of code, but also the same spacing. For example:

    x = x +1;
    printf(" %d", x);

    Notice no space between +1, and 2 spaces between " , x". When you see this combined with the same essential algorithms. A high degree of similarity in the strings and in the comments.. the user has copied the code.

    Most students don't do a great job of covering it up.

    The article also mentions foreign students as being more likely to cheat. Note that cheating is fairly commonplace in high schools and even in Universities in many countries. Not all countries penalize students very harshly when caught. In some cases they only get points deducted or get an F in the assignment. So a culture of cheating emerges.

    (I know.. I'm an instructor in South America.. :) )

  • Re:Problem (Score:3, Interesting)

    by blair1q (305137) on Monday April 19, 2010 @03:28PM (#31901664) Journal

    Fine. They'll get out of school, get a job, be found out as frauds, and have to pay $200K in student loans with whatever's left over from their next job, managing the convenience store at the car wash.

  • by proarchist (865368) on Monday April 19, 2010 @03:39PM (#31901816)

    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.

  • by serialband (447336) on Monday April 19, 2010 @04:15PM (#31902298)

    ...
    We see here where academia isn't keeping up with industry. ...

    The problem here is that people keep thinking that Colleges are trade schools. They are not. Academia never was about training you for industry. That's what trade schools are for.

    It used to be that you got a job after high school, because high schools used to prepare you for some trades. There used to be high school classes that taught autoshop, welding, woodshop, electronics, etc.. and you would be prepared to enter the workforce as soon as you graduated high school. That curriculum has been eroded by budget cuts and now you can't get many job skills from high school any more. You're now expected to get a college degree, but all these students really just need a trade school degree, because they're out chasing money, not knowledge.

    Companies really just want trade school graduates, not college degreed academics. They use the degree requirement as an excuse to bar or limit the candidate pool. The students need to go to trade schools, because all they want to do is ply a trade, not become professors and do research and gain knowledge. They really need to go to community college or junior college or ITT Tech or DeVry or University of Phoenix and get their trade school education and diplomas. The problem is that there has been a misconception about the entire college experience. Nearly half the students in college shouldn't really be in college because they aren't trying expand their knowledge. They aren't going to do research. They could care less about physics or calculus or chemistry or English, which are required of college students. Those subjects don't help most people with their trade.

    And I'd argue that academia promotes the prima donna.

    I suggest that your company stops hiring the geniouses for the regular mundane production coding. He should have been hired to do research, for which he is probably better suited. Code monkeys can be 3.0 or even lowly 2.x students.

  • by Anonymous Coward on Monday April 19, 2010 @04:30PM (#31902472)

    Also as a former TA, there were 6 of us on the same course - assembly language. We used no electronic methods.
    We simply took notes of anything interesting or unusual in the programs. This meant bugs, register selections, and various programming tricks and anomalies (if nearly everyone has their loops from 0 to < 10, and someone else runs their loop from 9 to >= 0, while another uses do while(), you notice these types of things). After sharing our notes and then manually going over it, we found many cheaters - almost 1/4 of the class. 2 groups of cheaters numbered 8 or more (spread among all the TAs).

    A bug-free, completely straight forward program without any unique characteristics, which has it's variables renamed, re-commented, and re-white spaced, is unprovable for cheating with any certainty. The thing is, a program like that will also normally be the only one of it's kind. People who score 100s on assignments are not that common. Also, people who cheat usually cheat with the same people other assignments and even in other classes. Thus, even if they get away with it once, if they are caught once, one can go back and re-examine everything. (Also a quick cross-reference with exam results, will usually tell you who wrote the assignment and who copied [highest marks is normally the author]).

    It's very sad. With cheaters like that passing, even the people who know their stuff will find their diplomas to be worthless due to all the idiots with the same piece of paper. Thankfully this nonsense mostly stops in upper years.

  • by GasparGMSwordsman (753396) on Monday April 19, 2010 @06:30PM (#31904064)
    The poster commented else where that /. removed the less than sign from the equality portion. It should have been less than or equal to 10.

The typical page layout program is nothing more than an electronic light table for cutting and pasting documents.

Working...