Faurus Plag

Finds the copy behind the disguise. Measured, not promised.

After a contest or an assignment, Faurus compares every student's code with every other's, and with code from outside the class, and tells teachers what changed between two similar answers. We test it on public datasets and show on this page where it wins and where it does not.

The numbers

  • 0.92ROC-AUC on ConPlag, real contest plagiarism in Java (681 held-out pairs). Dolos 2.10 scores 0.83 on the same pairs.
  • 1 in 495honest ConPlag pairs reach our cluster threshold (0.70). 81 of the 82 pairs at or above it were real copies; they are 44% of all the copies. The rest score lower.
  • 94%of copies padded with a useless line after almost every line still reach 0.70. Dolos: 8%. (Our own test set, below.)
  • 9.7 sto compare 1,000 submissions with each other, all 499,500 pairs, on one core of a shared server.

What it sees through

The usual disguises, named in the report

For every similar pair, a teacher sees the matching lines side by side and a short list of what was changed. It describes the difference between two codes, never who copied whom.

  • Renamed variables and functions

    Names do not count; the shape of the code does. The report says how many names were changed.

  • Comments, spacing and layout

    Removed before comparing. "Only layout changed" is named as such.

  • Blocks and functions moved around

    Matching code is found wherever it sits, and the report counts the moved blocks.

  • for loops rewritten as while loops

    C, C++, Java, Python and JavaScript are read by structure, so the loop form does not hide a copy.

  • Dead code and helper functions

    Statements that do nothing are dropped, and small helpers are read as if written in place.

  • Starter code and boilerplate

    Code most of the class shares, such as a teacher's template or fast input routines, is left out.

Results

Tested on public, labelled datasets

ROC-AUC is the chance that a real copy scores above an honest pair: 1.0 is perfect, 0.5 is a coin toss. It needs no threshold, so no tool is tuned to look good.

ROC-AUC of Faurus v2, Faurus v1 and Dolos 2.10 on three public datasets
DatasetPairsFaurus v2Faurus v1Dolos 2.10
ConPlag, raw contest code (Java)Pairs681Faurus v20.919Faurus v10.901Dolos 2.100.833
ConPlag, templates removed (Java)Pairs681Faurus v20.932Faurus v10.928Dolos 2.100.908
IR-Plag, six disguise levels (Java)Pairs1,188Faurus v20.695Faurus v10.535Dolos 2.100.538

Faurus v2 is the engine Faurus runs today; v1 is the older one. Dolos is an open-source tool from Ghent University. Run on Nov 4, 2026.

Limits

What it cannot do

  • A similarity is a lead, never proof. Short problems have few correct answers, so honest students can write nearly the same code. Faurus says "93% similar", never "copied", and marks very short code as "too short to judge".
  • Equivalent rewrites of tiny programs cannot be told apart from honest work. On IR-Plag's hardest level, five-line programs with their logic rewritten, we catch 38%, about the same as Dolos (40%).
  • Code under about 200 tokens is weak evidence for every tool we measured, ours included.
  • We have not yet run JPlag on our machine, and we do not use MOSS (it needs an account and uploads your students' code to a server in the US). On ConPlag, the published numbers for JPlag and MOSS are above ours, measured a slightly different way, so we do not claim to beat them.
  • Faurus Plag checks code. It does not check essays or reports.

Method

How we measured

  • ConPlag: 911 pairs of real Codeforces submissions labelled by its authors (Slobodkin and Sadovnikov, 2022, CC BY 4.0). We kept their split: thresholds are tuned on 230 pairs and scored on the other 681.
  • IR-Plag: 7 Java tasks with 355 copies made at six disguise levels, 105 independent solutions, and every pair of independent solutions (Karnalim et al., 2019, Apache-2.0).
  • Our own set: 90 programs in C++, Java and Python, three independent solutions per problem, and 515 disguised copies. Each copy was compiled and run, and kept only if it still printed the same answers. We wrote it, so we treat it as a check, not proof. No student code is used anywhere.
  • Every tool sees the same files and is scored the same way. We share the full report, the raw scores and our test set with any college that asks.

Try it on one batch

Faurus Plag is part of every Faurus college space: coding contests, coding tests and code assignments. Run a two-week pilot and read the report on your own students' work.