

While there are many reasons for this within the specific context of my high school that are irrelevant to this question, a big benefit is that I am always present when students are working on labs. I know this is probably a debated issue but I, personally, do not assign any work outside of class time so no homework or projects or anything done outside of the lab. I have certainly not fully conquered the problem but here are a few things that I do that seem to help:ĭon't assign work that is not to be completed in the lab. Biggest issues I have in my CS class are distracting websites (YouTube, games, etc) and copying code. I can only speak from a high school perspective as that is what I teach (14-18 years olds), and I truly feel your concern on this question. The lab sessions are to practice, it is ultimately up to the students to use them wisely. This is why we don't give the lab assignments a large share in the final mark (most of the time just pass/fail), and rely on the final exam for an accurate grade. Of course, this is not always possible and especially in beginners courses plagiarism is 1) much more common and 2) much harder to check. For example, not "Here is the skeleton of the Car class, finish the methods drive, turn and halt" but "Choose a suitable representation of a car that can drive, turn and halt." We usually tend to give students larger tasks and more freedom. reporting it quickly, before the next assignment has to be handed in), students are scared off and in later weeks it is much less of a problem for us.įor small programs like your example, it is not always possible to justify a plagiarism accusation, because there are not many ways to write such a program. This is typical, especially for first-years courses, and I'm not sure something can be done about it. There always remain some people who work together, and often students start groups on social media to exchange solutions. When plagiarism is suspected, notify the examination board directly (this is a policy, and it helps to show the severity of the issue).Īt the beginning of the course, explicitly mention that we expect students to hand in alone or in pairs, and that collaboration between groups is OK as long as it remains on an abstract level. For example, the hash of the program below would be something like #(,*): #include Then compare this 'hash' for all hand-ins, and when you find a match manually check if the programs look alike. parentheses, curly braces, semicolons, etc. The general idea is to strip comments, whitespace, variable and function names, literals, and thus only keep the general structure of a program, i.e. What we do:Īutomated plagiarism tests, that are tailored to the language. I am a student assistant for some programming courses at bachelor level.
