Blog:Advanced Algorithms
Новости курса «Эффективные алгоритмы» для 6 курса ФУПМ МФТИ.
2022-04-07
- Логинимся сюда
- Потом кликаем на https://discopal-lab.0x1.tv/auth/oauth1?target=%2Fauth%2Fsign-in
- Соглашаемся со всем там.
- Вы должны оказаться залогинены в https://discopal-lab.0x1.tv
- Потом пройдите по ссылке приглашению в проект «coding-tasks»
- Потом откроем совместную сессию и покодим.
Если что не получилось — посмотрите, там дальше ссылка с видео
- Категория:На_проверку
- «Отл» за 4 задачи из Spoj/Codechef (не LeetCode).
- «Хор» за 3 задачи из Spoj/Codechef (не LeetCode).
Кому скучно:
Поразбираем:
2022-03-31 Feedback
Решения задач — ищем решения именно на Python! «4 из 6» колонок чтобы были накрыты (некоторые задачи могут накрыть две колонки — две темы.
- User:Nechda — не на C++.
- «Отл» за 3 задачи из Spoj/Codechef (не LeetCode).
- До сих пор открыто после будет за 4 задачи.
Кому скучно:
Поразбираем:
2022-03-24 Feedback
Решения задач — так держать!
- «отл» автоматом для тех, кому не лень
- Участник:Shishqa/codechef/MRS
- Хорошая техника ускорения питона — I/O
- Не жалко → Участник:Shishqa/Spoj/PRMFN
- Участник:Fckxorg/RANAGIC
- «Отл-автоматом» — теперь, при условии хотя бы одной теорзадачи.
- Эта неделя → «Отл» за 3 задачи из Spoj/Codechef.
- Spoj — Browsec.
- https://www.youtube.com/channel/UC81Q2wnuk5KqOFVgAbq4nUw — разбор задач.
2021-12-20 Feedback по jupyter-ноутбукам
Просмотрел несколько видеопрезентаций по юпитер-ноутбукам.
- Часто встречается паттерн «свалка кода сбоку» в рядом лежащих питон-файлах, в ноутбуке только интерфейс к какому-нибудь простому интерфейсу. Это конечно, не то, что хотелось бы.
- Почему это плохо?
- Такой ноутбук «не работает» как передача знаний, он бесполезен, он не лучше, чем кусок кода, ибо все равно
- разбирающемуся придется реинженирить код, его функциональные связи, что там и что означает…
- такой ноутбук не «расшарить» в 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-11-15 Research Block
Концептуально:
- Это на «отл»
- Win-Win!
- Моделирование диплома-научной работы и ее защиты.
- глобальная проблема воспроизводимости + https://paperswithcode.com/ → мы помогаем решать.
- Свежие статьи на относительно знакомые темы
- Надо «воспроизвести»
- Юпитер-ноутбук или SageWorksheet или …
- Наш сервис — https://discopal-lab.0x1.tv
- Почему наш?
- https://colab.research.google.com — хорошая альтернатива, но
- все теряется, сложно собрать все времесте.
- только ядро Python (нет R/Sage/… возможно у нас будет Coq и т.п.)
- Почему не jupyterlab или jupyterhub — нет коллаборации.
- Почему не cocalc.com — стал хотеть денех.
- Введение будет отдельно
- Но разобраться что есть юпитер-ноутбук можно и самостоятельно
- Доступ к https://discopal-lab.0x1.tv (логин/емейл-пароль) получите лично (почта или тг)
- Как только пройдете более простые квесты (по задачам и тестам).
- Резервируем статью
- Открытые статьи для разбора
- Примерно как с было задачами
- Выбирайте из Открытые статьи для разбора, переходите к редактированию по «Беру…» →
- помечайте их как {{reserve-task|~~~~~}}
- «Зарезервированные статьи» убираются в Зарезервированные практические задачи
- Только одна статья! Но максимально качественно!
- Заводите в discopal-lab.0x1.tv проект.
- Правильно загрузить туда PDF статьи (на всякий случай).
- И что еще.
- И делайте юпитер-ноутбук, sage-лист и что еще.
- Полностью «переписывать статью не надо»
- Разобраться в введении
- Воспроизвести максимально декомпозировав, основной алгоритм.
- Доказательства не нужны.
- «Модель»-«Алгоритм»
- Если что не получается — пингуйте.
- Можно конечно
- Работать с локальным Jupyter
- Использовать colab
- Но регулярно перегружайте в discopal-lab — чтобы я видел прогресс, и мог комментировать-корректировать.
- Можно конечно
- Как что получится.
- Срок — первая группа — давайте попробуем до 5 декабря.
2021-11-21 Feedback
- Поздравляем тех, кто не побоялся «challenge»-задач на отлично. Часто решения там были тривиальны:
- Участник:Golovanova.oi/SRTX16E (+ Участник:MCheck/Practice/BYTESM2 + +, +, +)
- Проблема местами в чтении списка интов со входа.
- Если проблемы в решении → исправляем и снова «на проверку». (1)
- Оформление:
- Ссылки в решении → сначала на страницу, не напрямую на сайт.
- Резервирование:
- Не гонитесь за количеством литкодов — это на «уд», база.
- Выгнал из резервированных кому хватит!
- Никого левого не пускаем! — не зовите.
- Совсем плохо с решением задач — ну гуглите решения, или даже смотрите ютуб-каналы с разбором.
- Идея баланса — «задачи ←→ теория-тесты ←→ ресерч-навык»
- Вариант без «теории»
- Неделя «отл» за два «не LeetCode»-решения (Spoj/CodeChef). → до 22.11 включительно. (ну при этом надо чтобы было 4х-задачное покрытие тем, как обычно». А 23го подведем итоги по задачам (чтобы больше их не решать), откинем и удачливых, и тех, кто не осилил, и будет очередной созвон по теории.
- Как отлаживать без тестов?
- Написать генератор
- Проверить существующими решениями на других языках
2021-10-15 Practical Block
Концептуально:
- Win-Win!
- Абсолютно практические задачи с собеседований.
- LeetCode
- CodeChef
- SpojCode
- Сотни решенных и нерешенных
- Условно поделены на «Dynamic Programming», «Greedy», «Random», «Sorting», «Numbers»
- Нужно быть залогиненным
- Скрыто из интернета
- Изучайте Решенные практические задачи (Их там 1373)
- Надо решить 4 задачи из разных разделов.
- Или взять бонусную задачу — «отл» автоматом.
- Выбирайте задачи из Открытые практические задачи, переходите к редактированию по «Беру…» →
- помечайте их как {{reserve-task|~~~~~}}
- Зарезервированные задачи убираются в Зарезервированные практические задачи
(Их там 115)
- Не нужно брать десятки задач на себя сразу, и освобождайте то, что не получается.
- Решенное
- Ну смотрите, как оформлено в прошлые годы
- Решение на подстранице вашей личной страницы
- Вики-ссылка на задачу
- Python-код в «<source lang="python"></source>»
- Метка «{{checkme}}», когда решите.
- Внизу вставка всего этого по клику →
- Они попадут в Категория:На проверку
(Их там 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 режиме — Почти как полное решение, хотя тут даже не факт, что пройдет нетривиальные тесты. Пользуйтесь!
2021-03-12
- Более-менее все зарегистрировались
- Пошли оценки — геймификация
- Стартует квест
- CodeChefing — должно хватить всем, повышенные баллы (4) до 18 марта.
- SpojCoding
- LeetCoding
2021-03-11
- Начинаем штрафовать за непрохождение квеста регистрации.
- Блокирует оценку за тесты
- Как добавлять категории
- Не забываем ссылки на исходную задачу, [1], [2]
- Отслеживайте замечания про проблемы в решении → [3]
- Главный секрет метрик!
, где — очки за задачу. Т.е. выгодно решить 1-2 задачи в каждой из тем, вместо того, чтобы выгрызать только одну тему, насобачившись решать что-то одно.
- Переключаемся в алгоритмы. Новый фокус. Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ)#Фокус
- Новые квесты → LeetCoding и SpojCoding. Можно питонизировать решенное!
- Видеозаписи собраний будут собираться тут → Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ)/Видео/2021
2020-12-22 Feedback
- Понижены
- Стартовые штрафы ленивым
- Границы перцентилей
- «Отлично» в два раза меньше «Лидеров»
- Numb3rs
- 18/30 финишировали с оценкой
- Только в SpojCoding
- 39 нерешенных задач
- 147 решенных и не питонизированных
- А еще LeetCoding
- {{checkme}}
- Давайте отгружайте активней!
- Можно срубать «чужие блоки», если старше 5 дней.
- Бывают столкновения правок [1]
- Quest-D — на самом деле легкий способ улучшить оценку на балл, не пренебрегайте.
- User:Easik — c самых больших штрафов, до «отл»
2020-12-15 Feedback
- Решение каждой задачи на отдельной странице, а не как [1]
- 1, 2, 3, 4, 5, … — проверяйте перед записью!
- «Time Limit Exceeded» — если не питон, то скорее всего алгоритм сильно не оптимален (квадрат вместо nlogn, экспонента вместо полинома и т.п.).
- «1 → 2» — списывать и передавать решения неспортивно!
- Штраф для «раздолбаев» понижен — включайтесь!
- Новая возможность — написать питон решение к задачам решенным не на Python
- Иногда это может быть сложно — понять длинное решение на C или Rust
- Но в целом, полезный навык
- Можно использовать для тестирования своего решения
- по 2 балла за задачу
- Таких много, несколько десятков.
- Можно даже если это вы сами
- Если не укладываетесь по времени — пробуйте PyPy
- Местами есть проблемы Участник:Andriygav/BAT3
- Иногда это может быть сложно — понять длинное решение на C или Rust
- Привлечь внимание {{checkme}} (новое решение, исправление старого, и т.п.)
- Для тех, кому надоели задачи и хочеться чуть лекций
- Quest-D — три балла отдельно.
- Сроки — скажем до 29 декабря.
- Может можно будет продолжить, не уверен.
- «запланированные даты экзамена» — игнорируйте.
- Оптимально — баланс по темам!
- Leet/Spoj
- Хороший питон — numpy
- Leetcoding — мягче, показывает, где фейл
- Несравнимо с CodeForces — издевательство, все в ведро…
- В целом — мы делаем полезное!
- Можете рекламировать себя («подпишись на мой гитхаб»).
- Можно добавлять новонайденные задачи с этих ресурсов в соответствующие разделы.
- Насколько часто проверяю?
- Служебная:Свежие_правки
- Стараюсь раз в несколько дней «начать проверочный обход»
- Убираю «Блокирующие метки» старше 5 дней!
- Начиная со следующей недели можно фиксировать отметки!
2020-12-01 Feedback
Проблемы
- Трудно определимый код (Rusal)
- Зависания и «блокировки» задач
- Это четыре тильды, не три.
- Теперь 5 дней.
- «Блокировку» можно стирать после решения.
- Красивее код
- Он не только для задачи, но и для ваших коллег.
- тег «code-python», «code-cpp»
- Ссылку на исходную задачу
- Лишних категорий не надо.
Оценки
- Участник:Phokov — молодец.
- Порадуем трех первых сразу!
- Лучше понадкусывать везде!
- Автоматического «уд» нет, обязанности «принимать» — тоже нет.
- Курсов по выбору много.
- A_index
- Квест по машинлернингу.
- 0x1-classification — 20 баллов за разумное, 12 — за минимально вменяемое. Наверное можно даже троих параллельно.
2020-05-19 Дистанционный зачет по «Эффективным алгоритмам»
Всем привет. Пора выходить на финишную прямую в весеннем курсе 2020.
Как обычно, в курсе учитывалась разнородная активность:
- реальные занятия (до карантина), активность на оффлайн занятии, прохождение там же тестов,
- дистанционная работа:
- ревью лекций
- решения теоретических задач
- решения практических задач — квест LeetCoding
Тезисы:
- Активность последний месяц была не очень высока (хотя возможностей была масса).
- Неполенившиеся уже получили «отл»
- «Win-Win» — оценка справедливо соответствуюет трудозатратам.
- Никакого каргокульта («зачетных дней») — все распределенное и асинхронное.
- Есть еще время (минимум неделя).
- Оставшиеся квесты:
- У кого совсем плохо с кодом — три раза будут проведены тесты — они будут появятся сверху на странице курса.
- Окна:
- Пятница, 22 мая, 13:00-13:30
- Суббота, 23 мая, 14:00-14:30
- Понедельник, 25 мая, 15:00-15:30
- Вторник, 26 мая, 22:00-22:30
- Окна:
- У кого совсем плохо с кодом — три раза будут проведены тесты — они будут появятся сверху на странице курса.
- У кого «хор», но очень хочется улучшить оценку до «отл» — свяжитесь со мной, есть квест (смотреть и комментировать околонаучные доклады), как можно улучшить оффлайн (что-то типа Quest-O).
Выход на финишную прямую в 2019
- Update
- Оценки автоматом проставлены.
- Сейчас те, у кого не хватает на «хор», могут (еще три дня), добрать до баллов решая LeetCoding. Все, этот квест закрыт.
- У кого «хор», но очень хочется улучшить оценку до «отл» — свяжитесь со мной, есть квест (смотреть и комментировать околонаучные доклады), как можно улучшить оффлайн.
- Экзамен для оставшихся — в последнюю неделю, в 301 ИСПРАН, отдельно сделаем регистрацию.
Прием экзамена, 13:00, ИСПРАН, 301 аудитория.
Записывайтесь на удобную дату.
|
Вы должны войти в систему, чтобы участвовать в этом голосовании.
Процесс сдачи будет включать:
- Фильтрацию входящих тестами (если совсем не готов — не тратим время друг друга).
- Вопросы по теме («почему так»), Категория:Решенные задачи, Категория:Нерешенные задачи
Всем привет.
Пора выходить на финишную прямую в курсе 2019.
Как обычно, в курсе учитывалась разнородная активность — активность на оффлайн занятии, прохождение там же тестов, в качестве домашней работы предлагались квесты LeetCoding и подготовка докладов по Jupyterization, плюс для некоторых, подготовка докладов по их личным исследовательским темам.
С подготовкой докладов ( в этом году вышло не так активно, как ожидалось, и в целом, учитывая что в 6 декабря занятия не будет[1], у нас остается три онлайн занятия, после которых по результатам баллов, будет предложены оценки автоматом на «хорошо» и «отлично».
Хорошие новости — скорее всего, в этом году планку немного снизим (планирую отсечку по персентилям 0.45 и 0.7).
Ну и для тех, кто боится (или они не получались) задач на LeetCoding — я отсыпал большую пачку задач по жадными алгоритмам и графам со сложностью «Medium» (в разделах Medium). Они будут чуть дешевле, но даже решая только их можно набрать на автомат.
Опция обычного экзамена тоже есть, она будет наверное в последнюю неделю, 25-27 декабря, в ИСПРАН, в 301 аудитории, со временем определимся позже.
- ↑ Приглашаем всех на бесплатную конференцию https://www.isprasopen.ru/, в здании РАН, хорошая тусовка и еда, кроме докладов.
2018-12-21 Экзамен в 2018
Итак, курс-2018 завершен, надеюсь, было интересно.
Почти все (активно участвовавшие) получили оценку автоматом. См. таблицу.
Напоминаю, что есть последняя возможность ее улучшить за оставшиеся пару дней → свяжитесь со мной. Можно также приходить на экзамен и бороться за лучшую (даже если вам предлагают «отл», вы не лишаетесь права на очный экзамен — и такие случаи были) — но в результате, можете получить и худшую.
И осталось практически 4 человека, которые, возможно «отвалились», но возможно и горят желанием сдать экзамен.
На экзамене вас будет ждать тест (отсев совсем невменяемых и неготовых), вопросы и задачи по курсу (самые легкие из тех самых, что долгое время висели вместе с решениями). Никаких внезапно придуманных задач.
Экзамен будет в 11-00 в 301 аудитории, в ИСПРАН. Выбирайте день (голосуем до вечера субботы, для голосования надо залогинится).
У вас два голоса. Посмотрим, как лягут голоса, может даже дадим две попытки (но это не точно). Может вообще очный экзамен не понадобиться (если никого не осталось).
Какой день для экзамена удобней?
|
Вы должны войти в систему, чтобы участвовать в этом голосовании.
Всех с наступающим!
2017-12-18 Экзамен в осеннем 2017. Сбор результатов.
Итак, кратко подведем промежуточные итоги и огласим правила игры.
Итак, мы отделяем сразу студентов на две группы:
- Для студентов пятой, ИСПРАН-группы[1] у нас простой квест → Blog:Advanced Algorithms/Спецподход для студентов из ИСПРАН-группы. Квест длится до 26 декабря. Список этих студентов, и всего два параметра, которых им надо достичь — в отдельном списке на домашней странице курса Курс лекций «Эффективные алгоритмы». Задачи еще буду им подбрасывать, ждите, если кончились.
- Для остальных — как обычно, оффер с оценками автоматом для тех, кто хоть что-нибудь делал (вариантов активности было масса). Смотрите справа первого списка.
Понятная картинка.
Оффер означает, что вы можете принять эту оценку. Если недовольны — можно приходить на экзамен и бороться за лучшую (даже если вам предлагают «отл», вы не лишаетесь права на очный экзамен — и такие случаи были) — но в результате, можете получить и худшую.
Из графика видно, что те, кто почти хоть как-то проявил активность, в этом семестре могут получить «хор» (анекдот про «лотерейный билет купи»).
Остальных ждет экзамен.
Пятница, 22 декабря, в 301 аудитории, в ИСПРАН, в 11:00. Контрольный прием 25 декабря, в 12 часов, там же.
Всех с наступающим!
- ↑ уже сталкивавшихся с курсом Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ)
Спецподход для студентов из ИСПРАН-группы
Для студентов из «пятой», ИСПРАН-группы, уже сталкивавшейся[1] с курсом Курс лекций «Эффективные алгоритмы» в виде курса Курс лекций «Сложность алгоритмов» (ИСПРАН, 3 курс МФТИ), мы предлагаем упрощенный вариант дистанционной работы и сдачи курса — чтобы не возится с уже пройденными задачами и тестами, мы предлагаем свежие задачи по старым темам, и свежие темы на выбор.
Конкретно, предлагается:
- К решению задачи из Категория:For-group-V
- Решения задач оформлять по правилам из Курс лекций «Эффективные алгоритмы» (т.е. решения — подстраницы личной страницы).
- Такие же правила — «одноразовые задачи» — кто первый решит, того и тапки.
- Задачи будут пополнятся, должно хватить всем, хотя простые задачи, как обычно «перебьют» те, кто не откладывает работу в долгий ящик.
- К просмотру любые доклады по алгоритмам на 0x1.tv
- Надо прослушать лекцию, возможно погуглить-поресерчить тему, и оставить отзыв-обзор на несколько абзацев (возможно критический). Пример такого обзора → Участник:Vl_kniaz/Рецензия_TSP
- Можно оставлять ревью комментариев на Disqus целиком, можно оформить отзыв такой же подстраницей своей личной страницы (если математика нужна, latex, и ссылки без ограничений) — и дать ссылку на него в комменте на Disqus.
- Эта категория тоже будет пополнятся, но даже сейчас там достаточно докладов. Да, можно брать и из «подкатегорий» категории «Алгоритмы».
Нормативы примерно[2] таковы:
- отл
- 5 задач и 5 ревью.
- хор
- 3 задачи и 3 ревью.
- удовл
- 1 задача и 1 ревью.
Дедлайн наверно где-то в районе 22 декабря (официальный экзамен), но возможно и позже, когда будут сданы ведомости. Но лучше не задерживать.
- ↑ Несмотря на то, что использовалась одна книга, набор тем обычно отличался, к тому же менялся из года в год.
- ↑ Возможно изменятся, но скорее всего нет, останутся такими же небольшими — т.е. тут интересно чтобы было качественно, а не гонка за количеством. Возможно, если выйдет жаркая дискуссия с автором доклада, проведенная на хорошем уровне и не слитая… хватит именно этого на отлично.