Essential Python foundations: cover the building blocks of Python for everyday development.
Hands-on practice with data structures, functions, modules and OOP.
Work through error handling, testing, packaging and virtual environments.
Gain practical experience by coding ~70% of the time in guided labs.
How this helps: become confident in Python for scripts, apps and libraries.
Who it’s for: designed for individuals new to Python or solidifying basics.
Includes optional material on standard libraries and useful third-party tools.
Curriculum
Introduction to Python
- Install, REPL, first lines of code; running scripts
- Syntax essentials and the pythonic mindset (readability, EAFP vs LBYL)
- Core data types: numbers, bool, str vs bytes (Unicode basics), lists/tuples/sets/dicts, slicing & comprehension basics
- Exceptions and error handling patterns
- I/O basics: open/read/write with context managers; paths with pathlib
More I/O (files & formats)
- CSV, JSON and simple XML; quick PDF/text processing overview
- Binary I/O, seeking and file locking (brief)
- Working with dates/times (datetime) and time zones (overview)
Practical functional programming
- First-class functions; lambda, map/filter (when to use or avoid)
- Comprehensions and generator expressions
- Closures, partials and small pipelines
- Iterators & generators: yield, yield from
Practical OOP in Python
- Classes & objects; dunder methods; properties
- Composition and inheritance (single & multiple)
- Data classes for plain data structures
- Decorators for functions/methods; simple descriptors
Misc topics (tools that matter)
- Regular expressions (re) — practical patterns
- Concurrency: intro to threading vs multiprocessing; when to consider asyncio
- Networking basics: sockets and a tiny client/server example
Environment setup & workflow
- venv/virtualenv basics; pip and PyPI; requirements.txt vs pyproject.toml (brief)
- Package managers: pipx/conda (when useful)
- Editors, linters & formatters: ruff/flake8, black; basic debugging tips
Creating packages & external libraries
- Project structure and modules/packages
- Install a library from PyPI; read docs and examples effectively
- Intro to packaging a simple library (wheel)
Ad‑hoc solutions to user‑defined problems
- Mini-projects proposed by participants; guided design and implementation
Optional modules
Optional — Testing & typing
- pytest basics; simple fixtures and parametrization
- Type hints 101; mypy as a sanity check
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