Курс лекций «Эффективные алгоритмы» — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{!|Насчет курса 2020 года — запустимся где-то в середине октября, все дистанционно и максимально асинхронно}}.
 
 
 
 
<!-- https://prod.liveshare.vsengsaas.visualstudio.com/join?356FB217B4C56E51B049FD76EAFACED6B274
 
<!-- https://prod.liveshare.vsengsaas.visualstudio.com/join?356FB217B4C56E51B049FD76EAFACED6B274
 
-->
 
-->
Строка 17: Строка 14:
 
-->
 
-->
  
<!--
 
 
[[Special:MediawikiQuizzer/Algs-6-course-ispras-weekly|Еженедельная тренировка]]
 
[[Special:MediawikiQuizzer/Algs-6-course-ispras-weekly|Еженедельная тренировка]]
-->
 
  
 
Курс лекций «Эффективные алгоритмы» для 6 курса МФТИ.
 
Курс лекций «Эффективные алгоритмы» для 6 курса МФТИ.
 +
 +
----
 +
{{:Blog:Advanced Algorithms/2021-09-03 Анонс «Эффективных алгоритмов-2021»}}
 +
----
 +
 +
{{:Голосование за выбор времени созвона}}
  
 
<!--
 
<!--
Строка 28: Строка 29:
 
-->
 
-->
  
;Лекторы: д.ф.-м.н. [mailto:nnkuz@ispras.ru Н.Н. Кузюрин], [mailto:stas-fomin@yandex.ru С.А. Фомин]
+
;Преподаватель: [mailto:stas-fomin@yandex.ru С.А. Фомин]
  
 
Для ФУПМов 6 курса, желающих записаться на курс по выбору «Эффективные алгоритмы», нужно:
 
Для ФУПМов 6 курса, желающих записаться на курс по выбору «Эффективные алгоритмы», нужно:
Строка 34: Строка 35:
  
 
<poll>
 
<poll>
UNSAFE_ID=aa-20200901
+
UNSAFE_ID=aa-20210901
 
ALTERNATIVE
 
ALTERNATIVE
 
OPEN_RESULTS
 
OPEN_RESULTS
Строка 40: Строка 41:
 
AUTHORIZED
 
AUTHORIZED
 
ALLOW_REVOTE
 
ALLOW_REVOTE
END_POLL 2020-10-15
+
END_POLL 2021-10-15
Записываемся на курс «Advanced Algorithms-2020»?
+
Записываемся на курс «Advanced Algorithms-2021»?
 
Да
 
Да
 
Нет
 
Нет
Строка 69: Строка 70:
 
-->
 
-->
  
 +
<!--
 
Вводное занятие проведено — всем изучать материалы на
 
Вводное занятие проведено — всем изучать материалы на
 
[[Курс лекций «Эффективные алгоритмы»]] — книгу, видео и все-такое.  
 
[[Курс лекций «Эффективные алгоритмы»]] — книгу, видео и все-такое.  
Строка 74: Строка 76:
  
 
{{!|Встречаемся в 903 КПМ, 4 октября, 18:30}}
 
{{!|Встречаемся в 903 КПМ, 4 октября, 18:30}}
 
+
-->
  
 
Формат flipped classroom — т.е. по существующим материалам не будем повторять лекции, встречаться будем только для семинаров, и активной работы (решение задач, разбор сложных моментов, что-нибудь интересное придумаю) по заранее изученным материалам.  
 
Формат flipped classroom — т.е. по существующим материалам не будем повторять лекции, встречаться будем только для семинаров, и активной работы (решение задач, разбор сложных моментов, что-нибудь интересное придумаю) по заранее изученным материалам.  
Строка 140: Строка 142:
 
-->
 
-->
  
= Темы =
+
== Блок 1 ==
 +
{{vimeoembed|324745701|800|450}}
 +
 
 +
Простые классические алгоритмы. Динамическое программирование.
 +
Навыки мемоизации, работы с структурами данных.
  
Замечания по каждой презентации можно (и нужно) писать на вкладку «Обсуждение», для соответствующего PDF-файла.
 
  
=== Пройденные ===
+
=== Теория ===
 
* [[Несложно о сложности. Примеры алгоритмов]]
 
* [[Несложно о сложности. Примеры алгоритмов]]
 
* [[Жадный алгоритм в задачах о покрытии]]
 
* [[Жадный алгоритм в задачах о покрытии]]
 
* [[Жадный алгоритм покрытия для почти всех исходных данных]]
 
* [[Жадный алгоритм покрытия для почти всех исходных данных]]
 
* [[Жадный алгоритм в задаче о рюкзаке]]
 
* [[Жадный алгоритм в задаче о рюкзаке]]
 +
* [[Динамическое программирование для задачи о рюкзаке]]
 +
* [[Полностью полиномиальная аппроксимационная схема (FPTAS) для задачи о рюкзаке]]
 +
