Advanced Python in depth: master modern features of Python 3 for robust, clean applications.
Hands-on practice with generators, coroutines, typing, context managers and decorators.
Apply best practices in concurrency, design patterns and performance tuning.
Gain practical experience via ~70% coding labs and real project exercises.
How this helps: build reliable, maintainable Python systems used in production.
Who it’s for: designed for individuals with Python basics seeking advanced programming skills.
Optional topics include metaprogramming, async frameworks and packaging.
Curriculum
Introduction
- Setup and first lines of code
- Python syntax fundamentals
- Python 2 → 3 differences (short recap)
- Main data types & typing mechanism (str/bytes/unicode, numbers, sequences)
- Basic I/O in Python
More I/O
- Working with CSV, XML, JSON, PDF
- File locks; seeking; safe writes (temp files) and simple rollback patterns
- Binary files and serialization (struct, pickle); endianness and framing
- pathlib essentials for files & paths (enrichment)
Practical functional programming in Python
- First-class functions; map/reduce/filter (2 vs 3 caveats)
- List/dict/set comprehensions; generator expressions
- Anonymous functions (lambdas); closures; partial application
- Function annotations; brief type-checking notes
- Iterators & itertools (enrichment)
Practical OOP in Python
- Classes/objects; inheritance & multiple inheritance
- Special methods; operator overloading; functors
- Decorators for methods and classes
- Achieving ‘const-ness’ intent; Abstract Base Classes
- Metaclasses (overview) and dataclasses (enrichment)
- Descriptors & properties (enrichment)
Misc topics
- Generators, immutability ideas, thunks
- Regular expressions
- Multi-threading: concurrency & synchronization basics; queues and patterns
- Networking: from basic sockets to message systems
- Asyncio overview (enrichment): event loop, tasks vs. threads; when to use which
Environment setup
- pip, PyPI, virtualenv/venv; conda (where it fits)
- setuptools basics and dependency pinning
- pyproject.toml (enrichment): modern builds at a glance
- Reproducibility: constraints/lock files (brief)
Creating packages & working with external libraries
- Packaging your own library; versioning and layout
- Wrapping native libraries: ctypes/cffi, pybind11 (overview)
- Wheels and manylinux (overview)
Ad‑hoc solution to a user‑defined problem
- Project-specific time slot (e.g., controlling hardware devices, PoE, telemetry parsing)
Optional modules
Optional — Testing & quality (compact)
- pytest basics; fixtures; parametrization
- mypy/typing hints; ruff/black; pre-commit (quick tour)
Course Day Structure
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30