Алгоритмы и структуры данных 2018/2019 (пилотный поток)

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

Лектор: Глеб Олегович Евстропов

Программа курса

Текущая успеваемость

Формула выставления итоговой оценки

0.3 * Контесты + 0.25 * Листки + 0.15 * Контрольные + 0.3 * Экзамен + Бонус

  • Короткие контесты будут проводиться в разнообразных форматах во время сдвоенных семинаров. Если не оговорено иное, то короткий контест является личным соревнованием, состоящим из 5 задач разной сложности, требующим владеть общей сообразительностью, некоторой математической подготовкой, и, возможно, различными уже изученными алгоритмами. На коротких контестах отсутствует проверка кода, если не оговорено иное, то задачи можно дорешивать вплоть до окончания текущего отчётного периода (то есть почти до экзамена), получая за каждую сданную задачу 0.5 балла вместо 1 балла (за сдачу во время контеста).
  • Длинные контесты имеют продолжительность до двух недель, и состоят в основном из задач, требующих реализации алгоритмов, изученных на лекциях. Некоторые задачи являются обязательными и проходят дополнительную ручную проверку кода. Все задачи стоят 1 балл, но чтобы получить баллы за необязательные задачи, необходимо сначала сдать все обязательные.
  • Итоговая оценка за раздел "Контесты" определяется как 10 * (баллы за короткие контесты + баллы за длинные контесты) / (общее число задач - поправка). Поправка по умолчанию равна нулю, но если отлична от нуля, то равна примерно 1/10 от общего числа задач (то есть предполагается, что сдать все задачи вовремя крайне трудно) и может быть увеличена индивидуально для каждого студента при наличии пропусков по уважительным причинам.
  • Листки являются теоретическими домашними заданиями. Все задачи стоят одинаково, сдавать их можно как во время семинара, когда листок был выдан, так и во время присутственных часов. Дополнительно предусматривается возможность сдать задания в электронном виде в хорошей вёрстке. Формула оценки за данный раздел аналогична предыдущей: 10 * (кол-во решенных задач) / (общее число задач - поправка). Кроме того, кол-во баллов, полученных за сдачу задач в электронном виде по почте (суммарно за весь модуль) должно не более чем в два раза превышать кол-во баллов, полученных за сдачу устно. Формально, если вы получили x баллов за устную сдачу и y баллов за сдачу по почте, то ваше суммарное кол-во баллов равняется x + min(2x, y).
  • В течение первого отчётного периода предполагается две контрольные работы (по одной в каждом модуле). За каждую контрольную студент получает оценку от 0 до 10, итоговая оценка за данный раздел ставится как среднее арифметическое этих двух, или определяется по одной оценке, если вторую контрольную студент пропустил по уважительной причине. Если студент пропускает по уважительной причине обе контрольные работы, то для него изменяется итоговая формула оценки.
  • За экзамен студент получает оценку от 0 до 10.
  • Бонус. Эта графа определяет произвольные баллы, которые могут быть прибавлены к оценке студента за различные виды деятельности и соревнований. Например, в этой графе будут использованы некоторые короткие контесты с необычным форматом.
  • Итоговая оценка округляется арифметически (то есть при дробной части меньше 0.5 округление производится вниз, иначе вверх).

Лекции

Дата лекции Темы
30 октября Знакомство со структурой курса и системой выставления оценок.
Введение в теорию вероятностей, конечные вероятностные пространства, события, независимость событий, условная вероятность
31 октября Продолжение введения в теорию вероятностей, понятие математического ожидания и его базовые свойства
6 ноября RAM-модель, схемы доказательства корректности алгоритмов и времени их работы
13 ноября Сортировки сравнениями, подсчётом и поразрядная
14 ноября Корзинная сортировка и сортировка во внешней памяти
20 ноября Простые структуры данных, двоичные кучи
27 ноября Амортизационный анализ, k-ичные кучи
28 ноября Биномиальные и фибоначчиевы кучи
4 декабря Введение в хеширование, свойства хеш-функций, парадокс дней рождений и полиномиальный хеш
11 декабря Хеш-таблицы, методы сканирования при использовании открытой адресации, идеальное хеширование
12 декабря Фильтры блума, стратегии масштабирования таблиц, деамортизация
18 декабря Бинарные деревья поиска. Сбалансированные деревья. Декартово дерево.
10 января 2-3 деревья и B-деревья.
15 января Частичные суммы, разреженные таблицы, деревья отрезков. Метод сканирующей прямой.
22 января Задачи LCA и LA. Сведение LCA к RMQ и наоборот. Метод четырёх русских.
24 января Персистентность и персистентные структуры данных.
29 января Перебор комбинаторных объектов. Динамическое программирование. Генерация комбинаторных объектов.
5 февраля Динамическое программирование по подотрезкам, поддеревьям, подмаскам. Meet-in-the-middle.
7 февраля Ускорение вычислений с помощью битовых операций. Эффективное использование памяти в задачах динамического программирования.
12 февраля Перебор в задаче вершинного покрытия и в антагонистических играх (в том числе альфа-бета)
19 февраля Минимальные остовные деревья: алгоритмы поиска и критерии оптимальности
21 февраля СНМ, обход в глубину, поиск мостов и точек сочленения

