Detect and Prevent Software Plagiarism in Computer Science

Creator of this software plagiarism detection service for computer science professors.

Compliments of Gwen Estep Photography

Software Plagiarism is a Big Problem

I see it every semester as a Computer Science professor. Plagiarism on software assignments impacts all educational institutions from high-priced universities to community colleges and high schools -- and it must be dealt with and prevented! I have taken on this challenge at my college, and I am proud to say that measures I have employed have resulted in a significant drop in plagiarism cases.

Computer Science Plagiarism Detection Cloud Service

My name is Doug Estep. I work for the University of Dayton Research Institute as a software architect and senior tech lead. I'm also an adjunct professor, teaching computer science courses for Sinclair College in Dayton, Ohio. I originally created Estep Software Forensics as a simple command-line tool to help me measure the similarities between software projects. Word spread around the college of the successes I was achieving, so, based on popular demand, I made Estep Software Forensics into a cloud service so that all professors can take advantage of the powerful plagiarism detection algorithms.

With Estep Software Forensics, you simply upload your student projects, and it compares each project to all current and past projects -- measuring the similarities of the algorithms used. Common tactics used to hide the plagiarism are taken into consideration by my algorithms. The resulting screen displays each student alongside the student they matched to, and their match percentage. You are also provided the ability to view each method, side-by-side, to compare the two implementations and a PDF report to keep for your records.

You are given input into how the algorithms work. Examples include, allowing you to set the minimum match percentage that must be hit in order to be considered a match, the ability to focus only on certain classes and packages in the evaluation, and other options such as ignoring debug statements and string literals during the evaluation.

Estep Software Forensics only evaluates your institution's projects and only for the selected assignment -- not every institution in the database. This distinction allows for very quick responses that can be served back to you at the click of a button.

A demo is worth a thousand words.  right here, right now. It's simple, free, and anonymous. The results are displayed immediately, and you can download the free PDF report.

The power behind this service is its ability to look in the past when comparing projects. The more projects that are uploaded, the bigger the evaluation and the bigger the benefit. For example, it's normal for a student in your current class to be matched up to a student 2 years prior -- assuming there are two years of projects uploaded.

To take full advantage of this service, and freely upload all of your projects from past and current classes.

Continue scrolling for more details on how the service works, including screenshots of the workflows.

How to Prove Plagiarism

Suspecting someone of cheating and proving it are two completely different challenges. Most of the time when I present my suspicions to the student, the student eventually confesses. Some students steadfastly deny they cheated even when you have presented evidence to the contrary. If you decide to take action against the student and the student decides to fight the accusation, then you must be prepared to prove it.

The only way that you can absolutely prove plagiarism has occurred is to find the source code or the project of a past student that matches the cheating student. It's rare that the cheating student actually knew or conspired with the past student to cheat on an assignment. More often than not, the two students found the same solution online and turned it in. If you can find that matching project (or multiple matching projects), then you can present a side-by-side comparison of the matching code to the cheating student. At that point, it's laughable if the student still denies the offense.

It is not practical to manually compare each student project to all past projects for each assignment. That is why I created the Estep Software Forensics cloud service. It compares a student's project to past projects for the same assignment and produces a page and a report identifying students who used SIMILAR ALGORITHMS. It identifies cheating students in seconds and displays the students in order of worst offenders to least.

Here is how it works.

First: Set up Your Class and Assignment Information

The Estep Software Forensics cloud service does not compare each student project to every other student in the database. Instead, it only compares the student project to current and past student projects for the same assignment. Comparing based solely on the assignment (and not to the entire database) allows the service to evaluate only relevant projects and within an acceptable performance metric. However, this does require you to set up your classes and add the assignments before you can use the service to check for plagiarism.

Estep Software Forensics streamlines the class and assignment creation by allowing you to create class templates. A class template defines the assignments and any report configurations for the assignment.

Step 1: Creating a class Template

Setup the structure of a computer science class for software plagiarism detection

The next step is to create all assignments for the class template.

Step 2: Add Assignments to the class template

Add all assignments to the structure of a computer science class for software plagiarism detection

Classes are then created from the template. At the start of each semester, you simply create a new class based off the template (takes just a few minutes). A class template saves a lot of time because you are only doing the setup once for each type of class.

Step 3: Create a class from the template

Create a computer science class for software plagiarism detection

The final step is to add the students to the class. You can add them one at a time or import them using a pre-defined CSV file.

Step 4: Assign the students to the class

Add all students to the computer science class for software plagiarism detection

Second: Check for Plagiarism After Each Assignment is Turned in

Now that you have your class and assignments setup, you can check for plagiarism after each assignment is turned in. The workflow to identify students who have plagiarized an assignment is very intuitive -- with just four easy steps:

1 - Select the class and assignment that you want to check for plagiarism.

Step 1: Select the class and assignment that you are checking

Select the computer science class for software plagiarism detection

2 - Import or add the student projects. You can add each project one at a time or import the projects using a pre-defined file name. We offer custom coding for this step. For example, we created a third import option for colleges that use the Desire to Learn application ( ). This allows colleges to download the D2L projects and import them to our service -- saving a lot of time.

Step 2: Add or import the student projects to check

Add or import the projects to the computer science class for software plagiarism detection

3 – The report criteria were initially defined on the class template with default values. You can accept the default criteria as they were defined on the class template, or you can change them here to meet your needs, possibly focusing on specific packages and classes within the project, ignoring code that is considered debug statements, ignoring values contained within strings, etc.

Step 3: Apply specific report criteria (usually take defaults)

Configure the search criteria to the computer science class for software plagiarism detection

4 – Generate the plagiarism report. This screen displays all students in the selected class that match another student project for the assignment -- the worst offender to least.

Step 4 – Generate the plagiarism report.

Identify the students who have plagiarized their software projects

Clicking the compare link on the Plagiarism Report page allows you to compare each method to the matching student to visually confirm the plagiarism.

View each method to verify the plagiarism.

Inspect each method for evidence of software plagiarism

And, you can download a PDF version of the plagiarism report for your records.

Download a PDF report for your records

Downloads the computer science plagiarism detection report.

Do you want to try it? It's super easy to get started!

Sign Up

Trying this service is free and easy. No commitment. No hassle. Just create an account and start setting up your classes and assignments. You can evaluate this service free for 30 days. Load your classes. Import your projects, and generate as many plagiarism reports as you want -- ALL FOR FREE. Don't worry about cost or setting up any payment options while you are evaluating. Just create an account and start your evaluation.

In short, you have nothing to lose, so try it out!

Tell us About Your School or Institution

Please provide your email address and your information about your institution.


Choose a plan that best suits your institution. There are no contracts and no cancellation fees with any of our plans and you can cancel at any time. Please CONTACT US with any questions regarding the cost. We want to talk to you.

Don't wait. Let's get started today!

Project Based

This plan is perfect for institutions that do not anticipate using this service for every assignment but plan to use it on specific assignments such as a midterm or final project. Invoice amounts vary based on usage.

** Limited Special Offer: 25% Off


This plan is perfect for institutions that plan to use this service for many classes and on many assignments. This plan is easier to budget for because your invoices are always the same. Use everything this service has to offer for the same monthly rate.

** Limited Special Offer: 25% Off