I present to you two scenarios that are different, but not enough to warrant two questions.

Scenario 1: You discover that a student copied some section of the code verbatim from the docs of some relevant (or possibly not-relevant-but-applicable) module. Something more significant than the setup is required (because then this scenario would be too trivial to include).

Scenario 2: For the open source language you choose, the submissions need a convenient interface for an auto-grader. It needs to have a standard library. If not for the fact that it’s part of a larger code base, it would never be segregated. Indeed, it is never meant to be segregated from a larger context. And the student worked around these two coincidences due to oversight by copying this relevant but inaccessible-through-the-normal-interface portion of code into an assignment.

It is safe to assume that these courses are for beginners. We see that the docs or some subsection of the stl wasn’t even an independent function. Or it doesn't have what is required to solve a problem. This means that understanding what is being done is then more critical. What should I say? What should I do?

  • 2
    $\begingroup$ This question needs some punctuation. As is it fills by head with ideas, only I do not know exactly what they are. $\endgroup$ Dec 13 '20 at 10:54
  • 1
    $\begingroup$ Are you and the student confusing Copyright infringement with plagiarism? $\endgroup$ Dec 13 '20 at 10:54
  • 1
    $\begingroup$ I think I understand Scenario 2, but Scenario 1 is still opaque to me. Can you give more clarification? $\endgroup$ Dec 14 '20 at 4:10

So, my take on this is to sit down with the student and have roughly this talk:

So, I'm a little disappointed by the lab you handed in, for two reasons. The first is that it is pushing on the edges of plagiarism. Now, I'm not going to go through the formal process, and there is going to be no punishment this time. I am instead assuming that this is a distinction that you were unaware of, and I am going to make sure that you are completely aware of it now:

Plagiarism means passing off someone else's work as your own, and this code isn't really your own, and your source isn't fully cited. As I said, I'm not going to pursue this further at this time, but in academic work, you should be citing sources for anything that is not entirely your own.

The second reason I'm disappointed is because you've even more deeply misunderstood the purpose of the assignment. You clearly came in thinking that the purpose here was to accomplish the task. I know that in industry, the idea is often to just get working code out. But in spite of what you might think, I actually care very little about [insert the result of the lab here, such as "the number of brick arrangements in this oddly-specified wall" or "whether the character in this game can correctly identify a collision"]. Why do you suppose I created this assignment? Was it because this is an unsolved puzzle, and there is a pressing need to accomplish this task?

Of course not! These problems have been solved many times before.

The purpose of the task is to help you learn and absorb the material, and to help make you a better student and a more capable person. The ideas in this lab are foundational, and carefully chosen to help you build up to bigger and more difficult ideas in the future. I want you to absorb these ideas well enough that you can mentally use them to build those bigger and more complex ideas. The goal was never this algorithm per se. The goal has always been mastery, so that you can move on to even bigger and better things with a good chance of success.

I think you can see where I'm going with this. You have kinda cheated me by giving in work that's only sort of your own, and you have kinda cheated yourself by only sort of wrestling with the topic well enough to master it.

We will survive this today, and we will move forward. But I need you to understand that this isn't the way to approach lab work. Can I now trust that I won't get this sort of work turned in again?

... and after the student agrees ...

Good. Labs are for learning. I hope that the rest of your day is pleasant. Take care, and I will see you again in class.

  • 3
    $\begingroup$ Niiiiiiiiice. Love it. $\endgroup$
    – Buffy
    Dec 12 '20 at 22:00
  • 1
    $\begingroup$ @Buffy Getting praise from you always feel particularly satisfying. :D $\endgroup$
    – Ben I.
    Dec 12 '20 at 22:01
  • $\begingroup$ Very good. Sounds much like the very script I myself use in this situation too! $\endgroup$ Jan 5 at 22:00

Not sure you can blame the learner really. If the information was obtained by RingTFM then full marks. Hacking the standard library - unconventional but shows initiative.

The real problem was the assignment wasn't it? You say that the answer was literally written in the manual, that the standard library had a routine for it...hmm.

Now there is a real danger here of getting confused about the difference between a) the rules of coding b) the rules of the classroom.

If there was copyright violation its a problem for a) but since the language is open source a little tricky for you. You might penalise the student for not supplying you with the GPL3 (or whatever) though they did actually provide the source code.

If the problem is that the assessment didn't go to plan (b) then I think you are to blame to be honest. Next time, be more inventive with the programming assessment and/or set a more significant 'hacking some code solutions out of the standard library' exercise where you make it clear that you expect a proper license.

Don't blame your learners for your own mistakes. Live and learn and have your learners follow that example.


I think it was in some Python tutorial I read ages ago, but at the very beginning, in bold, there was a statement (paraphrasing from memory):

Whatever you do, do not copy the code. Copying code stops you from learning, from remembering. Rewrite it. Paraphrase it. Do not copy.

Perhaps the student who copied that code id not know of this principle? Personally it was quite late when I read that and came to this realization. Earlier I'd just read tutorials and copy-paste the snippets since I've read and understood them anyway.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.