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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Лектор: Сергей Мельников

Контакты: http://t.me/melnikov hse@melnikov.ch (пожалуйста представляйтесь)

Расписание лекций:
вторник 11:10 – 12:30
четверг 11:10 – 12:30

Канал для объявлений:
https://t.me/aisd1_20

Формула оценки
0.3 * Домашнее задание + 0.2 * Контрольная работа + 0.1 * Работа на семинаре + 0.4 * Экзамен

Лекции

записи лекций на ютубе

  1. 27 октября. Алгоритм. Сложность алгоритма. Анализ сложности. Асимптотические оценки. Сортировка вставками. Сортировка слиянием. Jupyterpdf Video
  2. 29 октября. Структуры данных. Динамический массив (list с append-ом). Стек. Очередь. Дек Jupyterpdf Video
  3. 3 ноября. Куча. Сортировка кучей. Jupyterpdf Video
  4. 5 ноября. Сортировка выбором. Сортировка пузырьком. Быстрая сортировка. Поиск k-й порядковой статистики. Jupyterpdf Video
  5. 10 ноября. Оценка снизу на сортировки сравнениями. Сортировка подсчётом. Цифровая сортировка. Jupyter pdf Video
  6. 12 ноября. Двоичный поиск. Троичный поиск. Jupyter pdf Video
  7. 17 ноября. Биномиальная куча, Фибоначчиева куча. Jupyterpdf Video
  8. 19 ноября. Контрольная работа.
  9. 24 ноября. Динамическое программирование. Числа Фибоначчи. Кузнечик, черепашка. Наибольшая возрастающая последовательность. Jupyterpdf Video
  10. 26 ноября. Динамическое программирование. Задача о выравнивании текста. Расстояние Левенштейна. Задача о рюкзаке. JupyterpdfVideo
  11. 3 декабря. Динамическое программирование по подмножествам. Задача о нескольких рюкзаках. Задача Коммивояжёра. JupyterpdfVideo
  12. 8 декабря. Хеш-таблицы. Разрешение коллизий с помощью списков. Открытая адресация. Jupyterpdf Video
  13. 10 декабря. Хеш-таблицы.

Контрольная работа 19.11

  • 19.11 11:10–12:30 Ссылка на контест
  • Контест из 5 задач, аналогичных домашним. Темы: сортировка, стек, очередь, двоичная куча, двоичный поиск, троичный поиск.
  • Оценка зависит от количества решённых задач: 0 задач → 0 баллов, 1 задача → 4 балла, 2 задачи → 7 баллов, 3 задачи → 9 баллов, 4 или 5 задач → 10 баллов, штрафов за количество посылок нет.
  • Используются правила асинхронного прокторинга, аналогичные курсу ОиМП. Ссылку на запись нужно будет отправить через форму до 13:00.
  • Разрешается пользоваться только сайтом тестирующей системы (в том числе своими посылками в ДЗ), средами разработки (не онлайн, а установленными на компьютере), выложенными на wiki jupyter/pdf и документацией на docs.python.org. Заранее отключите все мессенджеры и закройте лишние вкладки.
  • Можно и нужно использовать функции стандартной библиотеки Python (например, незачем реализовывать сортировку вручную, если можно воспользоваться встроенной).

Домашние задания

  1. Домашнее задание 1 (дедлайн — 5 ноября; дедлайн со штрафом 50% — 12 ноября)
  2. Домашнее задание 2 (дедлайн — 12 ноября; дедлайн со штрафом 50% — 19 ноября)
  3. Домашнее задание 3 (дедлайн — 19 ноября; дедлайн со штрафом 50% — 26 ноября) Обратите внимание, что добавлена проверка решений на PEP8.
  4. Домашнее задание 4 (дедлайн — 3 декабря; дедлайн со штрафом 50% — 10 декабря)
  5. Домашнее задание 5 (дедлайн — 10 декабря; дедлайн со штрафом 50% — 17 декабря)
  6. Домашнее задание 6 (дедлайн — 17 декабря; дедлайн со штрафом 50% — 20 декабря)

Итоговая оценка за выполнение домашних заданий пропорциональна общему количеству решённых задач во всех домашних контестах (задачи, решённые после основного дедлайна, учитываются с весом 0.5). В момент появления последнего набора домашних задач также будут объявлены:

  • Количество решённых задач, требующееся для получения итоговой оценки 10 баллов (это количество будет меньше общего количества задач во всех домашних контестах);
  • Величина штрафа за нарушение академических норм. Повторное нарушение влечёт повторный штраф.

Семинары

Подгруппа 209-1