HandbookLearning55

Plagiarism & integrity.

Two students hand in the same paragraph. On paper a teacher might spot it; across a class of forty online submissions, they will not. YESS puts a quiet integrity check under the LMS: when a student submits text, the database compares it against every other submission on that same assignment and raises a flag if two look copied. A review board collects those flags, and the teacher decides — real concern, or false alarm. This handbook is deliberately honest about a small, sharp tool: it catches classmate copy-paste, and it is not a web-scale plagiarism service.

  • 2detection methods
  • 2flag states
  • 5chapters
  • ≈8 minto read

Prologue

A small, sharp tool#

Let us be precise about what this module is, because the word "plagiarism" invites expectations it does not meet. This is not Turnitin. It does not search the web, published papers, other assignments, or previous years. It has no external service behind it and no AI paraphrase detector. What it is: a guard, built entirely inside the database, that catches the most common academic shortcut in a class — one student copying another's answer on the same assignment.

The whole feature is one table of flags and one review screen at /dashboard/lms-plagiarism. There is nothing for a teacher to run, schedule, or configure. A flag appears when the database notices two submissions are too alike; a teacher reads it and either lets it stand or dismisses it as a false positive. That is the entire loop, and its honesty is the point — a school knows exactly what it is relying on.

Catch the obvious copy between classmates, surface it plainly, and leave the judgement to the teacher.

Chapter one

How a flag is raised#

The detection is automatic and runs at the moment a student submits. When a text submission is written or updated, a database trigger wakes up, normalises the text (lower-cased, whitespace collapsed), and compares it against every other submission on the same assignment in the same school. It works in two passes:

Two ways it compares

  1. 1

    Exact match (hash)

    The normalised text is hashed. If another submission on the assignment has an identical hash, the two are character-for-character the same after tidying whitespace and case — a straight copy-paste. The flag is recorded as an exact match at the top of the similarity scale, and the check stops there.

  2. 2

    Near match (trigram)

    If nothing is identical, the trigger measures character-trigram similarity between the submission and each other one. When two submissions cross a high similarity threshold — a light edit of the same text — a near-match flag is raised carrying the measured similarity. It is good at catching 'changed a few words', weaker against genuine paraphrase.

A few honest boundaries baked into the trigger: it only looks at text submissions of a reasonable length (very short answers are skipped, since two one-liners are naturally alike); it only ever compares within a single assignment; and it never reaches outside the school. File uploads, PDFs, and images are not analysed at all — only typed text. And the whole check is best-effort: if the text-similarity capability is unavailable, the trigger simply skips rather than blocking the submission.

Chapter two

The review board#

A teacher or admin with LMS-assignment view rights opens /dashboard/lms-plagiarism. The screen is a single board — every flag in the school, split into what needs looking at and what has already been handled. Across the top, four counts:

  • Active — flags not yet dismissed; the working queue.
  • High severity — the strongest matches, the ones to open first.
  • Exact match — the character-for-character copies.
  • Dismissed — the flags already cleared as false positives.
Designed product mock — the review board: a KPI strip (active, high severity, exact match, dismissed) above active-flag cards, each with a similarity badge, a detection-method tag, and a dismiss control.

Each active flag is a card carrying its similarity, a tag saying whether it was an exact or a near match, when it was detected, and the identifiers of the two submissions involved — sorted so the strongest matches sit at the top. The only action is Dismiss as false positive: the reviewer must type a short reason (a template answer everyone was told to reuse, a shared quotation, a legitimate collaboration), and the flag moves into the history section with that reason attached. There is no un-dismiss — clearing a flag is a considered, recorded decision.

Chapter three

What it does not do#

