49

Last year I took a class where we had to work with a partner on programming assignments. Apparently someone's solution from this year has a 50% match with our solution from last year. I did not share my code with anyone but I would not be surprised if my partner did. What should I do?

Edit: I just talked to my partner and apparently he posted the code on Github so he could show a professor his previous work. But then he deleted it later.

Update: We talked to the professor and he says my partner and I will not get in trouble.

user56301
  • 421
  • 1
  • 4
  • 5
  • 54
    What is it that you are accused of doing wrong exactly? Your code is your creation so I don't see why you should not be allowed to post it on github. It seems to me that if anyone cheated it is the student who copied your code, not you or your partner. – Dan Romik Jun 07 '16 at 19:57
  • Do you have proof? Github Logs or the witness statement from the other prof? This would show who put it on GitHub. Your friend could argue that this was a mistake (I do not know what the policies in your school are, so YMMV). – Captain Emacs Jun 07 '16 at 20:04
  • 10
    I am not following. How could you cheat? Your solutions is a year older. There is no way you could have copied... Do they suspect since there is a match there was a common source? Or do they suggest you sold it? You need to precisely define what "cheat" means in here. Accusation of plagiarism on your side is unreasonable and derogatory from the POV you present. So I suspect there must be more specifics to this case. – luk32 Jun 07 '16 at 22:44
  • 1
    Why do you think you are being investigated? Have you been notified by the investigating panel? Have you been asked for testimony? Is there some general gossip around the campus?// What have you heard, and from whom? – A. I. Breveleri Jun 08 '16 at 01:54
  • Your problem description contains very little information. To answer "What should I do?" in any useful way, we will need to have a much more complete description if your situation. – A. I. Breveleri Jun 08 '16 at 02:05
  • 9
    Knowingly providing answers to a fellow student is considered cheating. Thus it is possible for him to have cheated, but it's also possible his partner did, or that it was copied off Github or even obtained by some other means. – Loren Pechtel Jun 08 '16 at 02:32
  • 5
    Smile and wave while they fail to prove you cheated. You have everything on your side including own your work and being allowed to do whatever you want with it including posting it on the Internet. – Insane Jun 08 '16 at 03:49
  • How complex is the code we're talking about here? – The Nate Jun 08 '16 at 04:46
  • 10
    @LorenPechtel - That seems like a rather esoteric definition of cheating. More typically, the cheater is the one who benefits through deception, fraud, or other dishonest acts. I don't see how the original author of the code can be consider to be "cheating" by publishing their work. If a subsequent student gets a copy of the code and passes it off as their own, then that student has cheated (they're the one getting the benefit). And also the university should stop reusing coding exercises across multiple terms. But I see no scenario under which the OP can be considered to have cheated. – aroth Jun 08 '16 at 05:04
  • The next time make sure you use private repositories so that you are able to share the code only with the people you want. Bitbucket provides unlimited private repositories in its free plan, probably GitHub has something similar. – Bakuriu Jun 08 '16 at 07:42
  • @aroth- if you provide another student with the answers to a test, you'll both ge tin trouble, although only the recipient of the code may possibly be described as 'cheating' in the normal sense. – Steve Ives Jun 08 '16 at 09:17
  • 5
    Some courses at my university explicitly forbid posting code on public platforms such as Github (due to this having been a problem in the past). Those who assist in plagiarism (by posting on Github) are treated as if they committed the plagiarism themselves. You are be in the clear (assuming you can show your partner is responsible for posting), but your partner would get in trouble at my university. – Tom van der Zanden Jun 08 '16 at 10:40
  • 1
    @TomvanderZanden: This means I'm forced to not publish any kind of my studys, because otherwise my title might get revoked? soudns weird. – Zaibis Jun 08 '16 at 11:44
  • 50% of the code matches? That doesn't say much. Good developers reuse tried and true code, whether from someone on Stack Overflow or straight out of K&R's textbook on C. Now, if 50% of your variables had weirdly unique names that matched each other, like 'countYellowBananas' or 'starWars_iz_lyfe', then there's reason for suspicion. – 8protons Jun 08 '16 at 16:36
  • @aroth Publishing, no, that's not cheating. Providing the code to someone to facilitate their copying it for the assignment is enabling cheating. – Loren Pechtel Jun 09 '16 at 13:15
  • 1
    Cheating cases aren't tried in the court of common sense, but in an honor council which applies the rules set out in the school's code of academic conduct. It will define exactly what is meant by the term "cheating", or otherwise how sharing solutions is to be viewed. I just checked my school's handbook and unauthorized assistance to others is included in the definition of cheating. – A Simple Algorithm Aug 08 '19 at 10:42

3 Answers3

45

I am sometimes involved in panels that investigate unfair means. I am also in the position of checking my own students' code for suspected plagiarism, often by comparing code from a large pool made from the current and past submissions. There are several tools that assist with this, such as Moss and JPlag. I have experience with both these but there are others, and some that academics have made for themselves for local use.

It is quite possible, therefore, to get a match between a current student's submission and a previous student's submission without the lecturer or university knowing how that occurred. All they can do in this situation is to convene an investigation to determine the facts. Often these investigations are formal affairs, mainly to protect the interest of the students concerned and to ensure that the decision makers are impartial.

This is highly likely to be the position you are in. At the moment they do not know how another student came in possession of your code. If the investigation is organised properly you will be given the opportunity to explain your position, just as you did here. Most investigations should allow you to submit written and verbal statements. You should ensure you do this. I also suggest you seek advice from others who can assist you locally, such as a students union or student association or other student advisor. They will have assisted other students in the same position as you before and help you make the best of the procedure that you have become involved with.

