Использование языка программирования Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025) — различия между версиями

Материал из 0x1.tv

 
{VideoSection}}

{{vimeoembed|1066722778|800|450}}
{{youtubelink|}}

{{SlidesSection}}
[[File:Использование языка программирования Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

Текущая версия на 21:06, 17 марта 2025

Докладчик

Язык программирования Julia распространяется под свободной лицензией MIT. К особенностям языка следует отнести:

  • JIT-компиляция и, как следствие, высокая скорость работы;
  • синтаксис языка, схожий c Scilab, MATLAB;
  • большое количество пакетов для решения различных задач;
  • наличие REPL среды, поддержка языка Julia в Geany, Jupyter.

Видео

Презентация

Thesis

В Кубанском Государственном Университете Julia широко использует профессор Рожков А.В. вместе со своими учениками в научных исследованиях[1][2].

Авторами была поставлена задача познакомить широкий круг студентов факультета с этим языком, чтобы они могли использовать его в своих исследованиях. В 2022—23 учебном году студентам выдавались индивидуальные задания по освоению языка и решению математических задач. В 2023—24 учебном году были прочитаны обзорные лекции по языку в рамках курсов «Технологии программирования и работа на ЭВМ», «Программирование», «Математические пакеты и их применение в естественно-научном образовании». Кроме того на факультете начало развиваться направление, посвящённое генерации специализированных математических пакетов. В рамках этого направления разрабатывается Система Открытой Математики (СОМ)[3].

Изначально СОМ строилась на базе Julia и Jupyter, сейчас туда в качестве вычислительных ядер добавились Scilab и Python. Параллельно с этими исследованиями в 2024—25 учебном году одним из авторов в рамках дополнительного образования в КубГУ был прочитан курс по математическому моделированию на базе языка Julia. Далее планируется полноценное внедрение языка Julia наряду с Scilab в курс «Математические пакеты и их применение в естественно-научном образовании».

В свете выше изложенного возникла необходимость разработки учебного пособия по языку программирования Julia. Авторами было принято решение не только описать возможности языка, но и рассмотреть его использование при решении различных математических задач (обработка эксперимента, несложные задачи математического моделирования, задачи теории чисел и криптографии). Учебное пособие разрабатывается в форматате Jupyter и является интерактивным. На ФМиКН КубГУ накоплен достаточный опыт использования Jupyter в учебном процессе [4][5]. В состав учебного пособия [6] входят следующие разделы:

  • Общие сведения о языке Julia. Вводный раздел пособия посвящён основам языка Julia. Первые параграфы посвящены установке Julia и Jupyter на компьютер пользователя. Далее внимание уделяется базовым концепциям, таким как переменные и их адреса, их присваивание и использование, с особым акцентом на систему типов данных. Julia сочетает в себе элементы как статической, так и динамической типизации, что позволяет разработчикам гибко подходить к определению типов переменных и структур данных. В разделе также подробно объясняются встроенные функции языка Julia, которые позволяют эффективно решать математические и программные задачи. Этот раздел создаёт прочную основу для дальнейшего изучения языка Julia, его возможностей и применения в решении реальных задач.
  • Поддерживаемые структуры данных (строки, массивы, кортежи, словари). Рассматриваются основные структуры данных, поддерживаемые языком программирования Julia, такие как строки, массивы, кортежи и словари. Подробно объясняется, как создавать и использовать структуры данных, а также какие операции можно выполнять с ними, что является основой для дальнейшей работы с Julia и решения более сложных задач.
  • Управляющие конструкции языка Julia. Авторы описывают управляющие конструкции языка Julia, такие как условные операторы (if, elseif, else) и циклы (for, while).
  • Функции в Julia. Раздел посвящён функциям в языке Julia, которые являются основным инструментом для организации кода в модульные блоки, позволяющие повторно использовать и структурировать программу. Рассматриваются способы определения и вызова функций, а также особенности передачи аргументов и возврата значений.
  • Примеры программ на Julia. Представлены конкретные программы, написанные на языке Julia. Демонстрируются различные аспекты работы с языком, включая использование базовых структур данных, циклов, условий и функций. Приведённые коды помогают понять, как применять синтаксис и возможности языка Julia для решения математических задач.
  • Пакеты в Julia. Обучающийся знакомится с пакетами в языке Julia, которые предназначены для расширения функциональности языка. Пакеты позволяют использовать уже готовые решения для часто встречающихся задач, таких как анализ данных, визуализация и численные вычисления. В разделе рассматриваются основные механизмы работы с пакетами, включая их установку и загрузку.
  • Визуализация данных в Julia (пакет Plots). Рассказывается о визуализации данных с использованием пакета Plots в Julia. Рассматриваются основные возможности для создания и форматирования графиков и диаграмм.
  • Решение задач линейной алгебры. Рассматриваются средства решения задач линейной алгебры в языке Julia. Julia обладает мощной поддержкой линейной алгебры, предоставляя оптимизированные функции для выполнения операций с матрицами, таких как умножение, транспонирование, вычисление обратных матриц и решение систем линейных уравнений.
  • Файлы в Julia. Авторы рассказывают об особенностях работы с текстовыми и двоичными файлами.
  • Решение задач обработки эксперимента. На практических примерах рассматривается решение задач аппроксимации и интерполяции с помощью языка программирования Julia.
  • Решение задач математического моделирования. Обучающийся знакомится с решением задач математического моделирования в языке Julia, включая работу с обыкновенными дифференциальными уравнениями (ОДУ) и дифференциальными уравнениями в частных производных (УЧП). Рассматриваются различные методы численного решения дифференциальных уравнений, такие как методы Эйлера, Рунге-Кутты и другие, а также использование специализированных библиотек.
  • Задачи теории чисел. Раздел посвящён задачам теории чисел, которые могут быть решены с использованием языка Julia. Рассматриваются различные алгоритмы для работы с простыми числами, разложением на простые множители, нахождением наибольшего общего делителя (НОД) и другие теоретико-числовые задачи. Язык предоставляет хорошие возможности для разработки эффективных алгоритмов для теории чисел.
  • Задачи криптографии. Рассматриваются задачи криптографии, которые можно решать с использованием языка Julia. Рассматриваются алгоритмы шифрования и дешифрования, такие как RSA. Эти технологии важны для разработки безопасных информационных систем и защиты данных.

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


Примечания и ссылки

  1. Рожков, А. В. Экспериментальная математика на платформе языка программирования Julia / А. В. Рожков // Материалы Всероссийской научно-практической конференции «Тенденции и перспективы развития обучения математике и информатике в условиях реальной и цифровой среды», Краснодар, 28 марта 2023 года. — Краснодар: Кубанский государственный университет, 2023. — С. 30—36. — EDN TISLQI.
  2. Рожков, А. В. Язык программирования Julia — современное средство обучения математике / А. В. Рожков, И. Л. Ойнас, М. В. Цалюк // Математика и математическое образование в эпоху цифровизации : материалы XII Всероссийской с международным участием научно-методической конференции, Красноярск, 09-–10 ноября 2023 года. — Красноярск: Красноярский государственный педагогический университет им. В.П. Астафьева, 2023. — С. 117—122. — EDN ZMRYWK.
  3. Головатин Д. Т. Инструменты разработки специализированных математических пакетов / Д. Т. Головатин, Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов.
  4. Алексеев Е. Р. Scilab: Решение инженерных и математических задач: учеб. издание / Е. Р. Алексеев, К. В. Дога, О. В. Чеснокова. / отв. ред. В. Л. Чёрный. — М.: Базальт СПО; ДМК Пресс, 2024. — 440 с.
  5. Алексеев Е. Р. Jupyter как универсальная среда для обучения и научных исследований / Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Т. Головатин, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов. Смоленск: Изд-во СмолГУ, 2024. Вып.~25. — С.3—9.
  6. Учебное пособие «Использование Julia при решении математических задач» URL: [1]