MarkScript: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) |
||
Строка 91: | Строка 91: | ||
Group[4]['CountPartiallyTask'] = 0; | Group[4]['CountPartiallyTask'] = 0; | ||
Group[4]['CountErrorTask'] = 1; | Group[4]['CountErrorTask'] = 1; | ||
− | </pre></spoiler> | + | </pre> |
+ | </spoiler> | ||
Для отладки скрипта вы можете изменять эти данные в верхнем поле. | Для отладки скрипта вы можете изменять эти данные в верхнем поле. | ||
Строка 98: | Строка 99: | ||
Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main(). | Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main(). | ||
Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. | Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. | ||
+ | |||
+ | В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов. | ||
Версия 12:25, 24 июля 2021
Выставление оценки за тест используя свой скрипт.
Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.
Для изменения критерия оценивания нажмите кнопку Изменить...
В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).
Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.
Для настройки скрипта используйте кнопку:
Откроется окно:
Если скрипт уже задан ранее, то он будет показан в этом окне.
Функция вычисления оценки получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически и зависят от теста и его результатов. Например, они могут выглядеть так:
Для отладки скрипта вы можете изменять эти данные в верхнем поле.
Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main().
Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.
В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов.
Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки /*MarkScript*/ (до нее можно писать в заметках все что угодно).
Например, если требуется поставить оценку в соответствии со следующими критериями:
а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"
б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.
то можно задать вот такой скрипт:
/*MarkScript*/ function main(R, G){ var m = {}; var f = true; for (var key in G){ if(G[key]['CountLimit']!=0 && G[key]['CountCorrectTask']<1){ f = false; break; } } var X = {3:30, 4:60, 5:90}; if(f){ m['value'] = 2; for (var i in X){ if (X[i]<=(100*R['Score']/R['ScoreMax'])){ m['value'] = i; } } m['note'] = 'Все хорошо!'; }else{ m['value'] = 2; m['note'] = 'Есть нулевые темы!'; } return m; }
var m = {}; //... m['value'] = 3; m['title'] = 'Зачет'; m['note'] = 'Есть нулевые темы!'; return m;
Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.