HSE Продвинутый C++ 2021
390 subscribers
1 photo
2 files
32 links
Download Telegram
Формат пересдачи по C++:

Мы разрешим дорешать все задачи (мелкие и большие), но максимум от баллов каждой задачи можно будет получить 60%. Это идёт поверх заработанных баллов.

Также со всеми, кто пересдает, мы поговорим лично по решенным задачам и можем задавать вопросы по коду у любой задачи

Максимум на пересдаче можно получить 6
В задаче timerqueue используйте wait_until c std::condition_variable, wait_for пораждает false positive у TSAN https://github.com/google/sanitizers/issues/1259

С днём новых задач! 🤡 — Вчера был весь день в перелётах. Добавили 4 задачи.

Сейчас выложу все лекции на ютуб и в репозиторий, я вылетел из графика немного из-за таймзон.

Большую домашку выложим на след неделе, мы хотим поработать над материалами, чтобы вы совсем не умерли.

Оценка за бонусы: максимум 1.5 балла к итогу. Сейчас 7 задач, мы добавим максимум ещё 1-2. В итоге оценка за бонус будет кол-во решённых / кол-во бонусов * 1.5
Система будет недоступна в период с 2:30 до 3:30.

Скорее всего ничего не поломается, но вероятность есть, задачи могут не сдаваться.
Доброй ночи/утра

Мы добавили пару задач, это coroutine и generator в новый семинар (больше задач в семинаре не будет). Они с большой вероятностью могут у вас не собраться. Чтобы это исправить, сделайте одно из трёх

1.
На ubuntu и debian установите пакет libboost-context-dev sudo apt install libboost-context-dev
На mac brew install boost
2.
Соберите из исходников только библиотеку context и указывайте в CMake пусть до установки через -DBOOST_ROOT=<path>. Прочитайте внимательно инструкцию по ссылке
3.
Если вы не планируете решать задачи совсем, закомментируйте в CMakeLists.txt эти две строки до того момента, как захотите решать задачи

Мы добавили бонус executors. Он оценивается в отдельные 0.5 балла в итог. Он не идёт в количественные бонусы, то есть всего бонусов до сих пор 7, за них 1.5 балла. За executors ещё 0.5 балла, в итоге за бонусы вы можете получить 2 балла. Мы советуем решать этот бонус только если вам не хватает сил или мотивации решать последнюю БДЗ, задача достаточно объёмная.


Табличку с оценками сделаем в ближайшее время, чтобы вы могли трекать свои текущие баллы
Мы выложили новое большое домашнее задание.

Это jpeg-decoder.

В нём 6 пунктов, максимум 12.5 баллов. Мы думаем, что пункт progressive самый тяжелый (и оценивается в 2.5), прочитайте все остальные. Также в этом задании есть элемент закрытых тестов -- это fuzzing тестирование. Вы можете это тестирование запускать у себя, в этом плане оно открытое.

Дедлайн 26 декабря 23:59:59. Ночью 27 декабря мы запустим все решения друг против друга. Все упавшие решения не получат баллов, которые мы указали на пункт fuzz.

Все детали на лекциях и семинарах, но вы можете начинать читать материалы, указанные в условии.

Мы можем немного менять тесты или добавить пару жпегов, всё как обычно.

В задаче также есть пасхалка, напишите лектору или семинаристу, если вы думаете, что нашли её. Первым 10 людям мы поставим +1 балл за это дз, если вы сможете её объяснить.

Удачи!
Задач больше не будет на курсе. Делайте большое дз
Мы посмотрели на ваши посылки в jpeg-decoder/fftw. Два момента:

1) Вам нужно использовать библиотеку FFTW. Не пишите вычисления по формуле руками, это приведет вас к проблемам с точностью, которые будет сложно обнаружить.

Мы забанили функции cos и acos, 4 сданных решения перетестировали. Это не универсальная проверка, но не пытайтесь ее обойти, пожалуйста.

2) Переиспользуйте план, который подготовила библиотека FFTW, между вызовами DctCalculator::Inverse(), не создавайте его каждый раз заново -- это неэффективно.

В ближайшее время мы добавим бенчмарк, проверяющий это.
Мы починили подзадачу faster в jpeg-decoder и слегка ослабили условие на перформанс (теперь надо уложиться в 8 секунд, а не в 6)
Напоминаем, что списывание строго запрещено на курсе. И карается снятием всей недели при обнаружении, а также запиской в учебный офис.

Мы в скором времени проверим все решения на списывание, в том числе и из открытых источников.

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

За курс мы нашли уже 16 случаев у 10 студентов. При обнаружении списывания у двух студентов, мы руками проверяем все остальные задачи. У некоторых студентов обнулились уже 3 недели.
В эту субботу последняя лекция по C++, поговорим про перф C++, место C++ в мире и что нас ждёт в будущем
28 декабря в 18:00 MSK посиделки со всем препод. составом по курсу С++ (или практически всем)

Начнём, наверное, с РС и каких-то баек, но задать вопросы можно любые

Вопросы: https://forms.gle/rBLV6DpZStFW4x1RA
Ссылка: https://zoom.us/j/92427240857?pwd=L3UyVnFRRHh1N2RzVmVZZUFabXhSQT09
Сегодня после 23:59 за все ноль
Фаззинг huffman и fftw прошли у всех, кто сдал, про baseline мы скажем с утра
HSE Продвинутый C++ 2021
Фаззинг huffman и fftw прошли у всех, кто сдал, про baseline мы скажем с утра
По состоянию на 22:48 London time живы только 5 решений

hse-Abramovich-Vladislav-ohhimarkk
hse-Semyon-Yentsov-swalrus
hse-Tagir-Khamitov-tagirkhamitov
hse-Tim-Gritsaev-timgri93
hse-Mikhail-Gusev-mcnckc
4 решения

Abramovich Vladislav выбывает из-за OOM инпута в 1036 байт
3 решения

Тимофей Грицаев выбывает из-за деления на ноль в решении faster
2 решения

Тагир Хамитов выбывает из-за переполнения

/usr/local/google/home/danilak/cpp-advanced-hse/tasks/jpeg-decoder/decoder.cpp:384:16: runtime error: signed integer overflow: 2027378152 * 2 cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/local/google/home/danilak/cpp-advanced-hse/tasks/jpeg-decoder/decoder.cpp:384:16 in
MS: 1 ChangeBinInt-; base unit: 1b6c40f01c53fa64e2dee54ade2c9e24fe0dd057
Осталось последнее решение

Семен Енцов выбывает из-за проблем referencов

/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1046:9: runtime error: reference binding to null pointer of type 'std::vector<unsigned char, std::allocator<unsigned char>>'
Итоги фаззинга:

Если вы сдали Huffman и FFTW, то мы вам засчитываем фаззинг.

По jpeg decoder полностью фаззинг выдержало только решение Михаила Гусева.

Тем не менее, Тимофей Грицаев в baseline тоже смог выдержать тестирование.

Поэтому мы решили дать двум студентам баллы.

Остальные 11 решений честно упали. Увы. Если интересно где и как, напишите мне.