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?) - [Patenting Software is complicated][1] 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. ---------- > 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][2]? 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)][3] So if it is indeed the only metric that your professor is using, what's the possibility for [false positives][4]? [Would it be just to unfairly punish students if a program determined that they cheated?][5] 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. [1]: http://www.ipwatchdog.com/2013/02/16/a-guide-to-patenting-software-getting-started/id=35629/ [2]: http://articles.chicagotribune.com/2005-10-18/news/0510180208_1_poppy-seeds-poppy-seed-morphine [3]: http://wiki.c2.com/?WhyWeHateCobol [4]: https://en.wikipedia.org/wiki/False_positives_and_false_negatives [5]: https://www.insidehighered.com/news/2009/03/13/detect