Source Code Plagiarism Detection Using Multi-Element Array Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current plagiarism detection tools for source code are limited by their dependence on expert knowledge of programming languages, vulnerability to code rearrangement, and discarding of useful information like comments and identifiers, leading to missed matches and obscure results.

Innovation Solution

A combination of algorithms including Source Line Matching, Comment Line Matching, Word Matching, Partial Word Matching, and Semantic Sequence Matching is used to compare source code files comprehensively, preserving structural information and utilizing identifiers to enhance plagiarism detection accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If Plague uses structure-metric algorithms to detect plagiarism, then detection capability is improved, but the tool becomes dependent on expert knowledge of programming languages and vulnerable to code rearrangement

Engineering Contradiction:
Improveplagiarism detection capabilityVSAvoidadaptability to new programming languages
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies universality by creating a plagiarism detection system that works across multiple programming languages without requiring language-specific expertise. The system uses generic tokenization and structure-metric algorithms that can process code from different languages uniformly, making the tool adaptable to new programming languages while maintaining reliable detection capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If Plague discards comments, variable names, and identifiers to focus on structure, then detection accuracy for structural plagiarism is improved, but useful information is lost that could help identify plagiarism

Engineering Contradiction:
Improvedetection accuracyVSAvoidloss of comments and identifiers
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent merges multiple detection approaches by combining structure-metric analysis with identifier-based detection. The system simultaneously processes structural metrics and preserves identifiers, comments, and variable names, then integrates both types of information to detect plagiarism. This combination allows the system to maintain high detection accuracy while preserving useful information that can independently identify copied code.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of manufacture

If Plague uses UNIX shell tools for processing, then implementation simplicity is improved, but processing speed becomes slow

Engineering Contradiction:
Improveimplementation simplicityVSAvoidprocessing speed
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent replaces the mechanical UNIX shell toolchain with a compiled C++ implementation. The system uses custom data structures and algorithms implemented in compiled code rather than interpreting through shell tools, significantly improving processing speed while maintaining the same functional capabilities and implementation simplicity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Object-affected harmful factors

If Plague rearranges code lines to hide plagiarism, then evasion capability is improved, but detection reliability decreases

Engineering Contradiction:
Improveevasion capabilityVSAvoiddetection reliability
Core Design Contradiction:
Object-affected harmful factorsVSReliability

Solution Approach 1:

The patent applies dynamics by using dynamic time warping and flexible alignment algorithms that can handle reordered code lines. The system dynamically adjusts the comparison process to account for line reordering, making it resistant to plagiarism attempts that rearrange code structure. This dynamic approach maintains detection reliability even when plagiarists try to evade detection through code reorganization.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8261237B2Software tool for detecting plagiarism in computer source code
Publication Date: 2012.09.04 SAFE IP LLC
  • US8261237B2 patent drawing
  • US8261237B2 patent drawing
  • US8261237B2 patent drawing

AI summary

A method and system for detecting plagiarism of software source code. In one embodiment, a first set of arrays and a second set of arrays are created for a first program source code file and a second program source code file respectively. Each pair of arrays in the first and second sets has entries corresponding to program elements of a distinct program element type such as functional program code, program comments, or program code identifiers. Next, each pair of arrays from the first and second sets is compared to find similar entries, and an intermediate match score is calculated for each pair of arrays based on the similar entries. Further, the resulting intermediate match scores are combined to produce a combined match score, which is then used to provide an indication of copying with respect to the first program source code file and the second program source code file.