Full text
Введение В Указе президента РФ [1] была озвучена необходимость обеспечения безопасности и технологической независимости информационной структуры РФ. После чего госкомпании и бюджетные учреждения стали активно переводить свои структуры на отечественные программные продукты. В связи с этими процессами актуальным становится обучение будущих инженеров и ИТ-специалистов, базирующееся на отечественных программных разработках. Как следствие, возникает необходимость в разработке и изменении подходов для организации лабораторных работ, в том числе и по фундаментальным математическим дисциплинам, связанным с изучением методов для решения прикладных математических задач. С этой целью в КГПИ КемГУ лабораторные работы по дисциплине «Численные методы» для направления подготовки 01.03.02 Прикладная математика и информатика проводятся с использованием среды функционально-объектного программирования «Алгозит», разработанной Калединым Валерием Олеговичем совместно с коллегами из лаборатории математического моделирования КГПИ КемГУ [2]. Однако, в связи с отсутствием учебной литературы по применению данного программного продукта в учебном процессе необходима разработка методического обеспечения для организации лабораторного практикума с использованием нового программного обеспечения. В представленной статье излагается подход к организации лабораторных работ по «Численным методам». Обзор отечественной и зарубежной литературы Дисциплина «Численные методы» является одной из базовых дисциплин математического модуля в образовании бакалавра в области математических, инженерных и IT- направлений. Численные методы применяются в различных областях науки для решения прикладных задач, в связи с чем эта дисциплина преподается студентам разных направлений подготовки. Однако, различаются подходы к её преподаванию и определению роли в контексте выбранного направления подготовки. В статье [3] Богоявленская О. Ю. говорит о необходимости рассматривать эту дисциплину как основу для робототехники, механики, интернета вещей, машинного обучения и многих других аспектов информатики, механики и т.п. Особое внимание предлагается уделить следующим разделам: «Теория погрешности», «Итерационные методы» и «Сложность реализации». Беликов В.В. утверждает, что основной целью дисциплины является развитие у студентов навыков алгоритмизации и программной реализации численных методов, определение понимания широты областей применения численных методов [4]. Автор дает свое видение состава разделов дисциплины в рабочей программе, в который входят три целевых модуля и модуль научного подхода. Авторы Сара Билал, Абди Омар Шурие, Райхан Осман предлагают применение методики работы в малых группах для более углубленного изучения материала студентами и увеличения их вовлеченности в процесс [5]. Подгруппа самостоятельно изучает часть основной темы углубленно, затем доносит полученные знания до остальных студентов академической группы. Такой подход, по мнению авторов, показывает себя очень эффективно. Дэниел Р. Левин и Эбигейл Барзилай в статье [6] описывают другую вариацию преподавания численных методов. Авторы предлагают вариант перевернутого обучения. В противовес стандартной методике – сначала лекция, затем практика, потом самостоятельная работа, авторами предлагается начать с самостоятельного изучения студентами материала по предложенной теме, затем провести очную встречу с преподавателем, получить ответы на возникшие вопросы, и только после этого практическое занятие с применением знаний, полученных самостоятельно. Результатом педагогического эксперимента стала значительная вовлеченность интересующихся студентов в учебный процесс и увеличение их успеваемости. Авторы Дорофеева В.И., Музалевская А.А. и Дорофеев Д.Ю. описывают модификацию рабочей программы дисциплины «Численные методы» с учетом современных тенденций [7]. Модификация будет затрагивать не только применяемые средства обучения и программные средства, но и решаемые задачи, которые будут направлены на применение современных методов для прикладных задач и разработки проектов в области ИИ технологий. Предполагается также внести изменения, связанные с внедрением в дисциплину «Численные методы» алгоритмов машинного обучения. Мэтью Р Хейни, Хизер Э Диллон и Якоб Котас предлагают добавить в курс численных методов специализированные лабораторные модули, включающие различные подходы к передачи знаний, основывающиеся не только на проведении численных расчетов, но и на наглядном сравнении расчетных данных с реальными, экспериментальными и другими данными [8]. В работе Клунниковой М.М. [9] предлагается дифференцированный подход к студентам с различными уровнями базовых знаний в части изучения дисциплины «Численные методы». Также делается упор на разделение студентов по направлению обучения и требуемым в этом направлении знаниям в области численных методов. В качестве основного способа подачи информации предлагается использовать наглядные средства, такие как ментальные карты численных расчетных схем. Большое число авторов считают, что изучение дисциплины «Численные методы» невозможно без применения программных средств. Шевченко А. С. в работе [10] аргументированно доказывает, что применение современных программных средств (Mathcad Prime, Maple) положительно влияет на эффективность обучения дисциплине «Численные методы» и помогает студентам лучше понимать алгоритмы решения задач. Показано, что программные пакеты, позволяющие собирать алгоритмы из структурных модулей, хорошо подходят для внедрения в курс «Численные методы». В работе Анисимова К.Г., Шевченко А.С., Анисимовой Е. А. и Рязановой О. В. [11] представлены результаты педагогического эксперимента, подтверждающие, что применение специализированных программных средств позволяет легко усваивать достаточно непростой материал. Также указывается, что применение современной системы дистанционного обучения Moodle позволяет студентам получать материал и выполнять задания в удобное для них время. Корнилов В. С. и Беликов В.В. в статье [12] говорят о необходимости следовать за современными тенденциями в области преподавания классических вузовских дисциплин и включении в курс «Численные методы» работу в таких программных пакетах как MathCad, Maple, Mathematica и др. Внедрение программных средств позволит студентам усвоить междисциплинарные связи и проявить самостоятельность при изучении нового материала. Некоторые авторы используют и собственные программные разработки для организации лабораторного практикума. В статье [13] Новикова С. В., Сосновский С. А., Якина Р.Р., Валитова Н.Л. и Кремлева Е. Ш. описывают применение специальных компьютерных тренажеров для изучения студентами дисциплины «Численные методы». Описана методика создания тренажера и педагогический эксперимент, доказывающий эффективность их применения. Авторы Скафа Е.И., Евсеева Е. Г. и Королев М.Е. в работе [14] рассказывают о собственной лабораторной системе, которая позволяет упрощать процесс освоения материала при обучении инженера. Её внедрение в учебный процесс позволил упростить математическое моделирование и процесс симуляции для задач, решаемых с применением численных методов. Часть авторов говорит о внедрении программирования только в некоторые из лабораторных работ по дисциплине. Например, Агаханов С.Г., Баламирзоев А.Г и Рагимханова С. Г. рассматривают внедрение в курс программирования на языке PascalABC на примере темы «Приближенное решение уравнений» для программной реализации алгоритмов численного решения уравнений [15]. Однако, не все авторы предлагают использование специализированных программных средств и программирования. Халатян К.А., Бурховецкая О.В., Ефимова Д.А. в работе [16] предлагают применять в качестве средства для реализации алгоритмов Excel и упростить тем самым процесс расчета. Учебные пособия по дисциплине «Численные методы» также не обходят применение программных средств стороной. В учебном пособии Котюргиной А. С. [17] дается подробное теоретическое описание классических алгоритмов, однако автор замечает, что в современном мире такие задачи решаются с использованием программ для ЭВМ и предлагает студентам самостоятельно запрограммировать алгоритмы в любой удобной среде. В пособии Поршнева С. и Беленковой И. [18] предлагается уже готовая программная реализация в среде MachCad. Лапчик М.П. в своем учебном пособии [19] предлагает блок-схемы вычислительных алгоритмов к каждой из рассмотренных тем. В пособие Батищева Р. В. [20] содержит теоретический материал по дисциплине, а также примеры лабораторных работ на MathCad. Учебное пособие Калитвина В. А. [21] предназначено для практической части курса с использованием языка С++ и даже содержит раздел по введению в С++. Одним из важных аспектов изучения дисциплины является, по мнению некоторых авторов, междисциплинарный подход. Далингер В.А., Моисеева Н.А. и Полякова Т. А. в своей статье [22] описывают методику совместного обучения студентов «Математике» и «Информатике». Авторы определили программные средства, с помощью которых возможно подобное внедрение и наиболее эффективный способ внедрения – через самостоятельную работу студентов. В работе Баженовой И.В., Клунниковой М.М. и Пак Н.И. [23] предлагается изучение дисциплины «Численные методы» совместно с «Программированием» и «Информационными технологиями в образовании» на основе междисциплинарных проектов. В статье описываются междисциплинарные проекты по созданию студентами учебного пособия по численным методам с применением технологий машинного обучения и искусственного интеллекта. Клунникова М.М. в работе [24] также делает упор на межпредметный подход к изучению дисциплины. Дополнительно в работе подробно описывается педагогический эксперимент по развитию вычислительного мышления и его результат в виде прироста знаний студентов, развивавших вычислительное мышление. Про вычислительное мышление говорят и другие авторы. Так в работе [25] Калинина С.И., Тороповой С.И. значительное внимание уделено тематике развития вычислительного мышления. О нем также говорят Халатян К.А., Матвеева В. Е. в работе «Развитие вычислительного мышления студентов педагогического вуза в процессе обучения дисциплине «Численные методы»» [26]. Некоторые зарубежные авторы говорят об обязательном практикоориентированном подходе при преподавании математических дисциплин. Дармаянти Р. в работе [27] описывает влияние вовлечения практикующих специалистов в процесс математического образования. Именно вовлечение специалистов дает возможность студентам увидеть настоящую работу математика-практика. Дорье Дж.Л. и Маасс К. [28] предлагают преподавателям математических дисциплин использовать практикоориентированные сложные задачи, которые можно было бы решать совместно учащимися и преподавателями. Введение в курсы математических дисциплин реальных задач хорошо себя зарекомендовало. Так в работе [29] Круса-Рамиреса С.Р., Гарсия-Мартинес М. и Олайес-Говеа Х.М. описывается решение прямой и обратной задачи кинематики человекоподобного робота, как практикоориентированной задачи, предлагаемой студентам, изучающим численные методы. Таким образом, организация лабораторных работ по дисциплине «Численные методы» с использованием информационных технологий является актуальной и находит свое отражение в проанализированных работах. Следует отметить, что в представленных статьях редко встречается описание использования собственных разработок. При этом авторы отмечают, что традиционно применяемые программные средства в настоящее время становятся малодоступными для использования в учебном процессе. Представленная авторами разработка способствует решению этой проблемы. Методологическая база исследования Методологическая база основывается на результатах научных исследований в области использования отечественных программных продуктов при реализации математических дисциплин для студентов технических направлений, связанные с анализом результативности применения новой парадигмы функционально-объектного программирования и разработанной на ее основе программной среды «Алгозит» для проведения лабораторных работ по реализации численных методов [30]. Исследования связаны с развитием междисциплинарного подхода при разработке методического обеспечения образовательных программ, а также с разработкой педагогической технологии формирования навыков программирования при решении учебных задач вычислительной математики и освоения отечественной программной среды разработки прикладных программ для инженерных расчетов. Проделанная авторами статьи работа опиралась на следующие методы: - всесторонний анализ и обобщение отечественных и зарубежных научных источников, посвященных исследованию результатов организации лабораторных работ по математическим дисциплинам в учебных учреждениях высшего образования с использованием различного программного обеспечения как отечественного, так и зарубежного производства; - эксперименты по постановке лабораторных работ, включающих реализацию численных методов в функционально-объектной среде «Алгозит»; - аналитическая оценка возможностей освоения различных аспектов дисциплины «Численные методы» при создании обучающимися программных продуктов в среде «Алгозит»; - подготовка методических рекомендаций для применения среды «Алгозит» при проведении лабораторных работ по численным методам. При написании статьи использовались следующие материалы: - учебники по численным методам Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков [31] и Вержбицкий В.М. [32]; - методические указания по численным методам; - рабочая программа дисциплины; - документация по основам работы в функционально-объектной среде программирования «Алгозит» [33], - документация по программировании на языке «Ядро» [34]. Основным методом исследования является подход к организации лабораторных работ по программной реализации численных методов с использованием среды «Алгозит», позволяющий студентам более глубоко понять суть изучаемых методов, их схожесть и различия, взаимопроникновение идей для решения различных вычислительных задач, а также получить навыки построения программных продуктов на основе функционально-объектного подхода. Предлагаемый авторами подход состоит из следующих этапов организации лабораторного практикума: - изучение математических формул, лежащих в основе того или иного численного метода; - выполнение вычислительных примеров на простых исходных данных, с применением простых аналитических расчетов и популярных прикладных программ; - изучение парадигмы функционально-объектного программирования, программной среды «Алгозит» и языка «Ядро»; - разработка компьютерных программ в среде «Алгозит», реализующих базовые методы вычислительной математики из ее разных разделов; - разработка прикладной программы, реализующей конкретный численный метод для решения практической задачи. Результаты исследования Результатом является разработанный авторами подход к организации лабораторных работ по дисциплине «Численные методы» для студентов технических направлений, в основе которого лежит освоение инновационной функционально-объектной парадигмы программирования и отечественного программного продукта для инженерных расчетов «Алгозит». Данный подход включает: изучение аналитических основ численных методов и закрепление этих знаний при решении несложных задач без разработки компьютерных программ, а также разработки программ в среде функционально-объектного программирования «Алгозит» для более углубленного изучения методов и применения их для решения прикладных задач. В качестве типичного примера применения данного подхода рассмотрим, например, полиномиальную интерполяцию на основе построения многочлена Лагранжа. На первом этапе студентам предлагается изучить формулы, используемые для построения многочлена Лагранжа: , (1) где . Затем для закрепления материала и усвоения всех нюансов изучаемого алгоритма вычислить коэффициенты полинома, аппроксимирующего какую-нибудь элементарную функцию, без использования вычислительных устройств. Например, для функции f(x)=x2, по трем узлам x1 = 0, y1 = 0, x2 = 1, y2 = 1 и x3 = 2, y3 = 4 по формуле (1) построить многочлен второй степени: , (2) где , , . Для проверки правильности проведенных вычислений обучающиеся должны вычислить значение этой функции в некоторой точке интервала интерполяции по построенной формуле (2) и сравнить с точным значением, убедившись в правильности построенной формулы: f(1,5) = x2 = 1,52 = 2,25, , , (3) . После таких подробных вычислений идея и эффективность изучаемого алгоритма становятся очевидными для обучающегося. Следующим этапом студенту предлагается написать программу, реализующую построение полинома Лагранжа в среде «Алгозит». Особенностью этой программной среды является визуализация программирования в полном смысле этого понятия. Сборка этапов алгоритма происходит в окне редактирования программы, которая представляется в виде графа из алгоматов, так называемой АЯ-схемы. Каждый алгомат представляет некоторый объект из алгоритма, последовательность вычисления объектов устанавливается стрелками, соединяющими соответствующие алгоматы. Возможность давать алгоматам говорящие названия делает процесс построения алгоритма еще более удобным. Например, для решения задачи интерполяции функции полиномом Лагранжа могут быть созданы алгоматы: «Таблица значений функции», «x», «y», «Узлы интерполяции», «Значение аргумента», «Значение функции». На АЯ-схеме программы (рис.1) очень хорошо прослеживается в какой последовательности выполняются шаги алгоритма. Сначала из объекта «Таблица значений функции» значения аргумента и значения функции распределяются соответственно в объекты «x» и «y». Затем по значению аргумента, в котором необходимо вычислить значение функции, из алгомата «x» выбираются номера узлов для построения полинома и сохраняются в алгомате «Узлы интерполяции». И, наконец, значение функции при заданном аргументе вычисляется в алгомате «Значение функции» по формуле (3) с использованием данных всех вычисленных ранее алгоматов. Рис. 1. АЯ-схема приложения для интерполяции функции полиномом Лагранжа Возможность отражать визуально весь процесс реализации алгоритма делает программную среду «Алгозит» отличной от сред программирования, в которых требуется писать программный код. Использование такого инструмента дает возможность обучающемуся хорошо усвоить все этапы вычислений и легко определить допущенные ошибки, сосредоточившись на сути численного метода и шагах алгоритма его реализующего, а не на синтаксисе языка программирования. В скриптах алгоматов необходимо написать минимум программного кода, включающего только формулы для расчетов. В связи с чем для использования программной среды «Алгозит» требуется изучить минимальный синтаксис скриптового языка программирования «Ядро», что не потребует много времени. Часты случаи, когда какой-либо численный метод опирается на алгоритм другого численного метода. Так, например, определитель квадратной матрицы можно вычислить, преобразуя исходную матрицу к треугольному виду, для чего используются формулы из прямого хода метода Гаусса для решения систем линейных алгебраических уравнений. АЯ-схемы приложения, реализующего метод Гаусса, изображенная на рис.2, легко преобразуется в АЯ-схему программного приложения для вычисления определителя квадратной матрицы (рис.3). Для этого потребуется лишь исправить название цикла «Прямой ход» на «Приведение к треугольному виду». И, действительно, после прохождения этого цикла квадратная матрица будет преобразована к треугольному виду и останется только перемножить диагональные элементы. Этот шаг можно проделать в алгомате, который на рис.2 называется «Обратный ход». Переименовываем его на новой АЯ-схеме (рис.3) в «Произведение диагональных элементов» и изменяем формулы в скрипте алгомата на соответствующее произведение. Таким образом, при разработке программ на «Алгозите», обучающийся получает навык создания алгоритмов для решения новых математических задач на основе уже изученного и реализованного алгоритма. При этом, как видно из приведенного примера, новых АЯ-схем разрабатывать не потребуется, достаточно внести минимум необходимых изменений в уже построенную схему. Рис. 2. АЯ-схема приложения для решения систем линейных уравнений методом Гаусса Рис. 3. АЯ-схема приложения для вычисления определителя Визуализация такой настройки помогает обучающемуся понять, что зачастую, разные, на первый взгляд, прикладные математические задачи решаются с использованием одних и тех же алгоритмических идей. Некоторые численные методы имеют похожие алгоритмы, а значит в «Алгозите» представляются одинаковыми АЯ-схемами. Это можно использовать при создании новых приложений. Например, на рис.4 изображена АЯ-схема метода простых итераций для решения нелинейного уравнения. Создать АЯ-схему приложения, реализующего метод простых итераций для решения системы линейных уравнений, можно из предыдущей добавив всего лишь один алгомат «Коэффициенты системы» для ввода коэффициентов системы уравнений (рис.5). В вычислительной математике часто при реализации одних методов происходит обращение к другим методам для промежуточных вычислений. «Алгозит» позволяет использовать уже разработанные страницы АЯ-схем при конструировании новых программ. Так, для обращения матрицы необходимо решать системы линейных алгебраических уравнений. Можно собрать схему такого приложения на основе уже построенной схемы. На рис. 6 изображены две страницы приложения для обращения матрицы, одна из которых (рис.6б) повторяет схему для решения системы линейных уравнений методом Гаусса (рис.2), а на второй (рис.6а) построен агрегат, выделенный рамочкой, для обращения к странице с решением системы. Причем разрабатывать новые приложения не требуется, так как уже созданные схемы копируются и легко встраиваются в приложения отдельными страницами. Рис. 4. АЯ-схема приложения для решения нелинейного уравнения методом простых итераций Рис. 5. АЯ-схема приложения для решения системы линейных алгебраических уравнений методом простых итераций Заключение В данной статье описан разработанный авторами подход к организации лабораторных работ по дисциплине «Численные методы». Проведена подробная аналитическая оценка возможностей освоения различных аспектов дисциплины «Численные методы» при создании обучающимися программных продуктов в среде «Алгозит». Результаты исследования показали, что данная среда позволяет организовать проведение лабораторных работ таким образом, чтобы перед обучающим открылись такие аспекты как возможность композиции алгоритмов, реализующих разные методы для решения новой практической задачи; наследование алгоритмических идей для реализации подобных алгоритмов решения практических задач из разных разделов математики; наглядное представление алгоритмов на визуальных схемах. Функционально-объектная среда программирования «Алгозит» является отечественным программным продуктом и разработана специально для программирования приложений, реализующих математические модели, поэтому ее использование при изучении численных методов позволяет сделать этот процесс более наглядным и простым. Этот аспект также способствует тому, что реализация алгоритмов в программной среде «Алгозит» очень органично вписывается в процесс преподавания дисциплины «Численные методы» для технических направлений подготовки. а) б) Рис. 6. АЯ-схема из двух страниц приложения для обращения матриц, с использованием решения систем линейных уравнений методом Гаусса Работа в среде «Алгозит» не требует высокого уровня знаний в области программирования, что делает возможным ее использование студентами технических направлений с разным уровнем требований к базовым знаниям основ алгоритмизации и навыкам программирования. Представленный авторами подход использован в качестве основы при разработке методических материалов и учебных пособий по организации лабораторных и самостоятельных работы по дисциплине «Численные методы» для направления подготовки 01.03.02 Прикладная математика и информатика. Методическое обеспечение дисциплины при использовании функционально-объектной программной среды «Алгозит» для проведения лабораторного практикума должно включать теоретический материал с описанием алгоритмов основных методов вычислительной математики, базовых теорем и формул, подробных примеров использования формул для решения учебных задач, а также примеры реализации алгоритмов численных методов в «Алгозите» и задачи для самостоятельного решения для отработки полученных навыков.