Learning area
Python
You start from zero and work your way up lesson by lesson to the pro topics. Every lesson has examples to try, a task and an automatic check.
💡 New here? First: what is Python anyway?
Beginner
0/13Intermediate
0/15- Catching errors with try
- Tuples and sets
- Reading and writing files
- JSON – saving data like the pros
- Project: guessing game with high score
- Modules – ready-made toolboxes
- Your own tests with assert
- List comprehensions
- Project: weather station
- Project: tic-tac-toe
- Classes and objects
- Inheritance – extending classes
- Special methods and @property
- Bug detective 2: classes and exceptions
- Boss level: the library
Pro
0/7All lessons with learning goals
Stage 1Beginner
- 0115 minutes
Hello, Python! 🏆 (with a pro task)
Print text and numbers with print() · Create and use variables · Combine text and numbers with f-strings
- 0220 minutes
Decisions with if 🏆 (with a pro task)
Read input with input() and turn it into numbers with int() · Compare values (<, >, ==, …) · Take different paths with if, elif and else
- 0320 minutes
Loops – repeating things 🏆 (with a pro task)
Run code several times with for and range() · Repeat with while as long as something is true · Recognise and avoid endless loops
- 0445 minutes
Project: Drawing with the turtle
Draw lines, shapes and colours with the turtle · Use loops and functions to create patterns · Program your own artwork and save it as a picture
- 0525 minutes
Lists – many values at once 🏆 (with a pro task)
Create lists and access items by position (index) · Append, change and count items · Analyse lists with sum(), max() and a loop
- 0625 minutes
Working with strings
Cut out single letters and pieces of text · Change text with upper(), lower() and replace() · Count letters with a loop
- 0740 minutes
Project: Hangman
Process text letter by letter · Work with a set of guessed letters · Build a complete guessing game with a while loop
- 0825 minutes
Dictionaries
Store data as pairs of key and value · Look up, change and add values · Go through all pairs with items()
- 0945 minutes
Project: text adventure
Build a game loop with while · Store a game world as a nested dictionary · Check input and react clearly
- 1030 minutes
Your own functions 🏆 (with a pro task)
Write your own functions with def · Pass values in with parameters and give them back with return · Reuse functions inside other functions
- 1130 minutes
Bug detective: finding bugs
Read error messages from the bottom up · Find bugs that don't produce an error message · Look inside a program with print() and “Steps”
- 1245 minutes
Project: quiz game
Organise data as a list of dictionaries · Compare answers tolerantly and count points · Split the program into functions
- 1345 minutes
Boss level: the school report program
Combine everything from the beginner stage in one project · Analyse data with dictionaries, loops and functions · Present a result clearly
Stage 2Intermediate
- 1425 minutes
Catching errors with try
Understand when programs crash · Catch errors with try and except · Handle different kinds of errors differently
- 1530 minutes
Tuples and sets
Use tuples as unchangeable pairs of values · Remove duplicate values with sets · Form intersections, unions and differences
- 1625 minutes
Reading and writing files
Write and read files with open() and with · Process the lines of a file · Append data to a file
- 1730 minutes
JSON – saving data like the pros
Understand what JSON is and where it's used · Save and load dictionaries and lists with json · Keep working with saved data
- 1845 minutes
Project: guessing game with high score
Build a game with a while loop and break · Save a record in a file and load it again · Catch a missing file with try/except
- 1925 minutes
Modules – ready-made toolboxes
Import modules like math and random · Tell import, from … import and as apart · Write and use your own module
- 2025 minutes
Your own tests with assert
Check with assert whether code calculates correctly · Find and test edge cases · Write test functions like the pros
- 2125 minutes
List comprehensions
Create lists in a single line · Filter with if inside a comprehension · Write dictionary comprehensions
- 2245 minutes
Project: weather station
Store measurements in lists and go through them in pairs with zip() · Calculate the average, minimum and maximum · Show data as a bar chart made of text
- 2345 minutes
Project: tic-tac-toe
Represent a board as a list of lists · Check rows, columns and diagonals · Split a game into clear functions
- 2435 minutes
Classes and objects
Write your own blueprint for objects with class · Set attributes in __init__ and use them through self · Write methods that change an object
- 2530 minutes
Inheritance – extending classes
Let one class inherit from another · Override methods and extend them with super() · Check what an object is with isinstance()
- 2630 minutes
Special methods and @property
Decide with __str__ how print() shows an object · Compare and calculate with objects using __eq__, __lt__ and __add__ · Write calculated attributes with @property
- 2735 minutes
Bug detective 2: classes and exceptions
Read longer error messages (tracebacks) step by step · Find bugs in classes (forgotten self, wrong calculation) · Check things deliberately with assert and f"{x=}"
- 2860 minutes
Boss level: the library
Design your own class with several methods · Report errors with your own exceptions · Save data in a file and load it again
Stage 3Pro
- 2940 minutes
Recursion – functions that call themselves
Understand how a function can call itself · Tell the base case from the recursive step · Break problems down into smaller problems of the same kind
- 3045 minutes
Algorithms – searching and sorting
Understand what an algorithm is · Compare linear and binary search · Program a sorting algorithm yourself
- 3125 minutes
Generators and yield
Write functions with yield · Understand why generators save memory · Use generators with next(), for and sum()
- 3230 minutes
Decorators
Pass functions around as values · Write your own decorator · Extend a function with @
- 3320 minutes
Type hints
Label parameters and return values with types · Read list[int], dict[str, int] and optional values · Use dataclasses for simple data objects
- 3430 minutes
async and await
Understand what “waiting at the same time” means · Work with async def, await and asyncio.run · Run several tasks in parallel with asyncio.gather
- 3560 minutes
Boss level: the data pipeline
Use generators, decorators and type hints together · Skip faulty data robustly · Write professional, readable code