Бакалавриат
2021/2022
Алгоритмы и структуры данных
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Бессмертный Александр Игоревич,
Нестеров Роман Александрович,
Чернов Алексей Владимирович
Язык:
русский
Кредиты:
4
Контактные часы:
60
Программа дисциплины
Аннотация
Учебный курс «Алгоритмы и структуры данных» предлагается студентам бакалавриата по направлению «Программная инженерия» (код 09.03.04) на факультете компьютерных наук Национального исследовательского университета — Высшая Школа экономики (НИУ ВШЭ). Курс относится к обязательным предметам (блок/базовый модуль Б.Пр.Б, Б.Пр – Профильные дисциплины рабочего учебного плана на 2022–2023 учебный год). Курс двухмодульный (модули 1 и 2).
Программа учебной дисциплины подготовлена для преподавателей, ответственных за курс (а также преподавателей смежных дисциплин), учебных ассистентов, слушателей курса (студентов), зачисленных на курс, а также экспертов и официальных лиц, осуществляющих аккредитацию.
Курс посвящен основам проектирования и анализа алгоритмов. Он также включает в себя обучение фундаментальным структуры данных, а так же их реализации на основе стандартной библиотеки C++ (STL). Курс включает блок тем, посвященных теории автоматов, регулярных языков и грамматик, а также основам теории сложности.
Лекции и практические занятия тесно взаимосвязаны. Лекции в первую очередь предназначены для знакомства с новыми темами, тогда как практические занятия предназначены для решения конкретных задач — аналитически, а также путем кодирования программы на языке С++.
Цель освоения дисциплины
- Изучить принципы построения алгоритмов
- Научиться анализировать сложность алгоритма с точки зрения времени (временная) и памяти (пространственная)
- Изучить принципы проектирования базовых, а также некоторых продвинутых структур данных
- Получить практический опыт в реализации алгоритмов и структур данных в виде C++-приложений, а также применять их для решения специализированных задач
- Изучить базовые концепции теории автоматов, регулярных языков и грамматик
- Получить практические навыки построения конечных автоматов и регулярных выражений
Планируемые результаты обучения
- Основные концепции и методы построения алгоритмов.
- Навыки проектирования структур данных с использованием C++.
- Подходы к анализу сложности алгоритмов по времени и памяти.
- Навыки построения модели программ и процессов в виде конечных автоматов и регулярных выражений.
- Навыки работы в команде с использованием инструментов совместной работы.
- Навыки презентации.
- Навыки написания отчетов и технической документации, в том числе быстро изменяющейся документации с использованием вики и других специальных инструментов.
- Навыки самоанализа и экспертной оценки.
Содержание учебной дисциплины
- Основные понятия. Программирование на C++.
- Элементарные структуры данных
- Рекурсивные структуры данных
- Специальные и продвинутые структуры данных
- Абстрактные типы данных (АТД) и стандартная библиотека шаблонов (STL) С++
Элементы контроля
- Домашние задания в системе Яндекс.Контест (HW)
- Мини-тесты (SM)Короткие тесты для проверки усвоения основного материала. Проводятся раз в 2 недели с помощью системы интерактивных тестов Kahoot.
- Итоговый тест (TS)
- Экзамен (EX)
Промежуточная аттестация
- 2021/2022 учебный год 1 модульПо результатам работы в 1 модуле студенты получат накопленную оценку, в которую входят результаты решения задач Яндекс.Контеста и мини-тестов, которые были проведены в 1 модуле.
- 2021/2022 учебный год 2 модуль0.025 * Мини-тесты (SM) + 0.225 * Домашние задания в системе Яндекс.Контест (HW) + 0.5 * Экзамен (EX) + 0.25 * Итоговый тест (TS)