Алгоритмы и структуры данных пилотный поток 2023/2024 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 49: Строка 49:
 
Итоговые оценки '''округляются арифметически''' (то есть при дробной части меньше 0.5 округление производится вниз, иначе вверх).
 
Итоговые оценки '''округляются арифметически''' (то есть при дробной части меньше 0.5 округление производится вниз, иначе вверх).
  
=== Подробноее об оцениваемых активностях ===
+
=== Подробнее об оцениваемых активностях ===
  
 
===== Контесты =====
 
===== Контесты =====

Версия 18:05, 31 октября 2023

Лекторы: Иван Фёдорович Смирнов, Филипп Юрьевич Грибов


Важные ссылки
Google.Classroom
Текущая успеваемость
Google.Classroom
Запись на консультации
Google.Classroom
Сдача ДЗ

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

Общее описание

Детали в формуле оценивания могут меняться с объявлением на лекциях и в канале.

  • Курс длится 4 модуля (со 2-го по 5-й).
  • За 2-й и 3-й модуль ставится промежуточная оценка.
  • За 4-й модуль ставится итоговая годовая оценка за первый курс, вычисляемая из оценок за 2-4 модули. При этом 4-й модуль является блокирующим, т.е. для получения оценки за курс необходимо иметь удовлетворительную оценку за 4-й модуль.
  • За 5-й модуль ставится итоговая оценка независимо.
  • Экзамены будут в конце 3-го, 4-го и 5-го модуля. В экзамен 3-го модуля входят темы из 2-3 модулей, в остальные экзамены входят только темы соответствующего модуля.

Есть несколько видов оцениваемой деятельности, попадающие в накоп с соответствующим коэффициентом (кроме экзамена).

  • (Конт, коэфф. 0.3) Длинные контесты.
  • (ДЗ, коэфф. 0.25) Теоретические домашние задания.
  • (КР, коэфф. 0.15) Письменная контрольная работа.
  • (Экз, коэфф. 0.3) Устный экзамен.

Также на курсе предусмотрены бонусы, добавляемые к итоговой оценке за модуль. Бонусы получить за специальные бонусные контесты, за активное участие в семинарах, за участие в ICPC и, возможно, за что-то ещё.

Подробности

Накоп за каждый модуль считается по формуле Накоп = (0.3 · Конт + 0.25 · ДЗ + 0.15 · КР) / 0.7. Затем для каждого модуля считается предварительная итоговая оценка:

  • 2-й модуль: Итог2 = Накоп2 + Бонус2
  • 3-5 модули: Итогi = 0.7 · Накопi + 0.3 · Экзi + Бонусi

Итоговые оценки считаются так:

  • 2-й модуль: min(10, round(Итог2))
  • 3-й модуль: min(10, round(Итог3))
  • 4-й модуль (итоговая оценка за год): round((0.7 · min(10, Итог2) + min(10, Итог4) + min(10, Итог4)) / 2.7) при условии round(Итог4) ≥ 4
  • 5-й модуль: min(10, round(Итог5))

Обратите внимание, что в ведомость за каждый модуль ставится округлённое значение, но для подсчёта итоговой оценки за первый курс берётся взвешенное среднее по неокруглённым оценкам за модули 2, 3, 4.

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

Подробнее об оцениваемых активностях

Контесты

Длинные контесты имеют продолжительность порядка двух-трёх недель и состоят в основном из задач, требующих реализации алгоритмов, изученных на лекциях. Если не сказано иное, каждая задача стоит одинаково. По умолчанию оценка за контесты вычисляется по формуле Конт = 10 · (Решено задач / (всего обязательных задач - поправка)). Поправка может применяться, если студент по уважительной причине отсутствовал бо́льшую часть контеста.

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

Короткие контесты — это забытый миф, пыль веков, сага давно минувших дней.

Теор. ДЗ

Листки являются теоретическими домашними заданиями. Все задачи стоят одинаково, сдавать их можно в электронном виде. Дополнительно предусматривается возможность сдать их во время присутственных часов на консультациях ассистентам. Подробнее об этом написано в соответствующем разделе. Оценка вычисляется по формуле Конт = 10 · (Набрано баллов в задачах / (суммарная стоимость обязательных задач - поправка)). Разные задачи стоят разное число баллов, за решение можно получить частичные баллы.

Как и в контестах, в ДЗ бывают бонусные задачи, отмеченные звёздочкой. Не гарантируется, что преподаватели сами умеют их решать.

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

В течение каждого модуля предполагается по одной контрольной работе. За каждую контрольную студент получает оценку от 0 до 10, которая и будет являться оценкой КР. Если студент пропускает по уважительной причине контрольную работу, то для него изменяется формула оценки накопа: Накоп = (0.3 · Конт + 0.25 · ДЗ) / 0.55.

Экзамен

За экзамен студент получает оценку от 0 до 10, эта оценка будет являться оценкой Экз.

Бонус

