Тренажёр по подготовке к двадцатому заданию из ОГЭ по математике

XXIV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Тренажёр по подготовке к двадцатому заданию из ОГЭ по математике

Подолинский В.Е. 1
1МАОУ "СОШ № 11" НГО
Волвенкина Е.Н. 1
1МАОУ "СОШ № 11" НГО
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
     

Введение

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

Несмотря на то, что многие учителя математики уделяют особое внимание изучению двадцатого задания из ОГЭ на и вне уроков, ученики до сих пор не решают его, а вследствие этого они не решают и последующие задания второй части, так как оно является первым из второй части.

На основании изложенного была сформулирована цель работы – создать удобный тренажёр по двадцатому заданию из ОГЭ по математике, включающий в себя поиск конкретных типов заданий, генерация множества типовых задач, возможность проверки ответов задач, эталонное решение задачи, работающий на основеtelegram-бота, помогающий школьникам понять, как решать типовые задачи из двадцатого задания ОГЭ по математике.

Для достижения цели были поставлены следующие задачи:

  1. Рассмотреть различные типы двадцатых заданий из ОГЭ по математике.

  2. Выяснить, как девятиклассникам удобнее всего готовиться к ОГЭ, какие платформы они для этого используют.

  3. Написать код на языке программирования Python, реализующий функцию тренажёра по двадцатому заданию из ОГЭ по математике.

  4. Интегрировать созданный тренажёр на подходящую платформу (telegram).

  5. Провести тестирование среди девятиклассников и опросить их мнение насчет продукта.

Глава 1. Теоретическая часть

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

1.1 Типы двадцатых заданий из ОГЭ по математике

Для того чтобы узнать все существующие типы двадцатых заданий из ОГЭ по математике, воспользуемся ресурсами сети-Интернет.

Для начала воспользуемся официальным ресурсом – сайтом федерального института педагогических измерений (ФИПИ) [1]. Вот выражение из примера двадцатого задания из демоверсии две тысячи двадцать пятого года:

И вот еще несколько выражений из демоверсий прошлых лет:

Далее воспользуемся другим источником информации – сайтом «Сдам ГИА» [2]. Вот некоторые выражения из примеров двадцатых задач из ОГЭ по математике от этого сайта:

Также там представлен список типов двадцатых задач из ОГЭ по математике:

  • Алгебраические выражения,

  • Уравнения,

  • Неравенства,

  • Системы уравнений,

  • Системы неравенств.

Воспользуемся ещё одним, последним источником – сайтом «egeπ» [3]. Здесь представлено множество вариантов задач из ОГЭ по математике:

1.2 Ресурсы, используемые девятиклассниками для подготовки к ОГЭ

Выясним, как девятиклассникам удобнее всего готовиться к ОГЭ по математике и на каких платформах, используя ресурсы сети-Интернет и спрашивая учителей по математике МАОУ «СОШ № 11» и МАОУ «СОШ № 24» Находкинского городского округа.

Для начала обратимся к ресурсам сети-Интернет, чтобы ответить на поставленный вопрос.

Одна из первых страниц – сайт «Мультиурок», статья «Анализ работы по подготовке учащихся 9 классов к ОГЭ по математике». Здесь учитель математики рассказывает свой опыт в улучшении успеваемости класса для его подготовки к экзамену, ОГЭ по математике. Она провела следующие мероприятия и улучшения: проведение диагностики всех учащихся и разделение их на группы по успеваемости, из этой диагностики выведение наиболее трудных задания для учащихся, организация дополнительных внеклассных занятий по математике по субботам, проведение дополнительных занятий для более успевающих учеников, систематическая отсылка пробников по ОГЭ всем учащимся, подготовка стенда «Готовимся к ОГЭ» и так далее.

Далее обратимся к учителям математики для того, чтобы узнать их опыт подготовки учащихся к экзаменам, в частности ОГЭ.

Шукалюк Оксана Ивановна, учитель математики МАОУ «СОШ № 24», рассказала, как она и её коллеги по школе готовят учащихся к ОГЭ по математике.

У них еженедельно проводятся очные консультации для девятых и одиннадцатых классов для подготовки к экзаменам (ОГЭ и ЕГЭ) по математике.

Также они используют некоторые электронные ресурсы для самопроверки и диагностики знаний: сайт «Сдам ГИА», сайт «ФИПИ» и в этом году они также внедряют в программу сайт «Гиперматика».

