4 ms·
With a CS degree a better solution is make it project based. Even if someone uses code found somewhere, just changing it up to not be obvious, that's not that d
by lostcolony 6y ago
With a CS degree a better solution is make it project based. Even if someone uses code found somewhere, just changing it up to not be obvious, that's not that different than actual industry, AND means they had to understand it at some level. And that's for stuff they -can- search for (such as 'implement a data structure/algorithm').
- Turing_Machine 6y agoThis is the answer. No one wants to hear this answer because it means actual work for the teaching staff (compared to, say, automated scoring of multiple-choice tests), but it is, in fact, the answer.
- professoretc 6y ago> actual work for the teaching staff It's not just "actual work", writing high quality tests and projects and then grading them is multiple full-time jobs worth of work. It's equivalent to interviewing 100 job candidates every week, forever.
- lostcolony 6y agoSpeaking as someone who TAed a couple years: I much preferred grading projects to tests. Projects they had to demo, and they had a published rubric. While it was possible sometimes to play to the rubric, it still meant there was very little work to figure out a grade. Tests, on the other hand, I had to dig in, understand what they were trying to do, figure out if it worked, and award partial credit. I guess the prof could have done multiple choice to make grading easy, but that has all kinds of problems with actually testing anything.
- Turing_Machine 6y agoYeah, I've done it. Both as a TA and as instructor of record. The fact that the university doesn't provide adequate staffing is not an excuse for short-changing the students still further.
- munificent 6y ago> actual work for the teaching staff Actual work for the already incredibly underpaid, over-worked teaching staff. As the money dries up in university funding, teachers are stretched thinner and thinner. That forces them to rely more on automated testing instead of having the time to actually know more about their students' performance. That in turn makes it easier for students to cheat. The economics (as usual) are perverting the system. The individual participants are merely suffering from the perserve incentives of the system.
- leetcrew 6y agomore likely, have TAs write the variations while paying them the state minimum wage. arguably a feature if that means you need to hire TAs. a lot of students need work-study as part of their financial aid package.
- skeeter2020 6y agoYour answer indicates you don't really understand the intent nor desires of university profs. It's not to be the best version of the teachers you had in grade school. We can argue if this is THE best approach, but it is how the system is set up.
- Turing_Machine 6y agoI taught at a Big 10 university for 12 years, both as a TA and as instructor of record. So I think I actually understand the system pretty well. Edit: teaching is part of the job, dude. It just is. If you asked the average taxpayer (you know, the ones who pay the base salary before grant money is taken into account) whether teaching is an important part of the job, what do you suppose they're going to say? If you don't want to teach, you need to find a job that doesn't involve teaching. If you accept a job that requires teaching, you're morally obligated to provide the best teaching you can. Or so I see it.
- nradov 6y agoSure projects are generally better than exams. But cheating on projects and papers is also rampant. Students just pay someone else to do the work.
- MattGaiser 6y agoProjects also need to change dramatically year after year or else people will just get the project from the year prior.
- lostcolony 6y agoThey can change slightly (even if someone gets the project from a prior year and modifies it a bit, that still requires understanding), or they can be open ended enough to be obvious if someone directly cheats (i.e., the 'create a game for the Game Boy Advance' project I had)
- lostcolony 6y agoWhich presumably is why a lot of mine also included demos followed by questions about the implementation.
- ModernMech 6y agoHere's my solution to this: 1) Version control all assignments. I force them to make periodic commits throughout the week. If they want to copy a project wholesale, they have to do so in a way that takes a lot of time and effort. 2) Comparing bytecode. If they change the names of variables, comments, spacing, etc. these superficial differences will be lost in compilation. 3) Oral explanations. Now that everyone has guaranteed access to screen recording software, I force my students to record an explanation of their work. They go through their code line by line and explain it to me. I can tell very quickly when a student is explaining code they haven't written. If they are explaining code they haven't written to a satisfactory degree, then they've at least demonstrated they've learned something. 4) Remove incentives to cheat. Give them all the resources they need and more than enough time. Provide easily accessible venues like chatrooms and forums where they can ask questions anonymously. Provide opportunities to improve prior poor grades so they feel like failure is okay. This doesn't eliminate cheating 100%, but from my experience it does seem to cause cheaters to fail, as their cheating does not pass for acceptable work. The students who earn an A come to see me during office hours and I know they are doing the work. I would say very rarely does someone earn an A who is not on my radar as being an obvious high-performing student. If a student is cheating and earning an F or D, I can't say I care much about that. Notice none of these methods involve an invasive surveillance regime. I don't require cameras on at all time, 360 degree views of work areas to prove no one is helping, software to monitor tabs and processes... all this is completely futile. The students hate it and it incentivizes them to find ways to thwart it. They feel justified in doing so. I saw one post that advocated running a high speed fan to drown out typing noises, wearing reflective glasses in a dark room to foil eye tracking software, putting Vaseline on the camera... all to what end? To cheat on a psych exam? It's an arms race that's not worth fighting. The solution here is to adapt teaching methods with new technologies and testing methods.
- 908B64B197 6y agoThere's software to detect copy-pasted code or plagiarized (it analyses the syntax tree so renaming the variables and changing indentation won't fool it!). The best however, is a 1:1 code review with a TA or Prof. Randomly jumping to files, reading the code and asking questions about it. Extremely hard to copy a codebase and learn it well enough you can explain it but really easy to do if you wrote it yourself.
- leetcrew 6y agoI have to wonder how well that analysis code works in practice. for a lot of intro-level (and some mid-level) course assignments, there's only one or two straightforward ways to write the code. sometimes these assignments are just pasting together sample code from the powerpoint with a couple tweaks. I was a TA for a few of these courses, and the correct solutions tended to be very similar. I was only sure students were cheating when they made several of the same mistakes. re the 1:1s with TA/professor, I agree. if you can explain code that you didn't even write, you might be even more deserving of that A.
- lostcolony 6y ago100%. We had similar software when I was a TA, and I just ignored it and left it to the professor to deal with. I found a few cases of obvious plagiarism though, for the exact same reason you mention, too - the same mistakes.
- 908B64B197 6y agoIt's completely useless for intro courses. But in my experience, intro courses are completely bimodal for CS: some students just get it and some just don't. Sure the later can copy their assignments. But once they'll hit a non-trivial assignment or a code review in a more advance class they won't be able to fake it anymore. You are just delaying their transfer to another major. And that gives the CS department one extra course they can collect tuition from and justify hiring TAs for...
- amalcon 6y agoYeah, this description immediately brought to mind FizzBuzz. In a C-like language, there's basically a whole 3 ways to write it without doing something esoteric (loop a switch, loop an if/elseif construct, try to be cute with independent ifs and a boolean).