Поведение sequence_analyzer при одинаковом количестве ошибок в двух ответах
Имеем тестовый вопрос на составление прототипа функции с двумя параметрами. Есть два варианта ответов: с именами параметров и без. Скажем int funct (float, double) и int funct (float param1, double param2)
Студент в ответе неправильно набирает имя первого параметра (определение опечаток отключено), например int funct (float piram1, double param2)
Выдаваемые ошибки: лишняя лексема piram1, лишняя лексема param2. Вот вторая (про лишнюю param2) сбивает студента с толку, т.к. там все правильно.
Причина проблемы в том, что оба варианта дают одинаковое количество ошибок: к первому варианту можно прийти удалив оба названия параметров, а ко второму - удалив piram1 и вставив param1.
Чтобы справиться, нужно чтобы при одинаковом количестве ошибок, “лишняя лексема” имела несколько больший вес чем остальные, так чтобы он предпочитал замены и вставки удалениям если количество ошибок одинаково.
Comments (7)
-
-
reporter Ну в первом приближении мне кажется что если с точки зрения одного ответа лексема лишняя, а другого - она не лишняя - то предпочтительно ее сохранить, ибо студент скорее всего писал второй ответ.
Внутри одного ответа по идее такие конфликты возникать не могут, т.к. итоговое количество лексем должно быть одинаковым - и количество ошибок тоже, а разные ошибки по-разному влияют на количество лексем.
Можем мы принять как принцип что если (особенно не увеличивая количество ошибок) что-то написанное студентом можно сохранить, его следует сохранить?
-
По сути это означает, что в момент выбора верного ответа, если у нас присутствует несколько вариантов, мы выбираем ответ с меньшим количеством ошибок вида “лишняя лексема“. Это если навскидку. В сущности, это мало что поменяет в логике оценивания, но хочется уточнить.
-
reporter Я думаю этого можно достичь вводя ошибке вида “лишняя лексема” немного больший вес чем у остальных, но не настолько чтобы кумулятивно сложилось в целое число. Вес же не обязан быть целым, можно и 1.01 сделать.
Тогда логика оценивания как выбор ответа с наименьшим суммарным весом ошибок сохранится.
-
А разве сейчас вес ошибок из LCS таким нельзя задать? Там вроде нет никаких ограничений на формат ввода. Я ещё не смотрел, правда.
-
reporter Если речь идет об интерфейсе пользователя, то мне кажется вы путаете вес ошибки (который влияет на выбор наилучшего набора ошибок и ответа - на $fitness) и сколько снимать из оценки за ошибку. Пользователь может настроить только последнее, веса насколько я помню это хардкод.
-
Ок, попробую посмотреть как там это в fitness работает.
- Log in to comment
Может завести под это опцию в вопросе?
Просто наверняка под это есть какой-то контрпример, когда нам может потребоваться обратный вариант.