Магистратура
2026/2027



Алгоритмы и структуры данных
Статус:
Курс обязательный (Бэкенд-разработка и архитектура программных систем)
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1, 2 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Горденко Мария Константиновна
Язык:
русский
Кредиты:
6
Контактные часы:
48
Программа дисциплины
Аннотация
Алгоритмы и структуры данных являются основой для любой программной системы: распределенной системы, мобильного приложения, базы данных, web приложения. В данном курсе студент освоит основные структуры данных и алгоритмы, которые послужат фундаментом для всех дальнейших знаний в области компьютерных наук и программной инженерии.
Цель освоения дисциплины
- научиться выполнять асимптотический анализ сложности алгоритмов
- формирование у студентов профессиональных компетенций, связанных с использованием теоретических знаний в области теории алгоритмов и теории сложности вычислений
- получение студентам навыков самостоятельной исследовательской работы, предполагающей изучение специфических методов анализа алгоритмов, инструментов и средств, необходимых для решения актуальной, в аспекте программной инженерии, задачи выбора рациональных алгоритмов, в зависимости от особенностей применения разрабатываемых программ
- ознакомить студентов с типичными методами разработки эффективных алгоритмов и с эффективными алгоритмами решения задач из важнейших разделов дискретной математики и программирования
- развить у студентов умение оценивать сложность готовых алгоритмов и задач и конструировать собственные эффективные алгоритмы
Планируемые результаты обучения
- Уметь выполнять асимптотический анализ сложности алгоритмов.
- Улучшить навыки программирования.
- Развить у студентов умение оценивать сложность готовых алгоритмов и задач и конструировать собственные эффективные алгоритмы.
- Ознакомить студентов с типичными методами разработки эффективных алгоритмов и с эффективными алгоритмами решения задач из важнейших разделов дискретной математики и программирования.
Содержание учебной дисциплины
- Оценка сложности алгоритма.
- Линейные структуры данных.
- Линейные алгоритмы.
- Понятие рекурсии. Основные задачи рекурсии. Задача о ханойских башнях.
- Задача сортировки.
- Итеративные сортировки.
- Задача поиска.
- Двоичная куча. Пирамидальная сортировка.
- Динамическое программирование. Основные задачи, решаемые с помощью динамического программирования.
- Алгоритмы обработки строк.
- Жадные алгоритмы.
- Основные понятия теории графов. Представление графов в памяти компьютера. Алгоритмы обхода графов.
- Алгоритмы, основанные на обходах графов.
Элементы контроля
- КонтестыКонтесты — либо автоматические проверяемые задачки, либо в контест нужно будет сдать файлик для ручной проверки (небольшая лабораторная работа по сложностям алгоритмов) — 8 штук (6 контестов и 2 ipynb).
- ТестыТеоретические тесты с прокторингом, 2 штуки
- ЭкзаменЭкзамен состоит из двух частей: 〰 теоретический тест 30% 〰 задачи в контесте 70% Экзамен проходит с прокторингом.