Every deck below runs in the browser (built with reveal.js) and, where available, can also be downloaded as a PDF or PowerPoint file. Lessons with worksheets or code have a materials.zip with the slides, printable PDFs and Python files together.

PreviewHTMLPDFPPTXMaterials
Intro to Python
A crash-course intro to Python for a class of 16-year-olds with zero programming experience, taught live with Spyder.
View (recommended)Download PDFDownload PPTXmaterials.zip
What Is a Function?
Building the idea of a function from scratch for Year 10 students, using making tea as the running example.
View (recommended)Download PDFDownload PPTX—
Cryptography: Run-Length Encoding
A run-length-encoding lesson for ~16 year olds: what encoding means, why we compress, and decoding pictures by hand.
View (recommended)Download PDFDownload PPTXmaterials.zip
Image Analysis: Hidden Messages
A follow-on to Intro to Python: from 'what's a library?' to treating a picture as a grid of numbers, leading into a hidden-message decoding challenge.
View (recommended)Download PDFDownload PPTXmaterials.zip
Programming Turtles: The Maze
An unplugged follow-up to Intro to Python: pairs program a printed turtle maze with seven physical command cards.
View (recommended)Download PDFDownload PPTXmaterials.zip
Guessing Pi with Random Darts
A 15-minute lesson for ~15 year olds: estimating pi by throwing random darts at a square, in plain Python, with animated diagrams.
View (recommended)Download PDFDownload PPTX—
Language Modelling Workshop
A two-session LLM workshop: from GPT to ChatGPT (prompting, RLHF, prompt injection, and a live CTF), then fine-tuning a language model.
View (recommended)Download PDFDownload PPTX—