* [[Вероятностная проверка тождеств]]
 +
 +
 +
== Блок 2 ==
  
=== Фокус ===
+
=== Практика ===
Постоянно идущие квесты.
+
* [[Jupyterization]]
+
 
* [[LeetCoding]]
 
* [[LeetCoding]]
 +
* [[SpojCoding]]
 +
* [[CodeChefing]]
  
  
Темы к ближайшему занятию.
+
== Блок 3 ==
 +
Выберем несколько тем и теоретических задач.
 +
Ждите и работайте пока над блоком 1.
 +
 
 +
 
 +
 
 +
= Темы =
 +
Замечания по каждой презентации можно (и нужно) писать на вкладку «Обсуждение», для соответствующего PDF-файла.
 +
 
 +
* [[Несложно о сложности. Примеры алгоритмов]]
 +
* [[Жадный алгоритм в задачах о покрытии]]
 +
* [[Жадный алгоритм покрытия для почти всех исходных данных]]
 +
* [[Жадный алгоритм в задаче о рюкзаке]]
 +
 
 
* [[Динамическое программирование для задачи о рюкзаке]]
 
* [[Динамическое программирование для задачи о рюкзаке]]
 
* [[Полностью полиномиальная аппроксимационная схема (FPTAS) для задачи о рюкзаке]]
 
* [[Полностью полиномиальная аппроксимационная схема (FPTAS) для задачи о рюкзаке]]
 +
 +
* [[Динамическое программирование для задачи о рюкзаке]]
 +
* [[Полностью полиномиальная аппроксимационная схема (FPTAS) для задачи о рюкзаке]]
 +
 +
 +
<! -- Темы к ближайшему занятию. -->
 
* [[Полиномиальный в среднем алгоритм для задачи упаковки]]
 
* [[Полиномиальный в среднем алгоритм для задачи упаковки]]
 
* [[Полиномиальный в среднем алгоритм для задачи о рюкзаке]]
 
* [[Полиномиальный в среднем алгоритм для задачи о рюкзаке]]
 
* [[Полиномиальный в среднем алгоритм для SAT]]
 
* [[Полиномиальный в среднем алгоритм для SAT]]
* [[Вероятностная проверка тождеств]]
 
 
* [[Вероятностный подсчет числа выполняемых наборов для ДНФ]]
 
* [[Вероятностный подсчет числа выполняемых наборов для ДНФ]]
 
* [[MAX-SAT: вероятностное округление]]
 
* [[MAX-SAT: вероятностное округление]]
 
* [[MAX-CUT: вероятностное округление]]
 
* [[MAX-CUT: вероятностное округление]]
 
* [[MAX-SAT: дерандомизация]]
 
* [[MAX-SAT: дерандомизация]]
 +
* [[Приближенный алгоритм для метрической задачи коммивояжера]]
  
 
<!-- * [[Вероятностно проверяемые доказательства. PCP-системы. PCP-теорема]] -->
 
<!-- * [[Вероятностно проверяемые доказательства. PCP-системы. PCP-теорема]] -->
  
=== Непройденные темы ===
 
* [[Приближенный алгоритм для метрической задачи коммивояжера]]
 
  
  

Версия 15:18, 15 октября 2021



Еженедельная тренировка

Курс лекций «Эффективные алгоритмы» для 6 курса МФТИ.


Кратко, что будет, чего не будет и что ждать.

  • Лекций — не будет. Это бред и бессмыслица, особенно при дистанционке. Созвоны будут при небходимости, в формате семинара, может индивидуальные.
  • Будет путешествие-квест, с разными активностями.
  • Берем только практические вещи — алгоритмы для разных задач, особенно NP-полных.
  • Условно будет три блока
    • Теоретический — прочитать темы, посмотреть записи лекций, пройти тестирование, возможно решить некоторые теорзадачи.
    • Тут будет первый отсев — если не проходите тесты (отсеим, скажем, 25% нижних), то «досвидания».
      • Не рекламируйте этот курс — чем меньше народу, тем будет лучше. Я заинтересован сократить численность всеми способами. Особенно нафиг я посылаю всех, кто пытается запрыгнуть в курс в середине семестра и позже. Без шансов. Когда-то прогибался в виде исключения, сейчас не буду.
    • Легкий практический — решение нескольки задач, даваемых на собеседованиях в IT-компаниях, типа LeetCoding, SpojCoding, CodeChefing и т.п.
    • Тут будет второй отсев — но можно будет тут свалить, получив «уд» — кому нужно время, и не очень все это интересно.
    • Теор-практический — взять некоторую тему из заданных (свежая статья, я отберу), и сделать ее разбор-презентацию-реализацию в каком-нибудь jupyter или cocalc-ноутбуке (там будет видно). Тут возможно будет и индивидуальная работа и может тренировка презентейшн скиллс, что полезно для ваших дипломов (сколько я смотрел защит, все ужасно).

Ну остальные новости будут в группе, если что. Вопросы тоже там или напрямую.

