This is G o o g l e's cache of http://sixteenvolts.blogspot.com/2006/03/i-have-lived-in-monster.html as retrieved on 18 Sep 2006 05:46:27 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?q=cache:dbZHwC27jcUJ:sixteenvolts.blogspot.com/2006/03/i-have-lived-in-monster.html+site:sixteenvolts.blogspot.com&hl=en&ct=clnk&cd=371


Google is neither affiliated with the authors of this page nor responsible for its content.

Send As SMS

« Home | Domine, quo vadis? » | Earth or Pupulon? » | Anarchy in UK » | I'd like to report a crime in progress » | Elsa the lion » | Strawberries and cream » | Mocking the mockable » | Guys and dolls » | But aren't we all brothers? » | Good thing we didn't become zombies »

I have lived in the monster

In my computer programming courses I always have a programming project that the students must complete in their own time, occasionally perhaps asking for help in the lab session. For example, in the first Java programming course that I run, the students have to write either a harder Minesweeper applet or an easier currency converter applet, depending on whether they want to be able to get a grade higher than B+. Since we are now in the general theme of plagiarism, it is interesting to look at various issues of plagiarism and detecting it when the assignments are programming projects written in programming language instead of essays written in a natural language. Since the semester is coming to an end, I will again have to grade a bunch of programming projects, and I know as certainly as I know that I am currently on Earth that a certain percentage of them will be plagiarized.

Back in the old country, all courses were much bigger (hundreds of students) so that there was a separate TA to handle and grade the projects, but here I do everything myself. I was astonished to learn how damn easy it is to tell with a single glance whether a program is plagiarized or not. You might think that Java and other programming languages are more structured and less flexible than English, so that you wouldn't be able to tell if the student wrote some loop or copied it somewhere, but I have found that genuinely student-written code looks totally different from code written by programmers. And I don't mean indentation or comments or anything like that, but the overall structure of the code and how its internal logic works.

Programming languages have another, even more useful advantage over natural languages when it comes to detecting plagiarism. Anybody at least should be able to distinguish between good English and bad English even if they are unable to generate the former themselves, so a student who plagiarizes English text might be able to obfuscate it and make it worse so that the end result looks like he wrote it himself. The same trick doesn't work in programming at all, since you can't modify code at all unless you understand what it does. Besides, for someone who doesn't understand how programming works, there is nothing to edit since all computer code looks exactly the same. And even better, they obviously believe that it looks exactly the same to me! If some student was able to reorganize the code he copied from elsewhere, he would be so proficient in programming that he wouldn't need to plagiarize in the first place. Heck, students in that level of proficiency would be likely to write the project just for the heck of it, even if plagiarized programs were available for them.

This blindness to subtle differences has a downside, though. Some students who wouldn't plagiarize an essay in some other course because they understand that they would be caught, might be tempted to plagiarize code since they think that they will get away with it. I know from experience there are many students like this, guys who do well in midterm and final and in the class obviously understand what is going on and learn, but then are tempted to take the easy way out instead of doing the boring work, because from their limited vantage point they think that they can. These people, by the way, are the very reason why I believe plagiarism to be so immensely common in undergrad courses of all fields, far more common that most people probably believe.

Some students try to be tricksy and rearrange the method order and change all the variable and method names to something else. This, of course, is meaningless for the way I recognize plagiarism, but let them try. However, this is annoying in the sense that simple googling for the original program no longer works. When I notice that a program has been plagiarized, I look for a feature or two that I consider likely to give me a hit and then google away. When all method and variable names have been changed, this doesn't work, but I have to look for something that doesn't change, such as a class name. You'd be astonished how many plagiarized programs use somewhat obscure classes that certainly haven't had time or inclination to teach, or classes that were obsolete back when the century changed. My personal favourite nut to crack was a program that used a bunch of colours, all of which were standard Java colours such as Color.RED or Color.BLUE, but one was something like new Color(45,199,22). And what do you know, when I googled that string, the original program was the first hit. Hah! The mutt had changed everything else in the program, but hadn't thought of changing that.

The most pathetic cases overall must be those who change variable and method names but forget to check whether they have made these changes correctly so that the code still compiles and works. You see, when you change names in code, you need to make these changes in a consistent fashion everywhere, or it just doesn't work. But why bother to check? You don't have time for such petty details in your busy life.

In addition to all this, by now I have developed an unconscious gut feeling telling me if a student is going to plagiarize. I don't think about that possibility consciously during the course, but maybe it's that subcognitive "gift of fear" and "blink" stuff that we use to evaluate the situations that we are in and kicks in at the project evaluation time. I have also noticed that for some reason, when the students who plagiarize their code email it to me as an attachment, the main body of email often tells me what a good teacher I was, how hard they worked on the project, how happy they were to be in my course etc. Is it any wonder why I am generally so cynical?

Curiously enough, I really don't take plagiarism as a personal insult. I am almost blase about it, and take it as a point for me. When I have successfully tracked down the original program, I simply email the link back to the student and ask for his comment. From this, there are three possible continuations. Some students are men enough to admit what they had done, and I am happy for that. What I really hate are mutts who email me back telling that they accidentally sent me the wrong program (funny how that comment block in beginning of the program identifies them as the author) that they only "used as a reference" and they will soon email me the real program. Yeah, sure, as soon as you can get your senior buddy to write one for you. Thanks, but no thanks. I once had a guy who emailed me another plagiarized program, and when I emailed him the link to the original for that, explained that he had again accidentally sent the wrong file, and sent a third one. When even that turned out to be plagiarized, I didn't bother continuing this dance, since it wasn't as amusing at the time as it is now in retrospect.

