Google+

Sunday, April 2, 2017

Тестирование с помощью Google-форм. Расширение «штатных» возможностей. Часть 2

Часть 1 можно посмотреть здесь >> ссылка

Создание теста в формате Google-формы на основе случайной выборки из банка вопросов. Вольный пересказ с незначительными изменениями и дополнениями статьи Alice Keeler Google Forms: Create a Quiz from a Question Bank. Пошаговая инструкция.

1. Создаём новую Google-таблицу, в которой мы сформируем банк вопросов и затем - выборку из случайных вопросов.
  • Создаём новую таблицу, даём ей подходящее имя

  • Первый лист таблицы (Лист 1) переименовываем – даём ему имя «Тест»

  • Добавляем новый лист и даём ему имя «Вопросы». На этом листе будем формировать банк вопросов


2. На листе «Вопросы» записываем вопросы, объединив их по смыслу (теме, сложности и т.п.) в группы, и записывая вопросы разных групп в разные столбцы. Структура этого листа важна. В дальнейшем она будет влиять на запись формул. На что обратить внимание?

  • В столбце A записываются номера вопросов в строгом порядке без пропусков. Первый номер записывается в ячейку A2.
  • Количество вопросов в разных группах (разных столбцах) должно совпадать.
  • Количество групп вопросов может быть любым. 
  • Ответы записывать необязательно. Столбцы, в которые записываются ответы, могут отсутствовать

Пример:

3. Переходим на лист «Тест». В первой строке вводим заголовки:


 4. И вот теперь – внимание! В ячейку B2 вводим формулу, которая выберет случайный вопрос из первой группы вопросов банка:

=ВПР(СЛУЧМЕЖДУ(1;МАКС('Вопросы'!$A:$A));'Вопросы'!$A$2:$G;2;ЛОЖЬ)

Или в английской нотации:
=VLOOKUP(RANDBETWEEN(1;MAX('Вопросы'!$A:$A));'Вопросы'!$A$2:$G;2;FALSE)

Это функция вертикального поиска, которая ищет на листе «Вопросы» в столбце A, начиная со второй строки (с ячейки $A$2), случайное число в диапазоне от 1 до максимального номера и затем выбирает в соответствующей строке значение во втором по порядку столбце указанного в формуле диапазона.
Сложно? Разберёмся на примере.
В нашем случае в столбце A листа «Вопросы» записаны числа от 1 до 7. Случайное число может принять какое-то значение из этого диапазона. Пусть выпало число 3.
Функция Вертикального поиска ищет это число в первом столбце диапазона $A$2:$G. G – последний столбец, занятый нами под вопросы и ответы. искомое число будет найдено в строке 4.  В этой строке во втором по счёту столбце определяется содержимое ячейки и записывается в ячейку B2 листа «Тест». Будет записан текст вопроса «Сколько струн у балалайки?».

5. Копируем формулу. Если нам нужно сформировать 10 вариантов, то копируем в диапазон от B2 до B11. Вопросы в нашем случае неизбежно будут повторяться, но чем больше банк, тем реже будет повторение. 
Вот что у нас получилось: 

6. В ячейку С2 листа «Тест» пишем похожую формулу, но вопрос уже надо выбирать из 4-го столбца диапазона. Поэтому формула изменится следующим образом: 
=ВПР(СЛУЧМЕЖДУ(1;МАКС('Вопросы'!$A:$A));'Вопросы'!$A$2:$G;4;ЛОЖЬ)

7. Так же, как и с первым вопросом, копируем второй вопрос в столбце С. 

8. Соответственно, в столбец с третьим вопросом записываем формулу: 
=ВПР(СЛУЧМЕЖДУ(1;МАКС('Вопросы'!$A:$A));'Вопросы'!$A$2:$G;6;ЛОЖЬ) 

9. После копирования получаем таблицу со случайными вопросами: 

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

10. Создаём новую форму, даём ей название и сформируем вопросы следующим образом:
  • Первые вопросы – идентификационные. Пользователь введёт имя, класс и другую идентификационную информацию. 
  • Далее на каждый вопрос теста следует отвести два вопроса формы. Формат для первого вопроса – Текст (абзац), для второго - Текст (строка). В первом поле формы будет записан вопрос из подготовленной таблицы, во второе пользователь введёт свой ответ. Выглядит это так:


