Научный журнал
Научное обозрение. Технические науки
ISSN 2500-0799
ПИ №ФС77-57440

ПРИМЕНЕНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ С++ ДЛЯ РАЗРАБОТКИ ЭЛЕКТРОННЫХ ОБРАЗОВАТЕЛЬНЫХ РЕСУРСОВ ПО МАТЕМАТИКЕ

Ведерников Н.А. 1 Бужинская Н.В. 1
1 Нижнетагильский государственный социально-педагогический институт филиал ФГАОУ ВО «Российский государственный профессионально-педагогический университет»
Программирование является достаточно сложным для усвоения. Кроме того, часть учащихся не заинтересована в его изучении, несмотря на то, что задания по программированию включены в Единый государственный экзамен. Следовательно, учителю информатики необходимо найти методы для развития интереса учащихся к решению задач по программированию. Одним из способов реализации данной цели является демонстрация возможностей программных продуктов, разработанных с помощью языков программирования. Возможности языков программирования позволяют создавать электронные образовательные ресурсы соответственно методическим целям. В статье рассматривается вопрос разработки виртуальной лаборатории по математике с помощью высокоуровневого языка программирования С++. Область применения C++ позволяет создавать на нем драйверы, операционные системы, прикладные программы. Представленный в статье ресурс предназначен для построения графиков математических функций в зависимости от задаваемых параметров. Кроме того, ресурс позволяет увеличивать область построения графика для его более детального изучения и сохранить эту область в отдельном файле. Интерфейс виртуальной лаборатории был разработан в программе QT Designer. Его можно использовать для проведения уроков, как по математике, так и по информатике.
электронный образовательный ресурс
С++
математическая лаборатория
график функции
код
интерфейс
1. Бужинская Н.В. Игровые методы в подготовке IT-специалистов // Наука и перспективы. 2018. № 1. С. 8–14.
2. Андрианова А.А. Алгоритмизация и программирование. Практикум: учеб. пособие. СПб: Лань, 2019. 240 с.
3. Рудаков A.В. Технология разработки программных продуктов: учебное пособие для студентов среднего профессионального образования. М.: Издательский центр «Академия», 2007. 208 c.
4. Шлее М.Ш. Qt 5.10. Профессиональное программирование на C++. СПб.: БХВ-Петербург, 2018. 1072 с.
5. Qt Designer Manual [Электронный ресурс]. URL: https://doc.qt.io/qt-5/qtdesigner-manual.html (дата обращения: 10.04.2019).

В настоящее время развитие информационно-коммуникационных технологий приводит к изменению роли учителя. Учащиеся получают большой объем информации из интернета, а учитель должен научить их методам и способам обработки, структурирования и анализа данных. Организация урока с помощью современных программных и/или технических средств всегда вызывает повышенный интерес обучаемых. В данной статье мы рассмотрим особенности разработки электронных образовательных ресурсов.

Под электронными образовательными ресурсами (ЭОР) понимаются документы, которые представлены в электронной форме и служат для реализации целей учебного процесса [1]. Электронные образовательные ресурсы являются важнейшим компонентом цифрового образовательного пространства.

Выделяются различные классификации электронных образовательных ресурсов. Они могут быть разделены по целевому назначению (для учителя, учащихся, родителей), по типу решаемых задач (для контроля знаний, объяснения нового материала, организации досуга), по тематике, индивидуальным характеристикам обучаемых, по характеру предоставления информации и т.д. При этом интернет предоставляет свободный доступ к большому количеству электронных образовательных ресурсов, разработанных другими педагогами. В этом случае задачей учителя является грамотный отбор таких электронных образовательных ресурсов и их адаптация под собственную методику. Кроме того, при использовании готовых ЭОР следует помнить об авторских правах разработчика.

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

Кроме того, решение многих задач по программированию предполагает наличие минимально необходимой суммы математических знаний и умений. На протяжении долгого времени между специалистами it-сферы ведется спор, какую роль математика играет в программировании. В настоящее время ответ может быть однозначным. Развитие искусственного интеллекта, изучение нейронных сетей, разработка криптографических методов свидетельствует о том, что знания математики необходимы для анализа информации, прогнозирования и решения задач. Поэтому возникает необходимость показать учащимся важность математики в программировании [2].

Материалы и методы исследования

Для решения данной задачи нами был разработан электронный образовательный ресурс по математике «Математическая лаборатория».

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

Таблица 1

Этапы разработки проекта

п/п

Этап реализации

Начальная дата

Конечная дата

Продолжительность этапа

