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

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

('вывод из драфт')
 
;{{SpeakerInfo}}:;{{SpeakerInfo}}: 
* {{Speaker|Евгений Алексеев}}
* {{Speaker|Юлия Чуракова}}
<blockquote>
Язык программирования [https://julialang.org/ Julia] распространяется под [https://mit-license.org/ свободной лицензией MIT]. К особенностям языка следует отнести: 
*  JIT-компиляция и, как следствие, высокая скорость работы;
*  синтаксис языка, схожий c Scilab, MATLAB;
*  большое количество пакетов для решения различных задач;
*  наличие REPL среды, поддержка языка Julia в Geany, Jupyter.
</blockquote>

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

{{----}}

== Thesis ==

В Кубанском Государственном Университете Julia широко использует профессор Рожков А.В. вместе со своими учениками в научных исследованиях<ref name="kubsu1-bib1>Рожков,&nbsp;А.&nbsp;В. <i>Экспериментальная математика на платформе языка программирования Julia</i> / А.&nbsp;В.&nbsp;Рожков // Материалы
Всероссийской научно-практической конференции «Тенденции и перспективы развития обучения математике и
информатике в условиях реальной и цифровой среды», Краснодар, 28 марта 2023 года.  —  Краснодар:
Кубанский государственный университет, 2023.  —  С. 30—36.  —  EDN TISLQI.</ref><ref name="kubsu1-bib2">Рожков,&nbsp;А.&nbsp;В. <i>Язык программирования Julia  —  современное средство обучения математике</i> / А.&nbsp;В.&nbsp;Рожков, 
И.&nbsp;Л.&nbsp;Ойнас, М.&nbsp;В.&nbsp;Цалюк // Математика и математическое образование в эпоху цифровизации : материалы XII Всероссийской с
международным участием научно-методической конференции, Красноярск, 09-–10 ноября 2023 года.  —  Красноярск:
Красноярский государственный педагогический университет им. В.П. Астафьева, 2023.  —  С. 117—122.  —  EDN ZMRYWK.</ref>. 

Авторами была поставлена задача познакомить широкий круг студентов факультета с этим языком, чтобы они могли
использовать его в своих исследованиях. В 2022—23 учебном году студентам выдавались индивидуальные задания по освоению
языка и решению математических задач. В 2023—24 учебном году были прочитаны обзорные лекции по языку в рамках курсов
«Технологии программирования и работа на ЭВМ», «Программирование», «Математические пакеты и их применение в
естественно-научном образовании». Кроме того на факультете начало развиваться направление, посвящённое генерации
специализированных математических пакетов. В рамках этого направления разрабатывается [https://github.com/EnckyOff/SysOpenMath Система Открытой Математики (СОМ)]<ref name="kubsu1-bib4">Головатин&nbsp;Д.&nbsp;Т. <i>Инструменты разработки специализированных математических пакетов</i> / Д.&nbsp;Т.&nbsp;Головатин, Е.&nbsp;Р.&nbsp;Алексеев, Е.&nbsp;А.&nbsp;Вербичева, К.&nbsp;В.&nbsp;Дога, Д.&nbsp;Е.&nbsp;Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов.</ref>. 

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

В свете выше изложенного возникла необходимость разработки учебного пособия по языку программирования Julia. Авторами
было принято решение не только описать возможности языка, но и рассмотреть его использование при решении различных
математических задач (обработка эксперимента, несложные задачи математического моделирования, задачи теории чисел и
криптографии). Учебное пособие разрабатывается в форматате Jupyter и является интерактивным. На ФМиКН КубГУ накоплен
достаточный опыт использования Jupyter в учебном процессе <ref name="kubsu1-bib5">Алексеев&nbsp;Е.&nbsp;Р. <i>Scilab: Решение инженерных и математических задач: учеб. издание</i> / Е.&nbsp;Р.&nbsp;Алексеев, К.&nbsp;В.&nbsp;Дога, О.&nbsp;В.&nbsp;Чеснокова. /  отв. ред. В.&nbsp;Л.&nbsp;Чёрный.  —  М.: Базальт СПО; ДМК Пресс, 2024.  —  440&nbsp;с.</ref><ref name="kubsu1-bib6">Алексеев&nbsp;Е.&nbsp;Р. <i>Jupyter как универсальная среда для обучения и научных исследований</i> / Е.&nbsp;Р.&nbsp;Алексеев, Е.&nbsp;А.&nbsp;Вербичева, К.&nbsp;В.&nbsp;Дога, Д.&nbsp;Т.&nbsp;Головатин, Д.&nbsp;Е.&nbsp;Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов. Смоленск: Изд-во СмолГУ, 2024. Вып.~25. — С.3—9.</ref>. В состав учебного пособия <ref name="kubsu1-bib7">Учебное пособие «Использование Julia при решении математических задач»  URL:	[https://github.com/JuliaChurakova/Julia]</ref> входят следующие
разделы:

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

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



{{----}}
[[File:{{#setmainimage:Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

<references/>

[[Категория:OSEDUCONF-2025]]
[[Категория:Draft]]
[[Категория:СПО в образовании]]Языки программирования]]

Текущая версия на 14:43, 2 марта 2026

Докладчик

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

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

Видео[править вики-текст]

on youtube

Презентация[править вики-текст]

Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf

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. Обучающиеся изучают материал и могут запустить любую программу из пособия, изменить её и посмотреть на результат.


Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025)!.jpg

Примечания и ссылки[править вики-текст]

  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]