102

I'm a domestic student in the US at a medium-sized state school. Despite my poor English, it's my first language.

A few months ago, I finished a class on web development. My final submission was a simple but fully functional web app. The professor of the that class seemed happy with my work (and the work of my classmates) and gave positive feedback. No one was accused of plagiarism. It was a small class with only five people, we all know each other fairly well and I don't think anyone cheated. I know I certainly didn't.

This summer I am taking another class, which is co-taught by Prof X, who has made it clear that he thinks I am an idiot. Prof X is also one of the co-chairs of my program, but not the department chair.

Last week, I asked Prof X a question. Without going into too much detail, the question had to do with presentation skills. He scoffed at me and asked me how I completed the web-development class if I didn't already know the answer to the question (Prof X is, by his own admission, not much of a web developer). I told him I had completed it just fine. Then he told me I couldn't possibly have completed the final project. I told him I did. I asked him the question again. Then he asked me what my grade was in the web development class. I got an A, so I told him that. Normally I wouldn't get into it but I was happy with the grade. I was not able to get an answer to my question.

This week I found out that Prof X is starting a formal university disciplinary process against me.

I didn't cheat and I can prove it. I have all the code I wrote for the project and it's in my GitHub in a private repo so it was all version-controlled. I also have the presentations I gave to the class that show the work in progress. The web-development class's professor would vouch for me if needed, I'm sure of that.

While I think this is likely to blow over and not result in any problems for me, what are some precautions I should take just in case?

Clarification / Updates:

  • Prof X has never criticized my coding skills, only my ability to pass the web development class based on my question about giving presentations.
  • I can't drop the course as it is past the drop date now. But regardless, Prof X is one of three professors teaching this class and the other two seem to think highly of me so far, so I am less concerned about the grading.
4
  • 36
    How are you aware that there the formal disciplinary process has started? Did he tell you? Were you contacted by your university? – Gregory Currie Jul 11 '19 at 5:49
  • Answers in comments and side discussions moved to chat. Please read this FAQ before posting another comment. – Wrzlprmft Jul 11 '19 at 14:43
  • 6
    So ... the question you asked that triggered this was about your presenting skills? I'm having a lot of trouble understanding how one could possibly cheat on a presentation (as opposed to the preparation for the presentation, or the work being presented). If you pretend to be a good presenter well enough that you give a good presentation, that's not cheating, it's just being a good presenter. That's like "cheating" on getting an Oscar for Best Actor by pretending to act really well in your movie. – DarthFennec Jul 12 '19 at 22:59
  • 3
    There have been several times over my career where a student wildly overinterpreted a simple question or comment I made as some kind of personal attack. It might be worth confirming the prof meant it the way you took it. It's unlikely you are wrong if there is disciplinary action involved, but it feels like there's another side to this story. – Fadecomic Jul 15 '19 at 13:51
113

@JeffE recommends in a comment:

Discuss your situation with the department chair and your previous instructor, and keep careful documentation of everything.

