Коротко: бот — первый проект, которым пользуется кто-то, кроме автора: он живёт отдельно от компьютера ребёнка и отвечает друзьям без её участия. Сложность ниже, чем у игры — до первого рабочего ответа примерно 30–40 строк кода. В программе курса «Игры и боты» ботам отведены две темы из тринадцати: основы и логика состояний.

Родители слышат «Telegram-бот» и представляют что-то сложное. Подростки слышат то же самое и представляют спам-рассылку. Оба образа мимо.

Что внутри бота

Три части, и каждая знакома ребёнку по предыдущим темам. Первая — соединение с Telegram через API: библиотека делает это несколькими строками, а сам ключ доступа выдаёт служебный бот платформы. Вторая — обработчики: функция, которая срабатывает на команду. Третья — состояния: бот помнит, на каком шаге разговора остановился пользователь.

Вот почему бот стоит в программе после темы про API: к нему ребёнок уже понимает, что такое запрос и ответ. Без этого пришлось бы объяснять два понятия одновременно.

Когда именно тема наступает

Боты — девятая и десятая темы из тринадцати. То есть две трети ступени уже позади: ребёнок писал функции, разбирал словари, ловил ошибки через try/except, читал файлы и сделал игру на Pygame. Бот не требует ничего нового — он собирает вместе то, что уже умеет рука.

Это и есть причина, почему тему не ставят первой, хотя она эффектнее циклов. Бот, написанный с нуля на втором занятии, был бы переписыванием чужого кода под диктовку. Бота на девятой теме подросток собирает сам и может объяснить каждую строку — разница именно здесь.

Почему бот легче игры

Первая игра против первого бота
Игра на PygameTelegram-бот
Строк до результата150–20030–40
Что надо учестьГрафика, столкновения, цикл игры, времяКоманды и ответы
Кто увидитТот, кому ребёнок покажет экранЛюбой, у кого есть ссылка
Где живётНа компьютере автораНа сервере, работает без автора

Как выглядит занятие, на котором появляется бот

Урок идёт полтора часа, в группе до шести человек. Первые минуты уходят на то, чего ни в одном учебнике нет: подросток пишет служебному боту Telegram, получает свой ключ доступа и вставляет его в пустой файл. Дальше — библиотека aiogram, четыре строки запуска и один обработчик на команду /start.

Ребёнок запускает скрипт, открывает Telegram на телефоне, пишет своему боту — и тот отвечает. Между первой строкой кода и этим ответом проходит меньше одной пары. Именно поэтому тема стоит в программе там, где стоит: после восьми тем упражнений нужен проект, который видно сразу.

Вторая пара по теме — клавиатуры. Вместо того чтобы пользователь угадывал команды, бот показывает кнопки. Здесь подросток впервые сталкивается с мыслью, что интерфейс — тоже его работа, а не что-то, что кто-то нарисует потом.

Чем это отличается от видеоурока на YouTube

За полтора часа на ютубе тоже можно собрать бота. Разница не в результате, а в том, что остаётся после.

В видео код уже написан, и зритель его повторяет. Когда на экране что-то не запускается, остановить видео и спросить некого — и половина попыток заканчивается на ошибке отступа. В группе до шести человек преподаватель видит экран каждого и ловит такую ошибку за секунды, а сам разбор типичных сбоев встроен в тему: подросток должен понять, почему бот молчит, а не получить готовый рабочий файл.

Вторая разница — продолжение. Видео заканчивается вместе с ботом. Тема — нет: дальше идёт ИИ внутри того же бота, потом Git, потом финальный проект, в который бота можно взять. Каждая следующая тема что-то к нему добавляет.

Что дети делают ботами на самом деле

Чаще всего — маленькие личные инструменты. Бот, который напоминает расписание уроков. Бот-словарь для английского. Бот, который бросает кубик для настольной игры в компании. Бот, который принимает заявки на соревнования в классе. Общее в них то, что ими пользуются не из вежливости, а потому что удобно, — и это для подростка главная награда.

Следующая тема — состояния. Пока бот отвечает на отдельные команды, он похож на автомат с газировкой: нажал — получил. Машина состояний делает из него собеседника. Бот спрашивает имя, запоминает ответ, спрашивает следующее и только потом что-то делает. Технически это называется FSM, а на практике именно здесь дети впервые видят, что программа может вести диалог.

Вопрос, который задают чаще всего

Бот будет работать, когда компьютер выключен?

Нет — пока скрипт запущен на домашней машине, бот жив ровно столько, сколько включён ноутбук. Чтобы он работал круглосуточно, программу надо положить на сервер. Это отдельная тема, и она есть, но на старшей ступени: в Python Pro подросток выносит проект на хостинг и учится прятать ключи в переменные окружения вместо того, чтобы держать их в коде.

Мы сознательно не тянем деплой в средний уровень. Ребёнок, который только научился писать обработчики, от слов «переменные окружения» ничего не выиграет — а вот путаницы наберёт.

Чего бот не умеет

Он не читает чужие чаты. Не пишет людям первым, если они сами не начали разговор. Не собирает номера телефонов. Это ограничения самой платформы, и они полезны: подросток видит, что правила придумал не преподаватель, а среда, в которой он работает. Примерно так же устроена любая взрослая работа с чужими сервисами.

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

О безопасности

Ключ доступа к боту — это пароль, и мы отдельно разбираем, почему его нельзя выкладывать в репозиторий на GitHub. Подросток, который один раз увидел, как чужой ключ в открытом коде находят за минуту, запоминает это навсегда.

На той же теме появляется вторая привычка: проверять, кто именно пишет боту. Если бот что-то выдаёт по команде, а команду может прислать кто угодно, то в коде должна быть проверка. Подростки доходят до этой мысли сами — обычно после того, как одноклассник находит их бота и начинает жать все кнопки подряд.

Куда тема ведёт дальше

Тема возвращается на старшем уровне, и дважды. Сначала как «Telegram-бот с БД»: тот же бот, но с базой SQLite, регистрацией, профилями пользователей и админ-панелью. Данные больше не исчезают после перезапуска. Потом как часть работы с ИИ — подросток подключает к боту языковую модель через API, и бот перестаёт отвечать заготовками.

Для финального проекта ступени «Игры и боты» бот — один из трёх вариантов на выбор, наряду с игрой на Pygame и скриптом-автоматизацией. По опыту набора, бота выбирают те, кому важно показать результат людям, а не только сдать работу.

Что такое API простыми словами, разобрано здесь: «Что такое API простыми словами — и зачем оно ребёнку». О контроле версий — «Git и GitHub: зачем подростку контроль версий». Как базы данных дают боту память — «Базы данных и SQLite в курсе Python». Программа среднего уровня — Python: Игры и боты.