Как зарегистрироваться — написано на основной странице курса, где все и будет https://discopal.ispras.ru/Advanced-algorithms

Регистраций открыта до 15 октября.

Подумайте еще раз — надо ли вам это. «Халявы», «Лекций», «Оценок за удаленную посещаемость» тут не будет. Даже «уд. нахаляву». Посмотрите, вокруг полно интересных курсов по выбору.


Какое время удобно для созвона?

понедельник,0
0%
понедельник, 9:00 - 10:251
1%
понедельник, 10:45 - 12:101
1%
понедельник, 12:20 - 13:451
1%
понедельник, 13:55 - 15:204
4%
понедельник, 15:30 - 16:550
0%
понедельник, 17:05 - 18:300
0%
понедельник, 18:35 - 20:000
0%
понедельник, 20:00 -1
1%
вторник, 12:20 - 13:450
0%
вторник, 13:55 - 15:201
1%
вторник, 15:30 - 16:550
0%
вторник, 17:05 - 18:304
4%
среда, 18:35 - 20:0023
26%
четверг, 12:20 - 13:450
0%
четверг, 13:55 - 15:200
0%
четверг, 15:30 - 16:550
0%
четверг, 17:05 - 18:301
1%
четверг, 18:35 - 20:0024
27%
четверг, 20:00 -4
4%
пятница, 9:00 - 10:250
0%
пятница, 10:45 - 12:100
0%
пятница, 12:20 - 13:451
1%
пятница, 13:55 - 15:201
1%
пятница, 17:05 - 18:306
7%
пятница, 18:35 - 20:0017
19%
пятница, 20:00 -0
0%

Вы должны войти в систему, чтобы участвовать в этом голосовании.


Преподаватель
С.А. Фомин

Для ФУПМов 6 курса, желающих записаться на курс по выбору «Эффективные алгоритмы», нужно:

  • Зарегистрироваться здесь. Залогинится.
  • Зайти на страницу настроек, указать свой email и подтвердить его.
  • На своей личной странице (это не страница настроек, это то, что сверху слева, с иконкой человечка), написать хотя бы ФИО и группу.
    • Боже, как много народу с рассеянным вниманием уже до сюда не дочитывает.
  • Присоединится к телеграмм-группе.
  • Отметится в этом голосовании:

Записываемся на курс «Advanced Algorithms-2021»?

Да33
100%
A.agafonov, A1eksei, ABeznosikov, Alexey grigorev, Antosha1, ArtemBuzin, Boeing, Georgii Nigmatulin, Golovanova.oi, Gorshkov.dv, Grishanov, Kirill, Kosmo antony, Kozharin.as, KushDen, MCheck, Natalia Varenik, PanchenkoSviatoslav, Rofile, Sadiev, Saharok, Severilov, Sklyarova.ev, STNL, Tashlykova, Teshbek, TikhonovDenis, TimurIbr, Usmanova, Vdovindv, Yakov Guryev, Yakushev, YamborisovMA
Нет0
0%

Вы должны войти в систему, чтобы участвовать в этом голосовании.


Формат flipped classroom — т.е. по существующим материалам не будем повторять лекции, встречаться будем только для семинаров, и активной работы (решение задач, разбор сложных моментов, что-нибудь интересное придумаю) по заранее изученным материалам.


Вопросы пишите на почту, или задавайте в группе.








Успеваемость зарегистрированных студентов

В списке вы можете видеть разные цифры, отражающие вашу активность по темам курса. В конце — некоторые суммарные метрики, рассчитанные по волшебным формулам.

Если вы в зеленой группе — вы кандидат на «отлично автоматом».

«Отличники-автоматом» будут выбраны с помощью жадного алгоритма, и вероятностого округления, с использованием настоящих случайных чисел с http://random.org


Блок 1

Простые классические алгоритмы. Динамическое программирование. Навыки мемоизации, работы с структурами данных.


Теория


Блок 2

Практика


Блок 3

Выберем несколько тем и теоретических задач. Ждите и работайте пока над блоком 1.


Темы

Замечания по каждой презентации можно (и нужно) писать на вкладку «Обсуждение», для соответствующего PDF-файла.


<! -- Темы к ближайшему занятию. -->



Не будем их рассматривать

Тренировка

Проверь себя, помнишь ли элементарные понятия и факты из курса. Тест будет на экзамене, чтобы отсеять совсем невменяемых.

Задачи


Видеолекции

Книга

Специальная верстка для чтения с ноутбуков и КПК:

  • альбомная ориентация
  • крупные беззасечные шрифты

Кому не нравится — пишите обоснованные протесты (почему, конструктивные предложения).

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

File:Book-advanced-algorithms.pdf

Book-advanced-algorithms.pdf

Примечания и ссылки

  • Рекомендуется прочитать хотя бы первые лекции по введению в Python и научные вычисления.

Полезная сопутствующая литература по курсу.