4
  • 55
    Just in case it wasn't clear too, document your side of the conversation you had with him. As soon as possible, and as verbatim as possible. – Graham Jul 11 '19 at 14:11
  • 3
    For a few dollars (or less) you can get it notarized. This proves (by the notary's signature and date) when you had the notary sign it. The closer the notarization is to the date of the conversation the better. Keep it until you need it. If he says you said something, you can then produce the transcript showed that as of (earlier date) you didn't. – J. Chris Compton Jul 12 '19 at 13:21
  • 6
    Notarization only authenticates the signature on the document. It has no weight towards the content of the document, i.e. it still is going to be someone's recollection of the events, not true transcript of the conversation. – n0rd Jul 13 '19 at 16:31
  • The professor is going to have a really hard time proving you cheated in a class he didn't teach, provided your documentation is in place. In short, the most prepared will win. If he's arguing "you should have known / told me" you're counter is that "in the heat of him getting more aggressive with me, I couldn't find the right words under that pressure, but here's ample proof I did what I did." If you feel you can do it without weakening your case, then offer to answer questions verbally, or describe the difficulties of the assignment, and how you overcame them. – Edwin Buck Jun 2 at 4:02
67

At this point, you should treat the situation as if you were sued for committing a crime. The stakes are very high: at worst you risk being expelled from the university, which would leave a permanent scar on your CV and significantly mess up your life on the short term. You might think that I am exaggerating, but in your situation, you cannot be too careful. Some people, perhaps on this website too, will try to convince you that if you appear defensive, or uncooperative, then you are going to garner ill will. But ill will is immaterial, while being convicted of academic fraud is very real.

You should of course refrain from talking (especially orally) with your accuser. You should be extremely cautious in what you say to the authorities (the representatives from the department or the university). You should restrict yourself to denying the allegations, and only answer questions submitted in writing. You should seek help, at the very least from your friends/family (this is a stressful time), from your student union, from a trusted advisor at your university if you have one; perhaps even consult a professional lawyer who is used to dealing with university matters if you think the situation deserves it.

If you are afraid of how your department's chair / former instructor will react because of these actions, you can send them a letter/email explaining your motivations: a formal disciplinary process was launched against you, and while you are innocent, you are also afraid of what might happen if you do not take this seriously.

If you have not left anything out of your question, then your chances are good. People are not convicted based on lack of proof, in your case, lack of proof that you are good enough to have coded the web app that you have submitted. If this is all the other prof has against you, then he will be laughed out of the disciplinary process... unless you do something wrong.

I would strongly advise that you do not follow the advice given in Michael Kay's answer. You should obviously not admit that you do not master such and such fundamental notion, or that you had "good luck" when coding your webapp. This can only hurt you and introduce doubt about your abilities. You submitted your work, there is no material evidence that you cheated, and you got an A for it: this means that your instructor thinks that you actually master what was required for the class. Stick to this.

9
  • 9
    University proceedings also have a lower required standard of evidence than criminal court. However, the private repo, with natural commits, corresponding with OP's demonstrated knowledge of the code when presenting in class, should be more than enough to prove Prof. X is making a wildly false accusation. (At least, from a technical point of view. I won't claim that everyone is able to understand the technical explanation...) – Fund Monica's Lawsuit Jul 11 '19 at 19:35
  • 5
    Consider also: At my institution, it is explicitly allowed for a student to bring an attorney to represent them at disciplinary hearings. – Daniel R. Collins Jul 11 '19 at 21:17
  • 6
    If you can afford it, you might additionally consider consulting a lawyer, who might be able to write a nice C&D letter in regards to the prof's act of slander. – R.. GitHub STOP HELPING ICE Jul 12 '19 at 2:14
  • 9
    I’ll be the pedant: Normally one is indicted for a crime and sued for a tort. – Todd Wilcox Jul 12 '19 at 9:24
  • 3
    Since you guys are talking about lawyers... could OP sue Prof. X for all costs that OP pays in his defense from this disciplinary action, for damages, for harassment, or anything of the sorts? I ask because I'm not familiar with the US legal system – Blueriver Jul 12 '19 at 17:48
28

I'm really guessing here, so I might be completely way out, but my guess would be that you wrote the code and got it working despite not understanding some fundamental concept of WHY it worked; and the Prof, having a more theoretical mind-set than yours, can't imagine the possibility that people can get code working without understanding the theory.

It would help to know exactly what the question was.

So my answer to your question would be: try to engage in dialogue. Ask why the Prof thinks it would be impossible to get the code working when lacking the relevant knowledge; explain how you got it working despite not knowing the answer to the question. Perhaps be prepared to concede that there was an element of "good luck" in the process, and that the reason you asked the question was because you were seeking a deeper understanding of why your solution worked.

I have to say that after years of answering coding questions on SO, I am amazed how many programmers seem to operate quite successfully without having any real knowledge of the theory of what they are doing: you can get a long way by trial and error, and perhaps your Prof doesn't realise that.

