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

Artemis can use Hyperion to generate templates, solutions, and tests for Java programming exercises. Code generation is currently only available for Java. The generated files are written to the exercise repositories, committed, and built through the configured CI setup. Treat the generated result as a draft: review the changed files, inspect the build result, and adapt the exercise before releasing it to students.

There are two ways to start code generation:

During exercise creation: For new Java programming exercises, click Generate with AI instead of the regular generate action. Artemis creates the exercise with prepared repositories, opens the online editor, and starts code generation for the template, solution, and test repositories.

Generate with AI button during programming exercise creation
Generate with AI action during programming exercise creation

From the online editor: Open the exercise with Edit in Editor and use Artemis IntelligenceGenerate Code. The settings button next to the action lets you choose which repositories to generate. Code generation supports the Template, Solution, and Test repositories; assignment and auxiliary repositories are not supported.

Artemis Intelligence menu with Generate Code action
Generate Code action in the Artemis Intelligence menu

Before starting, make sure the problem statement describes the expected behavior clearly and that the programming language and build configuration are already selected. Hyperion uses the problem statement, the current repository structure, build environment context, and known consistency issues as generation context.

Human Feedback Support

Instructors and editors can mark active repository review threads with Apply with AI before starting generation. Selected review threads give Hyperion targeted human feedback for the next generation run.

Apply with AI button in a review thread
Apply with AI action in a review thread

After selecting a thread, the thread header shows that it is selected for code generation and the action changes to Remove Selection.

Review thread marked as selected for code generation
Selected review thread indicator
Remove Selection button in a selected review thread
Remove Selection action for selected feedback

Selected feedback is shown in the code generation settings, grouped by repository. When code generation starts, Artemis sends the selected active thread IDs for the currently generated repository to Hyperion. Hyperion then uses the selected thread comments as targeted human feedback for the template, solution, or test generation prompts.

Generation settings with repository selection and selected feedback threads
Generation settings with selected feedback grouped by repository

Only valid feedback is forwarded: resolved and outdated threads are excluded, thread IDs are validated, and feedback is filtered to the current exercise and repository. Feedback that is irrelevant, conflicts with the exercise context, or would introduce inconsistencies should be ignored during generation. The selected feedback flow is intended for targeted follow-up generation after instructors have reviewed existing generated or manually written code.

After confirmation, Artemis starts an asynchronous generation job. While the job is running:

  • Selected repositories are processed one after another
  • The status popover shows queued, running, completed, warning, failed, and skipped states
  • File activity lists newly created or updated files
  • The currently open repository is refreshed as generated files are committed
  • Build feedback can be used for an additional improvement attempt
Generation status popover with repository states and file activity
Live generation status with repository states and file activity

Generation can finish with a warning even when files were committed, for example if the build failed, timed out, or the CI build could not be triggered. In that case, inspect the status details, open the generated repository, and check the latest build result before continuing manually.

Code generation in progress dialog
Dialog shown when code generation is already running for the exercise

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