• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Article
Statistical testing of segment homogeneity in classification of piecewise-regular objects

Savchenko A., Belova N. S.

International Journal of Applied Mathematics and Computer Science. 2015. Vol. 25. No. 4. P. 915-925.

Article
Reconstruction of a word from a finite set of its subwords under the unit shift hypothesis. I. Reconstruction without for bidden words1

Smetanin Y., Ulyanov M.

Cybernetics and Systems Analysis. 2015. Vol. 50. No. 1. P. 148-156.

Article
VTMine Framework as Applied to Process Mining Modeling

Sergey Andreevich Shershakov.

International Journal of Computer and Communication Engineering. 2015. Vol. 4. No. 3. P. 166-179.

Algorithms and Data Structures-1

2024/2025
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Elective course
When:
2 year, 1, 2 module

Instructors

Belaventsev, Valerii

Belaventsev, Valerii

Бутаков Дмитрий Викторович

Бутаков Дмитрий Викторович

Terlych, Nikita

Terlych, Nikita

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

Аннотация

Учебный курс "Алгоритмы и структуры данных" является обязательной дисциплиной для студентов второго курса по направлению "Программная инженерия" факультета компьютерных наук НИУ ВШЭ. Основная цель курса заключается в формировании у студентов навыков анализа производительности алгоритмов, работающих с различными структурами данных, и выбора оптимальных решений для конкретных практических задач. В ходе обучения рассматриваются методы асимптотического анализа сложности как детерминированных, так и стохастических алгоритмов, изучаются алгоритмы сортировки, методы эффективного хранения и поиска данных, включая организацию хеш-таблиц и деревьев, а также графовые и строковые алгоритмы. Особое внимание уделяется различным парадигмам разработки алгоритмов, таким как жадные методы, приближенные алгоритмы и динамическое программирования. Кроме того, рассматриваются фундаментальный вопросы разрешимости и вычислимости. Лекции направлены на систематическое освоение материала, тогда как практические занятия позволяют закрепить полученные знания через решение задач и реализацию изученных алгоритмов и структур данных на языке программирования С++. Тесная взаимосвязь лекционного материала и практической работы обеспечивает глубокое и всестороннее освоение курса.
Цель освоения дисциплины

Цель освоения дисциплины

  • развитие навыков анализа производительности алгоритмов, работающих с различными структурами данных, и выбора оптимальных решений для конкретных практических задач разработки программ
Планируемые результаты обучения

Планируемые результаты обучения

  • овладеть принципами построения и методами анализа временной сложности алгоритмов
  • овладеть подходами к проектированию базовых и продвинутых структур данных
  • получить практический опыт в реализации алгоритмов и структур данных на языке программирования C++
  • овладеть методами точного и асимптотического анализа сложности алгоритмов
  • овладеть подходами к анализу, проектированию и реализации базовых (массивы, списки, стеки, очереди) и продвинутых (хеш-таблицы, очереди с приоритетами, сбалансированные деревья поиска, графы) структур данных
  • получить практический опыт реализации изученных алгоритмов и структур данных на языке программирования С++
  • овладеть специальными подходами к разработке алгоритмов (стохастические и приближенные алгоритмы)
  • овладеть основными парадигмами разработки алгоритмов (жадные алгоритмы, динамическое программирование и "разделяй-и-властвуй")
  • овладеть подходами точного, асимптотического и амортизированного анализа сложности алгоритмов
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Неделя 1. Введение
  • Неделя 2. Линейные
  • Неделя 3. Асимптотический
  • Неделя 4. Асимптотический-2
  • Неделя 5. Мастер-теорема
  • Неделя 6-7. Стохастические
  • Неделя 8. Сортировка, основанная
  • Неделя 9. Линейная
  • Неделя 10. Бинарные
  • Неделя 11. AVL
  • Неделя 12. Случай
  • Неделя 13. Splay
Элементы контроля

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

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

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

  • 2024/2025 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 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/364142 - 364142 - iBOOKS

Авторы

  • Нестеров Роман Александрович