30

So I'm in a very strange situation.

I got a mail that said that there is a suspicion of cheating in my Python coding exam. It said that I and two other students have very similar answers on the test so I contacted these students and compared our exams. It is very strange because this was an exam for basic Python and the questions are not very hard. The thing is that we had similar answers on a couple of questions but there are not a lot of ways to answer the questions.

I don't even know the other two students. We will have a group meeting this week and I have no idea how this will go. How can I prove that I did not cheat?

nalzok
  • 1,605
  • 2
  • 11
  • 20
GGG
  • 403
  • 1
  • 4
  • 6
  • 10
    Any cheating detection system, automated or not, needs to have the property that it produces zero false positives. The meeting is part of that system and should assure that you aren't accused wrongfully. But it isn't well understood that a system permitting no false positives will almost invariably produce some false negatives. But the consequences of error in a cheating detection system are so asymmetrical that such a rule is required. – Buffy Nov 18 '20 at 16:15
  • 2
    Don't worry, this situation is much more common that you think. – Dmitry Grigoryev Nov 19 '20 at 13:19
  • @DmitryGrigoryev i compared our texts in a plagiarism checker. It is a 42% match, it’s really really strange. Is it even possible to have a 42% match and not get found guilty? – GGG Nov 19 '20 at 13:21
  • 23
    If the tests are about the basics, then whoever came up with the idea of using a plagiarism checker must be a complete fool. There aren't all that many ways how someone can solve very basic problems. "There are two integers, a and b, your task is to exchange their values. Your solution is not allowed to even slightly resemble any of the millions of previous solutions." – vsz Nov 19 '20 at 14:06
  • 3
  • 9
    Something seems odd about this. Telling you which students you were similar to gives away some potentially sensitive information - I'm not sure why it would be included. – Lio Elbammalf Nov 19 '20 at 19:13
  • Without having any subject matter experience to turn this into an answer, you could try putting the question on mechanical turk or equiv and generate statistics on answer similarity. I'm not sure how to do that while also excluding the people who will google and copy/paste instead of coding from scratch (maybe ask them and pay them either way so they don't lie?), but this general approach might be relevant. Whether it is worth doing now…is another question. – Seth Robertson Nov 19 '20 at 22:32
  • It might help if you told us the exercise. If it is just a few lines of code then it would be extraordinary if there weren't similarities between answers. But, how did you contact the other students if you "don't even know them"? – chasly - supports Monica Nov 20 '20 at 20:44
  • 1
    @vsz Not only are there not that many ways, but the students from the same course, using the same professor and texts, won't even express the full space of possible solutions to a problem. – Kaz Nov 20 '20 at 23:39
  • @GGG how many lines was your solution? A 42% match sounds extremely low. But note that a decent code comparison tool won't to a text match, but rather it will perform syntax normalisation etc. to remove comments and variable naming differences, so the tool's score could be much higher. – beldaz Nov 21 '20 at 20:15

3 Answers3

53

Don't panic. If you did nothing wrong, all you need is to explain what you did and everything shall be OK.

Based on some similarity metric (computed automatically or spotted by a naked eye), your lecturer or teaching assistant marked your work as a potential case of collusion (working together on individual exams). Now you are invited to a meeting, whose purpose is simply to investigate what happened. As a lecturer, I attend them routinely (from the other side than the one you find yourself in), and I can tell you that 50%+ of cases are dismissed immediately.

During the meeting, you will be asked a number of questions. One of them is likely going to be "did you work together with someone"? or "did you share your work with someone"? Answer honestly and provide details when they ask you to. Don't stress out and try to remain calm and polite as much as possible. If you need support, you usually can bring a student union representative or a personal counsel with you.

Don't overthink it. You are not accused at this stage, the misconduct is only suspected by the system. This meeting is not a trial, it's more like a routine checkup. There can be similarities between you work and the work of other students, but as you said, if the problems are simple and straightforward, the similarities are quite possible.

terdon
  • 2,451
  • 19
  • 20
