Skip to main content

AI-Assisted Exercise Authoring

Artemis can help write an exercise rather than just store it. The Hyperion module drafts and refines problem statements, analyses them for clarity and difficulty, generates Java template, solution and test code, and flags inconsistencies between the problem statement and the repositories.

None of it happens behind your back: every AI-generated change is shown as a diff you accept or discard, and generated code is a draft to review and build before students see it. This page also covers review comments, which are how exercise authors discuss the code with each other, with or without AI involved.

AI-Assisted Problem Statement Authoring​

Artemis integrates AI-assisted authoring capabilities into the programming exercise editor through the Hyperion module. These features help instructors generate, refine, and analyze problem statements without leaving the editor. The AI assists the process while the instructor retains full control — every AI-generated modification must be reviewed and accepted through a diff view before it is applied.

The AI-assisted authoring features are organized into two areas:

  1. Problem Statement Generation and Refinement — create and iteratively improve problem statements
  2. Instructor Checklist — analyze quality, infer learning goals, and assess difficulty

Generate Problem Statement​

When creating a new exercise, the Problem step provides a requirements input field. Enter a textual prompt describing the desired exercise (up to 1,000 characters) and click Generate Draft Problem Statement. The system generates a Markdown draft that includes task annotations for linking tasks to test cases and inserts it directly into the editor.

Problem statement generation interface
AI-assisted problem statement generation with requirements input, character counter, and the generated draft in the Markdown editor

Refine Problem Statement​

Once a problem statement exists in the editor, the same input field accepts a refinement instruction. Click Refine Problem Statement to revise the entire document based on the instruction. The system produces a revised version and presents the changes in a diff view.

Problem statement refinement interface
Global refinement mode — the action changes to 'Refine Problem Statement' when the editor already contains content

Targeted Refinement​

To modify a specific portion of the problem statement, select a text region in the Markdown editor. A Refine Selection button appears next to the selection. Click it to open an inline instruction field (up to 500 characters), then enter a description of the desired change. The system produces a localized revision affecting only the selected region.

Refine Selection button next to selected text
Targeted refinement entry point — the button appears when text is selected in the editor
Inline instruction field for targeted refinement
Inline instruction field for describing the desired change to the selected region

Diff View​

Every AI change to an existing problem statement — global refinement, targeted refinement, quality fixes and difficulty adaptation — is presented in a diff view before it is applied. The left column shows the current problem statement with deletions highlighted in red, while the right column shows the proposed revision with additions highlighted in green. A summary bar reports the net change statistics. You can accept, discard, or toggle between split and inline views.

Generating a first draft is the one exception: there is no previous version to compare against, so the draft goes straight into the editor. It is not saved until you save the exercise, so discarding it means leaving the page without saving.

Diff view comparing original and AI suggestion
Diff view for reviewing AI-suggested modifications — accept or discard before changes are applied

Instructor Checklist​

The instructor checklist analyzes the problem statement across three dimensions concurrently:

  • Quality Assessment — detects issues in clarity, coherence, and completeness
  • Learning Goal Estimation — infers learning goals from the problem statement
  • Difficulty Assessment — evaluates exercise complexity relative to the declared level

Click Analyze Problem Statement in the checklist panel to run all three analyses. Results appear in collapsible sections. After modifying the problem statement, sections are marked as stale and can be re-analyzed individually.

Quality Assessment: Displays a radar chart with percentage scores for clarity, coherence, and completeness. Detected issues appear with category badges, severity levels, descriptions, suggested fixes, and impact assessments. Use Fix to apply an AI-generated correction for a single issue, or Fix All Issues for batch correction. Both actions present proposed changes in the diff view.

Quality assessment panel with radar chart and detected issues
Quality assessment panel showing scores, detected issues, and controls for individual or batch correction

