• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2024/2025

Инструментальные средства моделирования

Статус: Дисциплина общефакультетского пула
Когда читается: 1, 2 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Язык: русский
Кредиты: 5

Программа дисциплины

Аннотация

Решение задач с помощью математического моделирования часто связано с проверкой большого числа гипотез, что требует не только создания алгоритмов расчета, но и автоматизированной системы, позволяющей удобно выполнять вычисления, хранить и демонстрировать результаты. Современные автоматизированные системы часто строятся по принципу веб-приложений, в которых пользователи работают через браузер, а вычисления выполняются на удаленном сервере.Курс посвящен созданию веб-приложения, включающего пользовательский интерфейс (фронтенд), бэкенд для выполнения вычислений и СУБД для хранения результатов расчетов. Все компоненты веб-приложения планируется реализовать на Python. Используются навыки, полученные на курсе Компьютерный Практикум 3 по созданию эффективных алгоритмов расчета на Python. Создание веб-приложения выполняется на основе современных технологий: GitLab, PyCharm или VS Code, Python 3.11, Celery, Redis, Docker, Shiny, Numba, Numpy, Scipy, Pandas, Matplotlib, Plotly и др.
Цель освоения дисциплины

Цель освоения дисциплины

  • Получить навыки разработки веб-приложений как автоматизированных систем для выполнения вычислений с использованием современных технологий: сервиса для разработки ПО GitLab, среды разработки PyCharm или VS Code, языка Python 3 и фреймворков для него, технологии виртуализации Docker и др.
Планируемые результаты обучения

Планируемые результаты обучения

  • Уметь управлять множеством взаимосвязанных контейнеров Docker
  • Знает, что такое отложенные задания, брокеры задач. Владеет фреймворком Celery.
  • Описать dockerfile и собрать docker image для своего проекта.
  • Знать основы работы с технологией контейнеризации Docker.
  • Уметь писать функции на языке Python, подходящие для последующей компиляции. Использовать модуль Numba для компиляции таких функций в режиме nopython.
  • умеет устанавливать СУБД MySQL и PostgreSQL
  • называет этапы разработки ПО
  • формулирует требования к веб-приложению, аналогичному по сложности разрабатываемому в рамках курса
  • формулирует техническое задание к веб-приложению, аналогичному по сложности разрабатываемому в рамках курса
  • настраивает среду разработки PyCharm или VS Code на работу с проектом в GitLab
  • воспроизводит процесс разработки нового элемента ПО в системе GitLab и среде разработки PyCharm или VS Code
  • создает минимальное приложение на основе фреймворка Shiny for Python
  • использует компоненты и лейауты фреймворка Shiny for Python и создает пользовательский интерфейс по его описанию или макету
  • создает код на Python обрабатывающий пользовательские действия на основе фреймворка Shiny for Python
  • создает модели таблиц по их описанию используя диалект sqlalchemy
  • создает миграции БД при помощи alembic
  • создает запросы к БД при помощи диалекта sqlalchemy
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Процесс разработки ПО в GitLab
  • Создание фронтенда на Python
  • Создание бэкенда на Python
  • Создание базы данных для хранения результатов
  • Контейнеризация приложения
Элементы контроля

Элементы контроля

  • неблокирующий Задания для самостоятельного выполнения в GitLab и PyCharm или VS Code
  • неблокирующий Защита проектного задания
  • неблокирующий Дополнительные задания сверх объема курса
Промежуточная аттестация

Промежуточная аттестация

  • 2024/2025 2nd module
    0.152 * Дополнительные задания сверх объема курса + 0.127 * Задания для самостоятельного выполнения в GitLab и PyCharm или VS Code + 0.127 * Задания для самостоятельного выполнения в GitLab и PyCharm или VS Code + 0.297 * Защита проектного задания + 0.297 * Защита проектного задания
Список литературы

Список литературы

Рекомендуемая основная литература

  • Head first SQL, Beighley, L., 2007
  • Python : исчерпывающее руководство, Бизли, Д. М., 2023
  • Высокопроизводительные Python-приложения : практическое руководство по эффективному программированию, Горелик, М., 2022
  • Использование Docker : разработка и внедрение программного обеспечения при помощи технологии контейнеров, Моуэт, Э., 2017
  • Программная инженерия : технологии разработки программного обеспечения, Орлов, С. А., 2016

Рекомендуемая дополнительная литература

  • Django: практика создания Web - сайтов на Python, Дронов, В. А., 2016
  • Modeling and simulation in python, Kinser, J. M., 2022
  • MySQL : справочник по языку, Волковой, Я. П., 2005
  • Python : создание приложений : б-ка профессионала, Чан, Уэсли Дж., 2015

Авторы

  • Бобер Станислав Алексеевич