К курсам
AI015 Professional

Введение в программирование на Julia

Полное руководство по языку программирования Julia — высокопроизводительный, универсальный динамический язык, хорошо подходящий для научных и численных вычислений. Курс охватывает все аспекты от базового синтаксиса и типов данных до продвинутых тем, таких как метапрограммирование, работа с данными в виде таблиц, сетевые взаимодействия и подключение к базам данных.

4.9
30.0h
913 учеников
0 лайки
Искусственный интеллект
Начать обучение

Обзор курса

📚 Краткое содержание

Полное руководство по языку программирования Julia — высокопроизводительный, универсальный динамический язык, отлично подходящий для научных и численных вычислений. Курс охватывает всё — от базовой синтаксической структуры и типов данных до продвинутых тем, таких как метапрограммирование, работа с таблицами данных, сетевые взаимодействия и подключение к базам данных.

Овладейте высокопроизводительными научными вычислениями со скоростью С и простотой Python.

Автор: Tutorials Point (I) Pvt. Ltd.

Благодарности: Авторские права 2020 г. на материалы принадлежат компании Tutorials Point (I) Pvt. Ltd. Все контенты и графические элементы являются собственностью Tutorials Point.

🎯 Цели обучения

  1. Определить язык программирования Julia и выделить его ключевые особенности и исторический контекст.
  2. Отличать язык Julia от других языков технических вычислений с точки зрения производительности и синтаксиса.
  3. Успешно установить и настроить среду выполнения Julia и интерактивную оболочку (REPL) на системах Linux, Windows и macOS.
  4. Применять стилистические правила именования переменных в Julia и использовать одно- и многострочные комментарии для документирования кода.
  5. Создавать массивы различных типов и размерностей с использованием диапазонов, генераторов, пониманий и встроенных функций, таких как zeros() и ones().
  6. Выполнять сложные операции индексирования и модификации массивов с применением логики истинности, ключевого слова end и функций с восклицательным знаком (например, push!, splice!).
  7. Создавать и управлять кортежами и именованными кортежами, включая их использование как аргументов функций с ключевыми словами.
  8. Обнаруживать и управлять поведением переполнения целых чисел и ошибками деления с помощью стандартных и произвольной точности типов.
  9. Анализировать представление чисел с плавающей запятой, включая знаковые нули, специальные значения (NaN, Inf) и машинную эпсилон.
  10. Выполнять и комбинировать арифметические, побитовые и обновляющие операторы для манипуляций с типами данных.

🔹 Урок 1: Введение в Julia и настройка среды

Обзор: Этот урок представляет язык Julia — высокоуровневый, высокопроизводительный динамический язык программирования, разработанный специально для научных вычислений и анализа данных. Студенты изучат его историю, основные характеристики и сравнение с традиционными языками, такими как Python, R и MATLAB. Урок предоставляет подробное руководство по установке среды выполнения Julia на различных операционных системах и управлению мощной экосистемой пакетов.

Результаты обучения:

  • Определить язык программирования Julia и выделить его ключевые особенности и исторический контекст.
  • Отличать язык Julia от других языков технических вычислений с точки зрения производительности и синтаксиса.
  • Успешно установить и настроить среду выполнения Julia и интерактивную оболочку (REPL) на системах Linux, Windows и macOS.

🔹 Урок 2: Основы синтаксиса и работа с массивами

Обзор: Этот урок знакомит с основами синтаксиса языка Julia, фокусируясь на правилах именования переменных, комментариях и надёжной работе с массивами. Студенты пройдут путь от простого присваивания переменных до сложной работы с массивами, включая создание многомерных массивов, понимания, и мутабельных операций, необходимых для высокопроизводительных научных вычислений.

Результаты обучения:

  • Применять стилистические правила именования переменных в Julia и использовать одно- и многострочные комментарии для документирования кода.
  • Создавать массивы различных типов и размерностей с использованием диапазонов, генераторов, пониманий и встроенных функций, таких как zeros() и ones().
  • Выполнять сложные операции индексирования и модификации массивов с применением логики истинности, ключевого слова end и функций с восклицательным знаком (например, push!, splice!).

🔹 Урок 3: Кортежи и числовые типы данных

Обзор: Этот урок даёт всесторонний технический обзор основных структур данных и числовых типов в Julia, с особым акцентом на неизменяемые кортежи и тонкости компьютерной арифметики. Студенты исследуют создание и работу с именованными кортежами, поведение целых чисел с фиксированной точностью (включая переполнение), а также характеристики точности чисел с плавающей запятой, рациональных и комплексных чисел. Эта основа критически важна для высокопроизводительных научных вычислений и приложений анализа данных.

Результаты обучения:

  • Создавать и управлять кортежами и именованными кортежами, включая их использование как аргументов функций с ключевыми словами.
  • Обнаруживать и управлять поведением переполнения целых чисел и ошибками деления с помощью стандартных и произвольной точности типов.
  • Анализировать представление чисел с плавающей запятой, включая знаковые нули, специальные значения (NaN, Inf) и машинную эпсилон.

🔹 Урок 4: Операторы и математические функции

Обзор: Этот урок предлагает всестороннее исследование системы операторов в Julia и обширной библиотеки математических функций. Студенты будут проходить путь от простых арифметических и побитовых операций до продвинутых «точечных» векторизованных операций и сложных цепочек сравнений. Далее рассматриваются ключевые инструменты для научных вычислений, включая округление, специализированное деление, логарифмические и тригонометрические функции.

