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