Да, наши дети взрослеют, становятся старше и встает вопрос - кем они будут и какие знания мы им можем передать. Поскольку большая часть собравшихся здесь - связана с IT, то почти уверен, что большая часть считает, что их дети тоже пойдут в IT.

В связи с этим у меня появился вопрос - а что нынешнее школьное образование может предложить?

Мой сын изучает Python в школе. Как организован процесс обучения? Небольшие вводные уроки и выполнение большого количества примеров из Яндекс контекст - https://official.contest.yandex.ru/contest.

Задачи суховаты для подростков и не увлекают поколение, выросшее на красивых картинках Tick-tock и You Tube (как бы мы отрицательно к этому не относились - но это факт). Как следствие - дети не горят желанием выполнять задания и, что самое плохое, не получают удовольствия от выполненной работы. А как бы было здорово, если бы написанный код приносил радость и результатами труда можно было бы поделиться со сверстниками.

Вспомните свои эмоции, когда Ваша программа попала в топ, или пользователь написал Вам о том, что Ваше творение помогло ему в чем-либо?

Поэтому, когда встал вопрос о теме проекта по информатике, мы после обсуждения с сыном, решили написать Telegram бот на Python для получения информации о школьном расписании. Логика выбора была основана на том, что кроме полученных знаний, результат принесет реальную пользу и уважение сверстников.

Робот Вася
Робот Вася

Преимущества Telegram бота в том, что не требуется установка клиента на конечные устройства - это упрощает развертывание. Аудитория Telegram пользователей - это несколько десятков миллионов людей, использующих абсолютно разные устройства с разными операционными системами.

В качестве библиотеки, реализующей интерфейс Telegram, я выбрал python-telegram-bot. Мне она показалась наиболее привлекательной с точки зрения удобства написания кода, наличия примеров и дружелюбного сообщества, помогающего решить возникающие проблемы. Не буду описывать процесс создания Telegram бота - до меня это уже сделали многие.

Простой поиск site:habr.com python telegram bot, вернет Вам и "Самый полный стартовый гайд по ботам Telegram" и "Полный гайд по разработке Telegram ботов" и "Простой Telegram-бот на Python за 30 минут" и еще много других ссылок.

Главное, чего я хотел добиться при реализации данного проекта - это увлечь сына. Обучить его основам ООП. Для многих возможности ОПП в Python раскрываются значительно позднее. Доказать ему, что разработка программ - это работа, которая приносит удовольствие.

Надеюсь, что мне это удалось!

Вот ссылка на Telegram бот - https://t.me/school_schedule_1502_bot , если у Вас есть замечания или предложения, пишите - обратная связь только приветствуются.

Облачные сервисы
Облачные сервисы

После реализации основного функционала, встал вопрос: "где можно развернуть приложение?". Первоначально, в качестве "сервера" выступал ноутбук сына. Естественно, это не удобно по многим причинам и потребовалось найти виртуальный хостинг, с минимальной стоимостью. После долгих поисков и сравнений был выбран Amvera Cloud, так-как он позволяет устанавливать обновления простым коммитом с помощью push в Git. Выбран минимальный тариф - Пробный.

При регистрации было начислено 120 рублей, что позволило протестировать круглосуточную работу бота и начать распространять ссылку на приложение среди учеников класса. Развертывание приложения Amvera Cloud осуществляется простой отправкой обновления в Git-репозиторий.

При развертывании я столкнулся с двумя проблемами:

  1. Исходный код проекта содержится на GitHub, в ветке main, а amvera создает репозиторий с именем master по умолчанию. Поэтому вместо команды git push amvera master нужно выполнять git push amvera main:master.

  2. Ключ Telegram бота хранится в переменной окружения. Для Windows, где проходила разработка, название переменной может быть как в верхнем, так и нижнем регистре  - переменная одна. Для Linux - это не так. Поэтому первый запуск бота в  Amvera Cloud завершился с ошибкой - не возможно запустить бот без TOKEN ключа.

Призываю - используете свой опыт для того, чтобы вдохновить будущих разработчиков. Создание программ не должно быть рутинной работой "на галерах", а должно приносить радость и удовлетворение.

Уверен, что те, кто будут после нас - обязательно будут лучше нас.

