Skip to main content

Consistency Check

The consistency check is an AI-assisted feature in Hyperion that detects cross-artifact inconsistencies in programming exercises before they are published to students.

A programming exercise consists of four interconnected artifacts: the problem statement, the template repository, the solution repository, and the test repository. When one artifact is changed without updating the others, students may face exercises they cannot solve — for example, the problem statement describes a method named calculateAverage while the template declares computeMean.

For the formal definition of the underlying issue types and ontology, see: Dietrich et al., "Automated Consistency Checking of Multi-Artifact Programming Exercises", Koli Calling 2025.


Triggering a Consistency Check

Instructors with at least Editor role can trigger a consistency check from the exercise management view. The check runs synchronously and typically completes within 20–50 seconds.


Understanding the Report

Each detected issue includes:

FieldDescription
SeverityLOW, MEDIUM, or HIGH — indicates how likely the issue is to block students
CategoryThe type of inconsistency (see issue types below)
DescriptionHuman-readable explanation of what is inconsistent and where
Suggested fixConcrete recommendation for resolving the issue
LocationsAffected artifact, file path, and line range for each side of the inconsistency

Issue Types

CategoryWhat it detects
Method return type mismatchA method's return type differs between artifacts
Method parameter mismatchA method's parameter list (names, types, or count) differs between artifacts
Constructor parameter mismatchA constructor's parameter list differs between artifacts
Attribute type mismatchA field's declared type differs between artifacts
Visibility mismatchA member's access modifier (public, private, …) differs between artifacts
Identifier naming inconsistencyAn identifier is spelled differently across artifacts

What the Check Does Not Flag

The checker deliberately ignores intentional pedagogical gaps:

  • Empty method stubs and TODO comments in the template repository
  • Abstract method bodies
  • Issues already covered by existing review threads on the exercise

Reliability