Создание статистики решения пользователей для INNOPROG
Цель:
Проанализировать данные решений пользователя и получить различные статистические показатели, чтобы лучше понять его успеваемость и поведение при решении задач.
Необходимые данные
Для выполнения задания используйте следующие endpoint для получения данных:
- Детализированная информация о решениях пользователей:
https://bot.innoprog.ru/dataset/detailed/{user_id}
- Оценки заданий и времени решения пользователем:
https://bot.innoprog.ru/dataset/general/{user_id}
- Детальное описание каждого задания:
https://api.innoprog.ru:3000/task/{task_id}
Где {user_id}
— это идентификатор пользователя, а {task_id}
— идентификатор задания.
Требования к выполнению
Напишите программу, которая выполнит следующие задачи:
- Общее количество решенных заданий пользователем:
- Получите данные о решениях пользователя.
- Подсчитайте количество уникальных идентификаторов заданий (
task_id
).
- Среднее время решения заданий и оценка сложности (реальные баллы) пользователем, а также отклонение от оценки сложности задания преподавателем для всех решенных им заданий:
- Извлеките данные о времени решения и оценках для каждого задания.
- Рассчитайте среднее время решения заданий.
- Вычислите среднюю оценку сложности, выставленную пользователем (
real_points
).
- Найдите среднее отклонение от оценки сложности задания, выставленной преподавателем (
real_points
- points
).
- Среднее время между попытками решения на основе времени в детализированном решении пользователя:
- Используйте временные метки из детализированной информации о решениях.
- Рассчитайте разницу между последовательными решениями и найдите среднее значение.
- Среднее количество попыток решения для каждого из типов заданий:
- Получите детальное описание каждого задания, чтобы определить его тип.
- Подсчитайте количество попыток для каждого типа заданий.
- Рассчитайте среднее количество попыток для каждого типа заданий.
- Процент правильных ответов с первой попытки для заданий с вариантами ответов:
- Для каждого задания с вариантами ответов проверьте, насколько часто пользователь выбирает правильный ответ с первой попытки.
- Рассчитайте процент правильных ответов с первой попытки.
- Дополнительный пункт:
- Выберите дополнительный показатель для анализа на ваше усмотрение. Это может быть, например, процент успешных решений для каждого типа заданий, количество времени, потраченного на каждое задание, или что-то другое.
Вывод результатов
Разработайте Telegram-бота, который будет выводить результаты анализа при вызове команды /statistics {user_id}
. Бот должен возвращать пользователю следующую информацию:
- Общее количество решенных заданий.