← Tutorials

Behind the scenes

What happens before a lesson reaches your class, and what happens while students use it.

How a lesson is made

A teacher suggests a lesson, or one is planned as part of a course. Each lesson is written as a plain text file: the explanation, the code, the questions and the teacher notes all live together.

Before anything goes on the site, a set of automatic checks runs. Every model answer has to pass the same check students' work is held to, and every question has to have a correct answer. We're also adding checks that a lesson doesn't use ideas that haven't been taught yet. The short clips are then recorded automatically, by playing through each example in a browser, so they always match the lesson. The teacher guide, slides and worksheet are generated from the same file, so they never drift out of step with it. A person reviews every lesson before it's published.

What happens in the classroom

Everything runs in the student's browser. Their code runs on their own device, not on a server. Progress is saved only in that browser, there are no accounts, and our pages send nothing anywhere. If a student changes computers or clears their browser, their ticks start again, but the lessons are always there.

A few lessons open tools made by others, such as Microsoft MakeCode for micro:bit and Arcade, or Google's Teachable Machine for training a model. Those tools load from their own sites and follow their own privacy terms; the lesson tells you when one is used.

Some later Python courses run real Python libraries in the browser, which means a larger first download and, for a few lessons, live data from other sites. School filters differ, so before teaching them, check your school on a student device.

Changing a lesson

Because each lesson is one text file, fixing a typo or adding a question is a small change that's easy to review, and the clips, slides and worksheet update with it. If you spot something that could be better, let us know.

Why we teach this way →