четверг, 30 апреля 2015 г.

TEST: Почему quiz, а не test, и чем тестовое задание отличается от задач, вопросов и просьб.

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

Без претензии на научность, но некоторые ссылки я написать не поленилась.

Тезис первый. В MOOC платформах нет тестов [test, educational test], в них есть опросники/вопросники [quiz]. Мне кажется, что это связано с желанием отстраниться от термина тестирование. В конце-концов, просто так в образовании спекулировать словом "тестирование" нежелательно. Тогда нужно как минимум гарантировать одинаковость условий для всех участников тестирования. А какие уж тут гарантии? Один может проходить тест из аскетичной комнаты общежития, а другой из бани с подругами, а подруги, вообще, могут оказаться экспертами в проверяемой области и решить тест за тебя. Сплошное надувательство.

Тезис второй. Где заканчиваются задачи и начинаются тестовые задания?
Тут коротко не получится.
Этот вопрос мою фантазию беспокоил много лет. Когда я писала диплом, то прочтение кило-тонн литературы по педагогическому тестированию вгоняло меня в состояние благоговейного трепета. По одной единственной причине, интуитивно понятно, что такое тестовое задание, но определения его нигде не было.
Сегодня, кстати, я попыталась ещё раз найти что-то похожее на определение в своей подборке отечественных книг. И не нашла. Всё сразу начинается с "типологии", "классификации", "видов" тестовых заданий. А что это такое, тестовое задание? Да какая, вообщем-то, разница.

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

С импортными источниками немного полегче, например, есть Web Glossary of Testing, Measurement and Statistical Terms (Joint Committee on Standards for Educational and Psychological Testing of the AERA, APA, and NCME. (1999). Standards for educational and psychological testing. Washington DC: American Educational Research Association), не самая свежая версия в моих запасах, но уже кое-что:
Item - A general term referring to a single statement, question, exercise, problem, or task on a test or evaluative instrument for which the test taker is to select or construct a response, or to perform a task. Includes all the elements of an item as a collective unit: the stem, response options, prompt, stimulus, etc.
Этим определением вполне можно пользоваться до момента возникновения острого желания автоматизировать процесс тестирования на этапе прохождения теста.
Однако эпоха компьютерного тестирования началась. Причём довольно давно. Вернее, настолько давно, что отдельно взятые товарищи умудрились даже нацарапать таксономии новых тестовых заданий, тех самых, которые можно реализовать только с помощью компьютера. Например, с видео- или аудио-содержимым.

Самое интересное, что наша литература меня порадовала. Ещё тогда, давно, когда я барахталась в написании диплома. Помощь подоспела с неожиданной стороны: из Энергетического института, глава 2 книги "Разработка компьютерных учебников и обучающих систем", авторы Башмаков А.И., Башмаков И.А. Похоже, что они первые в России написали про правила оценивания в привязке к тестовым заданиям (учебно-тренировочные задания, УТЗ у Башмаковых). Остальные авторы, видимо, про это знали, но предпочитали не писать. По каким причинам не известно, но начинающим это доставляет массу неудобств.
Но окончательное осознание того, что такое тестовые задания пришло ко мне после прочтения главы 7 ("Innovative Item Types for Computerized Testing", авторы Cynthia G. Parshall, Tim Davey, & Peter J. Pashley) книги "Computerized Adaptive Testing:Theory and Practice" (2002) под редакцией Wim J. van der Linden и Gees A.W. Glas. В этой главе к вопросу привязывается алгоритм оценивания [scoring algorithm], и появление этого алгоритма превращает вопрос в тестовое задание.
Всё гениальное просто.
Человека, так уж и быть, можно убедить жить в недоопределённом мире, а компьютер не получится. Если уж взялись ставить баллы за задания при помощи компьютера, то он однозначно должен "знать", как ему это делать.
Сегодня я убедилась в том, что алгоритм оценивания прочно "приклеился" к тестовым заданиям. В книге "Testlet response theory and its applications" (2007), авторы Wainer H., Bradlow E.T., Wang X. во введении я натолкнулась на следующее:
The term “question” encompasses any sort of interrogative:
Where’s the bathroom?
What time is it?
Do you come here often?
What’s your sign?
These are all questions, but they should not be confused with items. For a question to be called an item, it needs an additional characteristic:
There must be a scoring rule
Последняя упомянутая книга и описанная в ней теория сами по себе достойны отдельного поста. Отмечу, что такой важный сейчас индекс Хирша у авторов такой, что не снился многим, начиная с меня :))). Но это уже совсем другая история.

