Slashdot Mirror


Computer Science Students Outsource Homework

Carl Bialik from the WSJ writes "'If U.S. companies can go online to outsource their programming, why can't U.S. computer students outsource their homework--which, after all, often involves writing sample programs?' Wall Street Journal colummnist Lee Gomes asks. 'Scruples aside, no reason at all. Search for "homework" in the data base of Rent A Coder projects, and you get 1,000 hits. (An impressive number, but still a tiny fraction of all computer students, the vast majority of whom are no doubt an honest and hardworking lot.)' Some of the Rent a Coder users appear to be outsourcing their way through school, at low costs--probably less than $100 per assignment. The posting are, of course, anonymous, but Gomes traces one to a student at the New Jersey Institute of Technology, where an instructor tells him that Rent a Coder contributed to a problem of plagiarism last semester."

3 of 512 comments (clear)

  1. Re:Why bother? by p00ya · · Score: 3, Informative

    Requiring a code-walkthrough isn't going to catch the skilled but lazy CS students. I don't have a problem explaining fragments of code I've never seen before (providing they're reasonably sane). This is basically what happens whenever I need to patch something so it Just Works. OTOH, should students who write insane code (and thus can't explain it the next week) be labelled as plagiarists?

    It's much harder to explain why you chose a particular design (especially for complex OO systems) if you haven't taken the time to grok it. For us, code is usually worth 50% or less of an assignment, with a lot of marks going to reports.

    The other issue is that most of the early undergraduate homework is fairly trivial (data structures, language basics) and is thus prone to similar/identical implementations. Even in a moderately challenging first year haskell assignment, several of my functions turned out identical to another student's (although my whitespace was prettier :D), and although we'd had fairly broad discussions about algorithms, our code was written indepedently. Although the collaboration between all the functions was subtle, each function was in itself trivial and usually less than 4 lines long. It makes sense to put more emphasis on the design aspect.

  2. Re:Why bother? by Valar · · Score: 4, Informative

    Well, even for other reasons than catching plagarism, making students explain code is a good idea. Firstly, it builds up their communications skills. Secondly, it catches shotgun debugs (I'll just twiddle everything around until it works). Thirdly, students shouldn't write "crazy code" that they can't explain. If they can't explain it, it isn't maintainable. Nobody is going to want to see that in real life. Teach them while they are young. Fourthly, it catches code that accidentally get right, as in, they misunderstand some concept, but manage a working solution anyway. Next time they won't be as lucky and by not making them explain code, you miss a chance to correct their error which wouldn't show up in your test cases.

  3. A Professors Perspective by natoochtoniket · · Score: 3, Informative
    As a Ph.D. and adjunct professor, I am always amused by discussions of cheating. Undergrads and Bachelors seem to think of cheating as if the only purpose of school is to put some grades on a transcript and get a job. In every such discussion, there are suggestions for better or more efficient ways to cheat. There seems to be little understanding of the ethical decision, and even less of the longer-term consequences.

    The sad fact is that when you cheat, you are really only cheating yourself. If you do not gain the knowledge that is taught in a course, it is your loss. You paid for the course, and did not get the benefit (the knowledge) that was there for the taking.

    The most important thing that you gain from a college education is learning skills. By learning a variety of subjects, you gradually develop skill at learning new things. Learning is the only professional skill that really matters during the longer term (20-40 years) of your career. If you don't develop skill at learning, your career will plateau or fail very early.

    The other observation that many seem to miss is that the easiest way to get an 'A' in most courses is to actually read the text and learn the material. Reading most undergraduate computer-science textbooks only takes a few days, even if you are unfamiliar with the material. (The math books take a little longer, of course.) Then, if you actually know the material, writing a programming assignment normally only takes a few hours.

    The fact that cheating seems to be common has had an effect on the courses, though. I now give exams. It is amazing how a 3-hour exam can separate the people who know the subject from those who don't. I try to design the test so that I can write it in about 10-15 minutes. The students who really learned the material usually write it in less than an hour, and thank me for the easy test on the way out. But some of the students take nearly the whole three hours, and turn in messy piles of disorganized scribbling. I almost don't have to grade the papers -- I could just note the time that each student turns in the test and leaves the room.