1.2. Agenda¶
Training course: 9:00 - 17:00
Lunch break: 13:15 - 14:00
10 min break every one/one-and-half hour
1.2.1. Day 1¶
15m - Welcome note, agenda, work organization
60m - Prepare work environment: github, git, python, doctest
30m - Entry test evaluating proficiency, skills and knowledge
45m - Live coding solution and IDE demonstration: debugging, version control, refactoring, documentation, type annotations and Python syntactic sugars
30m - Generators: Builtin generator-like objects
30m - Generators: Generator expression
45m - Generators: Generator function
15m - Generators: Introspection
15m - Generators: Yield-from and Send
15m - Generators: Itertools module
30m - Functional Programming: Lambda
30m - Functional Programming: Scope
30m - Functional Programming: Pure-function
30m - Functional Programming: Recurrence
1.2.2. Day 2¶
15m - Functional Programming: Mutable and immutable data structures
30m - Functional Programming: Higher-order functions and referential transparency
30m - Functional Programming: Namespace and function attributes
45m - Functional Programming: Callable and closures
180m - Decorators: Function decorators
45m - Decorators: Method decorators
45m - Decorators: Class decorators
30m - Decorators: Decorator arguments and functools.wraps
1.2.3. Day 3¶
45m - OOP Mutable and immutable data structures in parameters
45m - OOP Static and dynamic attributes
60m - OOP: Staticmethod and classmethod
45m - OOP Access modifiers for methods and attributes
45m - OOP: Inheritance, Mixin, Composition
30m - OOP: Method Resolution Order and super()
30m - OOP: Polymorphism
120m - OOP: Object Relation Mapping
1.2.4. Day 4¶
75m - OOP: Interfaces and abstract classes
60m - OOP: Object identity and equality
45m - OOP: Slots
60m - OOP: Class constructor __new__ vs __init__
90m - OOP: Class creation and Metaclass
60m - Performance: Optimization, Micro-benchmarking and Profiling
30m - Performance: Alternative compilers, interpreters and modules
15m - Performance: Cython, Numba, C Types and C Modules
1.2.5. Day 5¶
180m - Dragon
45m - Concurrency: Concurrency models and their specificity
45m - Concurrency: Multiprocessing
60m - Concurrency: Threading and queues
90m - Concurrency: Asynchronous programming