Показаны сообщения с ярлыком CourseLab. Показать все сообщения
Показаны сообщения с ярлыком CourseLab. Показать все сообщения

понедельник, 17 октября 2016 г.

Если всё еще не знаете, как уменьшить исходник CourseLab

Автор: Андрей Матюков



Сегодня о полезной опции CourseLab, о которой, может быть, знали не все, кто «страдали» от больших объемов исходников курсов и пытались почистить ненужные файлы вручную. А такие файлы безусловно появляются, если делать новый курс на примере одного из прежних.

Кнопка «Очистить модуль», что находится на вкладке «Модуль», Вам в помощь.


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


P.S.: Есть в CourseLab особенность при копировании модуля из одного курса в другой, например, вторым. Не переносятся состояния картинок, отличные от "По умолчанию". 
-------------

четверг, 22 сентября 2016 г.

Регулярные выражения в CourseLab

Автор: Андрей Матюков

Об использовании RegExp в «КурсЛабе» впервые подумал, когда понял, что в обычном условии сравнение строк в некоторых случаях происходит некорректно.


Подвернулась задача провести проверку пользовательского ввода, при которой верными будут считаться следующие значения: 0700, 07:00, 07.00, 07 00 и  07,00. Опять на ум из молодости вернулись «регэкспы».

Оказалось, что и в CourseLab при помощи JavaScript их можно использовать. Для этого обработчик надо разместить в папке проекта под названием «1» в файле «module.js».
Механизм для передачи значений переменных от этого файла «КурсЛабу» немного описан в разделе «Для опытных пользователей».


Вызов функции из действий объектов происходит следующим образом:


Указываем имя переменной тому полю, ввод в которое будем проверять, и ограничиваем по длине.


Затем проверяем кодом в файле module.js допустимые значения.


// RegWord
function RegWord()
{
CLV.oSlide["bylo"] = 'neverno';
//В переменную txt вношу значение поля ввода
var txt = CLV.oSlide["fulltext"];
var reps = 'a' + txt;
//Задаю шаблон регулярного выражения для 0700
var srch1 = "0700$";
var re1 = new RegExp(srch1,'i'); //Флаг i - независимости от регистра в конкретном примере не нужен, но оставлю для наглядности
var itog1 = reps.search(re1);
//Если в поле ввели 0700
if(itog1>0)
                {
                  CLV.oSlide["bylo"] = 'verno';
                }
//Задаю шаблон регулярного выражения для остальных значений
var srch2 = "07[.,: ]00$";
var re2 = new RegExp(srch2,'i');
var itog2 = reps.search(re2);
//Проверка ввода остальных допустимых комбинаций
if(itog2>0)
                {
                  CLV.oSlide["bylo"] = 'verno';
                }
    
itog1=0;
itog2=0;
srch1=0;
srch2=0;
re1=0;
re2=0;
}
Далее уже на основе сравнения введенного значения с шаблоном произвожу дальнейшие манипуляции уже в «КурсЛабе».


Этот пост в блоге я разместил не только для того, чтобы с кем-то поделиться информацией об использовании регулярных выражений в CourseLab, но и, возможно, чтобы получить новые знания для себя. Данная конструкция позволяет в конкретном примере корректно пропустить все значения кроме одного (x0700). Сейчас объясню почему.

Не владею на должном уровне RegExp или JS, но почему-то не получается задать «паттерн» с флагом начала и конца строки, например "^0700$". Такая конструкция не дает нужный результат, как будто в переменную поля ввода автоматически добавляется еще какой-то невидимый символ. Пытался проверить вводимые данные посимвольно – вроде ничего нет. Или же иным образом оформить шаблон нужно...

Из-за этой особенности приходится к введенному значению добавлять вперед символ (var reps = 'a' + txt;) и тогда уже сравнение происходит корректное, если вводится 5 символов (например, «07 00»). Если же 4, как в случае с «0700», то правильным засчитывается и один ложный вариант «x0700».Может, надо несколько иную конструкцию использовать, а не reps.search(re1). 

Пока ответа не нашел. Буду признателен, если кто подскажет.

понедельник, 22 августа 2016 г.

Особенности настройки курсов CourseLab для СДО Mirapolis

Автор: Андрей Матюков


