Live data from Hacker News

Why we still can't stop plagiarism in undergraduate computer science

kevinchen.co

11–20 of 124 posts

Re: Why we still can't stop plagiarism in undergraduate computer science

#11
Here's the easiest solution: stop grading homework

Why judge student performance on something that they are using _to learn_? It doesn't make any sense.

Every student is basically competing with one another to get the highest GPA possible - if you're going to give them cookie cutter homework with solutions can be easily searched for on the internet _and_ can only bring their GPA down, then they're going to cheat. Plain and simple.

Give them homework and "grade it" to give them feedback, sure, but don't make it count.. that is, if the goal is to have students learn.

Re: Why we still can't stop plagiarism in undergraduate computer science

#12
> "Then, we apply another filter, keeping only the cases that contain indisputable evidence — for example, hundreds of lines copied right down to the last whitespace error."

Sounds like they don't want to deal with plagiarism, if you can avoid it by simply making your copying "disputable".

MOSS is clever-- instead of doing direct textual comparison, you compare streams of tokens. This means that even if a student reformats the whitespace or renames all the variables (a common obfuscation technique), the same stream of "TOKEN ASSIGN_OP TOKEN LPAREN TOKEN COMMA TOKEN RPAREN" will exist. TMOSS extends this to snapshots of code as a student develops it, which is apparently 2x more effective!

This author also delicately avoids the cultural side to plagiarism-- many students come from backgrounds where "group work" is common, and passing classes is a communal effort, including homework. It's an unfortunately common mistake to think the grade is what matters, not the fundamental skill development.

Re: Why we still can't stop plagiarism in undergraduate computer science

#13
post #5

The article doesn't seem to even consider the possibility of assessing students in some other way than through standardized homeworks which are easily copied. For example, individual projects where everyone in the class is working on something different; or at the other extreme, proctored exams. (Of course, neither of these systems is entirely free from cheating, but the barrier is higher.)

Standardized homeworks as a simple check on learning with an individual or group project at the end has been my favorite way of learning.

Sure! But the method of learning doesn't have to be the method of assessment. In fact, as pointed out upthread, it shouldn't be.

When students are doing homework you want them to form collaborative study groups or freely consult any other source, if it helps them learn. Fear of plagiarism is antithetical to that.

Re: Why we still can't stop plagiarism in undergraduate computer science

#15
post #5

The article doesn't seem to even consider the possibility of assessing students in some other way than through standardized homeworks which are easily copied. For example, individual projects where everyone in the class is working on something different; or at the other extreme, proctored exams. (Of course, neither of these systems is entirely free from cheating, but the barrier is higher.)

For intro-level CS courses, neither one works all that well. You can do that in more advanced (but still undergraduate) courses, but for beginner-level you IMHO need the feedback loop of regular homework. It doesn't have to be strictly graded, but it basically has to be there and at least some enforcement for it actually being done (e.g. handing in homework is required, but it's not a problem if it is doesn't actually work).

Coming up with hundreds of different small projects to e.g. get people to understand pointers isn't very realistic, and if you only test them in exams you're missing critical feedback both for the teachers and the students before it is too late.

Re: Why we still can't stop plagiarism in undergraduate computer science

#17
post #4

I was teaching the lab portion of CS 101 (don't remember the actual course number off-hand) when I discovered that two students had the same remarkable code that shouldn't have worked but did. We were using C, and instead of using globals or parameters, each function declared the same local variables in the same order. The stack, then, remained sufficiently consistent that each function had access to the values it ne…

In other words, we have made studying in groups a crime. Normally, to study a subject you would pose yourself problems and solve them, sometimes with friends. But we insist that homework be done individually, and we insist to assess every last little thing. I think this is a problem in the American university.

The other problem is that we have reduced scientific ethics to the subject of plagiarism. But there's other things, like publication ethics, medical ethics &c, and they don't even appear on the kids' radar screens.

Re: Why we still can't stop plagiarism in undergraduate computer science

#18
post #9

Requiring students to submit their VCS history along with the finished project would at least up the cost to the students for copy and pasting. They even hint at that sort of solution in the piece by mentioning cosmetic changes to the files at the last minute.

Was going to post something similar -- to protect myself as a student, I'd quickly adopt git to keep a history of my work. Not that this couldn't be forged...

Does git count as a block chain for proof of work? :)

Re: Why we still can't stop plagiarism in undergraduate computer science

#20
post #15
post #5

The article doesn't seem to even consider the possibility of assessing students in some other way than through standardized homeworks which are easily copied. For example, individual projects where everyone in the class is working on something different; or at the other extreme, proctored exams. (Of course, neither of these systems is entirely free from cheating, but the barrier is higher.)

For intro-level CS courses, neither one works all that well. You can do that in more advanced (but still undergraduate) courses, but for beginner-level you IMHO need the feedback loop of regular homework. It doesn't have to be strictly graded, but it basically has to be there and at least some enforcement for it actually being done (e.g. handing in homework is required, but it's not a problem if it is doesn't actuall…

Assess the homework, give them a grade on it but don't have it factor into their final grade at all. Just let the exams / big projects take care of that.

If you're regularly failing your homework, it probably means you won't be ready for the exam that actually counts. Which should be enough feedback

Post reply on HN