Бачинская Елена Евгеньевна, учитель математики МАОУ «СОШ № 11», поделилась своим и опытом своих коллег в подготовке школьников к ОГЭ по математике.

Они начинают подготовку к экзаменам ещё в седьмом классе: на уроках проводится небольшой интерактив на 5-10 минут, посвящённый темам из ОГЭ по математике; а также домашнее задание направленно именно на подготовку к экзаменам.

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

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

Они используют следующие электронные ресурсы для диагностики подготовки к экзамену: сайт «ФИПИ», сайт «ЯКласс», сайт «Учи.ру», также они в этом году начинают использовать ресурсы платформы «Профиматика».

Глава 2. Практическая часть

2.1 Написание кода, реализующего функцию тренажёра

Чтобы создать бота с задуманным функционалом, мне нужно сначала создать саму программу, которая сможет выполнять следующие функции:

  1. генерировать параметры задачи;

  2. по общей формуле через данные параметры находить решение задачи;

  3. писать саму задачу (уравнение, неравенство, система);

  4. генерировать решение данной задачи по общему шаблону к типу задач;

  5. выводить всё вышеперечисленное в вывод.

  1. Для начала необходимо определиться с первым типом задач, который будет выводить моя программа. Я решил выбрать квадратные уравнения нетипичного вида, а именно такое, где вместо переменной стоит выражение , где - произвольное число. Это связано с тем, что общую формулу корней для такого уравнения найти совсем несложно, так как в школе изучается обобщённый метод решения квадратных уравнений через формулу дискриминанта; решение для такого рода задач в общем виде написать достаточно просто; данный тип задач является очень распространённым на ОГЭ.

    1. Общий вид данного уравнения имеет вид:

Для нахождения общей формулы корней стандартного квадратного уравнения, для которой нам потребуется формула дискриминанта:

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

Используя формулу дискриминанта, получаем, что корни и будут равны:

Так как мы условились, что - целое число, а именно положительное или нуль, то будет удобнее обозначить (в коде буду использовать обозначение ). Тогда получаем:

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

Было ранее оговорено, что знаменатели дробей должны делиться только на степени 2 и/или 5, поэтому . Для последующего удобства, будем считать, что корни у нас небольшие,то есть их модули не превосходят достаточно большого числа (например, 100). Также будем считать, что количество знаков после запятой не превосходит 5, чтобы дальнейший ученик, решая задачу, не испытывал трудности с вычислением знаков после запятой. Эти утверждения имеют место быть, так как в вариантах ОГЭ это зачастую именно так.

    1. Из всего вышеперечисленного делаем вывод, что у числа есть множество ограничений, поэтому в коде будем выбирать случайное число из имеющихся:

Здесь и далее используется библиотека random.

Так как число , то также выберем его из небольшого диапазона:

Чтобы наше уравнение имело свой вид, нужно, чтобы , поэтому выбираем его вот так:

Здесь и далее не учитываются отступы кода от левой границы.

Заметим, что мы уже можем выразить число через имеющиеся коэффициенты:

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

Из всех вышеперечисленных параметров находим корни:

Далее мы пишем само уравнение для вывода в python’е и записываем его под переменной equ, учитывая, что и иногда может равняться .

Затем, пишем решение для вывода в python’е и записываем его под переменной solv. Решение привожу аналогичное вышеназванному, однако делая некоторое изменение: заменяю , так как большинству школьников удобнее воспринимать решение квадратных уравнений именно относительно переменной, а не выражения с ним; в остальном решение аналогично.

Для просмотра кодов к написанию уравнения и решения смотрите приложение 2.

    1. Интеграция написанного кода в бот

Сначала создадим бота в телеграме. Это делается при помощи другого бота – BotFather.

Находим его и следуем его инструкции: пишем команду /newbot, выбираем имя бота, я выбрал «Математика ОГЭ № 20», выбираем уникальное пользовательское имя для него, у меня - @maths_oge_20_bot, - и бот создан. QR-код для перехода к боту смотрите в приложении 1.

Далее выбираем фото профиля бота. Это необязательный пункт, однако для красоты бота следует это сделать. Для этого воспользуемся нейросетью для создания различных картинок – Midjourney. Вот запрос, который я ей отправил: «Создай картинку 1x1 в математическом стиле, чтобы она была умеренной, в синих тонах на белом фоне, используй обозначение книги, числа, формулы 4К». Сгенерированные картинки смотрите в приложении 3.

