Бакалавриат
2026/2027




Компьютерный практикум 3
ID 1123713
Статус:
Курс обязательный (Прикладная математика)
Кто читает:
Департамент прикладной математики
Когда читается:
3-й курс, 1-4 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Бобер Станислав Алексеевич
Язык:
русский
Кредиты:
3
Контактные часы:
34
Программа дисциплины
Аннотация
Язык Python стал стандартным языком для изучения в технических ВУЗах. На 3 курсе студенты ПМ уже знакомы с базовым уровнем языка Python, а также владеют средствами разработки языков Си/Си++. Умеют использовать различные структуры данных и реализовывать базовые и ряд продвинутых алгоритмов. В рамках данного курса предлагается рассмотреть походы к решениям сложных задач средствами языка Python, который позволяет реализовать эффективные вычисления за счет использования различных технологий: jit-компиляция, распараллеливание и др. Также в данной дисциплине рассматриваются темы, направленные на изучение искусственного интеллекта: нейронные сети, стохастический градиентный спуск, диффузионные модели, детекция объектов, рекурентные нейронные сети.
Цель освоения дисциплины
- Общие принципы построения эффективного вычислительного кода на Python
- Освоение технологии JIT-компиляции и распараллеливания вычислений в рамках одной машины
- Создание алгоритмов быстрых вычислений для решения физических задач
- Освоение технологий программирования двумерной и трехмерной процедурной графики
Планируемые результаты обучения
- Уметь работать в среде разработки PyCharm
- - создает многомерные массивы Numpy - изменяет и обращается к содержащимся в них данных и их структуру - осуществляет их агрегацию и объединение - производит матричные операции и использовать принцип бродкастинга - применяет встроенные в библиотеку математические и статистические функции
- Уметь писать функции на языке Python, подходящие для последующей компиляции. Использовать модуль Numba для компиляции таких функций в режиме nopython.
- умеет реализовывать конечно-разностный алгоритм на Python для численного решения задачи о переносе тепла; умеет применять модули Numpy и/или Numba для ускорения вычислений
- умеет строить алгоритм на языке Python для решения задач Прокрустового анализа; умеет применять Numpy и/или Numba для ускорения вычислений
- умеет реализовывать алгоритм для моделирования многоагентной системы (Boids); умеет визуализировать систему в динамике при помощи модуля VisPy; умеет применять Numpy и/или Numba для ускорения вычислений; умеет создавать видеоролики, демонстрирующие поведение многоагентной системы при помощи ffmpeg
- умеет создавать на Python алгоритмы процедурной графики с использованием Signed Distance Field при помощи модуля Taichi
- умеет создавать на Python алгоритмы трехмерной процедурной графики на основе Ray Marching и модуля Taichi
- умеет реализовывать алгоритм вычисления наименьшего общего предка (LCA) на основе минимума в диапазоне (RMQ) и разреженной таблицы (Sparse Table); умеет применять Numpy и/или Numba для ускорения вычислений
- умеет реализовывать алгоритмы численного интегрирования систем обыкновенных дифференциальных уравнений по явной схеме Рунге-Кутты; умеет применять Numpy и/или Numba для ускорения вычислений;
- умеет создавать алгоритмы расчета интервалов видимости космического аппарата с наземного пункта с учетом дополнительных условий используя модуль spiceypy; умеет визуализировать рассчитанные интервалы в виде карты
Содержание учебной дисциплины
- Общий подход к созданию быстрого кода на Python для решения задач
- JIT-компиляция и модуль Numba
- Модуль Numpy для быстрых вычислений
- Решение физических задач на основе метода конечных разностей
- Пространственные и другие преобразования
- Динамические многоагентные системы
- Освоение среды разработки PyCharm
- Процедурная графика
- Трехмерная процедурная графика
- Алгоритмы на структурах данных
- Численное интегрирование динамических систем
- Численный поиск корней сложной функции
Элементы контроля
- Домашнее задание 1
- Домашнее задание 2
- Домашнее задание 3
- Домашнее задание 4
- Дополнительные задания сверх объема курса
Промежуточная аттестация
- 2026/2027 2nd module0.424 * Домашнее задание 1 + 0.424 * Домашнее задание 2 + 0.076 * Дополнительные задания сверх объема курса
- 2026/2027 4th module0.212 * Домашнее задание 4 + 0.212 * Домашнее задание 3 + 0.212 * Домашнее задание 1 + 0.212 * Домашнее задание 2 + 0.076 * Дополнительные задания сверх объема курса