1. [Theory – 1h; practice – 0h] Introduction to Python
a. Language properties and goals
b. Main language use cases
c. IDE and tools
2. [Theory – 2h; practice – 0h] Data types
a. Data internal representation
b. Scalar data types: bool, int, float, str, ...
c. Container types: list, tuple, dict, set, ...
3. [Theory – 2h; practice – 2h] Control flow
a. Branching: if/elif/else, pattern matching
b. Loops: while, for, break, continue, else
c. Exception handling
4. [Theory – 4h; practice – 3h] Functions
a. Function declaration and argument passing
b. Function as a first-class object
c. Lambdas, closures
d. Decorators
5. [Theory – 2h; practice – 3h] Files
a. Files IO
b. Context managers
c. JSON, Pickle
6. [Theory – 2h; practice – 2h] Modules and packages
a. Importing modules
b. Packages
c. Virtual environments
7. [Theory – 12h; practice – 5h] Object-oriented programming
a. Class declaration
b. Encapsulation, Inheritance, polymorphism
c. Multiple inheritance, MRO, super()
d. Magic methods
e. Operator overloading
f. Collection encapsulation
g. Iterator protocol
h. Generators
i. Attribute access
j. Descriptor protocol
k. Meta classes