Из всех библиотек по редактированию ботов в телеграме нам подходит telebot. Это связано с тем, что она самая простая и удобная в написании программы.

Сначала пишем код для обозначения работы с нашим ботом:

Токен скрыт, так как раскрывать его – нарушение информационной безопасности. Вместо него изображены три точки.

Далее сделаем так, чтобы он реагировал и отвечал на команды /help и /start. Для этого напишем в коде:

@bot.message_handler(commands=['help', 'start'])

def send_st(message):

markup = types.ReplyKeyboardMarkup(resize_keyboard=True)

btn1 = types.KeyboardButton("Сгенерироватьуравнение")

markup.add(btn1)

bot.send_message(message.chat.id, text="Привет, {0.first_name}! Я бот для подготовки к двадцатому заданию из ОГЭ по математике.".format(message.from_user), reply_markup=markup)

Здесь мы создали кнопки, которые размещены под клавиатурой, поэтому нам нужно также сделать, чтобы бот отвечал на нажатие кнопки:

@bot.message_handler()

def mess(message):

if message.text in 'Сгенерироватьуравнение':

d = []

d = ready(0)

if d == []: bot.send_message(message.chat.id, 'Что-топошлонетак...')

else: bot.send_message(message.chat.id, d[0] + '\n' + "<tg-spoiler>{}</tg-spoiler>".format(d[1]) + '\n' + "<tg-spoiler>Ответ:{}</tg-spoiler>".format(str(d[2][0]) + ' ' + str(d[2][1])), parse_mode="HTML")

else:

bot.send_message(message.chat.id, 'Чтобысгенерироватьуравнение, напишите /start инажмитенакнопкувнизу.')

markup = types.ReplyKeyboardMarkup(resize_keyboard=True)

btn1 = types.KeyboardButton("Сгенерироватьуравнение")

markup.add(btn1)

Ранее уже использовалась команда ready(n). Она выполняет функции кода, созданного до этого, который генерирует уравнение, решает его и даёт ответ на него. Она выдает список из трёх элементов: ранее названные переменные equ и solv, а также решения уравнения в порядке возрастания, - их мы выводим через нажатие на кнопку, скрывая при этом решение и ответ (в телеграме есть специальный формат - спойлер).

Чтобы посмотреть на функционал бота, смотрите приложение 4.

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

2.3 Тестирование работы

Для тестирования бота были приглашены 15 девятиклассников, 4 десятиклассника и учитель математики.

Большинству (90%, 18 из 20 тестировщиков) бот понравился, однако были выявлены некоторые недостатки, такие как: пропадание кнопки генерации уравнения на мобильных девайсах, что связано с печатанием текста вручную на клавиатуре (это особенность телеграма и таких кнопок), сложность с нахождением этой кнопки на стационарных устройствах, так как нужно было нажать на специальный символ возле клавиатуры, ограниченность работы бота, о чём говорилось ранее.

Другим (10%, 2 из 20 тестировщиков) не понравилось в боте вышеперечисленные пункты, но в большей степени, чем некоторым из большинства.

Заключение

Была поставлена цель – создать удобный тренажёр по двадцатому заданию из ОГЭ по математике. Она была успешно выполнена: был создан телеграм бот, помогающий девятиклассникам готовиться к двадцатому заданию из ОГЭ по математике.

Были составлены некоторые задачи для достижения цели, а именно: рассмотреть типы таких задач, как девятиклассники готовятся к нему, написать код, являющийся тренажёром по подготовке учеников к данной задаче, провести тестирование этой программы. В ходе их выполнения я узнал, какие варианты двадцатых заданий из ОГЭ по математике существуют, какие способы есть для подготовки к этому заданию и ОГЭ в целом, написал программу на языке программирования Python и интегрировал её в телеграм бота, получил отзывы о своём продукте.

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

Существуют несколько направлений в дальнейшем развитии бота: добавление больших типов двадцатых заданий из ОГЭ по математике, добавление других задач из ОГЭ или ЕГЭ по математике или физике, - поэтому мой проект перспективен с точки зрения развития в будущем.

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

