День 1 Летней школы Julia 2025
Добро пожаловать на Летнюю школу Julia 0x7E9!
print("Всем привет!")
Организационная информация
🖐️ Пять дней занятий
Лекции разной длительности: от 1 часа до 2.5 часов с перерывом
👉 Сопроводительные материалы в Сообществе engee.com/community
🤙 Тесты в конце каждой лекции: 2 попытки на каждый вопрос
🖖 Сертификат по окончанию, порог сдачи 70%
Если не добрали баллов, можно будет пересдать курс
✊ Давайте начнём!
Почему Engee

.png)
Не только командная строка и скрипты, но и…
Преднастроенное окружение
Инженерные приложения-калькуляторы с доступом к любому инструменту платформы
Окна с графиками, которые можно откреплять
Файловый браузер
Средства связи с внешними системами (API, Engee Device Manager и просто HTTPs)
и т.д.
.png)
Где находятся основные инструменты?
Файловый браузер
Редактор переменных
Редактор скриптов
Командная строка
Личный кабинет
Документация
Настройки внешнего вида интерфейса
Техподдержка
Зачем пользоваться Julia?
Чтобы писать научные и инженерные проекты на полноценном, современном языке
]add Quaternions
using Quaternions
quat(0,1,0,0) * quat(0,0,1,0) * quat(0,0,0,1)
Чтобы создавать изящные программы
function alpha(x)
return 1 + 2*x
end
α(x) = 1 + 2x
α(2) == alpha(2)
Чтобы пользоваться удобной математической нотацией
using PyCall
py"""
import numpy as np
V = np.random.rand(80,40)
D = np.random.rand(80,80)
print(V.T @ D**3 @ V)
"""
V = rand(80,40)
D = rand(80,80)
V' * D.^3 * V
Чтобы программы, как из одной строчки, так и из тысяч строк высокоуровневого кода, выполнялись со скоростью программ на Си
include("compare_julia_python.jl")
include("compare_julia_matlab.jl")
Чтобы можно было зафиксировать версии всех библиотек и воспроизводить все условия в которых код работал
]status
EngeePkg.purge()
Чтобы вы могли отладить программу вплоть до ассемблерного кода
1+2
@code_typed 1+2
@code_lowered 1+2
@code_llvm 1+2
@code_native 1+2
Чтобы программировать, сохраняя математический подход
using PyCall
py"print(list(range(1,20)))"
using MATLAB
mat"1:20"
print(collect(1:20))
Синтаксис MATLAB, Python и Julia
Operation |
MATLAB |
Python |
Julia |
|---|---|---|---|
Row vector: size (1, n) |
A = [1 2 3]
|
A = np.array([1, 2, 3]).reshape(1, 3)
|
A = [1 2 3]
|
Column vector: size (n, 1) |
A = [1; 2; 3]
|
A = np.array([1, 2, 3]).reshape(3, 1)
|
A = [1 2 3]'
|
1d array: size (n, ) |
Not possible |
A = np.array([1, 2, 3])
|
A = [1; 2; 3]
or A = [1, 2, 3]
|
Integers from j to n with step size k |
A = j:k:n
|
A = np.arange(j, n+1, k)
|
A = j:k:n
|
Linearly spaced vector of k points |
A = linspace(1, 5, k)
|
A = np.linspace(1, 5, k)
|
A = range(1, 5,
length = k)
|
Сравнения по скорости
Желаем всем интересной Школы Julia!
Документация: https://engee.com/helpcenter
Сообщество: https://engee.com/community