But what I absolutely despise the most are mutts who insist that they haven't done anything wrong since even though they did use the original program as a reference because "they are new to programming and don't really know much about it" (for the life of me, I will never be able to comprehend this common excuse when it is used in the first programming course that starts from scratch), their program really is different and they did add things to it, even though both programs are identical. I have encountered three guys like that, and perhaps it is better not to mention here what else all three had in common. Perhaps some people have a completely different way of seeing things or believing that their subjective reality becomes real to me simply by them saying so.

Around the school I can see ads for "fast and confidential" "computer programming help" for programming projects in various courses. I used to rip those ads down as soon as I found them, but grew weary of the whole thing and don't do that any more. I am but a newcomer in this culture, and if they are allowed to sell Cliffs notes openly in bookstores, I guess that such ads are no different. Plus, I comfort myself in thinking that students who buy such a project will fail the final exam anyway. It's just so absolutely hilarious when some guy scores 10 or 15% in the midterm and final, and in between submits a neat and tidy programming project worth an A. Why would they even bother, and why would I? It's a moot point.

By the way, a word of warning to students to wish to use these services: they are not exactly highly motivated to guarantee any kind of uniqueness in their products. A couple of times it has turned out that they had sold a student a program they googled off the Internet, without even bothering to obfuscate it in any way. Another time I graded a program that looked OK and I didn't suspect of being plagiarized, but when I moved to grade the very next program in the email queue, I read through it for the moment, and felt a strange deja vu. It was the freaking same program that I had just graded minutes earlier! When I emailed both parties and explained this curious observation, it turned out that the programs had been bought from two separate places that must in turn have copied them from the same place. What an amusing and delightful joincidence. I actually sympathized with one of those guys (whose project submission email, now that I am thinking about it, contained praise for me as a teacher) since he didn't seem like a bad guy and didn't try to argue with me but was genuinely sorry even though failing my course actually had some real and serious consequences for him. I adviced him to at least demand his money back. If I were in his position, that certainly wouldn't be the only thing that I'd do.

Another time, the same situation but I couldn't find the original and thus prove plagiarism. (The answer to the obvious question: no, the mere fact that the two programs are identical apparently does not prove plagiarism. Why this is so, your guess is as good as mine. Students have rights, lots of rights: sometimes I count them just to make myself feel crazy.) Asking myself "What would D.A. Ben Stone do in this case?" I simply decided to send an email to both parties that says that whoever is the first to tell me where the original program came from gets away with minimum passing grade whereas the other one gets the F. It sure was funny how quickly the first reply arrived, pointing me to the original. And if a=b and b=c, then a=c.

When I think about it, during my 12-year career in teaching computer science, not one student ever has tried to buy a passing grade or a better grade (some student might need to get a C or B) from me with money or other favours. Perhaps I somehow give out the impression that such an offer would be useless. It would be useless, of course, since I like my job a little bit too much. But it makes me wonder if that sort of thing only happens in books and movies. Markets in everything, as some people out there often say.

7 comments

I never cheated, but one professor totally discouraged me from ever plagarizing. I quoted something out of what I thought was a fairly obscure book, and accidently switched two clauses that didn't change the meaning at all. In fact, it flowed a bit better my way. When I got the paper back, the prof had circled the flipped clauses. He either checked all the quotes, or he new the passage well enough to recognize my mistake.

My father taught English at a community college, and he often had students try to bribe him (students from one region of the world in particular).

For one assignment his class was to write about incidents from their own lives. A young guy from Saudi Arabia handed in a paper about being a little girl growing up in the Midwest during the Great Depression. My dad handed it back with an F, and told him if he wanted to pass the class to turn in something that wasn’t plagiarized. A few days later the guy turned in the exact same paper with a $50 bill stapled to it.

You wrote,

'I have encountered three guys like that, and perhaps it is better not to mention here what else all three had in common.'

You've got me curious. Can you give some hint?

BTW, I quite enjoy your writings.

Michael

Michael: You've got me curious. Can you give some hint?

Sorry, I can't. (Let this be some kind of a meta-hint :-) .)

BTW, I quite enjoy your writings.

Thanks a lot.

You replied ...

'Michael: You've got me curious. Can you give some hint?

Sorry, I can't. (Let this be some kind of a meta-hint :-) .)

BTW, I quite enjoy your writings.

Thanks a lot.'

My pleasure.


Okay, I think??? I've got it :) ... but, so ...

Would you mind explaining why, in this case, it's difficult to call a spade a spade?

I mean, who are you worrying about upsetting?

Michael:Would you mind explaining why, in this case, it's difficult to call a spade a spade?

Because I do my best to treat everybody equally in my courses according to my policies, and don't want to give anybody an impression that I wouldn't, or allow anybody to imply so by e.g. confusing cause and effect. This makes the situation different from making generic observations about the society in general.

Forgot to add: in addition to what you are thinking of, the three students had another thing in common, and that thing really is the relevant one here.

Post a Comment

Links to this post

Create a Link

Contact

ilkka.kokkarinen@gmail.com

Buttons

Site Meter
Subscribe to this blog's feed
[What is this?]