TonitaN / FormalLanguageTheory

Slides and tasks for theory of formal languages course BMSTU IU9 (in Russian)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Зачётные мероприятия

TonitaN opened this issue · comments

Зачётной будем считать неделю с 24 декабря по 31 декабря. И на ней можно будет отыграться за все прогулы в семестре, если вы по какой-то теме не успели проявить свою гениальность.

  • 24 декабря будет биг-фарма (формат как в прошлом году) (очно-заочно) + грамматическая гонка (очно). Можно участвовать и там, и там, всё по желанию.
  • На грамматической гонке будет 2 отделения: регулярки и грамматики. На скорость (от 1 до 7 минут на задачу) нужно будет писать регулярки или грамматики для несложных языков (но возрастающих в сложности с номером). Всего 5 задач в отделении, за каждую 1 или 2 балла, как итог только на гонке можно нафармить 15 баллов.
  • С 24 до 31 декабря объявляется дикая охота: я выбираю от 5 до 10 жертв (лучших реализаций лабораторных работ, выложенных в открытом доступе). Дальше в течение 25 декабря автор лабораторки-жертвы пишет к ней нормальный readme (за бонус в размере 2 или 3 баллов), предполагающий легитимные способы использования реализации. С 26 до 31 декабря проходит собственно охота: можно искать баги и сообщать о них в репозитории реализации. Каждый найденный концептуальный баг стоит 1 балл.

Концептуальный баг - это баг, указывающий на класс ошибочных тестов. Например, если грамматика с правилами вида A -> A завешивает программу, то таких грамматик можно написать хоть тысячу - концептуально они укажут на один и тот же баг.

Чтобы дедлайнеры не переживали насчёт биг-фарм и прочего, обнуление лабораторных работ с 1 по 3 я проведу 31 декабря.

Что такое нормальный readme при подготовке к охоте за багами

(напомню, он стоит 3 балла)

  1. Описание входного синтаксиса в РБНФ (нет, не вставкой слайда!) с примерами корректного (а можно и некорректного, при неочевидных ошибках) ввода. Если есть какие-то ограничения на входные данные, они должны быть указаны.
  2. Описание параметров запуска (ключей, передачи ввода, и т.д.).
  3. Описание результата: что должна возвращать программа по указанным входным данным и как это читать.

@boomb0om, @UsefulTornado, @Lasadaf, @Ankalot, @StarikTenger, @GorbatovNik, @N1X41

Открываем охоту

Чтобы объявить о найденном баге в программе, нужно завести issue в её репозитории. Пожалуйста, прежде чем заводить issue с найденным багом, убедитесь, что этот баг не задокументирован. В большинстве случаев это означает, что вам нужно будет посмотреть свежие issue с охоты, но в случае последнего проекта придётся просматривать все незакрытые issue с пометкой bug.
183-duplicates

Список жертв охоты на баги

  1. Унификация и ГНФ.
  2. Трансмоноид
  3. Кнут-Бендикс и ещё один трансмоноид
  4. SLR-подгонка
  5. AST + LL-преобразование
  6. Ещё одна ГНФ
  7. Инфиксы регулярок
  8. Много лаб из секретного портала --- а точнее, все три
  9. Анализ и преобразование автоматов

✨Пока что три 90+, и это уже больше, чем в прошлом году!✨
А может быть и 5, если ещё некоторые личности (не будем называть, они и так про себя всё знают) сделают 5 лабу. Мечты... 💖

Если я кому-то не ответила по лабораторным или РК, пожалуйста, перешлите свои письма ещё раз (только проверьте, что новых ответов точно нет). Из-за очень большой рабочей переписки и плохой сортировки писем я могла случайно потерять ваши сообщения.

Конечно, более концептуально было бы обнулиться в новогоднюю ночь, но в новогодний вечер тоже неплохо. Ваши подарки :) получила, проверку сегодня или в ближайшие пару дней уже не обещаю.

