How the programme is structured
The programme runs across 10 sections holding 24 written lessons and 36 more planned, each section at 6 lessons · 6 hours. Every section below lists what it covers and what the student walks away having built.
Need the lesson-by-lesson breakdown? Open the full lesson plan — every lesson with its code, type and milestone.
The moment your programs stop being one long script. Define your own commands, pass data in, send answers back, and learn why a name inside a function is invisible outside it. Six lessons, ending with a toolbox you keep using.
🚀 What you build
- 🛠️ Project: Your Own Function Toolbox — Six functions, one menu, and a file you will reuse in every later project.
A list is the container you reach for first, so learn the whole toolkit properly: reading items, changing them, adding and removing them, searching, and sorting by whatever rule you choose. Ends with a full create-read-update-delete manager.
🚀 What you build
- 🛠️ Project: A CRUD List Manager — Add, view, edit and delete — the four operations behind every app.
When a position is not enough and you need a name for each value. Create pairs, look them up safely, change and remove them, loop over both halves at once, and nest dictionaries inside lists to model something real.
🚀 What you build
- 🛠️ Project: A Phone Book You Can Edit — Search, add, update and delete records — with no crash on a missing name.
Until now everything your programs knew was forgotten the moment they closed. Read text from disk, write it back, process a file line by line, store records you can load again, and handle the file that is not there.
🚀 What you build
- 🛠️ Project: A Notebook That Remembers — Write notes, list them, delete one — all still there tomorrow.
Stop juggling parallel lists of names, scores and lives. Write a blueprint once, then make as many objects from it as you like — each with its own data and its own behaviour. Six lessons from the first class to a family of them.
🚀 What you build
- 🛠️ Project: A Class-Based Inventory — Items, quantities and behaviour in one place, instead of three lists.
Text is the data you meet most and tidy up least. Reach into it by position, clean up whatever the user typed, split a sentence into words and join it back, and format numbers so a column of prices actually lines up.
🚀 What you build
- 🛠️ Project: A Receipt Formatter — Messy order lines in, a tidy aligned receipt out.
A red wall of text is not a punishment — it is the most useful message Python ever gives you. Learn to read a traceback, catch the failures you can see coming, raise your own when the data is wrong, and stop a program crashing on a typo.
🚀 What you build
- 🛠️ Project: A Calculator That Never Crashes — Whatever the user types, it answers or explains — it never dies.
The same job in one clear line instead of four. Comprehensions, enumerate, zip and key= are what separate code that merely works from code that reads like Python — and they appear in every codebase you will ever open.
🚀 What you build
- 🛠️ Project: A Data Tidy-Up in Ten Lines — Take a messy record list and clean, filter and sort it — compactly.
Lists and dictionaries are not the whole story. A tuple is the one that cannot change, which is exactly why it is safe; a set throws duplicates away and answers “what is in both?” instantly. Knowing which container to reach for is half of writing good Python.
🚀 What you build
- 🛠️ Project: A Duplicate Finder — Two name lists in; the repeats, the uniques and the overlap out.
One file gets long, then unmanageable. Import what the standard library already gives you, move your own code into files you can reuse, understand why every real script ends with that __main__ line, and install someone else’s package without breaking your machine.
🚀 What you build
- 🛠️ Project: A Package of Your Own — Three modules, one folder, imported into a program that uses all three.