Dmitry Savostyanov
  • 55,416
  • 14
  • 140
  • 202
  • 2
    Is it common to be asked to solve exam questions during the meeting? – GGG Nov 18 '20 at 16:07
  • 31
    "Don't stress out" is easier to say than to do in an inherently stressful situation. Sadly, it is, indeed, what you need to do. – Buffy Nov 18 '20 at 16:07
  • 2
    Whether it is common or not, it could happen. Be prepared, but not over prepared. That is, get plenty of sleep the night before. – Buffy Nov 18 '20 at 16:08
  • 7
    @GGG I worked in three different universities in the UK, and no, I don't think I ever heard of anyone doing it. But a student is expected to be able to recognise their exam script among others, to navigate through (e.g. find an answer to Question 3) quickly, to read their handwriting for the panel, etc. Obviously, as the author, you are expected to read your script confidently and understand it well. – Dmitry Savostyanov Nov 18 '20 at 16:16
  • 2
    Do any people come with a lawyer? Being invited to this kinf of a committee sounds like a very dangerous situation that can escalate quickly. – Vladimir F Героям слава Nov 19 '20 at 10:26
  • 4
    @VladimirF Some do, but most do not. I am not convinced the lawyer would be worth their fee during such talk. As I said, this is not a trial and if you are asked about Pythagoras' theorem, pleading the fifth will not really help your case. But IANAL, and they may give you a different advice. – Dmitry Savostyanov Nov 19 '20 at 10:47
  • 2
    @VladimirF In general, treating these kinds of meetings as adversarial doesn't end up well for anyone from a teaching point of view. In particular it tends to mean that staff will be advised to follow all procedures to the letter and to document all contact with the student, which precludes variations in the student's favour and that you avoid contact unless it's absolutely necessary to avoid the paperwork. – origimbo Nov 19 '20 at 10:59
  • 2
    The fact these things are not trials are actually a bit of an issue in many cases. Since you also don't get the benefit of the trial system such as proof beyond reasonable doubt or the provision of representation. – DRF Nov 19 '20 at 16:01
  • 5
    @origimbo Unfortunately they inherently are adversarial. It's just really easy for the teacher's to not think so since they've got no skin in the game. With most of teacher's/professors I've known you certainly are better off with a meeting like this than a full blown representation and paperwork thing. But there's that 10%-20% who are anything but impartial (I don't want to be rude here so I've chosen my words carefully). – DRF Nov 19 '20 at 16:04
  • @VladimirF at my university, the process explicitly allows for a student union representative to support the student. But it's also such an excessively involved process that professors tend to go with informal warnings (which they're strongly advised against) in all but the most egregious cases – llama Nov 19 '20 at 17:52
  • 1
    "You are not accused at this stage" - that's not necessarily true. Different institutions have different processes. – Michael Mior Nov 21 '20 at 13:22
14

Most often than not, when programmers face a common problem, a common software pattern will emerge.

In this case all you need to do is to explain your rationale and defend your choices. If you can explain the rationale behind it, we'll have a better consideration of you and the case will be dismissed right away.

Note: This belongs to comment's section. Unfortunately I don't have enough points to comment under @Dmitry Savostyanov's stellar answer, hence this

mjoao
  • 241
  • 1
  • 2
  • Thanks for your answer, just one question. What do you mean with rationale? – GGG Nov 19 '20 at 10:57
  • 4
    @GGG rationale means "why you did what you did". What reasons do you have for using this method or technique, when asked about it. – Jontia Nov 19 '20 at 11:17
  • 12
    One of official design principles of Python even is: "There should be one-- and preferably only one --obvious way to do it." https://www.python.org/dev/peps/pep-0020/ – tsttst Nov 20 '20 at 00:28
  • 3
    @tsttst But is OP Dutch? :) – John Coleman Nov 20 '20 at 03:04
  • 1
    @GGG I suspect he/she meant being able to explain your reasoning around the code you wrote. I wouldn't be too worried about it though - I have interviewed many developers for jobs and most are not the best at communicating what they did, so your teacher shouldn't expect much. If you teacher gives you problems, I suspect that appealing your situation to the next higher level (dept. head or dean) will get you acquitted. As mentioned earlier, the teacher is really out of line checking intro coding assignments against plagiarism since there are often so few ways to solve these types of problems. – java-addict301 Nov 20 '20 at 19:02
2

While common problems have common solutions individual programmers leave individual fingerprints which get copied and can be the hallmarks of cheating. So, for instance: int a ,b; is distinct from int a,b; and int a, b; to a plagiarism program but identical code.

Never copy-paste other sources because you will bring these tell-tale fingerprints across.

It's likely that these non programmatic tell-tales and style choices are what mark your code as suspiciously similar.

user131914
  • 21
  • 1
  • I had a colleague whose code was identical to mine. The way I found it was looking at some code in our common project, and thinking "I wrote this, but I can't remember writing it". Any plagiarism detector would have flagged both our code up. – gnasher729 Nov 21 '20 at 14:19
  • If one follows a style guide (like this one https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements) their code will have identical "fingerprints" to anyone else that also does, regardless of whether they write it or copy-paste it... This indicates nothing. – JS Lavertu Dec 15 '20 at 16:03