• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Efficient Algorithms

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Delivered at:
Department of Informatics
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructors


Козлова Дарья Дмитриевна


Копелиович Сергей Владимирович


Ткаченко Данил Михайлович

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

Аннотация

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

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

  • Формирование у студентов теоретических знаний и практических навыков в области теории алгоритмов, современных структур данных и их реализации на языке программирования C++ для построения математических моделей дискретных структур и разработки программного обеспечения
Планируемые результаты обучения

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

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

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

  • Раздел 1. Основные понятия теории алгоритмов и структур данных
  • Раздел 2. Динамическое программирование. Комбинаторные и графовые алгоритмы
  • Раздел 3. Элементы теории сложности алгоритмов. Кратчайшие пути. Жадные алгоритмы
  • Раздел 4. Деревья поиска, деревья отрезков и другие аналогичные структуры
  • Раздел 5. Алгоритмы на графах. Потоки в орграфах. Строки
  • Раздел 6. Игры на графах. Быстрое преобразование Фурье. Линейная алгебра
Элементы контроля

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

  • блокирующий Экзамен
    Письменный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаменационный билет содержит два вопроса из перечня вопросов к экзамену. На подготовку ответа выделяется 2,5 часа.
  • неблокирующий Домашнее задание №2
    Домашнее задание №2 выдается студентам в одном варианте и состоит из 6 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
  • блокирующий Коллоквиум
    Коллоквиум проводится в форме ответов на вопросы билета. Билет содержит два вопроса из перечня вопросов кколлоквиуму. На подготовку ответа выделяется 2,5 часа.
  • неблокирующий Домашнее задание №1
    Домашнее задание №1 выдается студентам в одном варианте и состоит из 6 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - представленные в письменном виде решения задач.
Промежуточная аттестация

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

  • 2024/2025 2nd module
    Результирующая оценка по дисциплине рассчитывается следующим образом: Орез = (Оит1 + Оит2) / 2, где Оит1 = 0,59*Од/з1 + 0,41*Окол (оценка за первый модуль) Оит2 = 0,59*Од/з2 + 0,41*Оэкз (оценка за второй модуль)
Список литературы

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

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

  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.
  • Алгоритмы и структуры данных: Учебник / Белов В.В., Чистякова В.И. - М.:КУРС, НИЦ ИНФРА-М, 2016. - 240 с.: 60x90 1/16. - (Бакалавриат) (Переплёт 7БЦ) ISBN 978-5-906818-25-6 - Режим доступа: http://znanium.com/catalog/product/551224

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

  • Skiena, S. S. (2008). The Algorithm Design Manual (Vol. 2nd ed). London: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=277139
  • Структуры и алгоритмы обработки данных: обьектно ориентированный подход и реализация на С++ - 5-94157-506-8 - Кубенский А. - 2010 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/bookshelf/18563 - 18563 - iBOOKS

Авторы

  • Кузнецов Антон Михайлович
  • Юдаева Оксана Юрьевна