Блог Дмитрия Серженко

Всю сознательную жизнь работаю в образовании.

В настоящее время — учитель информатики и физики школы № 509.
Ранее (в т.ч. по совместительству): зам. директора по информатизации школы № 509, программист СПбЦОКОиИТ, сотрудник Инспекции Комитета по образованию Санкт-Петербурга, заведующий ЦИО ИМЦ Петродворцового района, сотрудник поддержки ВКонтакте, инженер ЦИО ИМЦ Красносельского района, педагог дополнительного образования, переводчик, индивидуальный предприниматель и проч., проч., проч.…

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

Меня можно найти: VKFacebookInstagramTwitterХабрахабрWebfolio

Бот для акции «Помним»

В преддверии Дня Победы ежегодно и повсеместно проходят акции в формате «Бессмертного полка».

В этом году, в связи с известными коронавирусными обстоятельствами, бо́льшая часть акций перешла в онлайн-формат. В частности «Российское движение школьников» запустило акцию «Помним».

Участникам акции предлагается:

  1. Скачать файл с рамкой;
  2. Наложить слой с рамкой на слой с фото в нужном порядке (да, рамка должна быть на переднем слое, т. к. у неё есть «уголочки», которые должны быть на фотографии, а не под);
  3. Добавить подписи (желательно — уместным шрифтом);
  4. Сохранить фото.

Очевидно, что для многих потенциальных участников акции выполнение алгоритма станет не такой уж тривиальной задачей: требуются навыки работы с графическими редакторами или хотя бы онлайн-сервисами аналогичного назначения. Либо использования «костылей» вроде PowerPoint’а.

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

Был реализован следующий пользовательский сценарий:

  1. Бот в сети ВКонтакте принимает в качестве входных данных фотографию, ФИО и (опционально) звание героя.
  2. Подготавливает изображение, присылает его пользователю.
  3. Предлагает пользователю выполнить публикацию в сообществе.
  4. Если пользователь соглашается, фото загружается в альбом сообщества и публикуется на стене с заранее заготовленным набором соответствующих хэштегов. Получившийся пост отправляется пользователю, который может принять решение о лайке, репосте (или каком-либо другом действии в рамках стандартного взаимодействия с соцсетью).

Важно, что без прямого на то намерения пользователя ничего никуда не публикуется и, пока пользователь не примет такого решения, никакие данные не выходят за пределы диалога «пользователь — бот».

По сути сейчас нет никакой технической фильтрации ни текстового, ни графического контента, которые подаются на вход боту (кроме, разве что, «загрузите, пожалуйста, вертикальное фото»). Поэтому в целях предупреждения потенциального вандализма была организована команда модераторов, состоящая из педагогов и ребят-активистов, готовых оперативно устранять последствия актов вандализма, если таковые будут иметь место.

Вот что получилось:


Дальше — чуть-чуть технических подробностей разработки. Можете смело пропустить два следующих абзаца, если вас пугают слова и аббревиатуры PHP, API, SDK, NoSQL, «токен» или «standalone» :)

Технически взаимодействие с пользователем осуществляется через чат-бота VK, серверной частью которого является PHP-приложение, написанное с использованием официального SDK VK:

  • Для генерации изображений используются библиотеки-обёртки над GD: ImageArtist и gd-text.
  • Для хранения состояния сессии взаимодействия с пользователем используется NoSQL-хранилище Redis и его PHP-клиент Predis.
  • В целом архитектура проекта такова, что при желании можно изменить (или расширить) платформы взаимодействия с ботом на другие соцсети и/или мессенджеры, используя их API.

Взаимодействие с пользователем осуществляется от имени специально созданного сообщества, однако в процессе разработки я столкнулся с одним логически неочевидным ограничением (однако прямо оговорённым в документации): токен доступа сообщества не позволяет загружать фотографии в альбомы сообщества и создавать записи на его стене. Это возможно только с ключом доступа пользователя, обладающего правами на такие действия в конкретном сообществе. Из этой ситуации был найден следующий выход: создано техническое standalone-приложение, для которого был получен токен пользователя-администратора сообщества с неограниченным сроком действия.

ЧГК-бот

С начала 2019 года я тренирую школьную команду по интеллектуальным играм.

С этого учебного года она разрослась до школьного Клуба интеллектуальных игр.

