
Или история о том, как система Frieren помогла нам понять, что происходит в головах 360 студентов, и почему посещаемость всё-таки имеет значение
Пролог: Когда 360 студентов — это не просто число
Представьте себе: вы преподаватель курса "Объектно-ориентированное программирование" в МАИ. У вас 360 студентов, 16 лекций в семестре, 7 домашних заданий, и каждый студент считает, что его случай — особенный. А еще у вас есть ChatGPT, GitHub Copilot и куча других AI-инструментов, которые студенты используют так активно, что вы уже не понимаете, кто из них действительно понимает код, а кто просто копирует.
Знакомо? Если да, то добро пожаловать в клуб. Если нет — считайте, что вам повезло. Но мы решили не просто жаловаться, а сделать что-то полезное. Так родилась система Frieren — комплексная платформа для автоматизации образовательного процесса, которая не только упростила нашу жизнь, но и открыла глаза на некоторые интересные закономерности.
Часть 1: Frieren — не просто красивое имя
Название системы — отсылка к аниме (да, мы такие), но функциональность у неё вполне серьёзная. Frieren — это микросервисная архитектура, состоящая из:
Backend API (FastAPI) — RESTful API для всех операций
Frontend (Next.js) — веб-интерфейс для преподавателей
Telegram Bot (aiogram) — бот для студентов и преподавателей
N8N Workflows — автоматизация бизнес-процессов
RabbitMQ — асинхронная обработка событий
PostgreSQL — база данных

Звучит сложно? На самом деле, всё довольно просто: студент сканирует QR-код на лекции, система автоматически регистрирует посещаемость, отправляет данные в Google Sheets, а преподаватель получает уведомление. Домашние задания проверяются на AI-генерацию через OpenAI GPT-4, и всё это происходит без нашего участия.
Но это ещё не всё. Система также автоматически назначает варианты домашних заданий каждому студенту при регистрации. Больше никаких споров о том, кто какой вариант получил — всё справедливо и прозрачно. А когда студент отправляет работу, система сразу анализирует её на AI-генерацию и готовит предварительный отчёт для преподавателя.
Основные принципы анализа кода на "вайб-кодинг" :
Стилистические паттерны: Проверка комментариев, избыточности, консистентности и шаблонности в именовании.
Структурная логика: Поиск шаблонных, стандартизированных или излишне абстрактных решений, характерных для обучающих примеров ИИ.
Типичные артефакты: Выявление ошибок, недочётов (дублирование, неиспользуемый код) или неестественных, неидиоматичных конструкций.
Инновационность vs. стандартность: Оценка степени оригинальности, отклонения от типовых примеров документации и наличия контекстно-зависимых решений.
Но самое интересное началось, когда мы накопили данные.
Часть 2: Цифры, которые заставляют задуматься
Масштаб бедствия (или успеха?)
360 студентов в системе
7 преподавателей вели практику (и всем им система помогала проверять работы)
98.4% сдали хотя бы одну работу (это хорошо!)
Средний балл: 82.5 из 120 возможных
Средний процент AI-генерации: 57.5%
Средняя посещаемость: 8.4 из 16 лекций (52.5%)