А кстати! Подозреваю, что всё-таки будет четверо 90+, а вот это и вправду подарок! Пяти не будет :(

Итоги охоты на баги:

  • @furstepnik +3 (вот это я понимаю: пришёл в нужное время, точно рассчитал, что ему нужно, и получил требуемое)
  • @pollykon +1

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

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

Вы можете записаться в добровольцы на тестирование Чиполлино (последний проект в списке охоты) в период от 10 января и до экзамена либо до 20 января, если вы не успеваете получить допуск к экзамену. Доброволец тоже получает балл за каждый найденный новый баг, но это уже значительно сложнее, с учётом того, что там большой бэклог. Однако это сильно проще, чем добирать недостающие два-три-пять баллов лабами, и поверьте, багов там как минимум с десяток найдётся.
Других возможностей добрать баллы помимо лаб не будет: у дедлайнеров есть обнуленные три лабы без штрафов, да и последние две никто не запрещает сделать на Рефале. Ваша оценка собственной степени гениальности, очевидно, привела вас к выводу, что ТФЯ не физра, и этот предмет нетрудно будет закрыть за пару недель. Не буду врать, такое возможно, и оспаривать вашу самооценку я не буду, наоборот, порадуюсь, у кого и вправду получится. Удачи адреналинщикам 🔋

Список "избранных" пополнился господином Мягких. Я обязательно попробую взять себе всех троих на курсач по тфя в следующем году, раз они так неиллюзорно намекнули на это желание.

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

Уж лучше как @Qmask26 , имея почти безупречную репутацию, честно пойти на пересдачу, потому что не успели досдать что-то небольшое, чем пытаться продавить свои интересы и сдать всё на свете в последние два дня. Первое заставляет уважать, второе - увы.

38 писем от вас с лабами, РК и фиксами за 2 дня. Зомби-апокалипсис с примесью человеческой крови :(

Адекватная проверка лабы/РК - не меньше 15 минут. Почти всегда больше, особенно лабы, т.к. нужно настраивать конфиги запуска.

Группа 51, кто пересдаёт, приходим в четверг к 9 утра (уж ладно, не к 8-30). И обязательно с направлениями! Иначе мы не успеем с экзаменом - сегодня вышли из МГТУ через с трудом найденную незапертую дверь.

А мне предстоит освежить компроматы на тех, кто уже о своих узнал. И да, @Qmask26, никто из вашей команды не знал, как запускается ваша оболочка - это оказался самый непроходимый квест из всех.

Так в ридми написано же

Они не читали, а только из юнит-тестов всё запускали :( Даже не знали, как называются в интерпретаторе их собственные функции %)

Причём мне особенно нравится, когда на экзамене или РК кто-то внезапно делает "открытие года": мы запустили это в нашем проекте, и оно посчиталось, как ни странно, правильно.

Надеюсь, на пересдаче историй с лабораторными, забытыми их авторами, будет меньше. Но я не зря рекомендовала обратить внимание на теорию автоматов, и уж участники проекта конвертера должны это учесть на будущее. Тем более - сюрприз! - конвертеры и лабы действительно иногда работают правильно.

@nOmeep, уж простите, что большая часть внимания досталась @Pur3Vessel , @JazZzik и @boomb0om , а не вам, но вы так быстро ушли сами. Может, в четверг нам удастся пообщаться плотнее.

Группа 52, у вас сдающих намечается около 16 человек. Имеет смысл сделать два захода (14 и 17), или все не против ради чувства локтя сидеть полные 8 часов в очереди? Полагаю, лучше первое, тем более, так будет возможность пересдать БД, кому актуально.

По поводу курсовых (частый вопрос): в 6 семестре у вас строго, без выбора, курсовая по БД. В 7 семестре по выбору ЧМ или конструирование компиляторов (в рамках которого также существует явление "курсач по тфя"). Вот тогда и вступит в силу избранность, если только за избранными не выстроится очередь из других научников (что вряд ли, да и зачем вам? я лучше). Но если вы будете вести себя скучно, положительно и не слишком пропадать, то ваша метка избранности уже не будет распространяться на ВКР.
Особо избранные могут попробовать взять курсач по БД + тфя в 6 семестре, Вишняков будет очень рад, но лично я не советую тем более под воздействием тфя-интоксикации от экзамена длительностью 20 часов. И так в этом семестре кое у кого флеш-рояль с курсовой.

Для @cupotato , @N1X41 и прочих, а также моих незабываемых @EliseySoft , @Postlog и @alien-agent

Пересдаём ТФЯ 30 января (скорее всего) с утра и до последнего сдающего. Информация по точному времени начала сдачи будет 29 января.

Внимание! Пересдача переносится на 1 февраля. У вас добавляются целых два дня на доделку обнулённых работ (которые в феврале будут стоить уже всего 5 баллов).

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

Пересдача переносится на 7 февраля по форс-мажорным не зависящим от меня причинам и физической невозможности приехать в МГТУ до начала следующей недели.

Если у вас очень горит направление, то вы сами должны приехать в ИПС на этой неделе, и если у вас есть допуск, я приму экзамен. Для этого нужно написать мне за день (за день, а не за ночь! т.е. максимум в 10 часов предыдущего дня) до этого, чтобы я могла оформить вам пропуск.

P.S. - Дедлайны по лабораторным (а именно, до февраля 8 баллов, после - только 5) были объявлены задолго до сроков пересдач и НЕ переносятся.

P.P.S. - Без направления приезжать нельзя! Смысла в этом нет никакого - оценка не будет выставлена всё равно.

Избранность 99 уровня во вкладке "темы дипломов" :

The_Chosen_One

Причём взялось неизвестно откуда и неизвестно кто так нам удружил. Фатум...

Раз уж @Postlog своим "правом избранного" решил не пользоваться, была надежда, что их число сократится до двух... Но нет, @Dibydo дал понять, что он соскучился по острым ощущениям после летней практики. Ну отрефакторил бы не так откровенно, есть же специалисты, кто мог бы дать консультацию по грамотной обфускации чужого стиля, не попал бы в число избранных. Но такие прямолинейные признания я пропустить, увы, не могу.

P.S. - Ещё @Pug-coder и @zlatoivan по краю прошли, прислав решение не той задачи, но зато в срок, чтобы получить за лабу 8 баллов, а не 5 (причём ссылка на алгоритм в условии есть, и по контексту в условии невозможно перепутать его со стандартным алгоритмом удаления эпсилон-правил). Но их мастерство в стратегии ещё недостаточная заявка на курсовую по ТФЯ, так что я просто оштрафую их на 1 балл от 8, и ещё 0,5 баллов возьму в залог до экзамена.

Жёсткий таймер окончания сдачи завтра - 15-30. Извините, производственная необходимость.
Начинаем в 9-30, пишем билет 2 часа (не 4!) Если кто-то не успеет до 15-30, то пойдёт сдавать ещё с кем-нибудь когда-нибудь потом.

Последняя не комиссионная пересдача - ориентировочно 21 февраля. Возможны небольшие изменения.

Если я кому-то не ответила по лабам, самое время напомнить о себе.

Те, у кого сдача комиссионная, тоже могут приходить 21 февраля. В честь дня защитника отечества, я не буду ставить им двойки в направления (а вот у кого сейчас в ЭУ стоит НА и кто при этом уже сдавал экзамен - буду, и таких товарищей без направления принимать не стану).

Жду @Postlog (с направлением!), @cupotato, @PROCENTX123 (с направлением!), @Pug-coder и Максим Максимыча; надеюсь также на встречу с @Dibydo и @igor-vgs (они знают, что им нужно для этого доделать).

Не знаю, зачем я это делаю, возможно, потому что мне действительно хочется узнать, сумеет ли кто-то преодолеть проклятье нуля баллов по ТФЯ и спастись, в стиле постмодерна, за секунду до взрыва, но желающие получить консультацию по рефалу могут это сделать 21 февраля после выдачи счастливых билетов. Посмотрим, поможет ли кому-нибудь бонус +4. Мой прогноз - нет, но было бы интересно ошибиться.

К тем, у кого баллов так мало, что либо нужно сдавать 5 лабораторных, либо нужно делать их с бонусом +4. Тем, кто перечислен сообщением выше, рефал уже точно не нужен - тем из них, кто ещё не допущен (включая вас), ещё реально допуститься и без него. И даже, как я надеюсь, на днях.

Во сколько 21 числа приходить на рефал?

Я бы очень хотела сказать, что к 9-15, но пока не знаю, успею ли к 9 добраться. Если пойму, что успею, сразу сообщу. Иначе только к 11-30 получится.

PS - Если я правильно помню, то ли в 11, то ли в 10-30 у вас 21 февраля должны быть "смотры".

Консультация будет в 9-00 в 309ю (она, кажется, свободна первой парой). В 8-50 там же будет раздача билетов.

P.S. - Если кто-то из утопающих уже может отличить реальный рефал от несвязного бреда, может заглянуть в репозиторий по соседству:
https://github.com/TonitaN/Misc-Lectures/tree/main/Seminars/SOS_Refal
Демо не простое, это не любимые всеми туториалами палиндромы, но если разберётесь в этом демо, то разберётесь, и как делать лабы. В соседние папки не заглядывайте - там чёрная магия на рефале, в таком стиле не стоит даже пытаться что-то писать, всё равно не напишется.

Комиссия по ТФЯ(+ФП) будет 14 марта (скорее всего, с 9 утра). В 13-40 я пойду на семинар по ВКР до 15 или 15-10, но после семинара по необходимости продолжим, как обычно, максимум до 18 часов. Максимум строго определённый.

Это последняя возможность сдать ТФЯ для тех, кто хочет сменить цифру 5 на 6 в названии своей группы в этом году.

P.S. - С учётом всеобщей ненависти к пересдачам и к должникам (и их курткам), нужно будет заранее продумать план перемещения по аудиториям (с одной пересадкой).

Завтра на комиссии приходим по расписанию:
@Dibydo , @zlatoivan , Узлов Максим, Лысенко Евгений - к 9-30
@igor-vgs , Гальцов Яков - к 10-30
Курсовики (@kyaushev, @AlexMartpr) - к 9-45 или к 10