Although it may not be your fault, at the moment the university does not know this. Help them to understand.

  • 6
    I'm not too familiar with these plagiarism tools myself, particularly for coding, but is a 50% match that high if you look over all past submissions? It seems to me that you should expect some "spurious correlations." – Kimball Jun 07 '16 at 23:42
  • Comments are not for extended discussion; this conversation has been moved to chat. – ff524 Jun 08 '16 at 04:52
  • @Kimball In response to your question: the number should never be used alone as evidence of cheating. Spurious matches are indeed possible. But the report should show where there is significant match with a single source. I assume that is the case here. – Jessica B Jun 08 '16 at 06:06
15

For someone possessing only the facts that the code you (plural) submitted last year and the code someone submitted this year have 50% overlap, here are some possibilities:

  1. You gave the code to the student from this year expressly for the purpose of letting him or her submit it as their own work. At most universities this would be a violation of academic honesty rules. In my undergraduate institution they can get you both for facilitating cheating, and for not reporting cheating when you are aware of it.

  2. The student got the code from you, and submitted as his/her own, without your permission. This seems to be the case you have here: your partner posted it on GitHub. This would also be the case where someone ask for your help on a homework and you send him/her something for reference, but not to allow him/her to copy.

  3. Both of you copied the code off of some forum, and you just happened to have found the same one because that's how Google's indexing works. In this case both of you would be guilty for plagiarizing, as you are both submitting others' works as your own.

You are being investigated because the University/instructor does not know whether it is case 1, 2, or 3 (or something else entirely). There's no need to freak out, since as many have said, your code is your intellectual property and unless it is expressly forbidden in your academic regulations you probably haven't done anything wrong by posting it on GitHub. What you need to do, however, is to convince whoever is doing the investigating that your situation is that of case 2 above. You do so by submitting evidence: tell them that you have never shared the code with anybody. Tell them that your partner had posted the code on GitHub to show a professor. Ask that professor to say something on your behalf (a simple "yes, so-and-so posted some of his previous work on GitHub for me to see") would be also quite good. It would be even better if your partner had saved the commit logs showing when the code was publicly viewable.

Willie Wong
  • 11,052
  • 1
  • 45
  • 69
  • 6
    I agree with your answer (+1), but this opens a can of worms. Are you innocent until proven guilty, or do you need to prove your innocence? If the burden of proof is with you, there is no way to show that it was not on github, AND you provided your solutions to a friend. Also, honor codes tend to be written very broadly, leaving leeway to interpret them in several ways. Is putting a solution on GitHub "providing assistance where a reasonable person should know such assistance is not permitted?" (paraphrasing my grad school's 'examples of hc violations') Nasty stuff. – gnometorule Jun 07 '16 at 21:55
  • 2
    @gnometorule: the internet opened that can of worms some time ago. // To draw a really bad analogy with criminal proceedings: while one is innocent until proven guilty in a court of law, it generally does help your case if you can provide an alibi. // As to interpreting the honor code: not my job, and hopefully I won't have to serve on that committee anytime soon. But in the situation under discussion, the OP is certainly not his partner's keeper etc. – Willie Wong Jun 07 '16 at 22:30
  • 1
    What part of this contradicts "innocent until proven guilty?" That concept does not mean "immune to accusation," despite the fact that a mere accusation can damage the accused's reputation. – stannius Jun 07 '16 at 22:57
  • 2
    You passed over possibility #4: The 50% match is coincidental. There is also 50% not matching. While unlikely it is still possible that the project forced the code into certain shapes and so similarity becomes inevitable. I would want to look hard at the code from both submissions and see if it is a true match or just a superficial one. – O.M.Y. Jun 08 '16 at 03:14
  • 1
    @O.M.Y. Of course. But two points: (1) if the project does force the code into certain shapes that make similarity inevitable, I would expect that overall the code overlap between any pair of students to be high. (2) I would assume that the fact that the university has initiated an investigation to mean that someone has already decided that coincidence is unlikely. Of course on both counts I am assuming something of the unknown university's unknown process for detecting plagiarism, so I freely admit the possibility of being quite off the mark. – Willie Wong Jun 08 '16 at 03:26
  • 1
    @WillieWong I agree. It's like using TurnItIn, the raw numerical match is not sufficient. I often find the match is mostly in the source citations and if it is a small paper with several sources one can easily have an overall 30% match because of the references page. – O.M.Y. Jun 08 '16 at 03:44
  • 8
    @O.M.Y.: Many years ago I had written a short essay for an assignment, where I actually constructed every phrase completely on my own, but for some baffling reason there was a phrase of 5 or 6 technical words that so happened to match exactly a phrase in some article I had never even seen before, and the plagiarism tool found it, along with those pesky citations like you said, making my total similarity 25% despite me not copying a single word from anywhere. – user21820 Jun 08 '16 at 04:28
5

This happened to me while a student at Georgia Tech. I posted some code (that incidentally included an active lab report) on github because a potential employer wanted to see my work. I posted it, not realizing that it defaulted to being publicly accessible. Another student found my homework assignment before the due date and submitted it as their own. We were flagged for cheating and the other student pled guilty. I did not accept the plea deal and was eventually found guilty of:

  1. Unauthorized Access - Possessing, using, or exchanging improperly acquired written or verbal information in the preparation of a problem set, laboratory report, essay, examination, or other academic assignment.

Which, quite frankly, doesn’t make any sense, but the decision was upheld on appeal so I had no further recourse.

DanGoodrick
  • 151
  • 1
  • 3