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