Введение в Java: JDK, JRE, JVM, IntelliJ IDEA
Примитивные типы данных, условные операторы, выход за границы типов и погрешность вычислений
Testability, автотесты, введение в ООП: объекты и методы
Система сборки Maven, управление зависимостями, автотесты на JUnit5
Циклы, параметризованные тесты и аннотации
Выстраивание CI: Github Actions. Покрытие кода с JaCoCo, статический анализ кода: CheckStyle, SpotBugs
Разбор задач
Объектно-ориентированное программирование и проектирование
Объектно-ориентированное программирование: ключевые принципы
Объекты с внутренним состоянием, управление состоянием при тестировании
Композиция и зависимость объектов. Mockito при создании авто-тестов
Наследование и расширяемость систем. Проблемы наследования
Исключительные ситуации и их обработка. Тестирование исключений
Интерфейсы для организации малой связности. Обобщённое программирование — Generics
Collections Framework. CRUD и тестирование систем, управляющих набором объектов