Blog:Advanced Algorithms

Материал из DISCOPAL
Перейти к: навигация, поиск

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

2022-04-07

2022-04-07 2022-04-07 08-06-39 image0.png

Если что не получилось — посмотрите, там дальше ссылка с видео



Кому скучно:

Поразбираем:

2022-03-31 Feedback

Решения задач — ищем решения именно на Python! «4 из 6» колонок чтобы были накрыты (некоторые задачи могут накрыть две колонки — две темы.

2022-03-31 Feedback 2022-03-31 08-19-37 image0.png

  • «Отл» за 3 задачи из Spoj/Codechef (не LeetCode).
    • До сих пор открыто после будет за 4 задачи.

Кому скучно:

Поразбираем:

2022-03-24 Feedback

Решения задач — так держать!


«отл» автоматом для тех, кому не лень

  • «Отл-автоматом» — теперь, при условии хотя бы одной теорзадачи.
  • Эта неделя → «Отл» за 3 задачи из Spoj/Codechef.

2021-12-20 Feedback по jupyter-ноутбукам

2021-12-20 Feedback по jupyter-ноутбукам 2021-12-20 17-13-53 image0.png

Просмотрел несколько видеопрезентаций по юпитер-ноутбукам.

  • Часто встречается паттерн «свалка кода сбоку» в рядом лежащих питон-файлах, в ноутбуке только интерфейс к какому-нибудь простому интерфейсу. Это конечно, не то, что хотелось бы.
    • Почему это плохо?
    • Такой ноутбук «не работает» как передача знаний, он бесполезен, он не лучше, чем кусок кода, ибо все равно
      • разбирающемуся придется реинженирить код, его функциональные связи, что там и что означает…
      • такой ноутбук не «расшарить» в colab.research.google.com или cocalc.com (там всегда плохо на тему шаринга рядом лежащих файлов).
      • он не работает как презентация-пояснение-живой плейграунд («а что если тут поменять XXX»?).
  • Посмотрите реально примеры и разбор из Blog:Advanced Algorithms/2021-12-01 Как делать лучше jupyter по статьям
    • Последовательно вводите понятия, каждая питон функция в отдельной ячейке, в ячейке перед ней — описание, в ячейке после нее — примеры вызова с характерными данными.
    • Не бойтесь, если будет длинно — никогда не жалейте места для лишних слайдов или ячеек в ноутбуках — в зависимости от аудитории, слайды-ячейки можно пропустить, зато гарантирует, что хоть кто-то разберется в теме (включая вас, такой рефакторинг для научного ресерча — самый эффективный способ найти проблему).
  • Вот пример неплохого доклада вашего однокурсника → https://youtu.be/XeZTpQWTDUU (ноутбук)
    • При записи доклада, разумно использовать какой-нибудь экранный аннотатор (рисовалку), на худой конец, поставьте курсор побольше, это поможет.
    • В идеале — добавляйте вебкамеру и научится хромакею. Учитывая, что защита в этом году будет скорее всего дистанционная — хороший повод потренироваться записывать себя, чтобы потом вырезать неудачное, остальное ускорить, и потом прокрутить на защите идеально выведенный по таймлимиту ролик защиты (на вопросы подключится живьем).
  • По срокам — я выторговал в деканате до 25го декабря, но лучше не задерживать до последнего момента.

StasFomin 13:56, 20 декабря 2021 (UTC)

2021-12-01 Как делать лучше jupyter по статьям

2021-11-15 Research Block

Концептуально:

  • Свежие статьи на относительно знакомые темы
  • Надо «воспроизвести»
  • Юпитер-ноутбук или SageWorksheet или …
  • Наш сервис — https://discopal-lab.0x1.tv
    • Почему наш?
    • https://colab.research.google.com — хорошая альтернатива, но
    • все теряется, сложно собрать все времесте.
    • только ядро Python (нет R/Sage/… возможно у нас будет Coq и т.п.)
    • Почему не jupyterlab или jupyterhub — нет коллаборации.
2021-11-15 Research Block 2021-11-24 12-20-26 image0.png
    • Почему не cocalc.com — стал хотеть денех.
2021-11-15 Research Block 2021-11-24 12-19-13 image0.png
  • Введение будет отдельно
    • Но разобраться что есть юпитер-ноутбук можно и самостоятельно
  • Доступ к https://discopal-lab.0x1.tv (логин/емейл-пароль) получите лично (почта или тг)
    • Как только пройдете более простые квесты (по задачам и тестам).
2021-10-15 Practical Block 2021-11-03 14-22-47 image0.png


  • Полностью «переписывать статью не надо»
    • Разобраться в введении
    • Воспроизвести максимально декомпозировав, основной алгоритм.
    • Доказательства не нужны.
    • «Модель»-«Алгоритм»
  • Если что не получается — пингуйте.
    • Можно конечно
      • Работать с локальным Jupyter
      • Использовать colab
      • Но регулярно перегружайте в discopal-lab — чтобы я видел прогресс, и мог комментировать-корректировать.
  • Как что получится.
    • Научитесь пользоваться OBS — (см. также [1]), попробуйте использовать экранное рисование ([2]) и сделать это живым и доступным.
    • Запишите видео-презентацию и забросьте мне (unlisted youtube, файлохранилища…)
  • Срок — первая группа — давайте попробуем до 5 декабря.

2021-11-21 Feedback

©

  • Если проблемы в решении → исправляем и снова «на проверку». (1)
2021-11-21 Feedback 2021-11-24 19-12-10 image0.png
2021-11-21 Feedback 2021-11-25 06-38-20 image0.png
  • Не гонитесь за количеством литкодов — это на «уд», база.
    • Выгнал из резервированных кому хватит!
2021-11-21 Feedback 2021-11-25 05-47-01 image0.png
2021-11-21 Feedback 2021-11-25 05-45-27 image0.png
2021-11-21 Feedback 2021-11-25 05-46-17 image0.png
  • Никого левого не пускаем! — не зовите.
  • Совсем плохо с решением задач — ну гуглите решения, или даже смотрите ютуб-каналы с разбором.


2021-11-21 Feedback 2021-11-25 12-06-48 image0.png
2021-11-21 Feedback 2021-11-25 12-13-35 image0.png
    • Вариант без «теории»
    • Неделя «отл» за два «не LeetCode»-решения (Spoj/CodeChef). → до 22.11 включительно. (ну при этом надо чтобы было 4х-задачное покрытие тем, как обычно». А 23го подведем итоги по задачам (чтобы больше их не решать), откинем и удачливых, и тех, кто не осилил, и будет очередной созвон по теории.
      • Как отлаживать без тестов?
      • Написать генератор
      • Проверить существующими решениями на других языках

2021-10-15 Practical Block

2021-10-15 Practical Block 2021-11-03 14-27-56 image0.png

Концептуально:

  • Win-Win!
  • Абсолютно практические задачи с собеседований.
    • LeetCode
    • CodeChef
    • SpojCode
    • Сотни решенных и нерешенных
  • Условно поделены на «Dynamic Programming», «Greedy», «Random», «Sorting», «Numbers»
  • Нужно быть залогиненным
    • Скрыто из интернета
  • Изучайте Решенные практические задачи (Их там 1373)
  • Надо решить 4 задачи из разных разделов.
    • Или взять бонусную задачу — «отл» автоматом.
2021-10-15 Practical Block 2021-11-03 15-02-30 image0.png

2021-10-15 Practical Block 2021-11-03 14-24-09 image0.png

(Их там 115)

    • Не нужно брать десятки задач на себя сразу, и освобождайте то, что не получается.
  • Решенное
    • Ну смотрите, как оформлено в прошлые годы
    • Решение на подстранице вашей личной страницы
      • Вики-ссылка на задачу
      • Python-код в «<source lang="python"></source>»
      • Метка «{{checkme}}», когда решите.
2021-10-15 Practical Block 2021-11-03 14-22-47 image0.png

(Их там 12)


  • Как легче решать Python
    • Загрузка данных
    • Выбирайте более свежий CPython или PyPy.

2021-09-03 Анонс «Эффективных алгоритмов-2021»

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

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

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

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

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

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


2021-05-20

  • Большой тест в подарок.
  • Кучу тем Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ)#не берем в этом году
  • «A»-фактор поделен на 5.
  • Больше баллов за самостоятельную работу.
  • Continuous Integration — оценки выставляются непрерывно до середины июня. Или нет?
    • Похоже выставляем скрочно, до конца пятницы.
    • С 15:00 до 17:00 меня можно найти в ИСПРАН, 301 комнате, и попробовать сдать лично (кому не хватает баллов и т.п.).
  • Проблемы с оформлением:
  • Как бороться с NZEC с задачами.
    • Пишите генератор тестов.
    • Сравнивайте с имеющимися решениями на C
  • Непитоновые задачи засчитывались — Участник:Srip09/USelection
  • Много совсем не проходит тесты — 1, 2


©
  • Новый блок задач (отдельная графа в суммировании)
  • Сегодня и завтра даются баллы за решения с нарушением TL за 3 балла!, разумеется, если запускать в PyPy режиме — Почти как полное решение, хотя тут даже не факт, что пройдет нетривиальные тесты. Пользуйтесь!


Распорядок передачи знаний на этот период.webp


2021-03-12

[1]


2021-03-11

, где — очки за задачу. Т.е. выгодно решить 1-2 задачи в каждой из тем, вместо того, чтобы выгрызать только одну тему, насобачившись решать что-то одно.

2020-12-22 Feedback

2020-12-22 Feedback 2020-12-23 10-53-41 image0.png
Понижены
  • Стартовые штрафы ленивым
  • Границы перцентилей
  • «Отлично» в два раза меньше «Лидеров»
Numb3rs
  • 18/30 финишировали с оценкой
  • Только в SpojCoding
    • 39 нерешенных задач
    • 147 решенных и не питонизированных
    • А еще LeetCoding
    • {{checkme}}

  • Давайте отгружайте активней!
  • Можно срубать «чужие блоки», если старше 5 дней.
    • Бывают столкновения правок [1]
  • Quest-D — на самом деле легкий способ улучшить оценку на балл, не пренебрегайте.
    • User:Easik — c самых больших штрафов, до «отл»

2020-12-15 Feedback

2020-12-15 Feedback 2020-12-17 17-35-10 image0.png
  • Решение каждой задачи на отдельной странице, а не как [1]
  • 1, 2, 3, 4, 5, … — проверяйте перед записью!
  • «Time Limit Exceeded» — если не питон, то скорее всего алгоритм сильно не оптимален (квадрат вместо nlogn, экспонента вместо полинома и т.п.).
  • «12» — списывать и передавать решения неспортивно!
  • Штраф для «раздолбаев» понижен — включайтесь!
  • Новая возможность — написать питон решение к задачам решенным не на Python

2020-12-15 Feedback 2020-12-16 16-54-15 image0.png

    • Иногда это может быть сложно — понять длинное решение на C или Rust
      • Но в целом, полезный навык
      • Можно использовать для тестирования своего решения
      • по 2 балла за задачу
      • Таких много, несколько десятков.
      • Можно даже если это вы сами
      • Если не укладываетесь по времени — пробуйте PyPy
      • Местами есть проблемы Участник:Andriygav/BAT3
  • Привлечь внимание {{checkme}} (новое решение, исправление старого, и т.п.)

  • Для тех, кому надоели задачи и хочеться чуть лекций
    • Quest-D — три балла отдельно.
  • Сроки — скажем до 29 декабря.
    • Может можно будет продолжить, не уверен.
    • «запланированные даты экзамена» — игнорируйте.
  • Оптимально — баланс по темам!
  • Leet/Spoj
    • Хороший питон — numpy
    • Leetcoding — мягче, показывает, где фейл
    • Несравнимо с CodeForces — издевательство, все в ведро…
  • В целом — мы делаем полезное!
    • Можете рекламировать себя («подпишись на мой гитхаб»).
  • Можно добавлять новонайденные задачи с этих ресурсов в соответствующие разделы.
  • Насколько часто проверяю?
    • Служебная:Свежие_правки
    • Стараюсь раз в несколько дней «начать проверочный обход»
    • Убираю «Блокирующие метки» старше 5 дней!
  • Начиная со следующей недели можно фиксировать отметки!

2020-12-01 Feedback

2020-12-01 Feedback 2020-12-02 15-13-15 image0.png

Проблемы

  • Зависания и «блокировки» задач
    • Это четыре тильды, не три.
    • Теперь 5 дней.
    • «Блокировку» можно стирать после решения.
  • Красивее код
    • Он не только для задачи, но и для ваших коллег.
    • тег «code-python», «code-cpp»
    • Ссылку на исходную задачу
    • Лишних категорий не надо.

Оценки

  • Участник:Phokov — молодец.
    • Порадуем трех первых сразу!
    • Лучше понадкусывать везде!
  • Автоматического «уд» нет, обязанности «принимать» — тоже нет.
    • Курсов по выбору много.
  • A_index
  • Квест по машинлернингу.
    • 0x1-classification — 20 баллов за разумное, 12 — за минимально вменяемое. Наверное можно даже троих параллельно.

2020-05-19 Дистанционный зачет по «Эффективным алгоритмам»


Всем привет. Пора выходить на финишную прямую в весеннем курсе 2020.

Как обычно, в курсе учитывалась разнородная активность:

  • реальные занятия (до карантина), активность на оффлайн занятии, прохождение там же тестов,
  • дистанционная работа:


Тезисы:

  • Активность последний месяц была не очень высока (хотя возможностей была масса).
    • Неполенившиеся уже получили «отл»
  • «Win-Win» — оценка справедливо соответствуюет трудозатратам.
  • Никакого каргокульта («зачетных дней») — все распределенное и асинхронное.
  • Есть еще время (минимум неделя).
  • Оставшиеся квесты:

    • У кого совсем плохо с кодом — три раза будут проведены тесты — они будут появятся сверху на странице курса.
      • Окна:
        • Пятница, 22 мая, 13:00-13:30
        • Суббота, 23 мая, 14:00-14:30
        • Понедельник, 25 мая, 15:00-15:30
        • Вторник, 26 мая, 22:00-22:30
  • У кого «хор», но очень хочется улучшить оценку до «отл» — свяжитесь со мной, есть квест (смотреть и комментировать околонаучные доклады), как можно улучшить оффлайн (что-то типа Quest-O).


Предновогодний цейтнот преподавателя.jpg


Выход на финишную прямую в 2019

Science-race-01.jpg
Update
  • Оценки автоматом проставлены.
    • Сейчас те, у кого не хватает на «хор», могут (еще три дня), добрать до баллов решая LeetCoding. Все, этот квест закрыт.
    • У кого «хор», но очень хочется улучшить оценку до «отл» — свяжитесь со мной, есть квест (смотреть и комментировать околонаучные доклады), как можно улучшить оффлайн.
    • Экзамен для оставшихся — в последнюю неделю, в 301 ИСПРАН, отдельно сделаем регистрацию.

Прием экзамена, 13:00, ИСПРАН, 301 аудитория.

Записывайтесь на удобную дату.

2019-12-23, понедельник0
0%
2019-12-24, вторник0
0%
2019-12-25, среда1
100%
Vkozin
2019-12-26, четверг0
0%

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

Процесс сдачи будет включать:



Всем привет.

Пора выходить на финишную прямую в курсе 2019.

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

С подготовкой докладов ( в этом году вышло не так активно, как ожидалось, и в целом, учитывая что в 6 декабря занятия не будет[1], у нас остается три онлайн занятия, после которых по результатам баллов, будет предложены оценки автоматом на «хорошо» и «отлично».

Хорошие новости — скорее всего, в этом году планку немного снизим (планирую отсечку по персентилям 0.45 и 0.7).


Ну и для тех, кто боится (или они не получались) задач на LeetCoding — я отсыпал большую пачку задач по жадными алгоритмам и графам со сложностью «Medium» (в разделах Medium). Они будут чуть дешевле, но даже решая только их можно набрать на автомат.

Опция обычного экзамена тоже есть, она будет наверное в последнюю неделю, 25-27 декабря, в ИСПРАН, в 301 аудитории, со временем определимся позже.


Предновогодний цейтнот преподавателя.jpg
  1. Приглашаем всех на бесплатную конференцию https://www.isprasopen.ru/, в здании РАН, хорошая тусовка и еда, кроме докладов.

2018-12-21 Экзамен в 2018

Итак, курс-2018 завершен, надеюсь, было интересно.

Активность студентов осенней сессии 2018.png

Почти все (активно участвовавшие) получили оценку автоматом. См. таблицу.

Напоминаю, что есть последняя возможность ее улучшить за оставшиеся пару дней → свяжитесь со мной. Можно также приходить на экзамен и бороться за лучшую (даже если вам предлагают «отл», вы не лишаетесь права на очный экзамен — и такие случаи были) — но в результате, можете получить и худшую.

И осталось практически 4 человека, которые, возможно «отвалились», но возможно и горят желанием сдать экзамен.

На экзамене вас будет ждать тест (отсев совсем невменяемых и неготовых), вопросы и задачи по курсу (самые легкие из тех самых, что долгое время висели вместе с решениями). Никаких внезапно придуманных задач.

Экзамен будет в 11-00 в 301 аудитории, в ИСПРАН. Выбирайте день (голосуем до вечера субботы, для голосования надо залогинится).

У вас два голоса. Посмотрим, как лягут голоса, может даже дадим две попытки (но это не точно). Может вообще очный экзамен не понадобиться (если никого не осталось).

Какой день для экзамена удобней?

Понедельник, 24 декабря0
0%
Вторник, 25 декабря0
0%
Среда, 26 декабря2
100%
StasLatGTTT (2)

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

Всех с наступающим!

2017-12-18 Экзамен в осеннем 2017. Сбор результатов.

Итак, кратко подведем промежуточные итоги и огласим правила игры.

Итак, мы отделяем сразу студентов на две группы:

  • Для студентов пятой, ИСПРАН-группы[1] у нас простой квест → Blog:Advanced Algorithms/Спецподход для студентов из ИСПРАН-группы. Квест длится до 26 декабря. Список этих студентов, и всего два параметра, которых им надо достичь — в отдельном списке на домашней странице курса Курс лекций «Эффективные алгоритмы». Задачи еще буду им подбрасывать, ждите, если кончились.
  • Для остальных — как обычно, оффер с оценками автоматом для тех, кто хоть что-нибудь делал (вариантов активности было масса). Смотрите справа первого списка.


Понятная картинка.

Активность студентов осенней сессии 2017.png

Оффер означает, что вы можете принять эту оценку. Если недовольны — можно приходить на экзамен и бороться за лучшую (даже если вам предлагают «отл», вы не лишаетесь права на очный экзамен — и такие случаи были) — но в результате, можете получить и худшую.

Из графика видно, что те, кто почти хоть как-то проявил активность, в этом семестре могут получить «хор» (анекдот про «лотерейный билет купи»).

Остальных ждет экзамен.

Пятница, 22 декабря, в 301 аудитории, в ИСПРАН, в 11:00. Контрольный прием 25 декабря, в 12 часов, там же.

Всех с наступающим!

  1. уже сталкивавшихся с курсом Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ)

Спецподход для студентов из ИСПРАН-группы

Для студентов из «пятой», ИСПРАН-группы, уже сталкивавшейся[1] с курсом Курс лекций «Эффективные алгоритмы» в виде курса Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ), мы предлагаем упрощенный вариант дистанционной работы и сдачи курса — чтобы не возится с уже пройденными задачами и тестами, мы предлагаем свежие задачи по старым темам, и свежие темы на выбор.

