Алгоритмы и структуры данных 1 2020/2021
Материал из Wiki - Факультет компьютерных наук
Версия от 11:01, 10 декабря 2020; SergeyMelnikov (обсуждение | вклад)
Лектор: Сергей Мельников
Контакты: 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 * Экзамен
Лекции
- 27 октября. Алгоритм. Сложность алгоритма. Анализ сложности. Асимптотические оценки. Сортировка вставками. Сортировка слиянием. Jupyterpdf Video
- 29 октября. Структуры данных. Динамический массив (list с append-ом). Стек. Очередь. Дек Jupyterpdf Video
- 3 ноября. Куча. Сортировка кучей. Jupyterpdf Video
- 5 ноября. Сортировка выбором. Сортировка пузырьком. Быстрая сортировка. Поиск k-й порядковой статистики. Jupyterpdf Video
- 10 ноября. Оценка снизу на сортировки сравнениями. Сортировка подсчётом. Цифровая сортировка. Jupyter pdf Video
- 12 ноября. Двоичный поиск. Троичный поиск. Jupyter pdf Video
- 17 ноября. Биномиальная куча, Фибоначчиева куча. Jupyterpdf Video
- 19 ноября. Контрольная работа.
- 24 ноября. Динамическое программирование. Числа Фибоначчи. Кузнечик, черепашка. Наибольшая возрастающая последовательность. Jupyterpdf Video
- 26 ноября. Динамическое программирование. Задача о выравнивании текста. Расстояние Левенштейна. Задача о рюкзаке. JupyterpdfVideo
- 3 декабря. Динамическое программирование по подмножествам. Задача о нескольких рюкзаках. Задача Коммивояжёра. JupyterpdfVideo
- 8 декабря. Хеш-таблицы. Разрешение коллизий с помощью списков. Открытая адресация. Jupyterpdf Video
- 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 (дедлайн — 5 ноября; дедлайн со штрафом 50% — 12 ноября)
- Домашнее задание 2 (дедлайн — 12 ноября; дедлайн со штрафом 50% — 19 ноября)
- Домашнее задание 3 (дедлайн — 19 ноября; дедлайн со штрафом 50% — 26 ноября) Обратите внимание, что добавлена проверка решений на PEP8.
- Домашнее задание 4 (дедлайн — 3 декабря; дедлайн со штрафом 50% — 10 декабря)
- Домашнее задание 5 (дедлайн — 10 декабря; дедлайн со штрафом 50% — 17 декабря)
- Домашнее задание 6 (дедлайн — 17 декабря; дедлайн со штрафом 50% — 20 декабря)
Итоговая оценка за выполнение домашних заданий пропорциональна общему количеству решённых задач во всех домашних контестах (задачи, решённые после основного дедлайна, учитываются с весом 0.5). В момент появления последнего набора домашних задач также будут объявлены:
- Количество решённых задач, требующееся для получения итоговой оценки 10 баллов (это количество будет меньше общего количества задач во всех домашних контестах);
- Величина штрафа за нарушение академических норм. Повторное нарушение влечёт повторный штраф.