Difficulty Assessment: Shows the suggested difficulty level alongside the declared level. When a mismatch exists, an arrow indicator and descriptive text alert you. Task and test counts summarize the exercise structure, and a detailed explanation describes the reasoning. Click an Adapt to button (Easy, Medium, or Hard) to generate a revised problem statement adjusted to the target difficulty, presented in the diff view.

Difficulty assessment panel showing mismatch indicator
Difficulty assessment with suggested level, mismatch indicator, reasoning, and adaptation controls

Learning Goal Estimation: Presents estimated learning goals, each tagged with a knowledge area badge (e.g., AL for Algorithms, SE for Software Engineering), a taxonomy level (e.g., APPLY, ANALYZE), and a "Linked" indicator when the goal matches an existing course competency. Each entry includes textual evidence from the problem statement. Select individual goals or use Select All, then click Apply All to link them to the course's competencies. The system checks whether suitable competencies already exist, links matching ones directly, and creates new competencies only where no match is found.

Learning goal estimation panel with knowledge area badges
Estimated learning goals with knowledge area badges, taxonomy levels, evidence, and competency linking controls
Linked Competencies section populated from estimated goals
Linked Competencies section showing course competencies created from the estimated learning goals

AI-Assisted Code Generation​

For supported unreleased Java exercises built with Gradle or Maven, Hyperion generates the problem statement, template, solution, and tests together in an isolated workspace. Artemis rebuilds and verifies the candidate before saving it; a generated draft still needs an instructor's review before release.

For a new exercise, start from Create → Generate. For an existing exercise, use Artemis Intelligence → Adapt exercise in the instructor code editor. Follow Generate a programming exercise with Hyperion for prerequisites, progress, cancellation, reviewing saved and retained artifacts, adaptation, and undo. This workflow does not generate repositories independently.

For a targeted adaptation, mark the relevant active review threads with Select for AI adaptation, then choose Artemis Intelligence → Adapt exercise and review the selected feedback before starting. Resolved, outdated, and unrelated threads are not valid generation feedback. Hyperion applies the same whole-exercise verification and saving rules to adaptations.

Review Comments​

During exercise creation, instructors and editors can use review comments to discuss specific lines directly in the online editor. Review comments are meant for coordinating exercise authors before releasing or updating an exercise. They are not student feedback and are only visible to users who can edit the exercise.

To add a review comment, open the exercise with Edit in Editor, hover next to the relevant line, and use the comment action. If Artemis asks you to submit first, click Submit so the comment can be attached to the current saved version of the file or problem statement.

Review comment button next to an editor line
Add a review comment from the editor gutter
Draft widget for adding a review comment
Drafting a new review comment

Review comments can be attached to:

  • Problem statement lines
  • Template repository files
  • Solution repository files
  • Test repository files
  • Auxiliary repository files

Each review comment starts a thread at the selected location. Other instructors and editors working on the same exercise see new comments, replies, edits, deletions, and resolved states in real time. Files with unresolved review comments are marked in the file tree. Reply to a thread to continue the discussion, and resolve it when the issue has been addressed. Resolved threads remain available, but they are collapsed so open discussions stay visible.

Review comment thread with replies and resolve action
Review comment thread in the online editor

Consistency Check Comments: The consistency check can create review comments for potential mismatches between the problem statement and the exercise repositories — a method the problem statement calls calculateAverage while the template declares computeMean, for instance. These AI-created threads are labeled as consistency issues and show their severity and category. If one issue affects multiple artifacts, the related locations are grouped, and you can jump between them from the review comment. The issue navigator in the editor toolbar lets you move through the current consistency findings.

AI-created consistency issue review comment with severity and category labels
Consistency check result shown as a review comment

Some consistency check comments may include a suggested inline fix. This suggested change is intended for simple, local corrections, such as aligning a name, signature, or small code fragment. Review the suggested change before applying it. For complex or ambiguous issues, Artemis may leave the suggested fix empty and only keep the explanatory review comment.

Search documentation