1

Определение требований к программному продукту

20.10.2018

28.10.2018

8

2

Анализ результатов опросов

22.10.2018

23.10.2018

1

3

Определение функционала программного продукта

24.10.2018

30.10.2018

6

4

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

31.10.2018

05.11.2018

5

5

Изучение средств разработки программного продукта

25.10.2018

10.11.2018

16

6

Проектирование пользовательского интерфейса

25.10.2018

27.10.2018

2

7

Разработка программного продукта

27.10.2018

25.11.2018

29

8

Тестирование программного продукта

27.10.2018

05.11.2018

9

9

Анализ результатов тестирования

05.11.2018

10.11.2018

5

10

Внедрение программного продукта в деятельность ОУ

25.10.2018

10.11.2018

16

11

Анализ результатов применения программного продукта

28.11.2018

29.11.2018

1

К основным рискам, которые могли повлиять на сроки реализации и качество проекта, можно отнести:

– дополнительные затраты времени на повышение уровня знаний в области математики;

– трудности с разработкой лаборатории на языке С++;

– необходимость учета индивидуальных особенностей учащихся 9–11 классов при разработке ресурса.

Для определения функционала данного ресурса был проведен опрос учащихся 9-го класса МОУ СОШ № 80 г. Нижнего Тагила. Им был задан вопрос: «Какая из тем математики вызывает у вас наибольшие затруднения?». Ответы респондентов представлены на рис. 1.

vedr1.tif

Рис. 1. Результаты опроса учащихся

vedr2.tif

Рис. 2. Диаграмма прецедентов, отражающая требования к лаборатории

Как показывают результаты опроса, наибольшие затруднения у учащихся вызывают темы «Числовые функции» и «Элементы теории тригонометрических функций». Таким образом, было принято решение разработать электронный образовательный ресурс, который позволяет работать с графиками тригонометрических функций – строить их в зависимости от задаваемых параметров, изменять интервал, устанавливать цвет и толщину линий. Разработка подобного ресурса позволит решить две важнейшие задачи:

– продемонстрировать возможности программирования для реализации проектов;

– показать работу с графиками функции.

Для более детального определения функционала данного продукта была построена диаграмма прецедентов, представленная на рис. 2.

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

Для разработки лаборатории использовался язык программирования С++. Выбор данного языка объясняется возможностью использовать объектно-ориентированный подход, писать обобщенный код с помощью шаблонов, достаточно простой обработки ошибок за счет исключений.

Визуальная составляющая была разработана в программе QtDesigner – инструменте для проектирования и создания графических пользовательских интерфейсов (GUI) из компонентов Qt [3–5].

Рассмотрим принцип работы лаборатории.

Чтобы начертить график, необходимо задать параметры начального и конечного значений плоскости, на которой будет начертан сам график. После нужно выбрать функцию, которую нужно начертить, и нажать на кнопку «Нарисовать». На рис. 3 представлен интерфейс приложения, в листингах 1, 2 – программная реализация.

vedr3.tif

Рис. 3. Интерфейс виртуальной лаборатории

При нажатии кнопки «Нарисовать» в функции MainWindow::on_draw_clicked() срабатывает несколько инкапсулированных функций, необходимых для работы лаборатории.

1. Функция void MainWindow::getData(); // собирает всю информацию, которая была введена пользователем.

Листинг 1

leftX = ui->inputLeftX->text().toDouble();

leftX_af = ui->inputLeftX->text().toDouble();

rightX = ui->inputRightX->text().toDouble();

rightX_af = ui->inputRightX->text().toDouble();

leftY = ui->inputLeftY->text().toDouble();

leftY_af = ui->inputLeftY->text().toDouble();

rightY = ui->inputRightY->text().toDouble();

rightY_af = ui->inputRightY->text().toDouble();

step = 1.0/ui→inputAccuracy→text().toDouble();

2. Функция void MainWindow::recountPixels(); // определяет размер одного пикселя внутри программы.

Листинг 2

onePixelX = 540.0/(rightX – leftX);

onePixelY = 370.0/(rightY – leftY);

Ox = fabs(leftX); Oy = rightY;

onePixelX_af = 540/(rightX_af – leftX_af);

onePixelY_af = 370/(rightY_af – leftY_af);

Ox_af = fabs(leftX_af); Oy_af = rightY_af;

3. Функция void MainWindow::drawGraph(); // непосредственно рисует сам график по тем данным, которые ранее определили предыдущие вызванные функции.

Кроме того, программа позволяет строить сразу несколько графиков функций (рис. 4).