3
  • 71
    I wouldn't disagree in principle, but the professor seems to have nuked the possibility of dialogue by starting a formal disciplinary process. – Graham Jul 11 '19 at 14:13
  • 68
    No, do NOT engage in dialogue with the prof! Nothing you say can improve your position against him, but anything you say can make things worse for you. Go find your Ombudsman and talk to him instead. – Dúthomhas Jul 11 '19 at 16:16
  • The discussion about programming skills and computer science has been moved to chat. – Wrzlprmft Jul 14 '19 at 9:03
18

Your Github commit history is sufficient to demonstrate that you did not cheat. Show that to the appropriate authorities and they should decide in your favor.

However, I guess you have misunderstood the situation (assuming you have stated the facts accurately). I suspect there is a conflict between Prof. X and the professor who gave you an A. Prof. X is attempting to make the other professor look bad in front of his colleagues by presenting evidence that his teaching is not good.

Most likely the end result will be harm to Prof. X's reputation, if he has one.

22
  • 6
    @Walfrat It's better to stay out of it. – Anonymous Physicist Jul 11 '19 at 11:31
  • 28
    The first sentence is totally wrong of course. GitHub commit logs do not prove who actually wrote the code that OP checked in. – Ben Voigt Jul 11 '19 at 13:39
  • 9
    @BenVoigt well if the initial commits do not resemble any other student's code, and are in a private repository controlled by OP's access credentials, the safe assumption is that it was checked in by OP. Prof X is making a spectacular show of completely forgetting Hanlon's Razor (though I think "innocent ignorance" is more apt here than "stupidity" -- the point is, OP more likely arrived at a valid solution through an unexpected means, inadvertently bypassing a lesson objective). – Doktor J Jul 11 '19 at 14:51
  • 2
    Additionally, I'd even venture that Prof A might've awarded the "A" grade precisely because OP found a novel and unique approach to the problem (which also further suggests OP's own work, as another student forging the work for them or allowing OP to copy would more likely have taken the "textbook" approach). – Doktor J Jul 11 '19 at 14:54
  • 9
    @DoktorJ: There are two broad swathes of cheating on such projects. One is copying existing work. The other is hiring someone more experienced to ghostwrite the project, in which case arranging that commits use the student's GitHub account is trivial to accomplish -- the ghostwriter generates a keypair and sends the public key to the student to add to the SSH keys list. If by "novel and unique" you actually mean "not taught in class", that is consistent either with the student coming in with previous experience, but it is also consistent with ghostwriting. – Ben Voigt Jul 11 '19 at 15:20
12

In addition the other answers,

document every interaction you have with Prof X.

  • keep communications to a minimum, your discussions will not convince him of anything and he will be looking for ways of incriminating you. The more you talk, the more opportunities you have to put your foot in your mouth (e.g. telling him you got an A in a subject which you don't 100% understand, which started this whole thing)
  • communicate with Prof X through email, rather than orally. This is probably the best method to keep record of who said what.
  • write down your oral conversations after they happen (remain factual)
  • record the lectures, many apps on your phone can do this.
  • make extra sure that nothing you submit for this class could be suspected of being plagiarized

Additionally, in regard to your academic performance overall rather than to the accusations in the other class

look at ways of getting out of Prof. X's class. He will most likely not be a fair grader.

  • Look at whether or not it's possible to take this class with a different professor, either by switching section or taking it at another university and getting the credit transferred. Given your username and your mention that the web course you just finished had 5 students, I would imagine this might not be possible... but worth looking into
  • If the course is not a prerequisite for upcoming courses in your program (and if you think that next year's instructor will not be Prof. X), look at the deadline to drop the course, and take it in the future with another professor who will most likely be fairer towards you.

If you can't find a way to get out of Prof X's class that won't affect your GPA (such as dropping a class after the deadline would) or delaying your graduation (if it's a prerequisite) make sure to do everything you can to be the "perfect student".

11

This week I found out that Prof X is starting a formal university disciplinary process against me.

You were asked in comments how you were notified about this, and I haven't seen an answer.

Unless you have heard about this in some official capacity, my advice would be to

  • make sure your process in the web-development course is as well-documented as it can be
  • Think about how best you can present your github history in a manner that a hearing panel can understand it
  • check your code against plagiarism detection tools to make sure there isn't a real problem
  • simply forget about the whole thing until you have an official notification.

The reason why I suggest this is because it feels like you're missing something. It is pretty unlikely that Prof X would launch an academic honesty case for a course he did not teach. He may well be encouraging the other prof to do so, or he may even be filing a case FOR THE SUMMER COURSE YOU'RE IN RIGHT NOW -- in which case you should consider whether all of the work you're claiming credit for is your own.

When (and if!!!) you get notification of an accusation of academic dishonesty, you'll be presented with what substantiates the accusation. Deny it and request a hearing. At the hearing, (assuming you're right about it being about the earlier course) explain that you are having a disagreeable misunderstanding with X, that you don't know what he's talking about, and walk the panel through your github record and show that your code passes plagiarism detection software (assuming that it does). The standard such boards use is usually not unreasonable doubt. My instructions, serving on such a board, is "halfway plus a hair" -- so if plagiarism detection software shows a problem, there is high likelihood of penalty -- assuming the board will even hear a case from one prof about another prof's class. That feels highly irregular.

Of course, the standard caveat is that I've only heard your side of the story. The prof may have a perfectly reasonable case against you.

If you're presented with some plagiarism detection output that shows copied code, and it does go to hearing, you will likely be found responsible. If this is the case, you might consider waiving the hearing and accepting the offered penalty, if you find it reasonable. It sounds like prof X might have a hair up his butt about you, and you might get a more just penalty from a hearing board.

If you do get a responsible finding, it's not the end of the world, and likely not even something that anybody important will ever find out about down the road, if this is a first offense. Try to learn whatever lesson is there to be learned, and move on.

5
  • 1
    Is there any reasonable plagiarism checker for code? There are usually just a few common ways to accomplish something so code tends to be similar very often. Besides, copying code snippets is usually part of the work, you are not supposed to write every line from scratch unless the task explicitly says that. – Džuris Jul 11 '19 at 19:52
  • @Džuris code isn't my thing, but some free tools are listed at elearningindustry.com/…. It's also worth reading any academic honesty statements in the syllabi of the two courses to see if profs specified what's allowable and what's not -- though they probably didn't. – Scott Seidman Jul 11 '19 at 21:17
  • 1
    All of those seem for checking texts in a natural language. I found this one codequiry.com/code-plagiarism but I wouldn't use it. The example of plagiarism there is an example that would be allowed in most classes. Students are not supposed to invent algorithms or new conventions... Plagiarism in coding is like plagiarism in maths - you can only prove it if someone has copied the errors. – Džuris Jul 12 '19 at 9:27
  • 1
    @Džuris In programming, there is often a very simple way of solving most problems. A good "code" plagiarism checker would not be fooled by a variable rename, or a method rename (and often there are generally accepted good standards for generating such names). Because of this, it's highly unlikely that the content will vary enough to keep false positives down. Instead the better solution is to teach students to commit their work often, and then to compare commit logs against each other. It is rare for two students to arrive along the exact same path, and lack of the work log is a fail. – Edwin Buck Jun 2 at 3:52
  • 1
    I believe the most common code plagiarism detector is MOSS: theory.stanford.edu/~aiken/moss – zfj3ub94rf576hc4eegm Jun 3 at 6:57
0

You need to get advice from someone local who knows Prof. X. You might start with a departmental academic advisor or to the director of undergraduate studies (or some similar position). This situation is so truly bizarre, and it's difficult as an outsider to work out whether Prof. X is experiencing a serious psychological break, whether Prof. X is a blowhard who makes a lot of idle threats, whether this is about internal politics between X and the other professor, or whether you've completely misunderstood the situation. But at any rate this is not normal. As everyone else has said document everything, and you might also look into whether there are "student advocates" or similar people to help you navigate the disciplinary procedures.

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.