Для координации встреч и «онлайн-тренировок» была создана беседа ВКонтакте, где время от времени мы с ребятами практиковались «раскручивать» вопросы из Базы вопросов ЧГК. Во время каникул возникло острое желание, насколько это возможно, автоматизировать работу по выбору вопроса из базы и «зачёту» верного ответа.

Так родился бот школьного клуба интеллектуальных игр.

Методом гугления в ЖЖ-сообществе «Спортивное ЧГК» был обнаружен пост, описывающий XML API базы вопросов. Из этого поста можно было сделать сразу два вывода, один внезапнее другого:

  1. ЖЖ жив (о_0)
  2. У Базы API всё же есть.

В результате дня изучения (вспоминания давно забытого) VK API был набросан proof-of-concept бота, который умеет:

  • получать случайный вопрос из базы;
  • писать его в чат с примитивной защитой от гугления;
  • повторять его;
  • выводить ответ на этот вопрос, если игроки сдаются («сливают» вопрос);
  • читать ответы из чата;
  • засчитывать правильные ответы и то, что похоже на правильные ответы (с точностью до е/ё, кавычек и знаков препинания);
  • вести рейтинг игроков.

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

P.S. Приходите в Клуб, попадайте в беседу, испытывайте свой интеллект на прочность! :-)

iУчитель

Рыбаков Фонд подвёл итоги Всероссийского конкурса «Школа». На конкурс было подано более 2800 заявок, и по итогам работы экспертов оглашены имена 50 победителей.

В число победителей в номинации «Я — iУчитель» вошёл единственный педагог из Санкт-Петербурга — Ваш покорный слуга, Дмитрий Иванович Серженко, заместитель директора по информатизации, учитель информатики и руководитель клуба интеллектуальных игр школы № 509. По итогам экспертной оценки у меня набрал 103.5 балла из 110 возможных, заняв пятое место в рейтинге среди всех участников конкурса.

Стать частью Сообщества с большой буквы «С» — большая честь для меня и показатель того, что я двигаюсь в верном направлении.

В конкурсе «Школа» Рыбаков Фонд объединил лучшее из трехлетней истории своих конкурсных программ «ТОПШкола» и «iУчитель», благодаря которым возникла уникальная среда для обмена опытом. Конкурс «Школа» запущен, чтобы поддержать лучшие практики школьных команд и учителей, раскрывающие потенциал ученика и преобразующие школу в центр социума. Организаторы конкурса убеждены: школа — это основа для становления личности и всего общества, именно поэтому вокруг школы должны быть сосредоточены ресурсы и усилия самых разных общественных институтов и неравнодушных граждан.

«Школа — центр социума»

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

В совместном с Полиной Кузьменко выступлении рассказали об опыте Школы № 509 Красносельского района Санкт-Петербурга, о проекте Geek Teachers и о прошедшем в школе № 509 фестивале Geek Teachers Fest.

Целью выступления было рассказать о бэкграунде школы и о принципах взаимодействия с сообществом, в широком понимании: начиная с социальных проектов, направленных на локальное сообщество микрорайона, заканчивая глобальными ивентами для педагогического сообщества, вроде ИТНШ или GTF).

Слайды (хотя что-то может требовать дополнительных комментариев):

Geek Teachers Fest

31 октября 2019 года в школе № 509 мы провели грандиозный фестиваль-праздник для учителей Geek Teachers Fest, организованный проектом Geek Teachers в партнёрстве со школой № 509 при генеральной поддержке Рыбаков Фонда.

Посетителями фестиваля стали более полутора тысяч педагогов со всей России, которые приняли участие в образовательно-развлекательной программе в стиле гавайской вечеринки. Главная миссия фестиваля — показать, что образование — это вовсе не обязательно «серьёзно» и «скучно», а вполне может быть и «интересно» и «неформально»!

Очень круто быть частью такого события и ещё более приятно быть в команде организаторов.

Гостями мероприятия стали начальник Отдела образования администрации Красносельского района Санкт-Петербурга О. С. Нестеренкова, начальник отдела образовательных программ АНО «Россия — страна возможностей» А. С. Богданцев, первый проректор СПбАППО Ю. В. Ээльмаа, директор СПбЦОКОиИТ А. Б. Федосов.

 80   7 мес   Geek Teachers   ивент   школа № 509
Ранее Ctrl + ↓