При нажатии кнопки «Нарисовать» в функции MainWindow::on_draw_clicked() срабатывает несколько инкапсулированных функций:

- void MainWindow::getData(); // собирает всю информацию, которая была введена пользователем;

- void MainWindow::recountPixels(); // определяет размер одного пикселя внутри программы;

- void MainWindow::drawGraph(); // непосредственно рисует сам график по тем данным, которые ранее определили предыдущие вызванные функции.

При нажатии кнопки «Очистить» срабатывает метод void MainWindow::on_clear_clicked(). Данный метод вызывает в себе внутренние функции:

- void MainWindow::clearData(); // обнуляет все переменные

- void MainWindow::drawGraph(false); // с данным параметром метод не будет рисовать графики, а оставит только координатную плоскость.

vedr4.tif

Рис. 4. Построение нескольких графиков функций

Кнопка «Сохранить картинку» сохраняет изображение графика в заранее установленном месте. Классы QTime и QDate хранят в себе время и дату в реальном времени соответственно. QString::number() конвертирует числовые значения в строковые. Когда объект времени методом void QTime::hour() возвращает значение часа в числовом типе данных, то данный строковый метод превращает его в строку. Эту строку можно конкатенировать с общей строкой, которая затем присваивается объекту типа QMessageBox. Если же значение времени не двухзначное, то перед ним ещё добавляется «0». Реализация представлена в листинге 4.

Листинг 4

void MainWindow::on_save_clicked()

{

QTime time = QTime::currentTime();

QDate date = QDate::currentDate();

QString name;

if(date.day()<10)

name += "0";

name += QString::number(date.day())+".";

if(date.month()<10)

name += "0";

name += QString::number(date.month())+".";

name += QString::number(date.year())+"_";

if(time.hour()<10)

name += "0";

name += QString::number(time.hour())+"-";

if(time.minute()<10)

name += "0";

name += QString::number(time.minute())+"-";

if(time.second()<10)

name += "0";

name += QString::number(time.second());

QFile file(name+".png");

qDebug() << name;

file.open(QIODevice::WriteOnly);

QMessageBox msgBox;

msgBox.setStandardButtons(QMessageBox::Ok);

if(ui->outputGraph->pixmap()->save(&file,"PNG")) {

msgBox.setText(«Saved to program folder with name: "+name+".png");

msgBox.setWindowTitle("Saved!");

}

else {

msgBox.setText(«Error saving.");

msgBox.setWindowTitle("Error!");

} msgBox.exec();}

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

Результаты исследования и их обсуждение

Разработанный программный ресурс позволяет решать две важнейшие задачи. Во-первых, он может использоваться на уроках математики для объяснения нового материала по теме «Графики математических функций», а во-вторых – для ознакомления с возможностями языка программирования С++.

Язык С++ может использоваться не только для начального изучения основ программирования, но и для разработки программных продуктов. Однако для разработки графического интерфейса необходимо использовать дополнительные средства. В нашем случае разработка осуществлялась с помощью программы QtDesigner. Это достаточно сложный и трудоемкий процесс, который может занять больше времени, чем разработка продуктов с помощью компонентов Microsoft Visual Studio. Разработанная виртуальная лаборатория по математике имеет достаточно большой вес. Кроме того, при тестировании работы программы на ОС Windows 10 были выявлены проблемы совместимости.

Отметим, что возможности виртуальной лаборатории были продемонстрированы учащимся 8-го класса во время объяснения материала по теме «Основные алгоритмические конструкции». Учащиеся интересовались возможностями языка программирования С++ и историей его создания, местом С++ в рейтинге языков программирования, достоинствами и недостатками С++ по сравнению с С#. Отдельному обсуждению был посвящен вопрос о выборе языка программирования для решения задач на Едином государственном экзамене.

В дальнейшем планируется добавить в данный ресурс вкладку «Исследование функции» и протестировать его во время проведения интегрированного урока по математике и информатике в 10 классе.

Выводы

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


Библиографическая ссылка

Ведерников Н.А., Бужинская Н.В. ПРИМЕНЕНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ С++ ДЛЯ РАЗРАБОТКИ ЭЛЕКТРОННЫХ ОБРАЗОВАТЕЛЬНЫХ РЕСУРСОВ ПО МАТЕМАТИКЕ // Научное обозрение. Технические науки. – 2019. – № 3. – С. 15-20;
URL: https://science-engineering.ru/ru/article/view?id=1244 (дата обращения: 22.05.2022).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074