Паттерны Object Pool, Null Object, Servant. Модель MVC. Модель цикла обработки событий (Event Loop).
Работа с библиотеками в C++. Хорошие и плохие библиотеки. Структурирование исходного кода в больших проектах.
История ООП. Скандинавская школа (Simula 67). Основы Smalltalk.
Статическая и динамическая типизация. Основы Javascript. Наследование с помощью прототипов.
Замыкания. Наследование интерфейса и наследование реализации. Наследование в Go и Rust.
Критический взгляд на ООП. Сложность, присущая задаче (inherent complexity), и побочная сложность (incidental complexity). Проблемы, вытекающие из мутабельности состояния объектов. Персистентные структуры данных.