Non-Technological Ways to Combat Cheating?
blackcoot asks: "I'm currently T.A.ing for a required senior level class in algorithms. Having just graded the latest set of homework, I'm amused / sickened (can't make up my mind on that one) at the level of cheating. Slashdot has covered automated cheating detection in the past here and here, but I'm hoping to find some (necessarily nontech) ways of encouraging students to be a bit more honest (or at least a little less spectacularly stupid in how they cheat). I've been reporting the cheating as I've found it to the relevant profs, but it doesn't seem to be having much of an effect. Any suggestions?"
One year, I marked all the coursework for a year and found some ridiculously blatant cheating. So the next year they were informed what happened before (including the 0 mark for all parties involved). I don't remember coming across any cheating when I marked that lot.
So either they got very good at Prolog or very good at hiding their cheating. Either way I don't care as had fewer meetings to attend...
In my experience, one thing that works is to make sure students care about the work they produce.
When they think that the quality and honesty of the work is is important to them, and to others they tend not to cheat.
One way is that we give them problems that we ourselves not fully understand, and we clearly tell them so. You present them with a challenge saying "Ok, here is this tough problem. We (the reseach group) dont quite get it yet. Maybe you will see the light and can help us get it further. If your solution/idea it is particullarly good, we will make you a coauthor on the paper on the toppic"
Obviously, this requires that you do have such a toppic. But inventing a tough or next to impossible problem is usually not a problem.
Anohter way we use is to introduce a element of competition into assignments. Make them make competing designs/solution and invite an industry/scientific expert to evaluate and judge the solutions during a workshop/panel discussion. Works wonders for us.
Caveat: this experience comes from teaching Environmental Science and Sustainability, not computer related stufff, but is should port finely to CS as well.
If you want more info/literature on the topic of chalenging education, just mention it.
Complexity is a measure of our ignorance...
Here's something I've used while I was a TA. You could say it is a little ugly, but it worked like a charm.
After every assignment in which I have detected cheating, I have published a note (to the course email list) that went something like that:
During the checking of your submissions, some instances of cheating (copying) were detected. In all such cases, both sides (the copier and the source) will be graded zero, unless you approach me and let me know who really solved the assignment, and who copied. In this case, only the cheater will be graded zero; the source will be given his fair grade.
It worked. It worked like a charm. For every submission that I suspected was a copy of somebody else's work, one of the students came up and admitted cheating (they were often pressed to do that by their friends). They had the most pathetic excuses, of course, but that's beside the matter. The bonus part is, many students approached me and admitted cheatings that I didn't detect.
- Tal Cohen
- People who cheated on most assignments
- Questions that many people cheated on
For the people who cheat on many assignments, often turning in identical, alpha-renamed problem sets, I think the best solution is to give them a Zero and send them to whichever judicial administration your school has in place for academic integrity violations. Those people probably don't want to be in a CS course in the first place, or they have other priorities (Sports, Social life, etc.), or maybe they just have no faith in their ability to pass on their own and just need more tutoring. If you can make it less worth their time to cheat than to just not take the class at all, hopefully those people will take another class that they might be more interested in.But I've seen questions that honest/smart students cheat on. I've heard of people in the labs shouting answers across the room. The questions that caused this kind of cheating tended to be trial-and-error questions with one line solutions. In any class students are going to work together, and I think it's wonderful if they can help each other understand what's going on.
So to avoid cheating, the best way is to create problems where the understanding is separated from the answer. This way students that just get the answer really miss out on something that the students who solved it honestly get.