hermes

Create graded coding exercises

Generates a graded set of coding exercises for one concept, each with starter code, automated tests, staged hints and a reference solution. Use for teaching, practice sessions or self-study.

context

Good exercises isolate one skill, rise in difficulty in small steps, and give immediate, objective feedback through tests. Hints should unblock without giving the answer away, so they are staged from a nudge to a near-solution. Exercises fail learners when the tests do not match the instructions, when the starter code already passes, when a step jumps in difficulty, or when the "beginner" exercise quietly needs a concept that was never taught.

task

Create exercises on in for learners.

  1. State the learning objective and the prerequisites you assume for this level. If the concept is too broad for exercises, narrow it and say how.
  2. Plan the progression: the first exercise applies the concept in its simplest form; each next one adds exactly one new difficulty (an edge case, a combination with another known concept, a performance or design constraint). The last one is a small realistic task.
  3. For each exercise write:
  • a title and a one-line objective;
  • the problem statement with input, output and constraints, and one or two examples;
  • starter code: signatures, types and docstrings, with the body left for the learner (it must run, and the tests must fail against it);
  • tests in the language's standard test framework covering the examples, edge cases (empty, boundary, invalid input as specified) and one case that catches the most common wrong approach;
  • three staged hints: hint 1 points to the relevant idea, hint 2 outlines the approach, hint 3 gives the key line or structure without the full solution;
  • common mistakes the tests are designed to catch.
  1. Write a reference solution for each, idiomatic for the language, with a short explanation and its time and space complexity where relevant.
  2. Check every exercise by running it if you can, otherwise by tracing each test by hand: the reference solution passes all its tests, the starter code fails them, and the statement mentions every behaviour the tests check. Fix any mismatch before answering.
constraints
  • Every test must follow from the problem statement. No hidden requirements.
  • Use only the language's standard library unless the concept is about a library, and name the version if behaviour depends on it.
  • Keep each exercise solvable in 10 to 30 minutes at the stated level.
  • Keep solutions out of the exercise section so it can be handed out alone.
output format

Overview

Objective, assumed prerequisites, and a table: # | Title | New difficulty | Estimated time.

Exercises

For each: title, objective, statement, starter code block, test code block, hints (labelled Hint 1, 2, 3), common mistakes.

Solutions

For each: reference solution code block, explanation, complexity.

2 required values still a placeholder; the assistant will ask for them.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Software engineering
category
Learning to code
made for
Teacher / tutor, Developer advocate, Tech lead / staff engineer, Student
risk
read-only
version
v1.0.0 · incubating
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install create-coding-exercises --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill create-coding-exercises -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

more in learning to code

All of Learning to code
PromptLearning to code

Explain a codebase

Explains an unfamiliar codebase. Maps its structure, traces one real request end to end and names the concepts and gotchas a newcomer needs. Use when joining a project or reading an unknown repo.

explain-codebase
PromptLearning to code

Explain a concept with code

Explains a programming concept through the problem it solves, a minimal runnable example, a common mistake and a quick self-check, pitched at the learner's level. Use to learn or teach a concept.

explain-concept-with-code
PromptLearning to code

Explain a SQL query

Explains a complex SQL query clause by clause in logical execution order, shows intermediate results on a tiny example, and points out bugs and performance traps. Use when inheriting a query.

explain-sql-query
PromptLearning to code

Plan a learning path for a technology

Builds a week-by-week plan to get productive in a new language, framework or tool, built around hands-on milestones and skipping what the learner already knows. Use when picking up a new stack.

plan-learning-path
PersonaLearning to code

Coding mentor

Acts as a senior developer mentoring a junior, asking what they tried, explaining the why behind fixes and reviewing code to teach. Use for early-career developers who want to grow.

coding-mentor
PromptLearning to code

Learn a new language from one you know

Teaches a new programming language by mapping it onto one the learner already knows, covering idioms, false friends, tooling and graded exercises. Use when switching languages for a job or project.

learn-new-programming-language