Результаты обучения:

  • Выполнять и комбинировать арифметические, побитовые и обновляющие операторы для манипуляций с типами данных.
  • Применять векторизованную «точечную» запись для выполнения операций над элементами массивов.
  • Анализировать поведение оценки и правила приоритета при цепочках сравнений и сложных математических выражениях.

🔹 Урок 5: Строки и функциональное программирование

Обзор: Этот урок охватывает два ключевых аспекта обработки данных в Julia: манипулирование строками и функциональное программирование. Студенты изучат мощную поддержку Юникода/UTF-8 строк в Julia, расширенное индексирование и нестандартные литералы, а также основную силу функционального парадигма языка, включая множественную диспетчеризацию, анонимные функции и функции высшего порядка, такие как map и filter.

Результаты обучения:

  • Манипулировать и искать строки с помощью индексирования по диапазону, вставки значений и регулярных выражений.
  • Создавать гибкие функции с использованием опциональных аргументов, аргументов с ключевыми словами и рекурсии.
  • Применять шаблоны функционального программирования (Map/Filter) и использовать Множественную диспетчеризацию для специализированного выбора методов.

🔹 Урок 6: Управление потоком и коллекции ключ-значение

Обзор: Этот урок охватывает основные структуры для управления выполнением программы и управления сложными коллекциями данных в Julia. Студенты научатся реализовывать условную логику с помощью тернарных выражений, булевых переключателей и стандартных блоков if-else, а также техники итерации с использованием циклов for и while. Кроме того, урок рассматривает высокий уровень структур данных, включая словари для сопоставления ключ-значение и множества для хранения уникальных элементов, с акцентом на их создание, манипуляцию и теоретико-множественные операции.

Результаты обучения:

  • Реализовывать компактную условную логику с помощью тернарных операторов и коротких цепочек булевых выражений.
  • Создавать надёжные циклы и обрабатывать ошибки во время выполнения с помощью исключений и блоков do.
  • Управлять ассоциативными данными с помощью словарей, включая поиск, объединение и анализ частоты.

🔹 Урок 7: Даты, ввод-вывод и метапрограммирование

Обзор: Этот урок исследует три продвинутых направления языка программирования Julia: управление временной информацией с помощью модуля Dates, надёжные операции ввода-вывода (I/O) файлов, и мощность метапрограммирования. Студенты узнают, как работать с датами и временем, перемещаться и взаимодействовать с файловой системой, а также понять, как код на Julia разбирается, представляется в виде абстрактного дерева синтаксического анализа (AST) и изменяется с помощью макросов.

Результаты обучения:

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

🔹 Урок 8: Визуализация данных и работа с таблицами данных

Обзор: Этот урок рассматривает двойную необходимость визуального и статистического анализа в Julia, начиная с функциональной графики и текстовой визуализации (UnicodePlots). Затем переходит к управлению сложными наборами данных с использованием экосистемы DataFrames.jl, уделяя особое внимание критической роли очистки данных, моделирования регрессии и структурных изменений для подготовки данных к научным исследованиям.

Результаты обучения:

  • Генерировать функциональные и текстовые графики с помощью Plots.jl, UnicodePlots и VegaLite.
  • Анализировать связь между описательной статистикой и визуализацией данных с использованием четвёрки Анскомба и моделей линейной регрессии.
  • Выполнять продвинутую работу с таблицами данных, включая обработку пропущенных значений, структурные изменения (добавление/удаление строк и столбцов) и условное фильтрование.

🔹 Урок 9: Научные вычисления: данные, модули и графика

Обзор: Этот урок охватывает основную экосистему языка Julia для научных вычислений, с фокусом на три краеугольных камня: обработку данных (CSV, HDF5, XML, RDatasets), статистический анализ (описательная статистика и выборки) и модульную структуру программ на Julia. Наконец, рассматривается широкий спектр инструментов визуализации данных — от низкоуровневой текстовой графики до высокого уровня реализаций «грамматики графиков».

Результаты обучения:

  • Выполнять ввод-вывод и манипуляции с данными: Импортировать и экспортировать файлы CSV и HDF5, парсить XML, выполнять подвыборку и сортировку в таблицах данных.
  • Выполнять статистический анализ: Вычислять простую и взвешенную описательную статистику (среднее, дисперсия, стандартное отклонение) и применять различные методы выборки.
  • Управлять структурой кода: Устанавливать и использовать модули/пакеты эффективно, понимая внутреннюю структуру каталогов пакета на Julia.

🔹 Урок 10: Сетевые технологии и взаимодействие с базами данных

Обзор: Этот урок исследует возможности языка программирования Julia в организации сетевого взаимодействия и подключения к различным системам баз данных. Рассматриваются низкоуровневые сети через протоколы TCP и именованные каналы, высокоуровневые сервисы (электронная почта, Twitter, WebSockets), интеграция с облачными платформами (AWS и Google Cloud). Также подробно описываются надёжные подключения к базам данных с использованием MySQL, JDBC, ODBC, SQLite и PostgreSQL, с акцентом на выполнение запросов и управление метаданными.

Результаты обучения:

  • Настроить и развернуть сетевые службы с использованием протоколов TCP, именованных каналов и WebSockets.
  • Интегрировать приложения на Julia с облачными средами (AWS/Google Cloud) и социальными/мессенджерскими API (Twitter/Email).
  • Реализовывать решения для баз данных с использованием прямых интерфейсов (MySQL, SQLite) и абстракций через промежуточное ПО (JDBC, ODBC, DBI).