Модуль "Обучения" :: Тип вопроса "Короткий ответ"

Рейтинг: 43.3045  
На голосовании
Предложил Пользователь 50292 29.11.2011 20:18:39

Модуль "Обучения" :: Тип вопроса "Короткий ответ"

Здравствуйте, сегодня столкнулся с проблемой в модуле "Обучение". Есть понятие "Короткий ответ".

Короткий ответ: ученик должен ввести в качестве ответа слово или
фразу. Учителем может быть задано несколько вариантов правильного ответа.
Пример:
в тесте создаем вопрос вида:
"Кто друг человека? "
и поле для ввода ответа, которое ожидает строку
"собака"

Тема поднималась в 2006 году:
http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic4900/message29891/#message29891

Идея!!! Разработчикам доделать модуль "Обучение"

Рейтинг: -2.0134  
Пользователь 32599 29.11.2011 21:30:09
не, ну его нафик. пусть не отвлекаются, работают над более востребованными вещами.
Рейтинг: 0  
Пользователь 50292 29.11.2011 23:07:40
Заминусовали идею, а жаль.
Рейтинг: 1.1847  
Пользователь 89296 30.11.2011 11:30:05
А я поддерживаю идею! Мне оно нужно как воздух: дана задача, у нее конкретный числовой ответ, например, "1100". Неудобно в таком случае давать выбор варианта, лучше чтобы ответа не было вообще перед глазами, иначе можно догадаться. А у меня 50 человек, кого надо протестировать - и проверять руками - это жутко неудобно.
Рейтинг: 0.7108  
Пользователь 50292 30.11.2011 12:37:55
Вообще интересно, во всех системах обучения данная функция имеется, а в Битриксе нет, хотя Битрикс занял 5 место из 30 на саммите разработчиков электронных курсов.

В идеале хотелось получить еще следующие варианты вопросов:

Вычисляемый вопрос - можно задать формулы математические и автоматом посчитается правильность ответа.


Вопрос на соответствие - содержит описания и список названий, которые ученику необходимо поставить в соответствие с другим списком названий или утверждений.


Числовой вопрос - с точки зрения ученика выглядит так же, как и короткий ответ. Разница в том, что ему необходимо ввести в качестве ответа число. При этом допускается определенная погрешность при ответе, т.е. в качестве ответа принимается диапазон значений.
Рейтинг: 0.6904  
Пользователь 21419 30.11.2011 13:22:54
В ТЗ, который сейчас готовится к обсуждению на новый функционал следующей версии, есть часть этих пожеланий: короткий ответ и  числовой вопрос.
Типы вопросов "Вычисляемый вопрос" и "Вопрос на соответствие", добавлю в ТЗ.
Правда, не совсем ясен "вычисляемый вопрос". Если система будет считать, то что делает пользователь???

Рейтинг: 0.464  
Пользователь 50292 30.11.2011 14:08:51
Мое субъективное мнение, к модулю "Обучения" необходимо подходить комплексно и на базе данного модуля выпустить типовое решение "1С-Битрикс: Система дистанционнго обучения".
Сейчас многие ВУЗы используют в качестве СДО "Moodle". Многих не устраивает отсутствие коммерческой поддержки и малое количество разработчиков. Отсутствие разработчиков привело к тому, что  стоимость доработки необходимого функционала стоит сотни тысяч рублей и плюс ВУЗ жестко завязан на этого разработчика.
Модуль "Обучения" у Битрикса так же не устраивает т.к. предоставляется не большой функционал при тестировании в сравнении с Moodle.

Роберту Басырову:
Правда, не совсем ясен "вычисляемый вопрос". Если система будет считать, то что делает пользователь???
Не буду подробно описывать функционал, приведу лишь ссылку на книгу "Практика электронного обучения с использованием Moodle" стр. 90 параграф 6.4
Я думаю в данной книге вы найдете еще множество идей как дополнить модуль "Обучения".