Представьте: 7 преподавателей проверяют работы 360 студентов. Без автоматизации это был бы кошмар. Но система взяла на себя рутинные задачи: назначение вариантов, предварительный анализ работ, выявление подозрительных случаев. Преподаватели получили готовые отчёты и могли фокусироваться на проверке качества кода, а не на поиске проблем.
Первое, что бросается в глаза: студенты активно используют AI. И это нормально. Но дальше начинается самое интересное.
Открытие №1: Посещаемость всё-таки имеет значение
Студенты, которые посещали 12–16 лекций из 16, имели в среднем на 15–20% выше баллы, чем те, кто приходил реже.
Но есть и исключения: мы обнаружили 25 «самоучек» — студентов с высокой успеваемостью (≥100 баллов) при низкой посещаемости (≤6 лекции). Это те самые ребята, которые могут пропустить лекцию, но всё равно написать отличный код. Правда, таких меньшинство.
Вывод: Регулярное посещение лекций — это не просто формальность. Оно действительно помогает. Но если вы гений-самоучка, система это тоже заметит.
Открытие №2: Золотая середина AI-использования
Вот тут начинается самое интересное. Мы проанализировали, как процент AI-генерации влияет на качество работ, и обнаружили любопытную закономерность:
Оптимальный диапазон: 55-75% AI → средний балл 89.2
Низкий AI (<40%): средний балл 76.4
Высокий AI (>80%): средний балл 71.8
Да, вы правильно прочитали. Умеренное использование AI даёт лучшие результаты, чем полный отказ или полная зависимость. Это как с кофе: одна чашка бодрит, десять — убивает.
Почему так происходит?
Студенты с низким AI (<40%) часто тратят слишком много времени на рутинные задачи, которые можно было бы решить быстрее с помощью AI. Они «изобретают велосипед» вместо того, чтобы фокусироваться на понимании концепций.
Студенты с высоким AI (>80%) копируют код, не понимая его. Когда приходит время объяснить решение или исправить ошибку, они теряются.
Студенты с оптимальным AI (55-75%) используют AI как инструмент: они получают базовый код, но затем адаптируют его, понимают, как он работает, и улучшают. Это и есть правильный подход.
Открытие №3: Паттерны, которые рассказывают истории
Система автоматически выявила несколько интересных паттернов:
AI-зависимые студенты (12 человек):
AI > 80%, балл < 70
Проблема: они полагаются на AI, но не понимают код
Решение: индивидуальные беседы и задания с запретом AI
Самостоятельные студенты (31 человек):
AI < 40%, балл > 90
Это те, кто действительно понимает материал
Но они могли бы работать эффективнее, используя AI как помощника
Оптимальный баланс:
55-75% AI — это "золотая середина"
Эти студенты показывают лучшие результаты
Часть 3: Как автоматизация изменила нашу работу

Для преподавателей: больше времени на важное
До автоматизации:
Ручная регистрация посещаемости на каждой лекции
Поиск подозрительных работ вручную
Трата времени на рутинные задачи
После автоматизации:
QR-коды регистрируют посещаемость автоматически
Система сама назначает варианты домашних заданий каждому студенту
Система сама анализирует работы на AI-генерацию
Преподаватель получает готовый отчёт с подозрительными случаями
Больше времени на индивидуальную работу со студентами
Результат: Мы экономим примерно 3-4 часа в неделю на рутинных операциях. Это время можно потратить на консультации, улучшение материалов или просто на отдых (да, преподаватели тоже люди). А для 7 преподавателей, которые работали с системой, это означало возможность эффективно проверять работы 360 студентов без потери качества.
Для студентов: прозрачность и удобство
Telegram-бот позволяет:
Быстро зарегистрироваться на лекцию (сканирование QR-кода)
Отправить домашнее задание одной командой
Получить уведомление о проверке работы
Посмотреть свои оценки и комментарии
Всё это работает 24/7, без необходимости писать преподавателю в личку в 2 часа ночи (хотя некоторые всё равно пишут, но это уже другая история).
Раннее выявление проблем
Система автоматически выделяет студентов с подозрительными паттернами:
Высокий AI % + низкий балл → нужна беседа
Низкая посещаемость + падающие оценки → нужна поддержка
Резкое изменение показателей → стоит разобраться
Это позволяет вмешаться вовремя, до того, как ситуация станет критической.
Часть 4: Современные реалии преподавания программирования
Эра AI-инструментов: новая реальность
ChatGPT, GitHub Copilot, Cursor, и куча других инструментов — это уже не будущее, это настоящее. Студенты используют их активно, и это нормально. Вопрос не в том, используют ли они AI, а в том, как они его используют.
Наша задача как преподавателей:
Не запрещать AI (это бесполезно)
Учить студентов эффективно использовать AI
Различать использование AI как помощника и полную зависимость от него
Фокусироваться на понимании, а не на копировании
Масштабирование без потери качества
360 студентов — это много. Но автоматизация позволяет эффективно работать с таким количеством, не теряя в качестве. Система обрабатывает регистрации, анализирует работы, выявляет проблемы — всё это происходит автоматически, а преподаватель фокусируется на том, что действительно важно: обучении.
Данно-ориентированный подход
Раньше мы оценивали успеваемость субъективно: "Эта группа хорошо работает", "Тот студент старается". Теперь у нас есть данные:
Точные цифры по посещаемости
Процент AI-генерации в каждой работе
Корреляции между различными факторами
Объективные выводы о том, что работает, а что нет
Это позволяет принимать решения на основе фактов, а не предположений.
Заключение
Автоматизация образовательного процесса через систему Frieren показала свою эффективность. Мы не только упростили рутинные задачи (назначение вариантов, регистрация посещаемости, предварительный анализ работ), но и получили ценную информацию о том, как студенты учатся и как они используют AI.
Главные выводы: Умеренное использование AI (55-75%) даёт лучшие результаты, посещаемость имеет значение для большинства студентов, а автоматизация позволяет 7 преподавателям эффективно работать с 360 студентами без потери качества.
Современные реалии требуют адаптации методик преподавания к эре AI-инструментов. Но это не проблема — это возможность сделать образование лучше, эффективнее и интереснее.
Система же система доступна на GitHub: https://github.com/DVDemon/frieren
Комментарии (12)