Комментарии (16)


  1. pavel_raskin
    12.01.2024 19:01
    +1

    Учиться на практических примерах всегда интереснее, спору нет. Жаль, что по разным причинам педагоги не всегда могут полностью отдаться такому подходу.

    Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота?

    Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота?

    Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота? ;-)


    1. alisichkin Автор
      12.01.2024 19:01

      "Призываю - ответьте. Уверен, многим будет интересно узнать, что является исходным источником расписания для бота?"
      Исходными данными для бота, если это Вы имели в виду - является страница расписания школы: https://1502.mskobr.ru/uchashimsya/raspisanie-kanikuly
      Разбор которой позволяет получить данные о корпусах и классов, которые расположены в корпусе.
      От класса получается ссылка на PDF файл, разбор которого и дает данные об уроках.


      1. pavel_raskin
        12.01.2024 19:01

        Спасибо за ответ. Да, не простая многоходовка для получения данных. Но хотя бы онлайн доступно - уже хорошо.


  1. Nurked
    12.01.2024 19:01
    +4

    Господа, с грибами надо осторожнее. Ну или завязывать с генеративным контентом.


  1. randomsimplenumber
    12.01.2024 19:01
    +2

    Исходный код проекта содержится на GitHub, в ветке main,

    но я вам его не покажу? ;)

    Разворачивание бота это интересно и поучительно. Если ребенок сам додумался до хостинга, особенностей переменных окружения в Windows и бранчей в git.


  1. ErshoffPeter
    12.01.2024 19:01
    +3

    Начало интересное, но потом всё тонет в деталях реализации.

    Не хватает happy end - как радостно встретили bot однокрассники, какое было продолжение, скольких удалось втянуть в свою секту питонистов и всё такое.


    1. alisichkin Автор
      12.01.2024 19:01

      А Happy end'а еще нет - сдача проекта только будет...


      1. ErshoffPeter
        12.01.2024 19:01

        Тогда ждём захватывающее пост-продолжение! :-)


  1. MicroProger
    12.01.2024 19:01

    в 16 лет, у нас в классе проводилась игра "Тайный Санта". Я захотел как-то сделать игру проще, а также добавить к ней несколько деталей. А если конкретно, то я хотел, чтобы игрок мог написать комментарий, чего бы он не хотел получить.

    На всякий случай скажу, принцип игры в том, что каждому участнику даётся имя другого участника, и он должен подготовить анонимно подарок на Новый Год своему участнику.

    Я сделал телеграм бота с массивом из id своих одноклассников, которые они туда сами занесли, нажав на кнопку участвовать.

    Спустя время, после нескольких тестов, мы провели игру, благодаря боту. Она прошла действительно интереснее, я тогда получил две упаковки петард от классного руководителя ????

    Насчёт статьи хочу сказать, что поколение не очень то и потеряно. Я уже встретил большое количество способных ребят,я знаю, о чем говорю.


    1. alisichkin Автор
      12.01.2024 19:01
      +2

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


      1. MightyMiky
        12.01.2024 19:01

        А вы вспомните что захватывало вас , фильмы с какой тематикой , ос и ваши мечтаний и поймёте что нынешнему поколению это не интересно потому как слишком техническая хрен , сейчас в 2 клика и ты получаеш все что угодно в интернете не поиска не исследования уже нечего не надо .

        Добавить лиш могу что интеграция ии в разные сверх нашей жизни могут помочь , вот представьте что к 7 класс ребёнок собирает себе как из конструктора ии помощника и на протяжении школьных лет модифицировать его . Да базв знаний должна быть по развитей , думаю информатику надо с арифметикой вводить .

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

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


  1. iig
    12.01.2024 19:01
    +2

    обратная связь только приветствуются

    Начнем со странного.
    Расписание скачивается в 1 щелчок мыши с сайта 1 раз или в 5 щелчков с бота. Странное улучшение.


    Выберите день и неделю - серьезно? Бот не знает какая неделя соответствует какому дню года? Логично уметь выдавать расписание на сегодня/завтра. А также присылать уведомление о следующем уроке. И о расписании на завтра. Это то, чего нет в расписании в pdf, но может быть реализовано и востребовано ЦА.


    1. alisichkin Автор
      12.01.2024 19:01

      "Бот не знает какая неделя соответствует какому дню года? "
      Да, не знает - как вы думаете какая неделя сейчас идет? - Первая, так как первая неделя месяца - были праздники.
      Это можно реализовать только зная производственный календарь на годе - наверное для школьного проекта это еще рано.
      "А также присылать уведомление о следующем уроке. И о расписании на завтра. Это то, чего нет в расписании в pdf, но может быть реализовано и востребовано ЦА."

      • Спасибо за предложение, если проект взлетит - то это можно будет реализовать.


      1. randomsimplenumber
        12.01.2024 19:01

        Это можно реализовать только зная производственный календарь на годе - наверное для школьного проекта это еще рано

        Да ну.. Школьники же как то пользуются выбором недели. Если программист не может этот алгоритм закодировать - есть большие сомнения насчет вовлечености.


  1. axeax
    12.01.2024 19:01
    +1

    Не хочу показаться невежливым занудой, но что сделал сын? Вы придумали задачу, обосновали нужность бота, выбрали библиотеку, нашли гайды, узнали как развернуть приложение, все сами оплатили и написали статью... (по крайней мере вы так об этом пишете)

    Доказать ему, что разработка программ - это работа, которая приносит удовольствие. 

    Надеюсь, что мне это удалось!

    Если бОльшую часть работы вы сделали сами, значит заинтересовать не удалось. Пытаясь облегчить порог вхождения вы невольно пытаетесь увлечь не разработкой а кодерством, а это совсем разные вещи. На курсах скиллбокс и прочих делают то же самое (вроде проекты из реальной жизни но по сильно протоптанной дорожке) и это не работает, люди оттуда мало кому нужны.

    Я считаю когда человеку действительно что то интересно, он сам будет этим заниматься. А что то навязанное обычно не работает.

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


  1. NutsUnderline
    12.01.2024 19:01

    к сожалению настоящее мнение ребенка по поводу всего этого мы вряд ли узнаем.