MarkScript: различия между версиями
Bas (обсуждение | вклад) |
Bas (обсуждение | вклад) |
||
(не показана 31 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | == Выставление оценки за тест используя свой скрипт == | |
− | '' | + | <font color='#aaaaaa'>Эта информация для версии 11.0.0.62 (и, возможно, для следующих).</font> |
− | + | Настройка оценивания теста находится в Редакторе тестов на странице [[Параметры_теста_MyTestXPro|Параметры теста]]. | |
− | [[File: | + | [[File:mark_param1.png]] |
− | Для | + | Для изменения критерия оценивания нажмите кнопку [[Оценивание_теста_и_заданий_MyTestXPro|Изменить]]... |
− | Например, | + | В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript). |
− | + | <font color='#ff0000'>Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем. </font> | |
− | + | Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом. | |
− | |||
− | + | Для настройки скрипта используйте кнопку: | |
− | + | [[File:mark_script_onoff.png]] | |
− | + | ||
− | + | Откроется окно: | |
− | + | ||
− | + | [[File:mark_script_editor.png]] | |
− | + | ||
− | + | Если скрипт уже задан ранее, то он будет показан в этом окне. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Функция | + | Функция вычисления оценки получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически и зависят от теста и его результатов. Например, они могут выглядеть так: |
<spoiler> | <spoiler> | ||
Строка 115: | Строка 95: | ||
</pre> | </pre> | ||
</spoiler> | </spoiler> | ||
+ | |||
+ | Для отладки скрипта вы можете изменять эти данные в верхнем поле. | ||
+ | |||
+ | |||
+ | Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main(). | ||
+ | Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата. | ||
+ | |||
+ | В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов. | ||
+ | |||
+ | Пример №1 показывает как скрипт должен возвращать результат: | ||
+ | <pre> | ||
+ | function main(R, G){ | ||
+ | var m = {}; | ||
+ | m['value'] = 3; | ||
+ | m['title'] = 'Зачет'; | ||
+ | m['note'] = 'Примечание!'; | ||
+ | return m; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Пример №2 соответствует обычному способу оценивая (делает тоже самое): | ||
+ | <pre> | ||
+ | function main(R, G){ | ||
+ | var m = {}; | ||
+ | var X = {3:30, 4:60, 5:90}; | ||
+ | m['value'] = 2; | ||
+ | for (var i in X){ | ||
+ | if (X[i] <= (100*R['Score']/R['ScoreMax'])){ | ||
+ | m['value'] = i; | ||
+ | } | ||
+ | } | ||
+ | return m; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Пример №3 это уже один из возможных способов использования этой функции: | ||
+ | <pre> | ||
+ | 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; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Его можно применять, например, если требуется поставить оценку в соответствии со следующими критериями: | ||
+ | |||
+ | а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2" | ||
+ | |||
+ | б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%. | ||
+ | |||
+ | [[File:mark_script_editor2.png]] | ||
+ | |||
+ | После запуска скрипта в поле ниже отобразиться результат (для данных примерных результатов). Если скрипт работает без ошибок и выдает оценку, то его можно сохранить. | ||
+ | |||
+ | После изменения скрипта кнопка {{Клавиша|Сохранить}} становится не активной, это предназначено, что уменьшения рисков задать не рабой скрипт. | ||
+ | |||
+ | Кнопка {{Клавиша|Удалить}} удаляет скрипт из оценивания, при этом поле скрипта не очищается и вы можете еще с ним поработать. |
Текущая версия на 21:15, 24 июля 2021
Выставление оценки за тест используя свой скрипт
Эта информация для версии 11.0.0.62 (и, возможно, для следующих).
Настройка оценивания теста находится в Редакторе тестов на странице Параметры теста.
Для изменения критерия оценивания нажмите кнопку Изменить...
В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).
Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.
Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.
Для настройки скрипта используйте кнопку:
Откроется окно:
Если скрипт уже задан ранее, то он будет показан в этом окне.
Функция вычисления оценки получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически и зависят от теста и его результатов. Например, они могут выглядеть так:
Для отладки скрипта вы можете изменять эти данные в верхнем поле.
Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция main().
Эта функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием. Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.
В контекстном меню (правой кнопкой) поля скрипта есть несколько заготовок, облегчающих понимание и написание своих скриптов.
Пример №1 показывает как скрипт должен возвращать результат:
function main(R, G){ var m = {}; m['value'] = 3; m['title'] = 'Зачет'; m['note'] = 'Примечание!'; return m; }
Пример №2 соответствует обычному способу оценивая (делает тоже самое):
function main(R, G){ var m = {}; var X = {3:30, 4:60, 5:90}; m['value'] = 2; for (var i in X){ if (X[i] <= (100*R['Score']/R['ScoreMax'])){ m['value'] = i; } } return m; }
Пример №3 это уже один из возможных способов использования этой функции:
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; }
Его можно применять, например, если требуется поставить оценку в соответствии со следующими критериями:
а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"
б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.
После запуска скрипта в поле ниже отобразиться результат (для данных примерных результатов). Если скрипт работает без ошибок и выдает оценку, то его можно сохранить.
После изменения скрипта кнопка Сохранить становится не активной, это предназначено, что уменьшения рисков задать не рабой скрипт.
Кнопка Удалить удаляет скрипт из оценивания, при этом поле скрипта не очищается и вы можете еще с ним поработать.