Первая половина года — консольные программы, на которых осваивается язык. Вторая — боты, которыми можно пользоваться и делиться с друзьями прямо из мессенджера.
Боты — это то, ради чего ребята приходят на курс. Но за каждым стоит половина года работы с языком: без базы получился бы «скопируй код и запусти».
От первой консольной программы до собственного бота, который продолжает работать после окончания курса.
Две первые программы курса. В одной компьютер загадывает число, а игрок отгадывает его с подсказками. Во второй — простой текстовый собеседник, который отвечает на введённые фразы. Обе написаны с нуля на первом же модуле.
Обе программы ребята пишут полностью самостоятельно — это первый опыт, когда код делает что-то интерактивное, а не просто выводит текст.
Два проекта, которые учат хранить данные. Викторина держит вопросы и ответы в списках, считает очки и разбирает ошибки. RPG-магазин — уже словари: витрина с ценами, кошелёк игрока, рюкзак с покупками и возможность продать предмет обратно.
Здесь ребята впервые сами выбирают структуру данных под задачу: почему для вопросов подходит список, а для товаров с ценами — словарь.
Итоговый проект базовой части: игра-квест с несколькими комнатами и вариантами действий. Прогресс сохраняется в файл, поэтому игру можно закрыть и вернуться позже. Код разнесён по функциям — иначе такой проект уже не удержать в одном куске.
Структуру квеста ребята придумывают сами. Здесь же впервые сталкиваются с задачей «программа не должна падать, что бы пользователь ни ввёл».
Момент, когда программа переезжает из чёрного окна консоли в мессенджер. Бот принимает любой вопрос и выдаёт предсказание, понимает команды и красиво оформляет ответы. Первый проект, которым можно поделиться с друзьями одной ссылкой.
Перед этим проектом разбираем декораторы — чтобы синтаксис @bot.message_handler не остался магией. Логика бота пишется учениками с нуля.
Виртуальный питомец с кнопками «покормить», «поиграть», «уложить спать». У питомца есть показатели сытости и настроения, которые меняются со временем, а бот присылает картинки и стикеры в зависимости от состояния.
Логика состояния питомца и вся система реакций написаны учениками. Здесь же разбираемся, как хранить данные каждого пользователя отдельно.
Бот выходит в интернет. Пользователь пишет название города — бот обращается к погодному сервису, разбирает ответ и присылает температуру, описание погоды и подходящий эмодзи. Обрабатывает и ошибки: если города не существует, честно об этом скажет.
Разбор JSON и обработка ошибок сервера — код учеников. Это первый проект, где программа зависит от чего-то за пределами компьютера и должна быть к этому готова.
Последний модуль каждый работает над своей идеей: от планировщика задач и дневника до бота-магазина и викторины. Проект проходит полный путь — проектирование, разработка, тестирование и защита перед группой. Бот остаётся у ребёнка и продолжает работать после курса.
Проект полностью авторский: преподаватель помогает с техническими трудностями, но идею, структуру и код ребёнок делает сам. Это и есть главный результат года.
Проекты учеников мы выкладываем в открытый репозиторий академии. Можно посмотреть исходный код и запустить программу у себя.
Первое занятие бесплатное. Покажем, как выглядит настоящий код, и дадим написать первую программу.