MarkScript: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
[[File:mark_param1.png]] | [[File:mark_param1.png]] | ||
− | В редких случаях обычной шкалы оценивания может быть недостаточно | + | В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript). |
<font color='#ff0000'>Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем. </font> | <font color='#ff0000'>Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем. </font> |
Версия 11:54, 24 июля 2021
Выставление оценки за тест используя свой скрипт.
Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.
В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).
Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.
Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки /*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; }
Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так:
Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.
var m = {}; //... m['value'] = 3; m['title'] = 'Зачет'; m['note'] = 'Есть нулевые темы!'; return m;
Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.