Практико-ориентированный проект «Создание сайта и Telegram-бота для практики написания писем на английском языке в формате ЕГЭ»
Автор публикации: В. Сенкевич, ученица 11Б класса
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ МОСКОВСКОЙ ОБЛАСТИ «ОДИНЦОВСКИЙ «ДЕСЯТЫЙ ЛИЦЕЙ»
Практико-ориентированный проект
«Создание сайта и Telegram-бота
для практики написания писем на английском языке в формате ЕГЭ»
(секция «IT», Информатика)
Выполнила:
Сенкевич Варвара Владимировна,
ученица 10 класса
Научный руководитель:
Пименова Ольга Рушановна,
учитель информатики
Одинцово
2024
Паспорт проекта
Название проекта | Создание сайта и Telegram-бота для практики написания писем на английском языке в формате ЕГЭ |
Имя руководителя | Пименова Ольга Рушановна |
Состав проектной группы | Сенкевич Варвара Владимировна |
Учебный предмет | Информатика |
Возраст учащегося | 16 лет |
Тип проекта | Практико- ориентированный проект |
Цель проекта | Создать сайт и Telegram-бот для практики написания писем на английском языке в формате ЕГЭ |
Задачи проекта | Изучить требования к формату письма на ЕГЭ Написать программу, позволяющую автоматически проверять письмо, загружаемое в нее Оформить и опубликовать сайт, посвященный правилам оформления письменного ответа на 37 задание ЕГЭ по английскому языку |
Результат проекта | Бесплатный сайт с информацией про правила оформления письма на ЕГЭ, а также Telegram-бот с возможностью автоматически проверить соблюдение формата |
Этапы проектной работы | |
Выбрать темы, поставить цели и задачи, собрать необходимую информацию о нужном задании в экзамене, о разработке сайта и Telegram-бота | Сентябрь – октябрь 2023 Сформулировала тему, цель и т.д. Изучила особенности выполнения 37 задания ЕГЭ Нашла информацию о создании сайтов и Telegram-ботов |
Получить необходимые навыки программирования на языке Python и создания Telegram-ботов | Ноябрь 2023 Прошла курс по программированию на языке Python от Яндекс.Практикума Прослушала курс по созданию Telegram-ботов на платформе Youtube |
Создать и опубликовать сайт. Написать программу для бота, оформить и выложить его в общий доступ | Декабрь 2023 – январь 2024 Изучила интерфейс и принципы работы конструктора сайтов Tilda Выбрала информацию об экзамене и конкретном задании Оформила сайт Опубликовала его Изучила процесс создания Telegram-ботов Написала программу на языке Python Оформила и опубликовала бот |
Получить обратную связь от первых пользователей, внести правки, распространить среди учителей и учеников | Февраль 2024 Получила обратную связь Внесла правки Распространила результат проекта среди учеников и учителей своей школы |
Материально-техническое обеспечение проекта | Компьютер, установленная среда разработки для языка программирования Python PyCharm и выход в сеть Интернет |
Оглавление
Сбор и анализ информации по проблеме 6
Разработка проектного решения 8
Проектирование и подбор материалов 9
Изготовление продукта проекта 12
Актуальность. В 2023 году единый государственный экзамен по английскому языку сдавали более 80 тысяч человек. Многие выбирают этот предмет для сдачи, так как бытует мнение, что его довольно легко написать на высокие баллы при должной подготовке. И правда, средние баллы за последние 5 лет превышают 70 баллов (из ста возможных).
При успешной сдаче данного экзамена школьники могут поступить на специальности, связанные с такими направлениями, как реклама и связи с общественностью, лингвистика, журналистика, юриспруденция, информационные технологии и так далее. В наше время знание иностранных языков практически обязательно. Во всяком случае, владение английским языком дает возможность работать с зарубежными компаниями, вести коммуникацию с людьми со всех стран мира и обращаться к большему количеству источников информации.
Поэтому мой проект будет актуален как для старшеклассников, сдающих английский язык, так и для учителей, которые готовят к этому экзамену. Письмо, которому будет посвящен сайт и Telegram-бот, является заданием базового уровня, поэтому оно рекомендуется к выполнению всеми сдающими.
Проблема. Так как я в том числе рассматриваю английский язык в качестве предмета для сдачи ЕГЭ, я решила найти инструменты, которые помогли бы мне успешно подготовиться. Таких сайтов огромное количество. Среди прочих есть даже тренажеры для устной части с удобным таймером. Однако для практики написания письма (37 задание), за которое можно максимально получить целых 6 баллов, я не нашла удобного продукта, что и стало проблемой, которую я выбрала решить в рамках моего школьного проекта в 10 классе. Также мне было бы интересно создать несколько механизмов, которые помогли бы не только моим друзьям, но и старшеклассникам всей страны. Начать я решила с реализации тренажера для того самого 37 задания ЕГЭ. Подробное изучение требований к тому или иному заданию, по моему мнению, поможет и мне самой успешно его выполнить.
Практическая значимость. Продукты данного проекта можно будет использовать как на тематических уроках по подготовке к ЕГЭ по английскому языку в школах, так и в рамках самостоятельной подготовки. Учителям это поможет интереснее и разнообразнее преподнести материал, а ученикам — попрактиковаться в выполнении задания.
Моя цель: создать сайт с подробной информацией о написании письма, а также созданиеTelegram-бота для практики.
Задачи проекта:
Изучить требования к формату письма на ЕГЭ.
Написать программу, позволяющую автоматически проверять письмо, загружаемое в нее.
Оформить и опубликовать сайт, посвященный правилам оформления письменного ответа на 37 задание ЕГЭ по английскому языку.
Сбор и анализ информации по проблеме
В настоящее время существует множество ресурсов не только для подготовки к единому государственному экзамену по английскому, но и в целом по изучению иностранных языков. И с каждым днем их становится все больше, а найти качественный продукт, который бы действительно упростил процесс обучения, — все тяжелее. Поэтому необходимо проанализировать сайты с аналогичной задачей, что я поставила себе в рамках данного проекта, выделить их недостатки и проанализировать их таким образом, чтобы избежать чужих ошибок. Важно создать с одной стороны эффективные, удобные и простые в использовании инструменты, а с другой, уникальные и выделяющиеся на фоне «конкурентов» продукты.
Для достижения представленной выше цели рассмотрим следующие сайты, предназначенные для подготовки для успешного выполнения задания номер 37 ЕГЭ.
Языковая школа в Томске Big Ben School https://bigben-school.tomsk.ru/ege-po-anglijskomu-yazyku/pismo-ege-po-anglijskomu-yazyku-zadanie-37/
Продукты платные
Четко разъяснена структура
Есть примеры клише
Много рекламы
Подробно рассматриваются критерии
Блог о преподавании английского Ирины Кузнецовой https://4languagetutors.ru/pismo-na-ege-zadanie-39/
Настойчивая реклама собственного учебника по написанию письма
Непонятные скриншоты с ФИПИ
Много опечаток
Новая школа https://thenewschool.ru/trainer/eng_lang/8?taskNumbers=333&topics=&enableSolvedTasks=false
Требуется авторизация
Начало бесплатного недельного периода подписки, без которой невозможно использовать ресурсы платформы, сразу после регистрации без уведомления об этом пользователя
Таким образом, проанализировав все вышесказанное, можно сделать вывод, что основной проблемой является отсутствие платформы, которая...
А) Не требует долгой регистрации/получения ваших данных
Б) Является бесплатной
В) Не размещает рекламу
Проанализировав необходимую информацию, я выделила главное для успешного написания письма на ЕГЭ. Во-первых, это структура. Она состоит из 7 пунктов:
Обращение
Благодарность
Ответы на вопросы
Вопросы другу
Выражение надежды на будущие контакты
Заключительная фраза
Подпись
И, разумеется, необходимо было изучить документы на сайте ФИПИ, чтобы найти критерии, которым должно соответствовать письмо.
Допустимый объем: от 100 до 140 слов. Однако некое отклонение все же допускается, и настоящими границами являются 90-154 слова.
Стиль общения: неофициальный. Использование сокращений и разговорных фраз.
Соблюдение оформления.
После подписи в конце нельзя ставить точку.
В качестве проектного решения я решила сделать два продукта: сайт со всей полезной информацией и Telegram-бот для практики. Такой выбор обоснован сразу несколькими характеристиками. Во-первых, боты только приобретают всю большую популярность в последние годы. Как и соцсеть Telegram, которую можно установить как на телефон, так и на компьютер. Поэтому это позволит сделать продукт удобным и доступным. На сайте же будет расположена основная информация, которая может понадобится при выполнении этого задания. Оба продукта будут существовать отдельно друг от друга, однако и там, и там будут ссылки на другой ресурс. Таким образом, возможно решить сразу две задачи: создание платформы для ознакомления с форматом задания и создание тренажера для практики.
Требования к сайту:
Лаконичность формулировок
Оформление в спокойных и приятных цветах
Вся информация в сжатом объеме
Требования к боту:
Простой интерфейс
Быстрое выполнение задач
Понятное и логичное руководство
Проектирование и подбор материалов
Для создания сайта я рассмотрела несколько способов: платформы Wordpress, Nethouse, Wix, Tilda и написание с нуля. Подробно остановимся на каждом из них.
Wordpress. Создать сайт можно бесплатно. Сразу предлагается множество шаблонов и тем для сайта, однако это является и минусом, так как разобраться в интерфейсе и принять верное решение сложно. Подойдет для более объемных проектов, личных блогов и магазинов.
Nethouse. Специализируется на создании сайтов для бизнеса. Малое количество шаблонов. При начале работы тут же предстоит определиться с дизайном.
Wix. Огромное количество шаблонов и функций, в которых непросто разобраться новичку. Отсутствие автосохранения изменений в структуре и дизайне.
Tilda. Очень ограниченные возможности в бесплатной версии. Также ограничение по количеству сайтов и страниц в них, невозможность использовать все блоки и функции. Понятный интерфейс, не требующий много времени, чтобы привыкнуть к нему.
Создание с нуля. Для этого требуется знание дополнительных языков программирования помимо Python: JavaScript, HTML и CSS. Что означает огромные временные затраты и ухудшение внешних качеств продукта.
Сделав выводы из всего вышесказанного, я выбрала платформу Tilda, так как у меня уже есть опыт работы с ней. Мне не потребуется много времени ни на знакомство с интерфейсом и функциями, ни на само создание сайта. Таким образом, без финансовых трат я смогу сделать простой и лаконичный одностраничный сайт с упором на содержание.
Затем я приступила к проектированию первого продукта. Для этого я вручную создала схему будущего сайта (см. Рисунок 1), что стало его основой и помогло мне ориентироваться при подборе блоков.
Рисунок 1. Схема сайта
Создание Telegram-бота можно реализовать практически на любом языке программирования. Мной был выбран Python, так как это наиболее популярный в целом и конкретно для этой задачи язык, я знакома с его основами, он позволяет использовать довольно много функций и библиотек для Telegram-бота, что позволит решать большее количество задач. В качестве интегрированной среды я использовала PyCharm, так как она считается наиболее удобной и проста в установке.
Для второго продукта я также составила логическую схему (см. Рисунок 2).
Рисунок 2. Схема Telegram-бота
Создание Telegram-бота
Через Telegram-бот @BotFather создаем новый с помощью команды /newbot. Выбираем название и имя (см. Рисунок 3).
Рисунок 3. Создание Telegram-бота через @BotFather
В PyCharm создаем новый проект и файл. Скачиваем библиотеку telebot по ссылке https://pypi.org/project/pyTelegramBotAPI/. Устанавливаем ее. Начинаем нашу программу со строк import telebot и from telebot import types. В @BotFather получаем токен нашего Telegram-бота и создаем переменную bot, в которую записываем обращение к библиотеке telebot и классу Telebot. В скобках записываем токен созданного нами Telegram-бота (см. Рисунок 4).
Рисунок 4. Начало программы
Создаем список theme_list с темами писем. Импортируем функцию import, которую мы будем использовать в дальнейшем. Создаем переменные file_1, file_2 и т.д. и присваиваем им файлы с компьютера, находящиеся в одной папке с программой, методом open(). В скобках указываем имя файла и то, что открываем его для чтения (‘rb’). Создаем общий список с этими переменными. Формируем список с числами от 1 до 25 (см. Рисунок 5).
Рисунок 5. Формирование списков
Обращаемся к декоратору message_handler и создаем функцию main от переменной message. Рассматриваем несколько случаев сообщений, которые будет присылать пользователь. Во-первых, это /start. Отвечать на это Telegram-бот будет сообщением «Привет! Здесь ты можешь потренироваться в написании письма в формате ЕГЭ по английскому языку. Чтобы узнать о правилах оформления, переходи на сайт http://enletexam.tilda.ws/. Уже готов приступить к испытанию? Тогда нажимай /ready». При ответе /ready будут появляться три кнопки: «Я уже выбрал задание», «Хочу выполнить любое» и «Хочу выбрать по теме». А также сообщение «Отлично! Во вкладке "Темы" ты можешь выбрать любое задание.» (см. Рисунок 6).
Рисунок 6. Создание первой функции и кнопок
Далее создаем цикл, который будет перебирать числа от 1 до 25 и проверять, не прислал ли их пользователь. В таком случае Telegram-бот будет отправлять ему нужный файл с заданием и сообщение «Готовое письмо можешь прислать мне, а я проверю» (см. Рисунок 7).
Рисунок 7. Отправка задания
Если же в сообщении, которое присылает пользователь нет цифр и это не одна из тех команд, что мы рассмотрели выше, то оно будет расцениваться как ответ на задание, то есть готовое письмо. А значит, мы формируем несколько проверок его. Во-первых, мы считаем количество слов и проверяем, не соответствует ли оно критериям. В таком случае к основе оценочного сообщения мы добавляем результаты данной проверки (см. Рисунок 8).
Рисунок 8. Проверка количества слов
Во-вторых, мы считаем количество вопросов, которое было задано в ответном письме. Создаем счетчик k и с помощью цикла находим число вопросительных знаков. Если оно больше или меньше трех, то мы добавляем результат и этой проверки к оценочному сообщению (см. Рисунок 9).
Рисунок 9. Проверка количества вопросов
Если же оба критерия соблюдены, то пользователю будет предложено пройти еще одно задание (см. Рисунок 10).
Рисунок 10. Формирование позитивного оценочного сообщения
Возвращаемся к кнопкам и обращаемся к декоратору callback_query_handler. Создаем новую функцию callback_message для каждой кнопки. Для «Я уже выбрал задание» в ответ Telegram-бот будет писать сообщение «Супер! Напиши номер выбранного задания». Для «Хочу выполнить любое» переменной a будет передаваться случайное значение от 0 до 24, а пользователю отправляться задание, которое стоит под соответствующим номером в списке, и сообщение «Номер задания: (случайное число от 1 до 25). Готовое письмо можешь прислать мне, а я проверю». Для «Хочу выбрать по теме» будет выводиться сообщение «» и список тем в столбик с помощью метода .join(). Последняя строчка программы обеспечит непрерывное ее выполнение (см. Рисунок 11).
Рисунок 11. Создание функции для кнопок
Telegram-ботом можно воспользоваться по ссылке: http://t.me/CheckMyLetter_bot.
Создание сайта
Начинаем с создания и оформления главной страницы. Наверху будет находиться меню, которым мы займемся позже. Выбираем спокойный оттенок для фона, не очень яркий, но и не стандартный белый. Посередине прописываем заголовок «ЕГЭ по английскому языку 2024: Задание 37» и краткое описание содержания задания. Ниже будет находиться кнопка, которая будет вести напрямую к Telegram-боту и называться «Перейти к тренажеру» (см. Рисунок 12).
Рисунок 12. Оформление главной страницы
Переходим к следующему блоку. Это начало раздела «Формат», здесь мы прописываем, на что нужно обратить внимание в самом тексте задания (см. Рисунок 13).
Рисунок 13. Начало раздела «Формат»
Затем идут несколько практически одинаковых блоков по оформлению. Это подразделы «Из чего вообще должно состоять письмо?», «Что важно помнить?» и «Клише для письма».
После них идет самый большой раздел на сайте. Это темы для писем, то есть тексты заданий. Всего их будет размещено 25 штук. Рядом с заданием обозначаем номер и тему, под которой он известен в списке, который мы ранее использовали для Telegram-бота (см. пример оформления Рисунок 14).
Рисунок 14. Пример оформления заданий на сайте
Переходим к созданию меню. Так как сайт будет состоять из одной страницы, то нам следует использовать якорные ссылки. То есть, при нажатии на один из пунктов меню мы будем попадать не на другую страницу, а на определенный блок в той же самой странице.
Для публикации необходимо только выбрать домен из возможных свободных.
Таким образом, я создала сайт, доступный по ссылке: http://enletexam.tilda.ws/.
Экономическое и экологическое обоснование
Особенность данного проекта в том, что он не требует никаких затрат, кроме временных. Примерно на реализацию всего проекта у меня ушло около 100 часов. Он выполнен с помощью бесплатных программ и ресурсов, а еще совершенно безвреден для окружающей среды, так как все находится на электронных носителях. Так что дополнительный вред для природы продукты моего проекта не наносят.
Вид работы | Экономические затраты |
Поиск и анализ информации | 0 рублей, так как использовались открытые бесплатные источники |
Создание сайта | 0 рублей, так как для работы была выбрана платформа Tilda, а точнее, ее бесплатная версия |
Создание Telegram-бота | 0 рублей, так как он создавался с помощью бесплатных методов и инструментов |
Таблица 1. Экономический расчет
В ходе работы над проектом я изучила требования к формату письма на ЕГЭ, усовершенствовала свои навыки работы в конструкторе на платформе Tilda, написала программу на языке Python, позволяющую автоматически проверять письмо, загружаемое в нее и создала Telegram-бот. Оформила и опубликовала сайт, распространила его среди учителей английского языка и учеников 10-х и 11-х классов, которые выбрали этот предмет для сдачи на экзамене. Продукты оказались удобными в использовании, интересными и полезными. Я выполнила все задачи и достигла поставленной цели.
В дальнейшем я планирую продолжать создавать ресурсы для подготовки к экзаменам для таких же старшеклассников, как и я. На будущее я ставлю себе цели развиваться в создании Telegram-ботов и информационных сайтов.
Список литературыЕГЭ-2023 в цифрах: средний балл по разным предметам, стобалльники, двоечники и не только: [Электронный ресурс] // Мел. Медиа про образование и воспитание детей. URL: https://mel.fm/blog/mikhail-lantsman/69758-yege-2023-v-tsifrakh-sredny-ball-po-raznym-premetam-stoballniki-dvoyechniki-i-ne-tolko. (Дата обращения: 10.10.2023)
Рейтинг вузов и специальностей для поступления с английским языком: [Электронный ресурс] // В помощь студенту – Росдиплом. URL: https://blog.rosdiplom.ru/rd/pubdiplom/view.aspx?id=1156. (Дата обращения: 15.10.2023)
Громова, К. А. ЕГЭ-2024. Английский язык. Разделы "Письмо" и "Говорение" / К. А. Громова, С. А. Орлова, А. З. Манукова. – Москва: Эксмо, 2023. – 336 с. – ISBN 978-5-04-193669-3
Открытый банк заданий ЕГЭ | Английский язык: [Электронный ресурс] // Федеральный институт педагогических измерений. URL: https://ege.fipi.ru/bank/index.php?proj=4B53A6CB75B0B5E1427E596EB4931A2A. (Дата обращения: 02.11.2023)
Приложение 1. Программный код.
import telebot
from telebot import types
bot=telebot.TeleBot('6524037407:AAGmFN-L9_vVadrxWdVv6nG0Al1IcWQ-wt0')
theme_list=["1. teenagers' life, photo album",
"2. travelling, your friend's sister",
"3. zoos, your friend's dog",
"4. Internet, school trip",
"5. hobby, your friend's brother",
"6. ecoturism, youth camp",
"7. birthday, your friend's trip",
"8. weather, your friend's trip",
"9. online shopping, school exams",
"10. holidays, school exams",
"11. teenager's life, plans for holidays",
"12. healthy lifestyle, film",
"13. shopping, birthday",
"14. volunteer work, present",
"15. volunteer work, your friend's uncle",
"16. hobby, your friend's elder brother",
"17. souvenirs, translation",
"18. cold, your friend's cousin",
"19. children, changes in the room",
"20. cooking, book",
"21. reading, film",
"22. natural phenomena, basketball game",
"23. money and job, book",
"24. foreign languages, book",
"25. weather, book"]
import random
file_1 = open('./photo1.png', 'rb')
file_2 = open('./photo2.png', 'rb')
file_3 = open('./photo3.png', 'rb')
file_4 = open('./photo4.png', 'rb')
file_5 = open('./photo5.png', 'rb')
file_6 = open('./photo6.png', 'rb')
file_7 = open('./photo7.png', 'rb')
file_8 = open('./photo8.png', 'rb')
file_9 = open('./photo9.png', 'rb')
file_10 = open('./photo10.png', 'rb')
file_11 = open('./photo11.png', 'rb')
file_12 = open('./photo12.png', 'rb')
file_13 = open('./photo13.png', 'rb')
file_14 = open('./photo14.png', 'rb')
file_15 = open('./photo15.png', 'rb')
file_16 = open('./photo16.png', 'rb')
file_17 = open('./photo17.png', 'rb')
file_18 = open('./photo18.png', 'rb')
file_19 = open('./photo19.png', 'rb')
file_20 = open('./photo20.png', 'rb')
file_21 = open('./photo21.png', 'rb')
file_22 = open('./photo22.png', 'rb')
file_23 = open('./photo23.png', 'rb')
file_24 = open('./photo24.png', 'rb')
file_25 = open('./photo25.png', 'rb')
files = [file_1, file_2, file_3, file_4, file_5, file_6, file_7, file_8, file_9, file_10, file_11, file_12, file_13, file_14, file_15, file_16, file_17, file_18, file_19, file_20, file_21, file_22, file_23, file_24, file_25]
numbers=[]
for i in range (1,26):
numbers.append(str(i))
@bot.message_handler()
def main(message):
if message.text.lower()=='/start':
bot.send_message(message.chat.id, f'Привет! Здесь ты можешь потренироваться в написании письма в формате ЕГЭ по английскому языку. Чтобы узнать о правилах оформления, переходи на сайт http://enletexam.tilda.ws/. Уже готов приступить к испытанию? Тогда нажимай /ready')
elif message.text.lower()=='/ready':
markup=types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('Я уже выбрал задание', callback_data='already_chosen'))
markup.add(types.InlineKeyboardButton('Хочу выполнить любое', callback_data='random_choice'))
markup.add(types.InlineKeyboardButton('Хочу выбрать по теме', callback_data='theme_choice'))
bot.send_message(message.chat.id,f'Отлично! Во вкладке "Темы" ты можешь выбрать любое задание.', reply_markup=markup)
else:
for i in range(1,26):
if message.text.lower() == str(i):
bot.send_photo(message.chat.id, files[i-1])
bot.send_message(message.chat.id, f'Готовое письмо можешь прислать мне, а я проверю')
if not message.text.lower() in numbers:
reply = 'Оценка ответа: '
words = len(message.text.split())
if words < 100:
reply = reply + '\n' + f'Недостаточно слов ({words})'
elif words > 140:
reply = reply + '\n' + f'Количество слов ({words}) превышает максимальный лимит'
k = 0
for i in message.text:
if i == '?':
k += 1
if k < 3:
reply = reply + '\n' + f'Задано меньше трех вопросов'
if k > 3:
reply = reply + '\n' + f'Задано больше трех вопросов'
if words >= 100 and words <= 140 and k==3:
reply = reply + '\n' + f'Молодец! Можешь переходить к следующему заданию. /ready'
bot.send_message(message.chat.id, f'{reply}')
@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
if callback.data=='already_chosen':
bot.send_message(callback.message.chat.id, f'Супер! Напиши номер выбранного задания')
elif callback.data=='random_choice':
a=random.randint(0,len(files))
bot.send_photo(callback.message.chat.id, files[a])
bot.send_message(callback.message.chat.id, f'Номер задания: {a}. Готовое письмо можешь прислать мне, а я проверю')
elif callback.data=='theme_choice':
bot.send_message(callback.message.chat.id, f'Выбери тему из списка ниже и отправь соответствующий номер')
bot.send_message(callback.message.chat.id, '\n'.join(theme_list))
bot.polling(none_stop=True)