sfirestar
14.01.2026 14:25Хотелось бы всё-таки поподробнее узнать о том, как вы детектите сгенерированный ИИ код и как отличаете его от "человеческого"?

itmai Автор
14.01.2026 14:25Мы загружаем исходный код из Github-репозитория студента и для каждого файла выставляем "оценку" того, на сколько он может быть сгенерирован AI. Далее - вычисляем среднее.
В исходниках нашего проекта (ссылка в статье) есть точный промпт того как мы проверяем.
Если обобщить: то слишком универсальный/типовой код с красивыми именами переменных и отсутствующими оригинальными конструкциями - вызывает подозрения в том что он сгенерирован.

nkrainov
14.01.2026 14:25А как-то проверяется, что студент действительно был на лекции, а не, допустим, получил фото qr-кода от друга и таким образом отметился?
В моём университете частая история, когда человек отдавал свою карточку-пропуск, по которой можно отмечать (все лекционные аудитории оборудованы ридерами), другу, в итоге человек имел большой процент посещаемости, несмотря на свое физическое отсутствие. Работает на всех предметах, где преподавателю лень считать людей в аудитории и проверять с количеством "приложивших" пропуск (или проводить по старинке перекличку)

itmai Автор
14.01.2026 14:25Действительно, изначально студенты просто пересылали QR код в "секретный чат" и посещяемость взлетала "до небес". После этого пришлось добавить еще один фактор - установить "максимальное количество регистраций" на лекцию.
То есть, преподаватель перед тем как показать QR устанавливает через бот число студентов которые он видит (надо просто посчитать). В боте есть функция автоподсчета людей по фотографии (OpenCV + DLib FaceDetector) но она пока плохо работает на большом количестве студентов.
Такой "второй фактор" имеет психологический эффект - если кто-то пересылает QR в "секретный чат" то он отнимает место у своего товарища за соседней партой. Возможно не лучшее решение, но, как показала практика - вполне рабочее.

TadaoYamaguchi
14.01.2026 14:25Я не студент и не программист, возможно поэтому не понимаю: почему важно чтобы студент не писал код с помощью AI.
Ведь в реальной работе совсем другие критерии оценки качества работы программиста
itmai Автор
14.01.2026 14:25Мы обучаем студентов не "писать код" (это действительно могут делать AI помощники), мы обучаем техникам конструирования программ (абстракция, конструирование алгоритмов и т.д.). Это умение важно и в эру AI, поскольку позволяет правильно структурировать и формулировать задачу, а главное добиваться того что код не просто будет написан, но еще будет работать так как надо.
Но и все еще есть большой класс алгоритмических задач, с которыми современные LLM пока не умеют справляться.

Misato_sun
14.01.2026 14:25А насколько существенно в наше время вообще посещение лекций? Ведь можно найти кучу подкастов по интересующей теме. Очень надеюсь на ваш ответ- меня эта тема давно зацепила...

itmai Автор
14.01.2026 14:25Статистика показала, что те студенты, которые посещают лекции в среднем учатся лучше. И если относится к обучению как к "услуге" которую тебе оказывает ВУЗ, то не получать эту услугу - кажется не вполне рациональный поступок :-)
Так же, на лекциях у нас часто возникают интересные обсуждения неочевидных моментов по изучаемому материалу, которые помогают проще и лучше разобраться в предмете.

SimSonic
14.01.2026 14:25Frieren — не просто красивое имя. Название системы — отсылка к аниме (да, мы такие), но функциональность у неё вполне серьёзная.
Не знаю, что будет делать моя система, но заранее забиваю за собой название — Сайтама xD
ChePeter
А почему на всех сгенерированных картинках голова смотрит мимо экрана дисплея?
itmai Автор
С картинкой случилось то же, что и с кодом сделаным с помощью AI. Вроде бы с ней все хорошо - но почему она такая, мы не знаем :-)