Hacker News new | ask | show | jobs
by ajray 5438 days ago
As someone who hopes to be a future professor, posts like this are extremely valuable to me.

I hope that some of the good that's come from this media storm is we'll have a surge of great ideas on how to design courses and assignments to minify plagiarizing.

2 comments

My observation is that most cheating is one student handing in another's work with little or no changes (maybe a find/replace on variable names, or very slight editing).

The key is that every student writes software as uniquely as they write prose or have fingerprints. I can't get a class to type in HelloWorld.c exactly as presented on a projector without odd spacings, typos, errors, etc. I watch for submissions which feature the same impossibly identical nuances, usually bizarre solutions (works, but nobody else would do it quite that way) or odd mis-formattings or other things which raise red flags. Find the previously seen instance, and - here is the key - overlay the windows to position the text exactly the same, then Alt-Tab flip between them. The copying is plain, exact when the paltry few guilty tweaks are accounted for. Showing this to the parties involved usually reveals the original author vs plagiarist pronto.

The contention that "it's the same assignment so submissions will be similar" doesn't work when bad formatting is duplicated right down to every extraneous space.

The other way is just watching for submissions well beyond the capacity of the student. For my classes, legit passing students will find it easier to just do the work than to attempt stealing it. In-class participation, quiz results, short answer questions, and lab work will soon show what the student is really capable of. When submissions far exceed what is demonstrated elsewhere, suspicion is warranted and dead giveaways will usually occur.

In the end, a talented cheater cheats himself, not the system. For programming classes at least, there will come a point where you have to perform, at which point the error of cheating one's way to a degree becomes it's own very costly punishment.

Is your goal to get students to understand, or get them to do the work-hours you want them to? If your course is one where a smart student could pass your exams without doing any of the assignments (or conversely an average student who might fail your exams but does well on assignments without cheating), why should you care if anyone does those assignments or even copies them? Just make assignments optional and the tests account for >90% of the grade, and use your cheating-detection skills at test-time where you can actually test understanding.
The problem is that test taking is only minimally useful outside of school, and by choosing tests as the only measurement, you end up optimizing for the wrong skill. (I know because I was a pretty good test taker as a student, but the laziness and procrastination that it fosters is really starting to bite me in the ass right now) I think tests are useful because they're an easy metric, but if you're goal is to teach or learn a skill, tests are a really poor tool. As a thought experiment, if you wanted to teach yourself something what would you do? You probably wouldn't do it by giving yourself written tests.
If I wanted to teach myself something, I wouldn't be going to school for it. The whole purpose of grades, testing, and catching cheaters is so a school can determine if a certain person deserves some credentials they give them or not. Ideally we wouldn't need them, but you tell me a better way apart from projects (which have their own problems if they're in groups) to measure a student's proficiency in something while remembering they're taking 5 other classes at the same time with professors who may do the same thing.

I do agree with you on possible bite-backs to a highly test-oriented system, and poorly made tests are very easy to game. Lots of students coast through high school and then around their sophomore or junior year of college stuff starts getting hard and they don't know what to do and don't know how to study.

I agree; tests can be too easily gamed. The assessment of courses I described in the blog was mainly based on the coursework. In the programming course a simple multiple-choice exam was used to weed-out students who might assign their coursework to somebody else. In the software engineering course, the "exam" consisted of the final presentation.
Testing can actually have a direct effect on learning:

http://www.nytimes.com/2011/01/21/science/21memory.html?_r=2...

>A week later all four groups were given a short-answer test that assessed their ability to recall facts and draw logical conclusions based on the facts.

The problem with this study is they measure learning using test. Of course the groups that had taken tests while memorizing scored better, they got practice.