Being clear about the ceiling is as useful as describing the floor, so a school can size its expectations correctly:

  • No web or corpus check. A student who copies from a website, an encyclopedia, or a friend at another school is not caught — only similarity between two submissions on the same assignment is measured.
  • No cross-assignment or cross-year memory. Reusing last year's essay, or the same answer on a different assignment, does not raise a flag.
  • Text only. Uploaded files, PDFs, images, and audio are never analysed; a submission has to be typed text to be compared.
  • Not paraphrase-proof. The near-match measure is character-based, so a thorough rewrite that keeps the ideas but changes the words will slip under the threshold.
  • The teacher decides. There is no severity ladder that punishes on its own, and no student notification — a flag is information for a human, not a verdict.

None of this is a defect to hide; it is the deliberate scope of a minimum guard. If a school needs web-scale originality checking, that is a different, larger integration — noted in the roadmap below.

Chapter four

What this guard does well#

Four things done right

  1. 1

    Detection you cannot forge

    Flags are written only by the database trigger; the review screen can dismiss but never create one, and the client is blocked from inserting flags outright. Every flag reflects a real measured similarity, not a manual accusation.

  2. 2

    Zero effort to run

    There is nothing to schedule, upload, or configure. The check fires on submission automatically, so a teacher's only job is to read the board — the detection has already happened by the time they open it.

  3. 3

    Exact and near, in one pass

    The same trigger catches the character-for-character copy via a hash and the lightly-edited copy via trigram similarity, tagging each flag with which it was so a reviewer knows how strong the match is at a glance.

  4. 4

    A dismissal with a reason

    Clearing a false positive requires a written reason and is kept in history — so the record of what was reviewed, and why it was cleared, survives long after the assignment is graded.

Planned & honest gaps

What is still to come#

This module is intentionally the minimum guard, and its author labels it exactly that. The larger integrity product is roadmap, not shipped — here is the straight list.

Five honest gaps

  1. 1

    External originality checking

    Web, corpus, and cross-year comparison — the kind a dedicated plagiarism service does — is out of scope today. A pluggable external-provider integration is the planned upgrade for schools that need it.

  2. 2

    Per-assignment filtering

    The board shows every flag in the school at once; filtering to a single assignment or class is not wired yet, so at scale the queue can get long. A per-assignment view is planned.

  3. 3

    File-content analysis

    Only typed text is compared; uploaded documents are never read. Extracting and comparing text from file submissions is planned.

  4. 4

    A resolution trail

    A flag is either active or dismissed — there is no 'confirmed', 'escalated', or 'penalty applied' state, and the reviewer's identity is not yet stamped on a dismissal. A richer resolution workflow is planned.

  5. 5

    Student notification

    Nothing notifies a student that their work was flagged, and no consequence fires automatically. Linking flags to conduct and to a notification is planned.

Adjacent modules

Where integrity connects#

Tutorial

Do it step by step#

Work the integrity check the way it is meant to be worked — let it run on its own, then review what it surfaces. Four steps, all on the teacher's side.

  1. 1

    Let submissions flow in

    Nothing to switch on. When students submit text on an assignment in the LMS, the database compares each one against the others on that assignment and records a flag for any that are too alike — automatically, at submission time.

    Only typed text of a reasonable length is compared. File uploads and very short answers are skipped by design.

  2. 2

    Open the review board

    Go to /dashboard/lms-plagiarism. Read the four counts — active, high severity, exact match, dismissed — and start with the high-severity and exact-match flags at the top of the active list.
  3. 3

    Read the flag

    Each card shows the similarity, whether it was an exact or near match, and the two submissions involved. Open the assignment in /dashboard/assignments to read the actual work and judge whether the match is a real concern.
  4. 4

    Dismiss or let it stand

    If it is a false positive — a shared template, a common quotation — click Dismiss as false positive, type a short reason, and it moves to history. If it is genuine, simply leave it active and handle the consequence through grading or a conduct note. There is no automatic penalty.

    There is no un-dismiss, so dismiss deliberately — the reason you type is kept on the record.

A copy caught the moment it lands, surfaced with its evidence, and cleared or kept by the one person who should decide — the teacher.