Бонус. Эта графа определяет произвольные баллы, которые могут быть прибавлены к итоговой оценке студента за различные виды деятельности и соревнований. Например, в этой графе будут использованы некоторые короткие контесты с необычным форматом.

Теоретическое домашнее задание

Общие предположения, которыми можно пользоваться в задачах

1. Если в задаче говорится про запросы, то по умолчанию online

2. Если не оговорено иное, можно использовать столько же памяти, сколько времени

3. Если не оговорено иное, то можно ожидаемое амортизированное время с хешами


Правила сдачи письменных работ

1. Пожалуйста, убедитесь, что вашу работу можно идентифицировать (имя написано в файле, или ваш гугл-аккаунт подписан вашим именем).

2. При отправке убедитесь, что у вас появилась кнопка "отменить отправку" — это означает, что работа отправлена на проверку.

3. Домашние задания, сданные не в формате .pdf или набранные не с помощью системы вёрстки LaTeX не принимаются.

4. Нельзя отправлять фотографии записей от руки (за исключением случая, когда к теху вы прикрепляете пояснительную картинку от руки).

5. Решение должно представлять из себя свзяный цензурный текст без обсценной лексики, который может быть прочитан носителем русского языка, и являть собой решение задачи. Если текст не являет собой решение задачи, не надо прикладывать его к решению.

6. Списывание в работах повлечёт за собой обнуление баллов по работе.

7. Если вы не чувствуете себя уверено при работе с LaTeX, используйте шаблон https://www.overleaf.com/read/bpvmhqcvfgqq. В нём отражена основная функциональность системы вёрстки. Вы можете склонировать проект и использовать его.


Список заданий

Тема Листок Дедлайн
2 модуль

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

Все длинные контесты доступны по ссылке.

Дедлайн Темы
2 модуль
1 26.11.2022 Вероятности
2 10.12.2023 Простые структуры


Экзамены

Темы к экзамену 3-го модуля

  • Бинарные деревья поиска. Определение, базовые свойства.
  • B+-дерево. Простейшие операции. Операции Split и Merge.
  • Splay-дерево. Операции. Доказательство амортизированного времени работы.
  • Декартово дерево. Операции Split и Merge. Оценка матожидания глубины вершины. Декартово дерево по неявному ключу.
  • Запросы на отрезках. Дерево отрезков, общие идеи. Sparse table. Disjoint sparse table.
  • Персистентность. Общие идеи, примеры частично и полностью персистентных структур данных. Применение в задачх.
  • Методы Path copying и Fat nodes. Их комбинирование для получения частично персистентного списка без штрафа по времени и памяти.
  • LCA. Метод двоичных подъёмов. Алгоритм Тарьяна с СНМ. Алгоритм Фараха-Колтона и Бендера.
  • Запросы на деревьях. Heavy-light декомпозиция, оптимизация времени работы до O(log n) на запрос.
  • Переборные алгоритмы. Подходы через поиск в глубину и поиск в ширину. Способы хеширования состояний. Iterative deepening. Примеры отсечений.
  • Кратчайшие пути в графах. Алгоритмы Дейкстры и Форда-Беллмана. Двусторонний алгоритм Дейкстры.
  • Алгоритм Contraction Hierarchies для поиска кратчайших путей в графах, возникающих на практике.
  • Альфа-бета отсечение в антагонистических играх.
  • Мосты, точки сочленения. Построение деревьев компонент рёберной и вершинной двусвязности.
  • Конденсация ориентированного графа. Алгоритм Тарьяна.
  • Система непересекающихся множеств. Доказательство амортизированного времени работы O(log* n) на запрос.
  • Минимальные остовные деревья. Алгоритмы Прима, Краскала, Борувки.
  • Линейный вероятностный алгоритм построения MST (в предположении существования алгоритма проверки минимальности за линейное время). Проверка остовного дерева на минимальность за O(m log log n).
  • Потоки в сетях. Теорема Форда-Фалкерсона. Примеры решения задач через сведение к минимальному разрезу или максимальному потоку.
  • Теорема Кёнига-Эгервари, лемма Холла. Доказательство через теорему Форда-Фалкерсона.
  • Алгоритм Эдмондса-Карпа. Алгоритм Диница, доказательство времени работы O(E sqrt(V)) при поиске максимального двудольного паросочетания.

Лекции и семинары

Записи семинаров, сделанные силами студентов: https://disk.yandex.ru/d/yVmC7VRuXWblIw

2 модуль

3 модуль

4 модуль

Ссылки на материалы

Основные источники:

  1. Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн. Алгоритмы: Построение и анализ, [2013, 3 издание]
  2. neerc.ifmo.ru

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

Преподаватель Подгруппа Присутственные часы Контакты
Преподаватели
Иван Смирнов 221-1 @ifsmirnov
Филипп Грибов 221-2
Иван Сафонов 222-1
Михаил Анопренко 222-2
Сергей Нечаев 225-1
Екатерина Фадеева 225-2