Websoft

четверг, апреля 26, 2012

Разработчик, банкиром можешь ты не быть, но математиком – обязан!


Делал тут как-то курс по страхованию.
Дошел до такого слайда.

Естественно надо сделать какое-то проверочное задание.
Работнику проходящему этот курс считать ничего не надо (есть один человек, который все посчитает, построит график и «узаконит» его для всей компании. Остальные будут использовать его для анализа). Надо только понимать, какой риск, в какую область попадет, и принять соответствующее решение.
Ну и воспроизвожу тот же график, и прошу разбросать нужным образом точки.

А как организовать проверку? И понял, как мне повезло, что «Линия толерантности» прямая, хотя и под углом. А ведь могла быть и какая-нибудь кривулина типа такой

Для прямой все просто: берем Область нажатия, поворачиваем ее на нужный угол, лишнее прикрываем «заплатками».
Но ведь все время везти не может, поэтому решил «лучше день потерять, а потом за час долететь».

Проблема в том, что CourseLab все объекты «видит» прямоугольными. Даже круг из Автофигур без заливки для редактора – непрозрачный прямоугольник. И использовать стандартные объекты для «кривых» областей нельзя.
Значит надо использовать возможность возвращать координаты левого верхнего угла объекта ($OBJ_ID.x и $OBJ_ID.y) и сравнивать их с точками графика.
Следующий шаг – определение функции, по которой этот график построен, а точнее то что получилось на слайде.
Уравнение прямой: y=kx-b.
Угловой коэффициент: k=(y2-y1)/(x2-x1).
(x1,y1) – координаты левой верхней точки объекта (я использовал Линию из Автофигур).
(x2,y2)=(x1,y1) + размеры объекта.

Чтобы узнать свободный член – сделал копию моей прямой и вытянул ее до х=0, получилось y=-10.
В итоге: y=0,67x+10. Но b я отбросил – поправка на то, что пользователь попытается поставить точку на саму линию.
Внимание: следует помнить, что чем точка выше на слайде, тем координата y меньше!
Остается настроить действия!
Я там немного схитрил – поставил ограничения (если точку бросить вне плоскости графика, она вернется в исходное положение) и заблокировал возможность перетаскивания после помещения ее на плоскость (та что перетаскивалась скрывается, а из-за «границы» прилетает другая – статичная).

Этот метод еще хорош тем, что при выполнении задания позволяет безболезненно класть одну «точку» на другую (конфликта с перекрытием областей не возникает).
Но есть и минус этого метода. Привязываясь к координатам, страдает «ремонтопригодность» курса. Если после настройки придется переформатировать слайд и график сместиться, то придется все пересчитывать и перенастраивать.

Посмотреть, что получилось можно здесь, а скачать исходный проект в CourseLab 2,7 здесь.

Пожалуй, единственный существенный недостаток этого метода заключается в том, что работник, который рассчитывает «Линию толерантности», использует Excel или еще более мощные и специализированные программы. Я же, как разработчик курса, вынужден считать «в уме». Получается, что разработчик курса должен быть «сильнее» в этом компоненте, чем тот самый работник, и тем более чем те, которые будут проходить этот курс.

А может, я слишком усложняю?
Может, есть более простой способ оценки событий в нестандартных по форме областях на слайде в CourseLab?
Что скажите, коллеги?

15 комментариев:

Кира Гусева комментирует...

по-моему, гениально!)

Алексей Корольков комментирует...

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

Для многих представителей профессии это неожиданное открытие!

Супер.

Эдуард Бабушкин комментирует...

А... можно сделать так, чтобы работника п сам вводил данные точки, рямая (кривая) менялась на графике?
или это и реализовано?

Сергей Колков комментирует...

2 Корольков
>>наконец я увидел…
Заходи почаще в гости, еще и не такое увидишь! :)))
>>навыки из школьной алгебры
Для этой задачи «школьной алгебры» хватило. Но для меня было важнее сам факт решения. Теперь могу с уверенность сказать, что подобные упражнения можно делать для любых функций (форм областей). Хотя в корпоративном секторе вряд ли этот метод будет востребован.

2 Бабушкин
Эдуард, не прямая здесь не двигается, но думаю и это возможно. Первое что приходит в голову – нарисовать картинку графика и менять ее положение/размер в зависимости от вводимых данных. Но насколько пропорционально/адекватно это получится, не знаю. Проверять надо.
Одно знаю точно – можно автоматизировать построение диаграмм по вводимым пользователем данным. Как-нибудь расскажу и покажу, как это делается.

Эдуард Бабушкин комментирует...

"Одно знаю точно – можно автоматизировать построение диаграмм по вводимым пользователем данным. Как-нибудь расскажу и покажу, как это делается."
вот это было бы реально здорово для электронных курсов - я уже вижу кучу мест, куда это можно приложить

Эдуард Бабушкин комментирует...

я веду семинары по аналитике и матстатистике, это можно прикладывать для различных областей, в т.ч. HR
супер, Сергей
думаю, из этого реально можно вытащить классные прикладные курсы

Владимир Наумов комментирует...

Присоединяюсь к мнению Эдуарда:
"супер, Сергей
думаю, из этого реально можно вытащить классные прикладные курсы". Пока же это локальная, увы, находка.

Эдуард Бабушкин комментирует...

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

