Evaluating possible code plagiarism means examining how a program was produced and whether similarities have a credible explanation—not treating a matching-code score as a verdict.

A careful review combines source comparison, development history, task context, and a chance for the author to explain.

What counts as evidence of code plagiarism?

Code plagiarism generally refers to presenting another person’s code, or a substantial portion of it, as one’s own without appropriate permission or attribution.

The exact definition depends on the setting: a course, workplace, open-source project, or contest may apply different rules.

Check the relevant policy before drawing conclusions.

Evidence can include unusually similar code, matching uncommon errors, shared comments, identical structure, or development records that suggest copying.

None of these proves misconduct alone.

A shared assignment prompt, required library, standard algorithm, starter file, or common coding convention can cause legitimate similarities.

Start with the assignment and comparison set

Before comparing files, establish what each person was asked to build and what material they were permitted to use.

Gather the original task description, starter code, provided examples, required interfaces, and any collaboration or citation rules.

These details help separate shared requirements from independently chosen implementation decisions.

Compare the questioned code with appropriate reference material.

That may include another submitted file, a public repository, an earlier project version, or a supplied template.

Preserve the original files and note their source and collection date.

If the code may change, work from copies so the comparison can be repeated.

Look beyond raw line matches

Text matching can identify identical lines, but source code can be changed without changing its behavior.

Renaming variables, reformatting, moving functions, or replacing a loop with an equivalent construct may hide literal overlap.

Conversely, common boilerplate can produce many matches that say little about copying.

Review the code at several levels:

  • Literal overlap: Are there identical sequences, comments, strings, or unusual typos?
  • Structure: Do functions, control flow, data structures, or operation order align in distinctive ways?
  • Behavior: Do both versions handle edge cases or fail in the same unusual way?
  • Context: Are the matching sections generic, required by the task, or specific choices the authors could have made differently?

Distinctive combinations matter more than isolated similarities.

A standard sorting routine is weak evidence by itself.

A rare bug paired with the same unusual variable names and the same sequence of nonrequired operations may justify closer examination, while still requiring context.

Use similarity tools as leads, not verdicts

Source-code similarity tools can help locate overlapping passages or structurally similar submissions, especially in a large comparison set.

They may normalize formatting or identifiers, depending on the tool.

Read the tool’s documentation and inspect the matched passages yourself; a summary score can conceal whether overlap comes from boilerplate, common libraries, or distinctive logic.

Codespy is an external source-code detector that may be considered when a code comparison is needed.

Treat its output as an investigative lead, not proof or an endorsement.

This article does not report firsthand testing or claim a particular accuracy rate.

Any tool result should be checked against the original files, task materials, and applicable rules.

AI authorship classification is a different question from code similarity.

A system that estimates whether text was AI-generated does not establish that source code was copied from another author.

Turnitin states that its AI writing model does not reliably detect code; a writing report should not be confused with a source-code similarity comparison.

Check development history and provenance

When available and appropriately collected, version-control history can show how a solution developed.

Commits, branches, timestamps, drafts, and intermediate files may help explain whether a person built the implementation incrementally or imported a finished result.

A missing history is not evidence of copying, and timestamps alone do not establish who wrote code.

Consider provenance for external material.

Search project documentation, dependency declarations, licenses, citations, and repository history to identify code that may come from a library, tutorial, public example, or permitted collaboration.

A close match may be legitimate if its source and use comply with the applicable rules.

Confirm the source rather than assuming that an online match establishes intent.

Document findings in a reproducible way

A sound review should let another person understand how the concern arose.

Record which files were compared, where they came from, the tool and settings used, and the specific passages or structural patterns that matter.

Separate direct observations from interpretations: “these functions share the same uncommon condition” is an observation; “the author copied the solution” is a conclusion that needs further support.

Preserve relevant versions and avoid editing comparison files.

If a tool provides a report, retain it alongside the underlying source material.

Explain limitations, such as shared starter code, language constraints, or incomplete history.

Follow privacy, access, and data-handling requirements when submitting code to an external service.

Give the author a fair opportunity to respond

Before making a finding, share the specific concern and ask for an explanation through the process required by the relevant institution or organization.

The author may be able to describe permitted collaboration, cite a source, show drafts, or explain a shared implementation choice.

Apply the same review standard consistently and allow the response to be considered alongside the technical evidence.

Keep the final assessment proportional to the evidence.

Similarity can justify questions or additional review, but a score, matching passage, or AI classification does not establish authorship, intent, or a policy violation by itself.

Decisions should follow the applicable rules and rely on a documented assessment of both the code and its context.