• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Algorithms and Data Structures 2

2023/2024
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Compulsory course
When:
2 year, 1-4 module

Instructor


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

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

Аннотация

Дисциплина "Алгоритмы и структуры данных» относится к блоку дисциплин специализации профессиональной подготовки бакалавра. В рамках дисциплины мы формируем умение мыслить и искать решения для абстрактных задач, способность ясно выражать свои мысли в коде, знание базовых алгоритмов и структур данных, умение оценивать сложность полученного решения.
Цель освоения дисциплины

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

  • • Формирование у студентов профессиональных компетенций, связанных с использованием теоретических знаний в области теории алгоритмов и теории сложности вычислений
  • • Получение практических навыков в области разработки ресурсно-эффективных алгоритмов на основе теоретического анализа
  • • Получение студентам навыков самостоятельной исследовательской работы, предполагающей изучение специфических методов анализа алгоритмов, инструментов и средств, необходимых для решения актуальной, в аспекте программной инженерии, задачи выбора рациональных алгоритмов, в зависимости от особенностей применения разрабатываемых программ
  • • Создание прочного программистско-алгоритмический базис, основываясь на котором, можно решать достаточно сложные алгоритмические задачи. При прохождении курса студенты должны решить несколько десятков задач, каждая из которых иллюстрирует либо отдельные алгоритмы, либо их композицию. Основной принцип, проводимый в курсе — необходимость применения принципа разделения задачи на более простые подзадачи — классическую триаду «анализ, декомпозиция, синтез» осведомиться о современных тенденциях в разработке структур данных
Планируемые результаты обучения

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

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

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

  • Сложности. Поиск.
  • Сложности
  • Структуры данных на указателях
  • Структуры данных на массивах
  • Балансировка деревьев
  • Структуры данных hash
  • Структуры данных прочие
  • Разбор задач на структурах
  • Сортировки
  • Графы
  • Графы Графы – деревья Графы - поиск в ширину и связанности Графы - поиск в глубину Графы - ориентированные
  • Графы 2
  • Графы 3
  • Динамика база, Динамика и РиВ, Динамика
  • Строки
  • Геометрия
Элементы контроля

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

  • неблокирующий Контрольная работа 1
  • блокирующий Лабораторная работа 1
  • блокирующий Экзамен
    Билеты, в них практика и теория, + дополнительные вопросы/задания
  • неблокирующий Контрольная работа 2
  • неблокирующий Контрольная работа 3
  • неблокирующий Контрольная работа 4
  • блокирующий Лабораторная работа 2
  • блокирующий Экзамен
    Билеты, в них практика и теория, + дополнительные вопросы/задания
Промежуточная аттестация

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

  • 2023/2024 учебный год 2 модуль
    0.3 * Контрольная работа 1 + 0.001 * Лабораторная работа 1 + 0.699 * Экзамен
  • 2023/2024 учебный год 4 модуль
    0.2 * Контрольная работа 4 + 0.2 * Контрольная работа 2 + 0.2 * Контрольная работа 3 + 0.001 * Лабораторная работа 2 + 0.399 * Экзамен
Список литературы

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

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

  • Головешкин, В. А. Теория рекурсии для программистов / В. А. Головешкин, М. В. Ульянов. — Москва : ФИЗМАТЛИТ, 2006. — 292 с. — ISBN 5-9221-0721-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/2165 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Петрушин, В. Н. Информационная чувствительность компьютерных алгоритмов : учебное пособие / В. Н. Петрушин, М. В. Ульянов. — Москва : ФИЗМАТЛИТ, 2010. — 224 с. — ISBN 978-5-9221-1264-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/2275 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Ульянов, М. В. Ресурсно-эффективные компьютерные алгоритмы. Разработка и анализ : учебное пособие / М. В. Ульянов. — Москва : ФИЗМАТЛИТ, 2008. — 304 с. — ISBN 978-5-9221-0950-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/2354 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Prabhu, C. S. R. (2019). Fog Computing, Deep Learning and Big Data Analytics-Research Directions. Singapore: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1994845