Бакалавриат
2023/2024![Цель освоения дисциплины](/f/src/global/i/edu/objectives.svg)
![Планируемые результаты обучения](/f/src/global/i/edu/results.svg)
![Содержание учебной дисциплины](/f/src/global/i/edu/sections.svg)
![Элементы контроля](/f/src/global/i/edu/controls.svg)
![Список литературы](/f/src/global/i/edu/library.svg)
Алгоритмы и структуры данных-1
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Белавенцев Валерий Евгеньевич,
Бутаков Дмитрий Викторович,
Игнатов Андрей Дмитриевич,
Нестеров Роман Александрович,
Терлыч Никита Андреевич,
Топтунов Александр Алексеевич
Язык:
русский
Кредиты:
4
Контактные часы:
56
Программа дисциплины
Аннотация
Учебный курс «Алгоритмы и структуры данных» предлагается студентам бакалавриата по направлению «Программная инженерия» на факультете компьютерных наук НИУ ВШЭ. Курс относится к обязательным предметам. Основная задача данного курса лежит в формировании основ профессионального каркаса в области проектирования и анализа эффективности алгоритмов, а также разработки структур данных. В рамках курса, в частности, рассматриваются различные способы асимптотического анализа детерминированных и стохастических алгоритмов, подходы к сортировке линейных контейнеров, а также сбалансированные древовидные структуры данных. Лекции и практические занятия тесно взаимосвязаны. Лекции, в первую очередь, предназначены для знакомства с новыми темами, тогда как практические занятия предназначены для решения конкретных задач — аналитически, а также путем реализации алгоритмов на языке С++.
Цель освоения дисциплины
- формирование основ профессионального каркаса в области проектирования и анализа эффективности алгоритмов, а также разработки структур данных
Планируемые результаты обучения
- овладеть принципами построения и методами анализа временной сложности алгоритмов
- овладеть подходами к проектированию базовых и продвинутых структур данных
- получить практический опыт в реализации алгоритмов и структур данных на языке программирования C++
Содержание учебной дисциплины
- Неделя 1. Введение
- Неделя 2. Линейные контейнеры
- Неделя 3. Асимптотический анализ. Разделяй-и-властвуй 1.
- Неделя 4. Разделяй-и-властвуй 2. Рекуррентные соотношения
- Неделя 5. Разделяй-и-властвуй 3. Master-теорема
- Неделя 6. Стохастические алгоритмы
- Неделя 9. Порядковая статистика и нелинейные сортировки
- Неделя 10. Сортировка за и линейное время
- Неделя 11. Бинарные деревья-1
- Неделя 12. Бинарные деревья-2
- Неделя 13. Бинарные деревья-3
- Неделя 14. Бинарные деревья-4
Элементы контроля
- ПР_ЗАНРегулярная работа на практических занятиях
- НАКОПФормализуемая часть накопленной оценки
- ЭКЗАМЕНЭкзамен по курсу
Список литературы
Рекомендуемая основная литература
- Data structures and algorithm analysis in C++, Weiss, M. A., 2006
- Introduction to algorithms, Cormen, T. H., 2009
Рекомендуемая дополнительная литература
- Алгоритмы на С++ : анализ структуры данных, сортировка, поиск, алгоритмы на графах, Седжвик, Р., 2014
- Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. - 978-5-496-02541-6 - Санкт-Петербург: Питер - 2017 - 364142 - https://ibooks.ru/bookshelf/364142/reading - iBOOKS