В целом модуль обучения представлен слабо у компании 1С-Битрикс, хотя задел и уже имеющиеся возможности впечатляют. Идей и предложений по модулю у сообщества много надеюсь, поэтому предлагаю создать группу перенести обсуждения и пожелания уже в нее.
Рейтинг: 0.2461  
Пользователь 50292 02.12.2011 17:39:04
Так же необходимо предусмотреть возможность тестирования по вариантам. Тест один, а вариантов может быть несколько. Варианты для прохождения тестирования предоставляются в случайном порядке.
Рейтинг: 0.2461  
Пользователь 50292 08.12.2011 16:03:43
Еще было бы здорово если можно было тестирование проводить по вариантам.
Например: тестируем сотрудников по одному и тому же курсу.
В курсе есть сложные вопросы, а есть легкие.
Нужно соотв. тест поделить на варианты, и сотрудникам выдавать случайным образом ссылку на вариант.
Рейтинг: 1.4641  
Пользователь 47823 25.12.2011 16:22:30
Первым делом лезем в /bitrix/modules/learning/admin/learn_question_edit.phpи убираем проверки типа ($str_QUESTION_TYPE == "T"), чтобы текстовый вопрос позволял вводить ответы.

Вторым делом делаем вопрос, задаем тип "текстовый ответ", создаем по крайней мере один ответ, делаем его правильным ответом.

Далее берем компонент learning.test - он отвечает за вывод вопроса на экран и работу по проверке ответа на вопрос.

Третье: в шаблоне прописываем вывод для текстового вопроса строки с ответом вместо textarea

<?php if ($arResult["QUESTION"]["QUESTION_TYPE"] == "T"):?>
   <?/* koi: краткий ответ на текстовой строке */?>
   <? $response = isset($arResult["QBAR"][$arResult["NAV"]["PAGE_NUMBER"]]["RESPONSE"]) ? $arResult["QBAR"][$arResult["NAV"]["PAGE_NUMBER"]]["RESPONSE"][0] : ""; ?>
   <input type="text" value="<?=$response?>" name="answer">
... 
Кстати, использование формы

<?php if():?>

вместо

<?if(){?>
 
уже достало. Все текстовые редакторы прекрасно подсвечивают открывающиеся и закрывающиеся скобки {}, что очень удобно.

Четвертое: лезем в component.php и после строки

$result = CTestResult::AddResponse($testResultID, $_REQUEST["answer"]);
 
рисуем примерно так:

$koi_rsQuestion = CLQuestion::GetByID($arTestResult["QUESTION_ID"]);
$koi_arQuestion = $koi_rsQuestion->GetNext(); 
$result = CTestResult::AddResponse($testResultID, $_REQUEST["answer"]);
   if($koi_arQuestion && ($koi_arQuestion["QUESTION_TYPE"] == "T")){
      $str_POINT = 0;
      $koi_answer = isset($_REQUEST["answer"])? $_REQUEST["answer"] : false;
      $rsAnswer = CLAnswer::GetList(Array("SORT" => "ASC"), Array("QUESTION_ID" => $koi_arQuestion["ID"]));
      while($arAnswer = $rsAnswer->GetNext()){
         if( _checkTinyStringsEqual($arAnswer['ANSWER'],$koi_answer) && ($arAnswer['CORRECT']=='Y') ){
            $str_POINT = $arAnswer['POINT'];
         }
      }
      $result = Array(
         "ANSWERED" => "Y",
         "RESPONSE" => $_REQUEST["answer"],
         "POINT"=> $str_POINT,
         "CORRECT"=> ($str_POINT == "0" ? "N" : "Y"),
      );
      $tr = new CTestResult;
      $tr->Update($testResultID, $result);
   }
 
Здесь функция _checkTinyStringsEqual - это функция сравнения ответа с эталоном. Я прописал ее в файле functions.php вот так:

if(!function_exists("_checkTinyStringsEqual")){
   function _checkTinyStringsEqual($a,$b){
      $a = trim($a);
      $b = trim($b);
      $a = mb_strtolower($a, 'UTF-8');
      $b = mb_strtolower($b, 'UTF-8');
      return ($a == $b);
   }
}
 
Получилось грубовато, но работает.

==========
Где Валера? Валера НаТропинках!
Рейтинг: 0  
Пользователь 773891 13.02.2017 14:43:36
Господа! помогите, очень надо автоматическую проверку "ТЕКСТОВОГО ТИПА" вопросов
использую
1С-Битрикс: Управление сайтом 16.0.12.
Все прочитали, честно попробовали сделать, не заработало
совсем не программист

подскажите, куда какой костыль надо прикрутить сейчас, чтобы заработало
или последний пост актуален для моей версии и нужно использовать его?

было бы здорово поделитесь готовыми файлами, чтобы можно было сравнить.
встал на первом "уровне"
не смог добиться, чтобы при выборе ТЕКСТОВОГО ОТВЕТА
Битрикс позволил мне добавить ответ
Рейтинг: 0  
Пользователь 136929 09.06.2021 08:46:58
В идеале бы конечно предусмотреть возможность расширения своими типами вопросов