Type Hints and Modern Python
Label what your values are, let a checker catch mistakes before you run, read hints at run time, and write Python the way current versions intend.
Python never asks you to say what type a value is. That freedom is great for a ten-line script and painful for a ten-thousand-line codebase, where nobody remembers what a function expects. Type hints are labels you add so people, editors and checker programs can tell. This phase teaches the whole system: the labels, the checkers that read them, generics, shaped dictionaries, protocols, and what hints do (and do not do) while the program runs.
Type hints matter even more in the AI era. The same labels that a checker reads are read by Pydantic to validate data, and are turned into the JSON schemas that tell a language model which tools it may call and what shape its answers must take. A class with typed fields is both documentation and a contract.
The phase ends with pattern matching in depth and an upgrade guide: the old way and the modern way of writing the same thing, side by side, so you can read old code and write current code.
Practise this phase
Hands-on exercises: write the code, run it, and press Check to have it tested automatically.