From Georgina Cosma and Mike Joy. Towards a Definition of Source-Code Plagiarism
IEEE TRANSACTIONS ON EDUCATION, VOL. 51, NO. 2, MAY 2008, 195-200

This is an except from the above paper based on a study with UK academics.

IV. SOURCE-CODE PLAGIARISM: TOWARDS A DEFINITION
Based on the responses summarized previously, the following is suggested as a new definition of what constitutes source-code plagiarism in an academic context. Source-code plagiarism in programming assignments can occur when a student reuses (Section IV-A) source-code authored by someone else and, intentionally or unintentionally, fails to acknowledge it adequately (Section IV-C), thus submitting it as his/her own work. This involves obtaining (Section IV-B) the source-code, either with or without the permission of the original author, and reusing (Section IV-A) source-code produced as part of another assessment (in which academic credit was gained) without adequate acknowledgement (Section IV-C). The latter practice, self-plagiarism, may constitute another academic offense.


A. Reusing
“Reusing” includes the following:
1) reproducing/copying source-code without making any alterations;
2) reproducing/copying source-code and adapting it minimally or moderately; minimal or moderate adaptation occurs when the source-code submitted by the student still contains fragments of source-code authored by someone else;
3) converting all or part of someone else’s source-code to a different programming language may constitute plagiarism, depending on the similarity between the languages and the effort required by the student to do the conversion; conversion may not constitute plagiarism if the student borrows
ideas and inspiration from source-code written in another programming language and the source-code is entirely authored by the student;
4) generating source-code automatically by using code-generating software; this could be construed as plagiarism if the use of such software is not explicitly permitted in the assignment specification.

Where source-code reuse is not allowed, reusing (Section IV-A) source-code authored by someone else (or produced by that student as part of another assessment) and providing acknowledgements mayconstitute a breach of assignment regulations, rather than plagiarism (or self-plagiarism).

B. Obtaining
Obtaining the source-code either with or without the permission of the original author includes the following:
1) paying another individual to create a part of or all of their source-code;
2) stealing another student’s source-code;
3) collaborating with one or more students to create a programming assignment which required students to work individually, resulting in the students submitting similar source-codes; such inappropriate collaboration may constitute plagiarism or collusion (the name of this academic
offense varies according to the local academic regulations);
4) exchanging parts of source-code between students in different groups carrying out the same assignment with or without the consent of their fellow group members.

Incidents of source-code plagiarism can co-occur with other academic offenses (such as theft, cheating, and collusion) depending on academic regulations. The list previously mentioned
is indicative of key areas where this form of plagiarism occurs, but it is certainly not exhaustive, since there are numerous ways that students can obtain source-code written by others.

C. Inadequately Acknowledging
Inadequately acknowledging source-code authorship includes the following:
1) failing to cite the source and authorship of the source-code, within the program source-code (in the form of an in-text citation within a comment) and in the appropriate documentation;
2) providing fake references (i.e., references that were made-up by the student and that do not exist); this is a form of academic offense, often referred to as fabrication, which may co-occur with plagiarism;
3) providing false references (i.e., references exist but do not match the source-code that was copied); another form of academic offense, often referred to as falsification, which may co-occur with plagiarism;
4) modifying the program output to make it seem as if the program works when it is not working; this too is a form of academic offense.