1.1. About 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 - Introduction: about design patterns, classification, Gang of Four (GoF)

  • 50 min - UML: introduction, Class Diagram, Sequence Diagram

  • 180 min - OOP: access modifiers, class var, property, staticmethod, classmethod, new

  • 90 min - Inheritance: simple, multilevel, multiple, mixin, composition, aggregation

1.1.2. Day 2

  • 30 min - Practices: S.O.L.I.D., ask don't tell principle

  • 150 min - Encapsulation: property, reflection, descriptor

  • 150 min - Polymorphism: interface, abstract base class, protocol, builtin protocols

  • 90 min - Protocol: iterator, context manager

1.1.3. Day 3

  • 140 min - Creational: Singleton, Borg, Factory method, Abstract factory, Builder, Prototype

  • 140 min - Behavioral: Memento, State, Iterator, Strategy, Template method, Command, Observer, Mediator, Chain of responsibility, Visitor, Gateway, Interpreter, State machine

  • 140 min - Structural: Composite, Adapter, Decorator, Façade, Flyweight, Bridge, Proxy