1.1. Agenda¶
Training course: 9:00 - 17:00
Lunch break: 13:15 - 14:00
10 min break every one/one-and-half hour
1.1.1. Day 1¶
10 min - Intro: welcome message, course introduction, agenda, spreadsheet
60 min - Setup: IDE, Git, repository, Python, doctest
30 min - Placement test: evaluating participant skills
60 min - Placement test: live coding solution, IDE demonstration, ie. debugging, working with VCS, refactoring, quick documentation, type annotations, function signatures
30 min - Syntax: assignment expression
110 min - Typing: basic types, iterables, mappings, callables, types, extra
120 min - Dataclasses: definition, relations, post_init, metadata, helpers
1.1.2. Day 2¶
120 min - OOP: slots, identity, equality, staticmethod, classmethod
90 min - Inheritance: patterns, mixin, composition, problems, super(), MRO
210 min - Classes: constructor, class creation, metaclass
1.1.3. Day 3¶
120 min - Operators: left, increment, right, numerical, comparison, binary, accessors
150 min - Abstract: polymorphism, interfaces, protocols, abstract base classes, builtin protocols
150 min - Accessors: property, reflection, descriptor
1.1.4. Day 4¶
90 min - Functional: Lambda, scope, pure-function, recurrence
30 min - Functional: Immutable data structures, higher-order functions, referential transparency
90 min - Functional: Namespace, function attributes, callable, closures, patterns, functools
210 min - Decorators: Functions, Methods, Classes, with/without arguments, functools
1.1.5. Day 5¶
90 min - Generators: expressions, functions, introspection, yield, yield from, itertools
180 min - Async: introduction to asynchronous programming, async/await, coroutines
60 min - Threading: introduction to threading, locks, queues
30 min - Multiprocessing: introduction to multiprocessing, sockets, IPC
30 min - Performance: big-O notation, complexity, optimization, micro-benchmarking, profiling
30 min - Performance: Alternative compilers, interpreters, transpilers