Фронт работ по доработке практикума
Дописать инструкцию к тестирующей программе
- Формализация Д/З и особенно примеров ввода-вывода к ним
- Все домашние задания должны содержать как минимум один пример ввода и вывода
- В унифицированном для данного типа задач формате (сейчас есть два типа: написать функцию и написать полную программу)
- Эти примеры должны быть пригодны для копипасты 1:1 в соответствующие файлы с тестами задания
- С этими примерами в этих файлах должна работать тестирующая программа
- Если какая-то задача из Д/З не соответствует стандарту на ввод-вывод (например, предлагается делать что-то рандомно и т. п.), она должна быть особо помечена
- Все домашние задания должны содержать как минимум один пример ввода и вывода
Повышение безопасности тестирующей программы.
- Вычитать и запатчить текст тестирующей программы на предмет
Уязвимостей типа os.system() / subprocess.что-тотам при работе с тестами вида exec(sys.stdin.read())
- Иного типа уязвимостей (размер потребляемых ресурсов вроде бы ограничивается)
- Вычитать и запатчить текст тестирующей программы на предмет
Детализация планов семинаров. Большая часть планов семинаров на сегодня — даже не планы, а ключевые слова, по которым восстановить ход семинара может только Георгий Курячий.
- Превратить каждый план семинара в строго тематический с перечислением всех конкретных затронутых на нём тем
- Снабдить тематический план копипастой из примеров на занятиях — для этого надо запасать куда-то то, что напрограммировал семинарист за семинар, почистить и вставить
- Продумать и организовать систему оперативного общего тестирования заданий.
- Прохождение тестов — только один параметр тестирования, там же, например, скачиваются и выполняются чужие тесты, проверяется наличие тех или иных синтаксических конструкций, проверяется стиль, быстродействие и т. п.
Действующие наработки, по которым выставлялись оценки в прошлом году, есть у Георгий Курячий, но они рассчитаны на то, что все задания уже сделаны, и преподаватель вдумчиво гоняет оценивающие скрипты.
- Надо организовать так, чтобы по нажатию некоторой педали результаты общего тестирования можно было где-то публиковать.