Список использованныхисточников:

  1. Федеральная служба по надзору в сфере образования и науки [Электронный ресурс]. - Режим доступа: https://fipi.ru/. - Дата доступа: 25.12.2024.

  2. Сдам ГИА: Решу ВПР, ОГЭ, ЕГЭ, ГВЭ, ЦТ, ЕНТ [Электронный ресурс]. - Режим доступа: https://sdamgia.ru/. - Дата доступа: 25.12.2024.

  3. Ege π 3,14 [Электронный ресурс]. - Режим доступа: https://ege314.ru. - Дата доступа: 25.12.2024.

Приложение 1

Открытие бота в телеграме

Рис. 1. QR-код для доступа к боту

Приложение 2

Некоторые коды исходной программы

equ += 'Решите уравнение:' + '\n'

if a == -1: equ += '-'

elif a != 1: equ += str(a)

equ += '(x'

if r < 0: equ += '+' + str(-r)

else: equ += '-' + str(r)

equ += u')\u00b2'

if b == -1: equ += '-'

elif b == 1: equ += '+'

elif b < 0: equ += str(b)

else: equ += '+' + str(b)

equ += '(x'

if r < 0: equ += '+' + str(-r)

else: equ += '-' + str(r)

equ += ')'

if c == 0: equ += ''

elif c < 0: equ += str(c)

else: equ += '+' + str(c)

equ += '=0'

Код 1. Создание переменной equ

solv += 'Сделаем замену: ' + '(x'

if r < 0: solv += '+' + str(-r)

else: solv += '-' + str(r)

solv += ')=t' + '\n'

solv += 'Тогда изначальное уравнение примет вид:' + '\n'

if a == -1: solv += '-'

elif a != 1: solv += str(a)

solv += u't\u00b2'

if b == -1: solv += '-'

elif b == 1: solv += '+'

elif b < 0: solv += str(b)

else: solv += '+' + str(b)

solv += 't'

if c == 0: solv += ''

elif c < 0: solv += str(c)

else: solv += '+' + str(c)

solv += '=0'

solv += '\n'

solv += 'Высчитаем дискриминант полученного квадратного уравнения:' + '\n'

solv += 'D='

if b < 0: solv += '(' + str(b) + ')'

else: solv += str(b)

solv += u'\u00b2'

if a * c > 0: solv += '-'

else: solv += '+'

solv += u'4\u22c5' + str(abs(a)) + u'\u22c5' + str(abs(c)) + '=' + str(d**2)

solv += '\n'

if d > 0:

solv += u'Так как D>0, высчитаем корни t\u2081 и t\u2082:' + '\n'

solv += u't\u2081=' + '(' + str(-b) + '+' + str(d) + ')/' + '(' + u'2\u22c5'

if a < 0: solv += '(' + str(a) + ')'

else: solv += str(a)

solv += ')=' + str(opti(less0, x1 - r)) + '\n'

solv += u't\u2082=' + '(' + str(-b) + '-' + str(d) + ')/' + '(' + u'2\u22c5'

if a < 0: solv += '(' + str(a) + ')'

else: solv += str(a)

solv += ')=' + str(opti(less0, x2 - r)) + '\n'

solv += 'Обратная замена:' + '\n'

solv += u'x\u2081'

if r < 0: solv += '+' + str(-r)

else: solv += '-' + str(r)

solv += '=' + str(opti(less0, x1 - r)) + '\n'

solv += u'x\u2082'

if r < 0: solv += '+' + str(-r)

else: solv += '-' + str(r)

solv += '=' + str(opti(less0, x2 - r)) + '\n'

solv += u'x\u2081' + '=' + str(x1) + '\n'

solv += u'x\u2082' + '=' + str(x2)

else:

solv += u'Так как D=0, высчитаем корень t\u2080:' + '\n'

solv += u't\u2080=' + str(-b) + '/' + '(' + u'2\u22c5'

if a < 0: solv += '(' + str(a) + ')'

else: solv += str(a)

solv += ')=' + str(opti(less0, x1 - r)) + '\n'

solv += 'Обратная замена:' + '\n'

solv += u'x\u2080'

if r < 0: solv += '+' + str(-r)

else: solv += '-' + str(r)

solv += '=' + str(opti(less0, x1 - r)) + '\n'

solv += u'x\u2080' + '=' + str(x1)

Код 2. Создание переменной solv

Приложение 3

Картинки нейросети

Рис. 2. Созданные нейросетью картинки

Приложение 4

Функционал бота

Рис. 4. Уравнение бота: до и после нажатия

     
Просмотров работы: 32