вторник, 28 апреля 2015 г.

MOOC: Контроль знаний в курсах OpenEdX

Сегодня делала сообщение "Контроль знаний в курсах платформы OpenEdX".
Получилось собрать ссылочек по разным темам:
  • MOOC
  • Формы контроля в EdX
  • Python
  • JavaScript
Не дублирую, все ссылки с заметками, контактами словами в презентации.

Сейчас думаю о том, что есть ещё вопросы, на которые я не нашла ответы:
  1. Как же перенести достижения в MOOC в реальный учебный курс (перезачесть)? Есть ли путь, кроме некоторого внешнего срезового контроля после курса или влияния на структуру курсов?
  2. Анализ результатов контроля. С одной стороны инструментов полно, с другой стороны почти все они используются в контролируемых экспериментах. То, что их можно использовать где угодно, независимо от условий, я нигде в толково обоснованном виде не встречала.
Ещё думаю, что зря не сказала про то, что образовательные подходы и технологии сейчас активно примеряются к MOOC, по крайней мере я сталкивалась с такими работами. Впрочем, всё сразу не расскажешь.

понедельник, 20 апреля 2015 г.

MOOC: Тестовые задания и читинг (часть 2)

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



Полноразмерное изображение

Что не так? Задание решается простым просмотром кода в веб-браузере и статистикой редактора Word.

Функция nchar() безусловно полезна если мы действительно работаем с документом и выясняем количество символов в заданных строках.

Идеи по улучшению.

  1. Если бы задание было практическим, то есть необходимо было бы представить код, то никаких "вторых путей" его решения и не возникло бы. Но этот вариант - изменение типа задания.
  2. Если оставить задание MCQ, то изменение числовой последовательности на сумму элементов этой последовательности уже притормозило бы как минимум мою прыть, тем более, что длина последних двух строк, ввиду наличия "отбивающих" пробелов уже не просто измеряется статистикой ворда, но и требует фантазии.



воскресенье, 19 апреля 2015 г.

MOOC:Тестовые задания и читинг (часть 1)

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



Полноразмерное изображение
Коротко о проблеме: вместо тестового задания, получилась загадка. При чём для отгадки не нужно владеть никакими знаниями и умениями, полученными на курсе. Достаточно уметь пользоваться браузером. По ссылке на тьюториал, открывается json-документ, в котором поиском отыскиваются вхождения вариантов ответов. Два не находятся, оставшиеся два элементарно анализируются.
Вопрос: что измеряет это тестовое задание? Мою догадливость? Охотно верю, что я записалась не на самый лучший курс. Однако предыдущий от этого же производителя был существенно лучше. Как узнать, что в фантике именно та конфетка, которую ты хочешь?

LINKS: R packages creation

Общая загруженность привела к тому, что дневник по освоению MOOCа я не завела. Видимо, не в этот раз или не в этой жизни. Процесс освоения, тем не менее, идёт. Подобрала ссылки по созданию пакетов R.

