I'm a domestic student in the US. Despite my poor English, it's my first language.

In May 2019, 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.

Last week, I asked Prof X a question. 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. 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?

Bringing info from OP's self-answer below up into the question:

@MichaelKay - "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."

I accept that I may not understand some fundamental concepts of why it worked. However, Prof X is not a computer science professor and by his own admission is not a programmer. The class I'm taking this summer is in psychology and that is the area of research of Prof X.

"It would help to know exactly what the question was."

Sure, without going into too much detail about the coursework, I had asked for help with my presenting skills. My question did not have anything to do with programming. The class I'm taking this summer is in psychology, no programming involved.

Prof X has never criticized my coding skills, only my ability to pass the web development class based on my question about giving presentations.

@Bey - This isn't a major research university, it's a medium-sized state school. Prof X is not a department chair, he is one of the co-chairs of my program specifically, not the whole department. 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.

  • 32
    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
  • 9
    "I'm a domestic student in the US. Despite my poor English, it's my first language." Is this relevant? – Evorlor Jul 11 '19 at 17:35
  • 28
    @Evorlor might be relevant to why "Prof X, who has made it clear that he thinks I am an idiot" – aaaaa says reinstate Monica Jul 11 '19 at 17:46
  • 10
    "Last week, I asked Prof X a question." What was the question? This might be (marginally) relevant. – Faheem Mitha Jul 12 '19 at 6:11
  • 12
    I am having a very hard time imagining any sort of concept about giving presentations that would indicate someone couldn't pass a web development class. What sort of question/concept was it? – Dronz Jul 12 '19 at 18:34

@JeffE recommends in a comment:

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

| improve this answer | |
  • 51
    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
  • 1
    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
  • 5
    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

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.

| improve this answer | |
  • 8
    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
  • 4
    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
  • 4
    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
  • 7
    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
  • 1
    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

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.

| improve this answer | |
  • 67
    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
  • 60
    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

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.

| improve this answer | |
  • 6
    @Walfrat It's better to stay out of it. – Anonymous Physicist Jul 11 '19 at 11:31
  • 27
    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

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".

| improve this answer | |

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.

| improve this answer | |
  • 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

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