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

Бакалаврская программа «Программная инженерия»

21
Апрель

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

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

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


Бессмертный Александр Игоревич


Чернов Алексей Владимирович

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

Аннотация

Учебный курс «Алгоритмы и структуры данных» предлагается студентам бакалавриата по направлению «Программная инженерия» (код 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)