R package
Creating R packages: A tutorial (http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf)
R packages (in-progress book) (http://r-pkgs.had.co.nz/)
Adding Packages (http://www.statmethods.net/interface/packages.html)
Building packages in R (http://rfunction.com/file/BuildingRPackagesPaper.pdf)
Step by Step Tutorial to creating R Packages (http://www.stt.msu.edu/~cui/Groupmeeting/R_package_tutorial.pdf)
Writing an R package from scratch (http://hilaryparker.com/2014/04/29/writing-an-r-package-from-scratch/)

Different OS
Making R packages under windows: a tutorial (http://www1.appstate.edu/~arnholta/Software/MakingPackagesUnderWindows.pdf)
Building R packages for Windows (http://robjhyndman.com/hyndsight/building-r-packages-for-windows/)
Making R packages for the Mac: A simplified guide (http://personality-project.org/r/makingpackages.html)

RStudio
Developing Packages with Rstudio (https://support.rstudio.com/hc/en-us/articles/200486488-Developing-Packages-with-RStudio)
Video
Create an R Package in Rstudio (http://www.youtube.com/watch?v=9PyQlbAEujY)
Building Packages (http://rfunction.com/building-packages)

Rcpp
Writing a package that uses Rcpp (http://dirk.eddelbuettel.com/code/rcpp/Rcpp-package.pdf)

понедельник, 13 апреля 2015 г.

LINKS: Events C#

Пока готовила задачку к семинару по событиям, нашла интересные ссылки. Свежие и не очень. Но для генерации идей и использовании в качестве вспомогательных материалов вполне годные.
MSDN
  • EventHandler - делегат (https://msdn.microsoft.com/ru-ru/library/system.eventhandler(v=vs.110).aspx)
  • EventHandler - делегат (https://msdn.microsoft.com/ru-ru/library/db0etb8x(v=vs.110).aspx)

    Tutorials. Step by step instructions. Practices
  • Chapter 4. Advanced C# (https://www.safaribooksonline.com/library/view/c-40-in/9781449379629/ch04.html)
  • Events 2015 (http://www.bogotobogo.com/CSharp/csharp_events.php)
  • C# Tutorial - The Built-In Generic Delegate Declarations (http://tech.pro/tutorial/861/csharp-tutorial-the-built-in-generic-delegate-declarations)
  • C# Event Implementation Fundamentals, Best Practices and Conventions (http://www.codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices)

    Другие полезности. Other useful links
  • Generic EventArgs to go with generic EventHandler? (http://codereview.stackexchange.com/questions/5470/generic-eventargs-to-go-with-generic-eventhandler)
  • События .NET в деталях (http://habrahabr.ru/post/148562/)
  • WeakReference Event Handlers (http://paulstovell.com/blog/weakevents)
  • Delegates, Lambdas and Events (http://www.dreamincode.net/forums/topic/220479-delegates-lambdas-and-events/)
  • Использование событий с C# (http://sonyks2007.blogspot.ru/2013/11/c_9.html)
  • Understanding and implementing events in C# (http://www.nicoschuele.com/posts/understanding-and-implementing-events-in-c)
  • For once and for all: Delegates, Events, Anonymous Methods and Lambda Expressions (https://sdesmedt.wordpress.com/2009/05/21/for-once-and-for-all-delegates-events-anonymous-methods-and-lambda-expressions/)
  • среда, 8 апреля 2015 г.

    TRAINING: Event handling, C#

    В этом году по событиям удалось провести два семинара: в первом разобрались с событиями, дописывали код. Второй сделали полностью практическим с возможностью написать весь код самостоятельно.
    Задача, которая вызвала больше всего трудностей:
    В библиотеке классов описать:
    1. Тип-делегат
    public delegate void ChainLenChanged(double r);

    2. Класс Bead - бусина
    2.1. Поле r – вещественное число, радиус бусины
    2.2. Конструктор с вещественным параметром – радиус бусины. Если радиус – меньше или равен нулю, конструктор создаёт исключение ArgumentOutOfRangeException
    3. Класс Chain – цепочка бусин
    3.1. Поле l – вещественное число - длина нити, на которую нанизаны бусины
    3.2. Поле beads – список List, составленный из бусин, нанизанных на нить
    3.3. Событие ChainLenChangedEvent, определённое типом-делегатом ChainLenChanged
    3.4. Свойство L. Обеспечивает доступ к полю – длина нити. При изменении длины нити активируется событие ChainLenChangedEvent
    3.5. Конструктор с двумя параметрами – вещественной длиной нити len и целым числом N бусин в цепочке. Создание бусин выполняет вспомогательный метод CreateBeads(). Радиус бусин одинаков и равен целому
    3.6. Метод CreateBeads() – создаёт объекты-бусины и добавляет их методы-обработчики в список обработчиков события ChainLenChangedEvent
    4. Добавить в код событие, возникающее при изменении N - количества бусин на нити, предполагается, что длина нити не изменяется, а размеры бусин «подстраиваются» под длину нити так, чтобы занять её.
    4.1. В обработчике этого события добавить код (в классе Bead)
    4.1.1. Пересчёта и изменения радиуса бусин
    5. Добавить в код событие, возникающее при изменении радиуса бусин
    6. Подписать объект Chain на события 5
    6.1. В обработчике пересчитывать количество бусин, которые могут поместиться на нити заданной длины, удалять/добавлять бусины
    Тестирование кода выполните в консольном приложении.
    (*) Создайте оконное приложение, в поле pictureBox визуализируйте цепочку бусин. Добавьте возможность изменения параметров цепочки и бусин. Свяжите изменения в интерфейсе с изменениями бусин и цепочки.
    UPD: На Blogger нашла подробный пост по использованию событий.Developer's notes. Использование событий в C# Терминология мне не очень нравится, но вряд ли это может быть сильной придиркой к посту в блоге.