Конкретно, предлагается:

  • К решению задачи из Категория:For-group-V
    • Решения задач оформлять по правилам из Курс лекций «Эффективные алгоритмы» (т.е. решения — подстраницы личной страницы).
    • Такие же правила — «одноразовые задачи» — кто первый решит, того и тапки.
    • Задачи будут пополнятся, должно хватить всем, хотя простые задачи, как обычно «перебьют» те, кто не откладывает работу в долгий ящик.
  • К просмотру любые доклады по алгоритмам на 0x1.tv
    • Надо прослушать лекцию, возможно погуглить-поресерчить тему, и оставить отзыв-обзор на несколько абзацев (возможно критический). Пример такого обзора → Участник:Vl_kniaz/Рецензия_TSP
    • Можно оставлять ревью комментариев на Disqus целиком, можно оформить отзыв такой же подстраницей своей личной страницы (если математика нужна, latex, и ссылки без ограничений) — и дать ссылку на него в комменте на Disqus.
    • Эта категория тоже будет пополнятся, но даже сейчас там достаточно докладов. Да, можно брать и из «подкатегорий» категории «Алгоритмы».

Нормативы примерно[2] таковы:

отл
5 задач и 5 ревью.
хор
3 задачи и 3 ревью.
удовл
1 задача и 1 ревью.

Дедлайн наверно где-то в районе 22 декабря (официальный экзамен), но возможно и позже, когда будут сданы ведомости. Но лучше не задерживать.


  1. Несмотря на то, что использовалась одна книга, набор тем обычно отличался, к тому же менялся из года в год.
  2. Возможно изменятся, но скорее всего нет, останутся такими же небольшими — т.е. тут интересно чтобы было качественно, а не гонка за количеством. Возможно, если выйдет жаркая дискуссия с автором доклада, проведенная на хорошем уровне и не слитая… хватит именно этого на отлично.