Кейс EduTech
Задание
Вы - разработчик в компании EduTech, которая создаёт программное обеспечение для образовательных учреждений. Школа “Знание” заключила с вами контракт на разработку системы анализа успеваемости учащихся.
Директор школы поставил перед вами следующую задачу: система должна анализировать оценки учеников и предоставлять учителям и администрации аналитические отчёты для принятия решений о коррекции учебного процесса.
Важное требование заказчика: в будущем данные могут поступать из разных источников (электронный журнал, импорт из Excel, ручной ввод) и выводиться в разные форматы (консоль, файл, веб-интерфейс). Архитектура системы должна позволять легко добавлять новые источники данных и форматы вывода без изменения основной логики анализа.
Система должна уметь:
-
загружать данные об учениках и их оценках из различных источников
-
анализировать успеваемость:
-
рассчитывать средние оценки по занятиям/предметам;
-
находить отличников (ученики со средним баллом ≥ 4.5);
-
находить неуспевающих (ученики со средним баллом ≤ 2.5);
-
определять «проблемные» темы (темы, по которым средняя оценка < 3.0).
-
-
анализировать динамику оценок конкретного ученика (тренд: рост, падение, стагнация);
-
выводить результаты анализа в различные форматы.
Критерии оценивания
| Критерий | Макс. балл | Комментарий |
|---|---|---|
| Слоённая архитектура | 3 | Реализовано чёткое разделение на слои, отсутствует смешение ответственностей |
| Интерфейсы ввода/вывода | 3 | Используются абстрактные классы, полиморфизм для организации ввода/вывода |
| Перегрузка операторов | 2 | Корректная реализация « и » операторов |
| Бизнес-логика | 3 | Все методы анализа реализованы и работают корректно |
| Расширяемость | 2 | Добавление нового формата не требует изменения анализа |
| Обработка ошибок | 1 | Осуществляется проверка входных данных, обработка исключений |
| Качество кода | 1 | Достигнута читаемость кода, соблюдён стандартный стиль оформления кода, код сопровождается комментариями |
| Итого | 15 |