Python for ages 7-13

Kids don't learn to code
by watching.

In PyQuest they type real Python, press Run, and the car moves. Get the distance wrong and it crashes into a building - which is the whole point. Every level is a guess, a run, and a fix.

Runs in any browser. Nothing to install. Kids sign in with a code from their teacher - never a password.

Loop de Loop · ⭐⭐⭐
for i in range(3):
    drive(200)
    turn("left")

Three lines. Three sides of a square. That's a loop earning its keep.

20PRIMM lessons
10arcade levels
4turtle art lessons
3build-it projects
20bugs & trials

The lesson loop

Predict. Run. Investigate. Modify. Make.

Every lesson runs the same five steps, in that order. Kids commit to a guess before the computer answers - which is what turns a shrug into a question. Wrong guesses cost nothing and are met with "let's find out".

  1. 1

    Predict

    Read the code, pick what it will print. No penalty for being wrong.

  2. 2

    Run

    The same code, unedited. The machine settles the argument, not the app.

  3. 3

    Investigate

    Click the line that does the work. No typing, no spelling - just point.

  4. 4

    Modify

    Change one thing in a working program and see what moves.

  5. 5

    Make

    Now write your own. Many right answers, checked on what it does.

What's inside

Five places to write Python

The Quest Map

20 lessons, from print() to dictionaries and nested loops, each one unlocked by the last. Ends with a text adventure engine the kid builds themselves.

Night Arcade

Their code is the controller. Ten 3D levels - and the last two drop the training wheels: write def pilot(track) and the game calls your function.

Art Studio

Real turtle graphics. Squares, polygons, spirals, then a blank canvas - and a gallery for the ones worth keeping.

Challenges

Ten bug hunts with one defect each, ten build-from-scratch trials, and a timed speed round drawn from a 54-question bank.

Projects

Text Adventure, Quiz Show, Dice Tournament - built a step at a time, with something to hand a parent at the end.

Why it sticks

Help that doesn't hand over the answer

Every task has a three-rung hint ladder: a nudge, then a real hint, then one worked line the kid still has to place. They take the smallest amount of help that unsticks them - and the teacher sees who needed which rung.

  • Errors get translated. "bad input on line 2" becomes a detective checklist.
  • Replays are free practice - XP only for new work or a personal best.
  • A daily 3-question warm-up, drawn only from what they've already passed.
  • Read-aloud on every task, for younger and ESL kids.

For teachers

You can see the room

You hold the class list. Add a student by name, PyQuest issues a six-character login code, and you hand them a printed card. Nobody signs themselves up - so the register in the app is the register in the room.

Who's in my class?

Add a name, get a code, print the cards. Lost card? Issue a new code in one click.

Where is everyone?

A student-by-lesson grid: finished, in progress, or stuck. Click a name for their attempts task by task.

Who needs help right now?

Anyone who has failed the same stage four times, and whether they've opened a hint yet. Walk straight to that desk.

What goes on the projector?

Class mode blows up any Predict question. Hands up, then reveal.

Safe by design

  • Kids never create an account. Their teacher adds them; the card they're handed is the whole credential.
  • No email, no password, no surname is ever collected from a child. Teachers sign in properly, with email and password.
  • Nobody reads anyone else's code. Enforced by database policies, not just the UI - and a wrong login never reveals whether the name exists.
  • Class progress exports to CSV - first names only.

Free. Takes a minute: make a class, add your students, print their cards.

Give a kid ten minutes and a keyboard.

Level one is print(). By level twelve they've built a guessing game.

Open PyQuest