Questions you need to ask yourself:
- Did you cite your sources?
Although the topic of plagiarism crosses different fields, not all fields are the same. Writing a program is not the same as writing an essay. Although both share similar components of thought, grammar = tabs/spaces, nouns = objects, prepositions = pointers, etc. Functionally they are different. As part of your assignment, did you cite that you got the sections of code from an open source library? Even if it wasn't a formal citation, then perhaps within the comments linking to the library?
- How many ways can a person realistically complete a given goal?
If the task was to sum a list of integers. Would it be plagiarism if 10 programmers' code used sum(object)?
a common algorithm for chaining that I can explain thoroughly
This is where you need to argue that there is a point where a given piece of code has become common information, but you need to demonstrate that it is in fact, common. A non-expert would not have the background knowledge to presume that what you say is correct. You would need to provide examples. (Think of Hello World, who really 'owns' it?)
IANAL, but it would appear that the actual law itself is complicated.
Over 30% of the class has been reported for academic integrity violations on projects over the semester, and the newly graduated professor doesn't seem to think himself or his assignments are the problem.
A professor of computer science is not a lawyer, but he or she certainly has the capability of understanding computer science questions and ask him or herself whether or not there is malicious intent involved. If the plagiarism claims can be addressed with a simple document where you cite your sources (libraries, open source projects, github repos), then the claims should go down.
Knowledge and learning doesn't happen in a vacuum.
Thanks for this. Like I said before, citing code is foreign to me (and I've been programming since age 8), and I did NOT (but SHOULD have) cited those lines. Forgetting to cite two lines and committing plagiarism on the whole project are two different things, though, especially on a project of this size. How would you address that?
You make the argument that the current tests to determine plagiarism (such as in english) does not work well when it comes to programming and scripting, citing and documenting your sources is functionally different. In an essay, citation is to demonstrate where you got the idea from. In an program, it is to document how the snippet of code will help you achieve your goals. The purpose shifts from 'giving credit where it is due' to 'how is this going to help and what does it do'.
With this in mind, look at "hello world". It is a universally known introduction to programming languages. But no experienced programmer needs to 'cite it' to understand it. It has become 'common' across all languages. However a specific compiler in C that will allow it to control a robot arm, is not common enough for a experienced (regardless of language) programmer to recognize it easily, hence the need for documentation. Within the world of Java however, it would be up to you to demonstrate that the code you would be 'common' enough to not be considered to require citation.
As far as the case itself, you can make the argument that your actions don't constitute the traditional definitions and test for plagiarism. But don't expect that your audience (fellow peers) would understand given the severity and the credentials of the plaintiff (your professor). Another avenue would be to argue how the severity of the punishment -100% is not consistent with the scope of the alleged plagiarism. It is alleged, not proven. Until a definitive judgement is made, it is open to debate.
To fail a student unilaterally based off of plagiarism would and should be appealed to a 'higher authority' or at the least, reviewed by a panel of knowledgeable individuals (versus laypeople). You stated that this class has an (in my opinion, enormous) percentage of plagiarism claims. While I don't have stats for back up my statement, 30% is ridiculously high. In my academic career, plagiarism was an RARE occurrence. So another point you can make is whether or not the professor is misapplying the concept traditional plagiarism to a field where it is fundamentally different.
Another argument you can make is that code citation was never taught/stressed/expected by the professor in the class. You were taught what plagiarism was before, most likely when it came to composing essays, but never taught how it applied to coding. Although this argument might be missing a leg or two (especially in the realm of, you should already know), but how would it be reasonable to hold you accountable for something you've never been taught to look out for?
Thanks, that's a good point to raise. He just uses MOSS from Stanford, like I linked in the OP. I don't know his cutoff of percentage similarity before he accuses people.
A plagiarism detector like that is a Tool to lend credence that X was plagiarized, a tool among many. It is by no means a end-all be-all test to determine plagiarism.
Take a breath-analyzer test for DUI's for example, if I ate Poppy Seeds and tested positive, would there be extenuating factors? If all your professor is using to determine plagiarism is a tool, ask whether or not tools can be flawed.
Although this is more rhetoric and logic than programming, I am sure no one can ever claim that a program is perfect. (Except COBOL, because it is 100% perfect) So if it is indeed the only metric that your professor is using, what's the possibility for false positives? Would it be just to unfairly punish students if a program determined that they cheated?
With this said, read your student handbook if you can have an academic adviser through the process. Also contact your ombudsmen services if your school has one. This office can arbitrate issues such as this if the institution allows for it.
In my opinion, a panel of fellow students (without legal or programming backgrounds) would not be best suited to determine if programming plagiarism occurred.
Clarify, is -100% actually 0%? Or is your professor not only giving you a 0% for the assignment, but also further penalizing you an additional amount? I.e. A+B+C=100 (A=20,B=20,C=60), a 0% on A would mean total 80%, a -100% on A would mean total of 40%. - Bluebird
He is further penalizing me an additional amount. I would not be receiving a zero on the project (which my grade could afford), but actually my overall grade is being hurt MORE than the 7% the project is worth. –TheSmartWon
Tricky thing here... (given the update) if the board finds in your favor, this does not mean that the professor would treat you as he/she would other students moving forward. You may find yourself under even closer scrutiny.
@user2264247 He looked at the MOSS with me for about 5 minutes today
(exactly the one I posted in the OP), and he only focused on that hash
function. He did not even know what the function did before we talked,
so I don't think he previously reviewed it. Him and his colleague (idk
why she was in the room) stated, that because I copied two lines, my
whole program is guilty of plagiarism and that they would accuse me.
They really didn't seem to think twice or care about it, probably due
to the large number of cases they go through. – TheSmartWon
@FrankFYC That colleague and him also publish papers together, and
teach companion courses. They are good friends. It's just his name
accusing me on the "integrity violation report", but I'll raise that
point for sure. I have no idea what she was doing in the room, all she
did was quickly dismiss all my arguments that my professor might
otherwise have listened to. It brought her joy to prove me wrong on
every point I raised, it was kind of sadistic. I was like another
insect trapped in their web! – TheSmartWon
If this was the United States. Read about FERPA. I am not an expert, but I would presume that if your professor allowed another faculty member to see your grades, it would be a violation. This might be the act that blows up in their face. If you are in the US, make sure to establish the fact that both professors were in the same room as you when you discussed the report.
Please see aeismail's answer to a question.
Given the number of other cases, would you presume that the other professor was in those cases as well? As in, the other professor was privy to other student's grade?
They can deny it all they want, but if more than one student claims that both professors were in the room, this would be in effect, a class action (ha, pardon the pun) issue.
Document everything, and set up an appointment with your university's FERPA Coordinator (like a dept. set up to receive FERPA complaints).