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 deliverable of cite your sources (libraries, open source projects, github repos), then the claims should go down. [1]: http://www.ipwatchdog.com/2013/02/16/a-guide-to-patenting-software-getting-started/id=35629/