• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2026/2027

Алгоритмический инструментарий

ID 1141507

Статус: Курс обязательный (Инженерия данных)
Когда читается: 1-й курс, 3, 4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 40

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

Аннотация

В курсе рассматриваются основные подходы к анализу и проектированию алгоритмов и структур данных. Среди тем, изучаемых в курсе — Освоение языка С++, асимптотическая оценка сложности алгоритма в худшем случае, эффективные алгоритмы сортировки и выбора порядковых статистик, структуры данных (линейные структуры данных, двоичные деревья поиска, хеш-таблицы, деревья отрезков, декартовы деревья), способы проектирования алгоритмов (динамическое программирование, жадная стратегия), разработка и реализация собственных отказоустойчивых структур данных с покрытием тестами.
Цель освоения дисциплины

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

  • Знать наиболее важные алгоритмы и структуры данных, основные принципы их проектирования и анализа.
  • Иметь навыки реализации алгоритмов на языках Python и C++.
  • Уметь обосновывать корректность алгоритмов, проводить теоретическую и экспериментальную оценку их временной сложности.
  • Уметь формализовать условия алгоритмических задач, разбивать задачи на подзадачи и разрабатывать эффективные способы их решения.
  • Применять алгоритмические подходы к обработке больших объёмов данных с учётом ограничений вычислительных ресурсов.
Планируемые результаты обучения

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

  • • -ознакомление студентов с основными принципами проектирования и анализа алгоритмов и структур данных;
  • • -развитие навыков обоснования корректности алгоритмов, их практической реализации, теоретической и экспериментальной оценки их временной сложности
  • Реализовывать алгоритмические решения на C++ и Python.
  • Использовать стандартные библиотеки и структуры данных.
  • Анализировать временную и пространственную сложность алгоритмов.
  • Применять алгоритмы сортировки, поиска и выбора порядковых статистик.
  • Обосновывать выбор алгоритма с учётом условий задачи.
  • Применять основные структуры данных для решения алгоритмических задач.
  • Реализовывать операции поиска, добавления, удаления и обновления элементов.
  • Использовать структуры данных для обработки диапазонов и выполнения запросов.
  • Оценивать сложность операций со структурами данных.
  • Выбирать структуры данных с учётом характеристик информации и требований к её обработке.
  • Применять динамическое программирование и жадные алгоритмы.
  • Решать алгоритмические задачи оптимизации.
  • Использовать основные алгоритмы на графах.
  • Обосновывать корректность алгоритмических решений.
  • Сравнивать различные подходы к решению задач.
  • Выбирать и применять алгоритмические подходы к обработке больших объёмов данных с учётом ограничений вычислительных ресурсов.
  • Использовать базовые принципы потоковой и блочной обработки.
  • Объяснять основные принципы распределённой обработки данных.
  • Выбирать алгоритмические решения с учётом объёма информации и доступных ресурсов.
  • Разрабатывать и тестировать алгоритмические решения.
  • Выявлять ошибки и проверять корректность программ.
  • Проводить экспериментальную оценку производительности.
  • Оптимизировать алгоритмы с учётом ограничений по времени и памяти.
  • Обосновывать выбор и эффективность реализованных решений.
Содержание учебной дисциплины

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

  • Основы алгоритмического программирования и анализа алгоритмов
  • Структуры данных и алгоритмы эффективной обработки информации
  • Методы решения алгоритмических и оптимизационных задач
  • Алгоритмические подходы к обработке больших объёмов данных
  • Практическая реализация и оптимизация алгоритмических решений
Элементы контроля

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

  • неблокирующий Практическое задание модуля 3
    Студент индивидуально выполняет практическое задание в соответствии с требованиями, размещёнными в LMS. Студент разрабатывает программное решение на Python или C++ с использованием изученных алгоритмов и структур данных. Исходный код и необходимые материалы загружаются в LMS в установленном для задания формате. Преподаватель проверяет работу и предоставляет обратную связь в LMS.
  • неблокирующий Практическое задание модуля 4
    Студент индивидуально выполняет практическое задание в соответствии с требованиями, размещёнными в LMS. Студент разрабатывает программное решение на Python или C++ с применением изученных алгоритмов и структур данных. Исходный код и необходимые материалы загружаются в LMS в установленном для задания формате. Преподаватель проверяет работу и предоставляет обратную связь в LMS.
  • неблокирующий Итоговый тест
    Студент самостоятельно проходит итоговое тестирование в LMS по материалам дисциплины. Тест включает вопросы, направленные на проверку понимания алгоритмов, структур данных, принципов их работы, оценки сложности и выбора эффективных решений для различных вычислительных задач.
Промежуточная аттестация

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

  • 2026/2027 4th module
    Формула итоговой оценки: 0,4 × практическое задание модуля 3 + 0,4 × практическое задание модуля 4 + 0,2 × итоговый тест. Максимальная оценка — 10 баллов.
Список литературы

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

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

  • Data structures and algorithm analysis in C++, Weiss, M. A., 2006
  • Introduction to algorithms, Cormen, T. H., 2009

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

  • Программирование на языке C++ - Андрианов И. А., Кочкин Д. В., Ржеуцкая С. Ю. - Вологодский государственный университет - 978-5-87851-765-2 - 2018 - русский - https://e.lanbook.com/book/246689 - ЛАНЬ - 246689

Авторы

  • Ахмедова Гюнай Интигам кызы