MarkScript: различия между версиями

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
'''Выставление оценки за тест используя свой скрипт.'''
+
= Выставление оценки за тест используя свой скрипт =
  
 
Настройка оценивая теста находится в Редакторе тестов на странице [[Параметры_теста_MyTestXPro|Параметры теста]].
 
Настройка оценивая теста находится в Редакторе тестов на странице [[Параметры_теста_MyTestXPro|Параметры теста]].

Версия 12:41, 24 июля 2021

Выставление оценки за тест используя свой скрипт

Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.

Mark param1.png

Для изменения критерия оценивания нажмите кнопку Изменить...

В редких случаях обычной шкалы оценивания может быть недостаточно и нужно учитывать какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).

Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.

Работа скрипта может зависеть от операционной системы. Если вычисление оценки завершится неудачно, то оценка будет выставлена обычным образом.


Для настройки скрипта используйте кнопку: Mark script onoff.png

Откроется окно:

Mark script editor.png

Если скрипт уже задан ранее, то он будет показан в этом окне.

Функция вычисления оценки получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически и зависят от теста и его результатов. Например, они могут выглядеть так:

Показать


Для отладки скрипта вы можете изменять эти данные в верхнем поле.


Скрипт оценивания может содержать несколько функций. Для вычисления оценки вызывается функция 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%.


После запуска скрипта в поле ниже отобразиться результат (для данных примерных результатов). Если скрипт работает без ошибок и выдает оценку, то его можно сохранить.

После изменения скрипта кнопка Сохранить становится не активной, это предназначено, что уменьшения рисков задать не рабой скрипт.

Кнопка Удалить удаляет скрипт из оценивания, при этом поле скрипта не очищается и вы можете еще с ним поработать.