Использование языка программирования Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Новая страница: «;{{SpeakerInfo}}: * {{Speaker|Евгений Алексеев}} * {{Speaker|Юлия Чуракова}} <blockquote> </blockquote> {{VideoSection}} {{vimeoembe…») |
StasFomin (обсуждение | вклад) |
||
;{{SpeakerInfo}}: * {{Speaker|Евгений Алексеев}} * {{Speaker|Юлия Чуракова}} <blockquote> Язык программирования Julia<ref>[https://julialang.org/</ref>] распространяется под [https://mit-license.org/ свободной лицензией MIT]. К особенностям языка следует отнести: * JIT-компиляция и, как следствие, высокая скорость работы; * синтаксис языка, схожий c Scilab, MATLAB; * большое количество пакетов для решения различных задач; * наличие REPL среды, поддержка языка Julia в Geany, Jupyter. </blockquote> {{VideoSection}} {{vimeoembed||800|450}} {{youtubelink|}} {{SlidesSection}} [[File:Использование языка программирования Julia на факультете математики и компьютерных наук Кубанского Государственного Университета (OSEDUCONF-2025).pdf|left|page=-|300px]] {{----}} == Thesis == В Кубанском Государственном Университете Julia широко использует профессор Рожков А.В. вместе со своими учениками в научных исследованиях<ref name="kubsu1-bib1>Рожков, А. В. <i>Экспериментальная математика на платформе языка программирования Julia</i> / А. В. Рожков // Материалы Всероссийской научно-практической конференции «Тенденции и перспективы развития обучения математике и информатике в условиях реальной и цифровой среды», Краснодар, 28 марта 2023 года. — Краснодар: Кубанский государственный университет, 2023. — С. 30—36. — EDN TISLQI.</ref><ref name="kubsu1-bib2">Рожков, А. В. <i>Язык программирования Julia — современное средство обучения математике</i> / А. В. Рожков, И. Л. Ойнас, М. В. Цалюк // Математика и математическое образование в эпоху цифровизации : материалы XII Всероссийской с международным участием научно-методической конференции, Красноярск, 09-–10 ноября 2023 года. — Красноярск: Красноярский государственный педагогический университет им. В.П. Астафьева, 2023. — С. 117—122. — EDN ZMRYWK.</ref>. Авторами была поставлена задача познакомить широкий круг студентов факультета с этим языком, чтобы они могли использовать его в своих исследованиях. В 2022—23 учебном году студентам выдавались индивидуальные задания по освоению языка и решению математических задач. В 2023—24 учебном году были прочитаны обзорные лекции по языку в рамках курсов «Технологии программирования и работа на ЭВМ», «Программирование», «Математические пакеты и их применение в естественно-научном образовании». Кроме того на факультете начало развиваться направление, посвящённое генерации специализированных математических пакетов. В рамках этого направления разрабатывается [https://github.com/EnckyOff/SysOpenMath Система Открытой Математики (СОМ)]<ref name="kubsu1-bib4">Головатин Д. Т. <i>Инструменты разработки специализированных математических пакетов</i> / Д. Т. Головатин, Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов.</ref>. Изначально СОМ строилась на базе Julia и Jupyter, сейчас туда в качестве вычислительных ядер добавились Scilab и Python. Параллельно с этими исследованиями в 2024—25 учебном году одним из авторов в рамках дополнительного образования в КубГУ был прочитан курс по математическому моделированию на базе языка Julia. Далее планируется полноценное внедрение языка Julia наряду с Scilab в курс «Математические пакеты и их применение в естественно-научном образовании». В свете выше изложенного возникла необходимость разработки учебного пособия по языку программирования Julia. Авторами было принято решение не только описать возможности языка, но и рассмотреть его использование при решении различных математических задач (обработка эксперимента, несложные задачи математического моделирования, задачи теории чисел и криптографии). Учебное пособие разрабатывается в форматате Jupyter и является интерактивным. На ФМиКН КубГУ накоплен достаточный опыт использования Jupyter в учебном процессе <ref name="kubsu1-bib5">Алексеев Е. Р. <i>Scilab: Решение инженерных и математических задач: учеб. издание</i> / Е. Р. Алексеев, К. В. Дога, О. В. Чеснокова. / отв. ред. В. Л. Чёрный. — М.: Базальт СПО; ДМК Пресс, 2024. — 440 с.</ref><ref name="kubsu1-bib6">Алексеев Е. Р. <i>Jupyter как универсальная среда для обучения и научных исследований</i> / Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Т. Головатин, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов. Смоленск: Изд-во СмолГУ, 2024. Вып.~25. — С.3—9.</ref>. В состав учебного пособия <ref name="kubsu1-bib7">Учебное пособие «Использование Julia при решении математических задач» URL: [https://github.com/JuliaChurakova/Julia]</ref> входят следующие разделы: * <i>Общие сведения о языке Julia</i>. Вводный раздел пособия посвящён основам языка Julia. Первые параграфы посвящены установке Julia и Jupyter на компьютер пользователя. Далее внимание уделяется базовым концепциям, таким как переменные и их адреса, их присваивание и использование, с особым акцентом на систему типов данных. Julia сочетает в себе элементы как статической, так и динамической типизации, что позволяет разработчикам гибко подходить к определению типов переменных и структур данных. В разделе также подробно объясняются встроенные функции языка Julia, которые позволяют эффективно решать математические и программные задачи. Этот раздел создаёт прочную основу для дальнейшего изучения языка Julia, его возможностей и применения в решении реальных задач. * <i>Поддерживаемые структуры данных (строки, массивы, кортежи, словари)</i>. Рассматриваются основные структуры данных, поддерживаемые языком программирования Julia, такие как строки, массивы, кортежи и словари. Подробно объясняется, как создавать и использовать структуры данных, а также какие операции можно выполнять с ними, что является основой для дальнейшей работы с Julia и решения более сложных задач. * <i>Управляющие конструкции языка Julia</i>. Авторы описывают управляющие конструкции языка Julia, такие как условные операторы (if, elseif, else) и циклы (for, while). * <i>Функции в Julia</i>. Раздел посвящён функциям в языке Julia, которые являются основным инструментом для организации кода в модульные блоки, позволяющие повторно использовать и структурировать программу. Рассматриваются способы определения и вызова функций, а также особенности передачи аргументов и возврата значений. * <i>Примеры программ на Julia</i>. Представлены конкретные программы, написанные на языке Julia. Демонстрируются различные аспекты работы с языком, включая использование базовых структур данных, циклов, условий и функций. Приведённые коды помогают понять, как применять синтаксис и возможности языка Julia для решения математических задач. * <i>Пакеты в Julia</i>. Обучающийся знакомится с пакетами в языке Julia, которые предназначены для расширения функциональности языка. Пакеты позволяют использовать уже готовые решения для часто встречающихся задач, таких как анализ данных, визуализация и численные вычисления. В разделе рассматриваются основные механизмы работы с пакетами, включая их установку и загрузку. * <i>Визуализация данных в Julia (пакет Plots)</i>. Рассказывается о визуализации данных с использованием пакета Plots в Julia. Рассматриваются основные возможности для создания и форматирования графиков и диаграмм. * <i>Решение задач линейной алгебры</i>. Рассматриваются средства решения задач линейной алгебры в языке Julia. Julia обладает мощной поддержкой линейной алгебры, предоставляя оптимизированные функции для выполнения операций с матрицами, таких как умножение, транспонирование, вычисление обратных матриц и решение систем линейных уравнений. * <i>Файлы в Julia</i>. Авторы рассказывают об особенностях работы с текстовыми и двоичными файлами. * <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]] [[Категория:СПО в образовании]] |
Версия 21:36, 16 марта 2025
- Докладчик
Язык программирования Julia[1]] распространяется под свободной лицензией MIT. К особенностям языка следует отнести:
- JIT-компиляция и, как следствие, высокая скорость работы;
- синтаксис языка, схожий c Scilab, MATLAB;
- большое количество пакетов для решения различных задач;
- наличие REPL среды, поддержка языка Julia в Geany, Jupyter.
Содержание
Видео
Презентация
Thesis
В Кубанском Государственном Университете Julia широко использует профессор Рожков А.В. вместе со своими учениками в научных исследованиях[2][3].
Авторами была поставлена задача познакомить широкий круг студентов факультета с этим языком, чтобы они могли использовать его в своих исследованиях. В 2022—23 учебном году студентам выдавались индивидуальные задания по освоению языка и решению математических задач. В 2023—24 учебном году были прочитаны обзорные лекции по языку в рамках курсов «Технологии программирования и работа на ЭВМ», «Программирование», «Математические пакеты и их применение в естественно-научном образовании». Кроме того на факультете начало развиваться направление, посвящённое генерации специализированных математических пакетов. В рамках этого направления разрабатывается Система Открытой Математики (СОМ)[4].
Изначально СОМ строилась на базе Julia и Jupyter, сейчас туда в качестве вычислительных ядер добавились Scilab и Python. Параллельно с этими исследованиями в 2024—25 учебном году одним из авторов в рамках дополнительного образования в КубГУ был прочитан курс по математическому моделированию на базе языка Julia. Далее планируется полноценное внедрение языка Julia наряду с Scilab в курс «Математические пакеты и их применение в естественно-научном образовании».
В свете выше изложенного возникла необходимость разработки учебного пособия по языку программирования Julia. Авторами было принято решение не только описать возможности языка, но и рассмотреть его использование при решении различных математических задач (обработка эксперимента, несложные задачи математического моделирования, задачи теории чисел и криптографии). Учебное пособие разрабатывается в форматате Jupyter и является интерактивным. На ФМиКН КубГУ накоплен достаточный опыт использования Jupyter в учебном процессе [5][6]. В состав учебного пособия [7] входят следующие разделы:
- Общие сведения о языке 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. Обучающиеся изучают материал и могут запустить любую программу из пособия, изменить её и посмотреть на результат.
Примечания и ссылки
- ↑ [https://julialang.org/
- ↑ Рожков, А. В. Экспериментальная математика на платформе языка программирования Julia / А. В. Рожков // Материалы Всероссийской научно-практической конференции «Тенденции и перспективы развития обучения математике и информатике в условиях реальной и цифровой среды», Краснодар, 28 марта 2023 года. — Краснодар: Кубанский государственный университет, 2023. — С. 30—36. — EDN TISLQI.
- ↑ Рожков, А. В. Язык программирования Julia — современное средство обучения математике / А. В. Рожков, И. Л. Ойнас, М. В. Цалюк // Математика и математическое образование в эпоху цифровизации : материалы XII Всероссийской с международным участием научно-методической конференции, Красноярск, 09-–10 ноября 2023 года. — Красноярск: Красноярский государственный педагогический университет им. В.П. Астафьева, 2023. — С. 117—122. — EDN ZMRYWK.
- ↑ Головатин Д. Т. Инструменты разработки специализированных математических пакетов / Д. Т. Головатин, Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов.
- ↑ Алексеев Е. Р. Scilab: Решение инженерных и математических задач: учеб. издание / Е. Р. Алексеев, К. В. Дога, О. В. Чеснокова. / отв. ред. В. Л. Чёрный. — М.: Базальт СПО; ДМК Пресс, 2024. — 440 с.
- ↑ Алексеев Е. Р. Jupyter как универсальная среда для обучения и научных исследований / Е. Р. Алексеев, Е. А. Вербичева, К. В. Дога, Д. Т. Головатин, Д. Е. Юрченко. // Системы компьютерной математики и их приложения: межвузовский сборник научных трудов. Смоленск: Изд-во СмолГУ, 2024. Вып.~25. — С.3—9.
- ↑ Учебное пособие «Использование Julia при решении математических задач» URL: [1]