• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
04
Октябрь

Алгоритмы и структуры данных

2026/2027
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Курс обязательный
Когда читается:
1-й курс, 1, 2 модуль

Преподаватели

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

Аннотация

Курс «Алгоритмы и структуры данных» направлен на изучение подходов к решению задач из различных областей. Лекционный материал состоит из теоретического описания алгоритмов и структур данных для решения алгоритмических задач. Семинары представляют собой применение и реализацию описанного на лекции материала.
Цель освоения дисциплины

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

  • Получение знаний о существующих моделях вычислений и методах анализа алгоритмов.
  • Освоение эффективных алгоритмов сортировки и поиска, а также понимание их применимости в различных задачах.
  • Изучение структур данных, включая бинарные деревья и сбалансированные деревья, и их применение для оптимизации вычислительных процессов.
  • Формирование навыков работы с задачами, связанными с отрезками, и использование персистентных структур данных для хранения и обработки данных.
  • Получение базовых знаний теории графов и изучение их свойств и применения.
  • Освоение алгоритмов поиска кратчайших путей и минимальных остовных деревьев.
  • Изучение подходов к решению задач на паросочетания и нахождение максимального потока в графах.
  • Формирование умений анализировать, проектировать и реализовывать алгоритмы с учетом их эффективности.
Планируемые результаты обучения

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

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

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

  • Вводная лекция. Модель вычислений и методы анализа алгоритмов
  • Эффективные алгоритмы сортировки и поиска
  • Структуры данных. Бинарные деревья поиска и сбалансированные деревья
  • Задачи на отрезках. Персистентные структуры данных
  • Теория графов
  • Кратчайшие пути и минимальные остовы
  • Паросочетания и задачи о максимальном потоке
Элементы контроля

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

  • неблокирующий Теоретический тест
    Каждый тест включает 10 вопросов в открытой форме на понимание теоретического материала. Задания выполняются в аудитории самостоятельно без использования вспомогательных материалов, в том числе электронных устройств, а также не допускается общение студентов между собой.
  • неблокирующий Аудиторные практические задания
    Проводится офлайн с показом студентом экрана с выполненным заданием/работающим кодом и объяснением логики решения задачи, если оно необходимо. Объем выполненных заданий должен соответствовать объему заданий в соответствии с планом работы группы.
  • неблокирующий Контрольная работа
    Самостоятельное выполнение практических заданий в аудитории без использования вспомогательных материалов, за исключением интегрированной среды разработки (IDE).
  • неблокирующий Практические домашние задания
    Домашние задания включают реализацию решения на языке Python, описание формата входных и выходных данных, указание используемых структур данных и алгоритмов, проверка ограничений их применимости, а также оценка временной и пространственной сложности решения. Разрешается использование официальной документации, любой учебной литературы, использование любых средств получения информации о возникших ошибках интерпретатора, если это не приводит к получению готового решения задачи.
  • неблокирующий Теоретический опрос
    Устный опрос по материалам лекции
Промежуточная аттестация

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

  • 2026/2027 2nd module
    0.2 * Практические домашние задания + 0.25 * Контрольная работа + 0.25 * Аудиторные практические задания + 0.25 * Теоретический тест + 0.05 * Теоретический опрос
Список литературы

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

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

  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.
  • Introduction to algorithms, Cormen, T. H., 2009
  • Грокаем алгоритмы : иллюстрированное пособие для программистов и любопытствующих, Бхаргава, А., 2023
  • Совершенный алгоритм. Основы - 978-5-4461-0907-4 - Рафгарден Тим - 2020 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/365286 - 365286 - iBOOKS

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

  • Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. - 978-5-4461-0923-4 - Бхаргава А. - 2022 - Санкт-Петербург: Питер - https://ibooks.ru/products/376971 - 376971 - iBOOKS
  • Совершенный алгоритм : основы, Рафгарден, Т., 2019

Авторы

  • Кива Павел Сергеевич
  • Орлова Екатерина Дмитриевна