pylingvo

Войти
feature

Граф, а не слайды: как устроен адаптивный урок в PyLingvo

В прошлом посте мы сказали, что PyLingvo не ведёт тебя по линейному сценарию «посмотрел → сделал → пошёл дальше». Сегодня покажем, что под капотом.


Урок — это граф, а не презентация

В традиционной платформе урок выглядит как последовательность слайдов: видео, текст, тест, видео, текст, тест. Ты идёшь по рельсам. Неважно, понял ты тему или нет — маршрут один для всех.

В PyLingvo каждый урок — это ориентированный граф. Представь карту, а не прямую дорогу:

  • Ноды — атомарные единицы контента: теория или практическое задание.

  • Рёбра — возможные переходы между нодами, которые активируются в зависимости от твоего результата.

Система не говорит «ты молодец, идём дальше». Она задаёт вопрос: «ты понял?» — и в зависимости от ответа прокладывает маршрут.


Два типа нод

Тип Что происходит Есть ли проверка
theory Читаешь объяснение, смотришь примеры, нажимаешь «Далее» Нет — всегда переход вперёд
practice Пишешь код, запускаешь тесты Дарешено / провалено / пропущено

theory-ноды — это «вдох». practice-ноды — «выдох». Именно в практике система понимает, где ты на самом деле находишься.


Четыре типа переходов после практики

Когда ты отправляешь код, срабатывает проверка: AST-анализ структуры + запуск тестов в sandbox. Дальше — четыре сценария:

1. next — линейный прогресс

Ты решил задание правильно. Система ведёт тебя к следующей теме. Это happy path.

2. review — вернуться к теории

Ты ошибся. Система определяет тип ошибки и возвращает тебя к theory-ноде, которая объясняет именно этот концепт. Не всю тему целиком — а точечный пробел.

3. alt — альтернативное объяснение

Ты ошибся снова. Возможно, формулировка задачи или объяснения тебе не подходит. Система предлагает другую theory-ноду — с иным подходом к тому же концепту.

4. branch — упрощённая ветка

Ты продолжаешь ошибаться. Система понимает: текущий уровень сложности пока не по зубам — и переводит тебя на упрощённую версию задания. Ты не провалился. Ты пошёл по другому пути.


Защита от зависания

Мы проектировали систему с важным ограничением: ты не можешь застрять бесконечно.

Если ты исчерпал все попытки, платформа показывает эталонное решение с комментариями, фиксирует пропуск в телеметрии и переводит тебя дальше. Это не «ты сдался». Это управляемый выход, который позволяет не бросить курс из-за одного сложного задания.

Автор курса обязан спроектировать цепочку деградации для каждой практической ноды: сложное задание → упрощённое → демонстрация решения. Без этого курс не публикуется.


Адаптивность — это одна функция

Вся логика принятия решений сосредоточена в одном месте:

отправил код → проверка → результат → выбрать следующую ноду

Это не размазанная по платформе магия, а одна функция get_next_node(). Сегодня она работает на правилах и SQL. Завтра к ней можно подключить scoring по тегам и навыкам. Послезавтра — ML-модель, обученную на реальных данных. Интерфейс не изменится.


Что это значит для тебя

  • Ты не теряешь время. Система не гоняет тебя по кругу «сделай ещё раз то же самое».

  • Ты получаешь точечную помощь. Не «повтори тему», а «вот конкретно этот концепт ты не освоил — давай разберём».

  • Ты видишь свой рост. Журнал попыток показывает историю: где ошибался, где справился, с какой попытки.

В следующем посте — обзор первых треков, с которых можно начать прямо сейчас.