Хочу поделиться своими ходами, к которым пришел опытным путем, когда не помогли советы разработчиков. После интеграции SCORM-пакетов (собранных в CourseLab 3) в СДО Mirapolis оказалось, что при просмотре курсов через мероприятия не заработали некоторые опции, такие как:
- отметка о завершении модуля,
- выставление оценки,
- завершение курса при помощи стандартного объекта «Кнопка навигационная».
Ниже приведу приёмы, с помощью которых я пока поборолся с этими проблемами. Найти стандартные ходы не удалось в виду того, что они подходят под связку “CourseLab + WebTutor”, а в моем случае обязательное условие – работа с СДО Mirapolis.
Завершение модуля
Если курс линейный (проходится с первого по последний слайд), то хватает установки правила с условием «Слайды просмотрены» в пункте меню редактора Модуль/Исполнение/Правила. 
Только есть пара нюансов, чтобы это правило отрабатывалось. Для версии редактора CourseLab 3.1 оказалось необходимо, чтобы пакет SCORM был сформирован именно «под управлением AICC-совместимой СДО».
А настройки завершения в самой СДО Mirapolis были следующими:
Выставление оценки
В описанном сочетании курсов и СДО не фиксируется также оценка прохождения информационного материала, если воспользоваться стандартной опцией редактора.
Что делать в таком случае? Прописывать установку оценки кодом для действия последнего слайда по событию «После создания».
Подобным методом можно воспользоваться при установке статуса завершенности и успешности, если в нелинейном курсе стандартными средствами редактора модуль «не завершается».
Кнопка «Закрыть модуль»
Для рассматриваемой ситуации к тому же не срабатывает кнопка «Закрыть модуль».
Поэтому в СДО Mirapolis, курсы собранные в CourseLab 3, завершаются простым закрытием всплывающего окна браузера, нажав на [X].
Многомодульные курсы
Ну и напоследок можно напомнить, что при наличии в курсе более одного модуля не надо забывать ставить им уникальные идентификаторы. 
Иначе в режиме мероприятия, если идентификаторы модулей будут одинаковы, слушатель при попытке открыть любой из них будет попадать только на последний.
Заключение
И если учесть все эти условия, на выходе мы получим курс с модулями, которые будут завершаться и оцениваться.
Думаю, это не последние пляски с бубном в подобных ситуациях, но пока так. 
Спасибо за внимание 

четверг, 19 сентября 2013 г.

Курс-викторина с отложенной обратной связью

Автор: Павел Безяев

 
 
 
Задумали достаточно сложный с технической точки зрения (и по трудоёмкости) курс по продажам услуг и сервисов. Основа курса – соревновательный дух!

Курс делится на два блока:
  • Знание сервисов
  • Продажа сервисов (техники продаж)
Наиболее интересен первый модуль. Он будет представлять собой некую викторину с отложенной обратной связью. По темпу это будет что-то вроде электронной игры «волк ловит яйца», только вместо яиц будут ответы клиенту. Если детали сервиса «отскакивают от зубов», то консультант легко будет отвечать на вопросы, а иначе ему придётся использовать метод «тыка» или пропускать вопросы. После блока вопросов по определенному сервису, выводим промежуточный результат, а потом (и вот это интересно!) выводим обратную связь только по тем вопросам, на которые был дан неверный ответ. Получается интересное решение – с одной стороны есть динамика, как в игре (мы не отвлекаемся на обратную связь к каждому вопросу). А с другой стороны есть обучающий эффект, т.к. мы даём обратную связь именно по ошибочным ответам, что позволит улучшить результат при следующем прохождении курса и закрепить знания. Не маловажно, что курс будет сопровождаться PR-компанией – рейтинги лучших сотрудников будут регулярно публиковаться на корпоративном портале. 10 сотрудников набравших больше всего баллов к определенной дате перейдут в очную часть конкурса и будут соревноваться за реальные призы.

Для реализации мы рассматривали два инструмента – Captivate и CourseLab. Ставку делали на Captivate, т.к. его возможности действительно безграничны. Но тут избыток возможностей сыграл злую шутку – все попытке реализовать задуманный сценарий натыкались на неожиданные сюрпризы связанные с концепцией заложенной разработчиками и некими глубинными настройками на поиск которых уходило очень много времени. Неделя поисков привела к тому, что я дал сотрудникам отбой и открыл CourseLab, где за 20 минут реализовал прототип требуемого курса.

Если кому-то будет интересна технология, то готов поделиться:

1. На картинку/текст с верным ответом вешаем действия (на клик мышкой):
ПЕРЕМЕННАЯ (x1=1, область действия = весь модуль)
ОЦЕНКА (Цель=total, добавить 1)
ПРЕХОД (следующий слайд)
На неверные ответы «вешаем» просто переход на следующий слайд.
На слайде размещаем типовой элемент из раздела навигации — «таймер» и через действие «окончание времени» задаём переход на следующий слайд (это если обучающийся не успел дать ответ). При этом сам слайд выводим в режиме «Ждать действия».

Для каждого следующего вопроса задаём свою переменную x2, x3, … x100. Получается, что при нажатии на верный ответ мы увеличиваем общий балл по курсу и присваиваем занчение 1 соответствующей переменной, а если ошибаемся, то прост переходим к другому вопросу. Вернуться назад нельзя.

2. Что бы выводит отложенную обратную связь, мы создаём после каждого блока вопросов слайды с текстом обратной связи. К каждому слайду через действие на событие «перед показом» вешаем небольшую проверку:
ЕСЛИ (Условие=#x1==1)
____ПЕРЕХОД (следующий слайд).
Таким образом, получается, что все слайды с обратной связью по вопросам на которые был дан верный ответ просто не будут отображаться!

Смотрится очень динамично и интересно! И при этом у нас больше сотни вопросов :) 

Если нужны дополнительный детали – с радостью поделюсь!

osotl

 
 
Удачи!
Павел Безяев.

 
 

воскресенье, 23 июня 2013 г.

Новый формат конкурса CourseLab

Автор: Эдуард Бабушкин

Недавно прошел конкурс электронных курсов CourseLab. Конкурс был в новом формате: участники делали курсы "здесь и сейчас", и задания вытягивали как билеты на эксзамене.

Подробнее с результатами можно здесь познакомиться. Я же хотел познакомить вас с коротким видео - резюме конкурса. Смотрим