Семинары

Дата семинара Темы Листок
30 октября Понятие асимптотического времени работы алгоритма
Сильно, слабо и псевдополиномиальное время работы. Обозначения O, o, Ω, ω
тык
31 октября Совместное решение задач по теории вероятностей тыц
6 ноября Совместное решение задач на матожидание туц
13 ноября Обсуждение методов тестирования не было
14 ноября Совместное решение задач на сортировки и порядковые статистики тыц
20 ноября Сортировки и порядковые статистики наносят ответный удар туц
27 ноября Разбор домашнего листка по теории вероятностей тык
28 ноября Совместное решение задач на простые структуры данных тыц
4 декабря Подготовка к контрольной и совместное решение задач туц
11 декабря Разбор контрольной, второго листка и длинного контеста не было
12 декабря Разбор контрольной, второго листка и длинного контеста не было
18 декабря Хеши ¯\_(ツ)_/¯
10 января ¯\_(ツ)_/¯ ¯\_(ツ)_/¯
15 января Деревья поиска тык
22 января Запросы на отрезках тыц
24 января Splay-дерево туц
29 января Запросы на деревьях и персистентность тыц
5 февраля Разговоры про неасимптотические оптимизации Не было
7 февраля Разбор листка про деревья и запросы на отрезках не было
12 февраля Динамическое программирование тыц
19 февраля Динамическое программирование, перебор и meet-in-the-middle туц
21 февраля Динамическое программирование и остовные деревья тык

Листки

Устно листки сдаются преподавателям и ассистентам в присутственные часы.

Листки в электронном виде отправляются на почту hse.algo@gmail.com. Принимается только TeX — нельзя отправлять фотографии записей от руки (за исключением случая, когда к теху вы прикрепляете пояснительную картинку от руки); решения, написанные в MS Word и подобных программах и т.д. Решения отправляются ровно один раз — нельзя отправить что-то, а потом через неделю прислать исправленную версию (небольшие исправления и уточнения разрешаются, если сделаны в течение нескольких часов после отправки листка и строго до дедлайна).

Дедлайн Темы Листок
полночь с 20 на 21 ноября Вероятности и математическое ожидание тык
полночь с 5 на 6 декабря Сортировки и простые структуры данных тыц
полночь с 17 на 18 декабря Кучи, хеши и амортизационный анализ туц
полночь с 6 на 7 февраля Деревья и запросы на отрезках тык
полночь с 27 на 28 февраля Персистентность, запросы на деревьях и прочее тыц
полночь с 13 на 14 марта Динамическое программирование, перебор и meet-in-the-middle тык

Короткие контесты

Если не оговорено иное, то задачи можно дорешивать вплоть до окончания текущего отчётного периода (то есть почти до экзамена), получая за каждую сданную задачу 0.5 балла вместо 1 балла (за сдачу во время контеста).

Дата Ссылка Дорешивать
7 ноября тык Можно
21 ноября тыц Можно
19 декабря туц Нельзя (бонусный)
17 января тыц Можно
31 января тык Можно
14 февраля ❤️ туц Нельзя (необычный)

Длинные контесты

Дедлайн Темы Ссылка
Полночь с 6 на 7 декабря Сортировки, порядковые статистики, простые структуры данных тык
Полночь с 17 на 18 декабря Хеширование и другие темы тыц
Полночь с 4 на 5 марта Структуры данных тык

Преподаватели и ассистенты

Преподаватель Подгруппа Присутственные часы
Глеб Евстропов 181-1
Станислав Артюхин 181-2
Дмитрий Иващенко 183-1
Иван Смирнов 183-2
Александр Курилкин Вторник, с 15:10 до 16:30, ауд. 308
Глеб Третьяков Среда, с 10:30 до 11:50, ауд. 618

Полезные материалы

Памятка по теорверу

Успеваемость во втором модуле