11. В меню формы выбираем «Создать образец заполнения» 


12. Все поля вопросов помечаем любым текстом, например, записываем в эти поля Q1, Q2, Q3: 

13. Нажимаем кнопку Отправить и копируем ссылку на «Образец заполнения»


14. 1Возвращаемся в таблицу и на листе «Тест» в ячейку A2 записываем формулу вида:

=ГИПЕРССЫЛКА("Образец заполнения URL";"Вариант 1"), где вместо «Образец заполнения» вставьте скопированную ссылку. У меня это выглядит так:
=ГИПЕРССЫЛКА (https://docs.google.com/forms/d/e/1FAIpQLScmadMhoeG00iYXg-6qHqy3uyc7FXFjKtK80rugdHEAtv2AOQ/viewform?usp=pp_url&entry.2049939250&entry.648054886=Q1&entry.419311063&entry.1931766485=Q2&entry.144775355&entry.1288719362=Q3;Вариант 1)

Обратите внимание – адрес (URL) пишется в кавычках, как и «Вариант 1».

15. Ключевой момент! Вместо меток Q1, Q2, Q3 пишем ссылки на ячейки с вопросами:
“&B2&”, “&C2&”, “&D2&”. Не забываем про кавычки!

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

=ГИПЕРССЫЛКА("https://docs.google.com/forms/d/e/1FAIpQLScmadMhoeG00iYXg-6qHqy3uyc7FXFjKtK80rugdHEAtv2AOQ/viewform?usp=pp_url&entry.2049939250&entry.648054886="&B2&"&entry.419311063&entry.1931766485="&C2&"&entry.144775355&entry.1288719362="&D2&"&entry.1499371740";"Вариант 1")

16. Копируем формулу во все оставшиеся ячейки столбца B. Адреса B2, C2, D2 будут меняться соответственно на B3, C3, D3, B4, C4, D4 … И тем самым в форму будут выбираться вопросы из новых строк.

17. Осталось только поменять номера в ссылках на варианты – и таблица ссылками на многовариантный тест готова.

18. Чтобы ученики не видели вопросы друг друга, столбцы с вопросами можно спрятать.

Итог:

Или после того, как столбцы скрыты:


Так же можно скрыть столбцы на листе «Вопросы». 

Ссылка на таблицу для учеников (с развёрнутыми столбцами): https://goo.gl/OUQMtk

К сожалению, проверить такую форму с помощью Flubaroo не получится — у каждого ученика формируется свой набор вопросов. 

Ещё один очевидный недостаток этого красивого решения - в тест могут войти вопросы только одного типа - с кратким ответом.


Тестирование с помощью Google-форм. Расширение «штатных» возможностей. Часть 1

При построении образовательного информационного пространства с помощью Google Classroom для контроля знаний в форме тестирования, как правило, используются Google-формы. Но формы изначально разрабатывались как инструмент для сбора и обработки информации сетевых опросов и лишь затем стали приспосабливаться под цели тестирования. Поэтому сейчас они по своим функциональным возможностям ещё значительно уступают «аутентичным» тестирующим комплексам таким, например, как MyTestX (разработчик Башлаков А. С.), NetTest (разработчик Поляков К. Ю.), тестирующий блок LMS Moodle.
Из наиболее существенных отличий можно отметить следующие.

1. В «аутентичных» тестирующих комплексах тесты формируются на основе структурированной базы данных (банка) заданий. При формировании варианта теста вопросы и задания могут быть выбраны вручную или случайным образом.
Упомянутые тестирующие комплексы позволяют не только создавать и использовать банк заданий, но и формировать различные варианты теста «на лету» — каждый ученик во время тестирования получает свой вариант. В «штатном» тесте на основе Google-формы такие функции отсутствуют.

2. Важное свойство тестирующего комплекса, ещё не реализованное в Google-формах в полном объёме, — вариативность отображения результатов. В Moodle, например, можно по-разному отображать результаты во время прохождения теста, после завершения попытки или после того, как тест закрыт. При этом для каждой ситуации выбираются свои опции из списка:

Возможность получить немедленный отклик на введённый ответ играет существенную роль в тренировочном тесте, когда ученик может «по горячим следам» проанализировать ошибки и исправить их.
В обновлённых в 2016 году Google-формах появилась возможность немедленной проверки результатов для трёх типов вопросов — выбор одного варианта из многих, множественный выбор и выбор из списка. К сожалению, другие важные и часто используемые типы вопросов в этот перечень не попали.
О том, как воспользоваться возможностью автоматической проверки ответов без подключения дополнения Flubaroo описано здесь >> ссылка на публикацию

3. Можно также упомянуть ограничение прохождения теста по времени и возможность использовать несколько попыток с адаптивным оцениванием (лучшая попытка, средняя оценка, первая попытка и т. п.).
Что касается временных ограничений, то решить проблему можно с помощью дополнения FormLimiter


Дополнение позволяет задать время, в которое форма закроется и результаты уже не будут приниматься. FormLimiter не позволяет задать время начала тестирования – момент открытия формы.
Эта проблема тоже может быть решена, но более сложным способом – подключением скрипта (https://www.labnol.org/internet/schedule-google-forms/20707/).
Для подключения дополнения нужно выбрать в меню «Дополнительно», обозначенное вертикально расположенными точками, пункт «Дополнения» и в поисковом окне ввести FormLimiter

Но основной нерешённой проблемой «штатной» Google-формы остаётся формирование теста на основе банка заданий.
Это ограничения может быть преодолено, хотя и не в полном объёме, различными способами, например, с помощью интеграции Google-документов разного формата, применения языка программирования Google Apps Script или использования малоизвестных встроенных функций электронной таблицы.
Одним из решений является подключение скрипта «Баба ЕГЭ» (Б. Ярмахов, О. Тузова), который позволяет формировать в Google-таблице структурированный банк заданий с картинками (есть ограничения по типу вопросов), создавать тест в виде Google-формы со случайными вопросами из банка и выполнять «стандартную» проверку с помощью надстройки Flubaroo. Как работать со скриптом подробно описано здесь >> ссылка на сайт 

Другое интересное и необычное решение предложено Alice Keeler в публикации Create a Quiz from a Question Bank (англ). Этот подход опирается на использование мало известных функций, которые встроены в электронные таблицы.
В следующем посте в вольном пересказе и с небольшими изменениями и дополнениями по отношению к оригиналу будет представлена пошаговая инструкция для реализации метода Alice Keeler.

Автоматическая проверка ответов в обновлённых Google-формах

Обновленные в июне 2016 года Google-формы предложили пользователям новые заманчивые возможности, в частности, использование их в режиме «Тест» с автоматической проверкой ответов. До этого для автоматической проверки результатов необходимо было подключать дополнение Flubaroo. Теперь же всё происходит внутри самой формы без внешнего вмешательства. Ниже описаны шаги, которые нужно сделать для реализации этой возможности.

  1. Важно! Автоматическая проверка возможна только для 3 типов вопросов – «один из списка», «несколько из списков», «раскрывающийся список». Не стоит искать возможности ввести ключи проверки для других типов вопросов.
  2. Важно! Вас не должно вводить в заблуждение наличие опции «Проверка данных» для текстовых ответов.

    Эта опция предназначена для задания правил заполнения поля: https://support.google.com/docs/answer/3378864?hl=ru
    Если использовать эту опцию для контроля самого ответа, то пользователь увидит правильный ответ прежде, чем введёт свой 😊

Шаг 1. В настройках выбираем вкладку «Тесты» и на этой вкладке устанавливаем нужные параметры

Шаг 2. После ввода вопроса и возможных вариантов ответа нажимаем кнопку «Ответы»

Шаг 3. В открывшемся окне отмечаем правильные вопросы и задаём количество баллов за правильный ответ. После чего жмём кнопку «Изменить вопрос»

Подготовка теста закончена!
Пример: https://goo.gl/2Ri9sU
В статье  “New Google Form Quiz Option vs Flubaroo add-on” (англ) приведён интересный сравнительный анализ двух подходов к оцениванию, где преимущества по мнению автора пока остаются за Flubaroo. Точнее, если ваша цель – провести простой тест, в котором используются только вопросы трёх указанных типов, с простой системой оценивания, то Google-форма в режиме теста – это то, что вам надо. Но для более сложных тестов с усложнённой системой оценивания Flubaroo лучше справится с задачей.

Tuesday, March 28, 2017

Gephi: анализируем методические объединения

Иногда при анализе данных, извлекаемых из домена G Suite, нам нужно рассмотреть уже существующие структурные подразделения, например, методическое объединения. Для этого к существующей сети организации нам нужно добавить дополнительные элементы - названия методобъединений.


Это не сложно - нам просто нужно научиться импортировать в уже существующий проект новые данные. Рассмотрим это на примере проекта, описанного в предыдущей публикации. Итак, у нас есть проект со структурой организации. Добавим в него новые данные - например, из таблицы с учителями школы, в которой у нас указаны и методобъединения (или другие подразделения) к которым относятся учителя.

Для этого нам понадобится csv файл в котором будут указаны фамилии учителей и методобъединения, к которым они относятся (для удобства просто пронумеруем их). Чтобы объединить новую таблицу с существующей, зайдем в Лабораторию Gephi и выберем опцию Импортировать из CSV, далее выбираем наш csv файл с фамилиями и методобъединениями и импортируем его. Обратите внимание, что новую таблицу необходимо указывать как Таблицу Узлов.



Нажимаем далее, последнюю ячейку оставляем невыбранной.



Наша новая таблица будет объединена со старой и для каждого учителя мы увидим номер его методобъединения.



Давайте зададим цвет для каждого из наших методических объединений. Для этого зайдем в режим Обработка. В левой панели найдем вкладку Appearance. Заходим во вкладку Nodes и выбираем Цвет (значок палитры). В Attribute выбираем MOD и нажимаем применить. Узлы графа нашей сети окрасятся в четыре разных цвета в зависимости от того, к какому методобъединению принадлежит данный участник.





Теперь разделим граф сети нашей организации на кластеры по методическим объединениям, к которым принадлежат учителя. Найдем в правой части экрана панель "фильтры". Выбираем в ней раздел "Динамика" - далее - "Разбиение" и перетаскиваем нужный нам фильтр (MOD) в поле "набор фильтров".








































Выбирая нужное методобъединение (щелкаем по ячейке с нужным номером) и нажимая "отфильтровать" мы можем выбирать нужную нам группу пользователей. Теперь, чтобы работать с нашими методобъединениями было совсем удобно, научимся выделять каждый подграф (соответствующий данной группе учителей) в отдельную рабочую область. Для этого выберем отфильтрованную группу учителей с помощью инструмента прямоугольное выделение (слева от полученного графа) и с помощью правой кнопки мыши вызовем меню Скопировать - На новую рабочую область. Gephi создаст нам новую рабочую область, на которой окажутся только участники из нужного нам методического объединения. Теперь нам будут доступны две области - первая - со всем графом нашей школы, и вторая - только с выделенным методобъединением, что значительно облегчит наш дальнейший анализ.

Sunday, March 26, 2017

Gephi: инструмент для обработки данных из домена G Suite.

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


В предыдущей публикации мы рассмотрели процесс извлечения и фильтрации данных из домена G Suite. Посмотрим на то, что с этими данными можно делать дальше. Строго говоря, есть много инструментов, которые можно использовать для обработки этого массива. Здесь я предлагаю рассмотреть графический пакет Gephi, поскольку в нем хорошо решены задачи визуализации связей (нет ощущения “волосяного кома”, которые создают многие другие пакеты) и присутствуют все основные статистические процедуры.


Gephi - это бесплатный, свободно распространяемый продукт, на момент написания статьи стабильно работающей версией является Gephi 0.9.1 После установки мы запускаем Gephi, создаем новый проект под собственным именем. Теперь нам нужно импортировать в него данные из csv файла, который мы создали на предыдущем этапе.


Для этого мы идем в раздел Лаборатория данных и выбираем “Импортировать из csv”. Файл csv должен иметь название латиницей и названия столбцов source и target. При импорте тип таблицы указываем как “таблица ребер”, кодировка - UTF-8.




Нажимаем на кнопку Далее, убеждаемся, что выбрана ячейка “создать новую вершину, если конечной (или начальной) вершины не существует.”, затем “готово”. Данные будут экспортированы в Лабораторию данных Gephi.




Теперь зайдем в раздел Обработка. Скорее всего, мы увидим нечто такое:




Это первичный граф нашей организации. Точки в ней - это люди, линии между ними - установленные связи. Давайте усовершенствуем этот граф. Изменим размер точек людей, в зависимости от того, насколько активно они участвуют в сетевом взаимодействии.


Для этого нам понадобится статистический параметр “Степень”. “Степень” - это количество связей с другими участниками (узлами) сети, рассчитываемое для каждого узла. В правой панели в разделе Статистика найдите кнопку “Степень” и нажмите ее. Произойдет подсчет данных после чего в поле “Лаборатория данных” каждому узлу будет присвоено свое значение. Вы можете увидеть, кто из ваших сотрудников имеет максимальную степень взаимодействия - то есть активнее всех общается с другими сотрудниками.




Вернемся в поле обработка и визуализируем получившуюся картину. Для этого в разделе Appearance, находящейся слева от рабочей области, выберем вкладку Nodes и нажмем на кнопку Размер, далее - Attribute. В выпадающей вкладке выберем Degree (степень). Выставим минимальный размер (Min size) = 5, максимальный размер (Max size) = 30. Нажмем применить и обратим внимание на то, как изменился размер узлов в нашей сети.




Теперь давайте произведем кластеризацию нашей сети. Это нужно для того, чтобы понять, как распределены связи в нашей организации. В разделе Статистика найдем кнопку “модулярность” и нажмем ее. Ячейки “рандомизировать” и “Use Weights” должны быть выбраны.Система рассчитает нам по определенному алгоритму разбиение нашей организации на кластеры в зависимости от того, с какими другими узлами он в большей степени взаимодействует. В разделе “Лаборатория данных” для каждого узла сети будет указано то, к какому кластеру он принадлежит.


Распределим наши узлы по цветам в зависимости от их принадлежности к кластерам. В разделе Appearance заходим во вкладку Nodes и нажимаем кнопку Цвет. Далее - Attribute и выбираем Modularity Class, далее - Применить. Узлы нашей сети окрасятся в цвета в соответствии с принадлежностью к кластерам.


Теперь упорядочим нашу сеть с помощью алгоритма, который сгруппирует узлы, находящиеся в одном кластере. Для этого зайдем во вкладку Укладка и выберем алгоритм Force Atlas 2. Выберем ячейки LingerLog Режим и Запрет перекрытия и нажмем кнопку Пуск. Алгоритм рассортирует наши кластеры.




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


Зайдем во вкладку Labels (выпадающее меню внизу рабочей области). Выберите ячейку Labels. Выберите шрифт = 14 (Arial, полужирный), в меню Настройка выберите ячейку “ID”. На узлах появятся надписи, обозначающие сотрудников нашей организации.


Теперь зайдем во вкладку Просмотр и нажмем кнопку Обновить. Сеть нашей организации будет построена в “Чистовом виде”.





Как мы видим, это позволяет визуализировать и проанализировать структуру нашей организации.

Sunday, February 5, 2017

Relationship mining в домене Google Suite: извлекаем данные

Если вы - администратор образовательного домена Google Suite, то вам доступна такая замечательная возможность, как анализ отношений между пользователями вашего домена - Relationship Mining.

Как это устроено? Поскольку документы Google хранят все действия с ними, мы можем вытащить из домена все записи - логи, содержащие историю этих записей, а затем на их основе получить картину того, как построено сетевое взаимодействие в нашей организации. Если речь идет о школе, то данные целесообразно извлекать 2 раза в год - перед началом нового учебного года и по итогам первого полугодия. Для этого нам понадобится зайти в панель управления нашего домена и перейти в раздел Отчеты.


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


Через несколько секунд мы получим сообщение о том, что нужная нам таблица сгенерирована.
Теперь нам предстоит самое интересное. Для того, чтобы с нашими данными можно было работать, необходимо отфильтровать то, что нам нужно.

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







Подставляем в скрипт ID наших таблиц с данными, запускаем функцию обработки CleanData и в лист TeachersLinks этой же таблицы будут перенесены только те записи, которые нас интересуют. Удалим из таблицы все столбцы кроме столбца с учетными записями редакторов (обычно это столбец B) и авторов документа (G). Озаглавим первый столбец с данными (редактор документа) source, а второй столбец (владелец документа) - target. После этого сохраним наш лист с данными как csv файл. Теперь их можно обрабатывать!