Скрипт, выгружающий время, когда студент решил каждую задачу в курсе на stepik.
Можно использовать, чтобы определять людей, которые скопипастили все решения и прошли курс за один день.
Запуск: python main.py
или docker-compose run parser
Аргументы:
client_id
,client_secret
- параметры OAuth (https://stepik.org/oauth2/applications/)course_id
- ID курса (отсюда: https://stepik.org/course/63054/syllabus)class_id
- ID класса (отсюда: https://stepik.org/class/33587/gradebook)csv_path
- путь до CSVyandex_token
- токен доступа Yandex App (отсюда: https://oauth.yandex.ru/client/new)yandex_path
- путь до CSV на Диске
Например:
docker-compose run parser --client_id xxx --client_secret xxx --course_id 63054 --class_id 33587 --csv_path ./results/kek.csv --yandex_token xxx --yandex_path kek.csv
Будет создан CSV-файл со следующим форматов:
user_id
score
- Оценка человека по курсуdate_joined
- Дата присоединенияuniq_dates
- Количество дней, в которых человек решил хотя бы одну задачуstart_date
- Когда человек начал решать курсend_date
- Когда закончил решать курсdays
-end_date
-start_date
(дни)
8..N id шага
- дата успешного решения шага (YYYY-MM-DD)
По небольшому числу uniq_dates
можно поискать обманщиков.
Сложность по числу запросов: o(n * m), где n - число студентов, m - число шагов в курсе
- М.б. будет интересно по времени решения задач определить людей, аномально быстро решающих задачи, но распределяющие решения по дням
- Скачать все решения и проверить на плагиат