Сергей Колков комментирует...

«будем делать курсы и зарабатывать деньги))))»
Эдуард, может прозвучать странно, но я и так каждый день делаю курсы и зарабатываю этим деньги :))))))

«Пока же это локальная, увы, находка.»
Владимир, не очень понял к чему относиться слово «локальная».
Если о решении, то естественно, что локально – в пределах курса не столь эффектно. Под СДО - много краше! В глобальном масштабе (массовые открытые курсы) было бы интересно, но есть проблемы с аутентификацией пользователей, промежуточным хранением данных и тд.
Если об авторстве… Тем более не уверен, что решение уникальное. Несколько лет наблюдая за конкурсом курсов и конференциями, убеждаюсь, что идеи у разных разработчиков настолько близки, что возникают разные подозрения ;). А реализации отличаются только степенью детализации. Проблема, на мой взгляд, в том что возможностей посмотреть работы друг друга у нас крайне мало, а конструктивно обсудить эти работы – еще меньше.

Владимир Наумов комментирует...

Приветствую, Сергей

<< Если о решении, то естественно, что локально – в пределах курса не столь эффектно. Под СДО - много краше! В глобальном масштабе (массовые открытые курсы) было бы интересно, но есть проблемы с аутентификацией пользователей, промежуточным хранением данных и тд.

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

<< Если об авторстве… Тем более не уверен, что решение уникальное. Несколько лет наблюдая за конкурсом курсов и конференциями, убеждаюсь, что идеи у разных разработчиков настолько близки, что возникают разные подозрения ;). А реализации отличаются только степенью детализации. Проблема, на мой взгляд, в том что возможностей посмотреть работы друг друга у нас крайне мало, а конструктивно обсудить эти работы – еще меньше.

Решение если и уникальное, то применительно к ситуации в конкретной компании. Подобных решений полно и давно полно. Сам недавно близкие решения прописывал в сценариях нескольких курслабовских курсов и знаю несколько человек, которые нечто подобное в своих курслабовских курсах давно реализовывали и сейчас реализовывают.
Реализация же зависит, ИМХО, от подхода: являются ли подобные решения принципиальными при разработке курсов, как минимум, определенного класса, «вычислительных» разделов курсов, или они случайный элемент для украшетельства и оживляжа. В последнем случае их «открыватели» начинают носиться с такими «ноу-хау» как с писаной торбой. В народе это пиаром называется. Подозреваю, что именно такие деятели и наводят тебя на подозрения.

Сергей Колков комментирует...

Владимир, теперь ясно.
Немного не соглашусь в отношении «универсальности». Для «расчетных» курсов действительно очень локально и, наверное, слабовато. Для всех прочих меняем цель самого упражнения на «действие». «Действие» отличное от нажатие на кнопку Далее. Думаю именно так и надо закладывать привычку пользователя Работать с курсом, а не просто смотреть картинки. И так можно заложить базу для интеракций более высокого уровня (не механических).

Владимир Наумов комментирует...

Сергей,
дело за малым :))) тогда: придумать сколько-нибудь универсальные форматы / "педагогическую логику" / алгоритмы / "математику" упражнений на "действие". И во что их заложить? В средство авторинга, ЛМС, PLE, в некий особый сетевой сервис?

Могу предложить сходу несколько десятков упражнений на когнитивные действия, на переход от обыденного знания к знанию более высокого уровня, на управляемое чтение теста и (инфо)графики и пр.
Только, однако:
- во что именно их заложить (см. выше)?
- оно вендорам надо? - Сомневаюсь.
- все равно, даже если нечто подобное и реализовать, оно будет универсальным лишь в пределах собственной применимости. Здесь выход вижу в определении бОльшей универсальности упражнения для отработки бОльшего (более массового, типичного) класса задач.

Сергей Колков комментирует...

Владимир, :)))) вреде бы на одной кухне работаем (только один рецепты пишет, а другой лук шинкует), но смотрим на вещи совсем иначе. Мы даже «универсальность» понимаем по разному )))))))))).

Главное вендоров не трогать! Если предложенный метод «опустить» до уровня стандартного объекта КурсЛаба, скорее всего он умрет. Например, есть стандартный объект Вопрос. Почти стандартная возможность комментировать варианты ответов пользователя. А теперь сравните количество курсов, где это реализовано и количество упоминаний в и-нет, вебинарах, конференциях что это надо делать!
Описанный метод относительно прост (требует больше аккуратности и внимательности, чем знаний). Любой может взять его и адаптировать под свою задачу (локализовать). В этом я и вижу его «универсальность».

Владимир Наумов комментирует...

Сергей,
универсальность я понимаю так:
эпоха универсальности давно прошла. Нет универсалий по определению.

И стандартный вопрос в КурсЛабе. Сколько лет заказчикИ просилИ решить эту проблему? Думаю, мы оба про это знаем. Решили, да. Предполагаю, что решили так, что пользователям (любым, т.е. многим) решение "не шепчет", им неудобно-с. А некоторым надо просто помочь, поучить "локализовать", понятный мануал доставить. И решить однотипно для и под ЛМС и в самом средстве авторинга. В этом контексте я вижу "универсальность" в клиенториентированности, на сколько она возможна, разумеется.

Эдуард Бабушкин комментирует...

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