Skip to main content

Programming Exercise

Conducting a programming exercise involves several steps shared between the instructor, students, and Artemis:

  1. Instructor prepares the exercise: Set up a repository with starter code, tests, and build instructions.
  2. Student starts the exercise: Artemis creates a personal repository and build plan.
  3. (Optional) Student clones the repository to their IDE.
  4. Student solves the exercise locally or in the online editor.
  5. Student submits the solution by committing/pushing or clicking Submit.
  6. CI server verifies the submission by running test cases and providing feedback.
  7. Student reviews results and improves code if needed.
  8. Instructor reviews overall results to detect common issues.

Exercise Workflow


Exercise Templates

Artemis supports a variety of programming exercise templates for automated feedback, static analysis, and repository setup.

ℹ️

Templates help maintain consistency across multiple programming exercises and programming languages.


Online Editor

The online code editor includes dynamic instructions and visual feedback:

  • Tasks turn green when all related tests pass.
  • UML elements and task blocks automatically update their colors after submission.
  • Hidden files like .gitignore are not displayed.

Online Editor

⚠️

Hidden configuration files (e.g., .swiftlint.yml) are not visible in the online editor. Access them in your IDE if needed.


Manual Assessment

Instructors and tutors can assess programming submissions directly in the browser.

Manual Assessment

Assessment features:

  • File browser with highlights for changed files.
  • Build output logs for debugging failed builds.
  • Read-only code editor with line-by-line feedback.
  • Structured grading criteria displayed beside problem statements.

Feedback can be added inline or as general feedback at the bottom.

Feedback Example

You can save and reopen partial assessments before final submission. Once submitted, only instructors can edit them.


Testing with Ares

Ares is a JUnit 5 extension designed for secure and robust Java testing.

Key features:

  • Sandbox execution (prevents test crashes and cheating)
  • Time and I/O limits for stability
  • Hidden and public test cases
  • Improved error feedback for students

Learn more: Ares on GitHub

ℹ️

Use Ares to provide detailed and fair feedback in automated programming assessments.