One long, friendly path from dragging blocks to building real software. Students start in Scratch, move to typing Python, then build desktop apps, 2D games, websites and finally full web apps with a database and user accounts. Every phase ends with a project of their own and a demo day.
Level: Beginner to intermediate
Ages: 9–18
Length: 103 sessions in 8 phases, about 150 hours
Format: Read and build right here. Works self-paced, or as a weekly class with an instructor.
The 8 phases
- 1. Scratch (9 sessions): sequences, loops, events, conditionals and variables, ending with a small game
- 2. Python with Turtle (8 sessions): typing code for the first time and drawing with it
- 3. Python basics (16 sessions): strings, lists, dictionaries, files, error handling, Hangman and a text adventure
- 4. Intermediate Python, the command line and Git (9 sessions): modules, classes, testing and saving versions of your code
- 5. Desktop apps (8 sessions): windows, buttons, inputs and layouts with customtkinter
- 6. 2D games with Pygame (14 sessions): drawing, sprites, collisions, sound, Pong and a grid-world game
- 7. HTML, CSS and JavaScript (17 sessions): a personal homepage, a to-do app, a canvas game and publishing on GitHub Pages
- 8. Flask web apps (14 sessions): routes, templates, forms, a SQLite database, user accounts and putting an app online
What you need
- A laptop or desktop computer (Windows, Mac or Linux). A Chromebook works for phase 1 and the web lessons.
- Phase 1 uses Scratch in the browser. Later phases use Python and the Thonny editor. The “Installing on your own computer” appendix walks through every install.
For parents
- No sign-up and no tracking. The textbook is hosted on this site.
- The book was written for a class with a buddy system and demo days. Learning at home? Be the buddy: ask your child to show you what they built at the end of each phase.
- Phase 4 and later teach GitHub and putting work online. Students under 13 need a parent to help with any online accounts.
- Want an instructor? Ask about running this as a live weekly class.
