• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

Алгоритмы и структуры данных-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
Элементы контроля

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

  • неблокирующий ПР_ЗАН
    Регулярная работа на практических занятиях
  • неблокирующий НАКОП
    Формализуемая часть накопленной оценки
  • неблокирующий ЭКЗАМЕН
    Экзамен по курсу
Промежуточная аттестация

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

  • 2023/2024 2nd module
    0.48 * НАКОП + 0.17 * ПР_ЗАН + 0.35 * ЭКЗАМЕН
Список литературы

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

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

  • 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