Python Fundamentals
A comprehensive five-day training covering the entire Python language, from first steps to advanced techniques. This course provides a solid foundation for any Python developer, whether you are starting from scratch or deepening your existing knowledge.
Duration
5 days (35 hours)
Format
50 percent presentation, 50 percent exercises
Prerequisites
Basic programming knowledge recommended
Materials
Virtual machines provided, electronic course materials
Day 1 — Introduction and Initiation
Introduction
- Language typology: compiled, interpreted, scripted languages
- Presentation of Python: history, philosophy, versions
- Installation and configuration of the development environment
- The interactive interpreter and first scripts
Initiation
- Delimiters: indentation, line breaks, comments
- Instructions: assignment, expressions, print
- Conditions: if, elif, else
- Iterations: while, for, range, enumerate, zip
- Exceptions: try, except, finally, raise
Day 2 — Basic Algorithms and Functions
Basic Algorithms
- Variables: naming, scope, assignment, multiple assignment
- Types: dynamic typing, type checking, type conversion
- Strings: formatting, methods, slicing, encoding
- Numbers: integers, floats, complex, decimal, fractions
- Collections: lists, tuples, dictionaries, sets, frozensets
- Booleans: truthy and falsy values, logical operators
Functions
- Function definition: parameters, return values, default values
- Variable arguments: *args, **kwargs
- Callbacks and higher-order functions
- Functional programming: lambda, map, filter, reduce
- Comprehensions: list, dict, set comprehensions
- Generators: yield, generator expressions, send
- Decorators: function decorators, class decorators, chaining
Day 3 — Object-Oriented Programming and Design Patterns
Object-Oriented Programming
- The object paradigm: classes, instances, methods, attributes
- Inheritance: simple, multiple, MRO, super()
- Properties: getters, setters, deleters, computed properties
- Slots: memory optimization, attribute restriction
- Interfaces: abstract base classes (ABC), protocols
- Metaclasses: type, custom metaclasses, class creation hooks
Design Patterns
- Creational patterns: Singleton, Factory, Builder, Prototype
- Structural patterns: Adapter, Decorator, Facade, Proxy
- Behavioral patterns: Observer, Strategy, Command, Iterator
- Zope Component Architecture (ZCA) introduction
Day 4 — Advanced Algorithms and Practical Work
Advanced Algorithms
- Complex iteration: itertools, custom iterators, chaining
- Data types: namedtuples, enums, dataclasses
- Complex problems: recursion, memoization, dynamic programming
- Combinatorics: permutations, combinations, Cartesian products
- Creating new types: custom containers, numeric types
- Advanced exceptions: custom exception hierarchies, context managers
Advanced Practical Work
- Guided exercises applying concepts from days 1-4
- Building a complete application from scratch
- Code review and best practices discussion
Day 5 — Data Manipulation
- CSV: reading, writing, DictReader, DictWriter
- Databases: MySQL, PostgreSQL, SQLite with Python DB-API
- XML: validation with schemas, parsing with ElementTree and lxml
- LDAP: connecting and querying directory services
- PDF: generation and manipulation
- OpenDocument: reading and writing ODS/ODT files
Supplementary Modules (available on request)
- Console applications: argument parsing, configuration files, logging
- Network programming: sockets, HTTP clients, protocols
- System programming: file system, processes, signals
- Parallel programming: threading, multiprocessing, concurrent.futures
- Graphical interfaces with GTK
- ORM with SQLAlchemy
RECOMMENDATIONS
The following updates are suggested for review to modernize this training program:
- Add a dedicated section on type hints and the typing module (PEP 484, PEP 604)
- Include structural pattern matching (match/case statements, Python 3.10 and later)
- Cover modern tooling: uv for package management, ruff for linting, mypy for type checking
- Replace GTK with a modern alternative (textual for TUI, or PySide6 for GUI)
- Add Pydantic for data validation as a supplementary module
- Consider adding an introduction to virtual environments and dependency management
