Хотя многие уже прослушали ряд лекций и даже успешно завершили онлайн курсы, но мало кто знает, как все выглядит изнутри. Я расскажу о технологической стороне одной из этих нашумевших платформ.
Наша команда работает над проектом edX. Основные задачи нацелены на создание так называемых «blades» – модулей встраиваемых в платформу, как лезвия (blades) в бритвенный станок. Кроме того, часть задач связана с модификацией платформы.
Каждое «лезвие» представляет собой Rich UI приложение, состоящее из front-end части (javacript) и back-end части (python). Например, возьмем курс «Introduction to Solid State Chemistry». В материал курса встроена проверка химических реакций. Студенту, после прослушивания короткого (5-7 минут) видеоролика лекции, предлагают проверить свои знания. Вместо обычных вопросов и текстовых полей для ввода, студенту предлагают нечто особенное. Например — написать химическую реакцию определенного процесса. Эта химическая реакция проверяется на сервере автоматически, с использованием pyparsing и nltk. То есть, помимо front-end части для ввода химических реакций с использованием latex, а точнее MathJax, существует back-end часть, которая представляет собой питоновский модуль для проверки правильности ответа студента.
Я все же не хотел бы слишком углубляться в технические детали реализации «лезвий» по двум причинам. Во первых, код можно посмотреть на гитхабе, так как с 1 июля платформа edX стала open-source. Теперь каждый может ознакомиться с «лезвиями», заглянув в код по приведенным ссылкам, и кроме того, создать и запустить свой собственный виртуальный университет 🙂 А во-вторых, мы не делаем чего-то экстраординарного в технических аспектах. Мы реализуем новые идеи для обучения, помогая делать его интересным, интерактивным и живым — по сути делаем качественную инженерную работу. Лучше я еще расскажу о «лезвиях» на конкретных примерах: как они устроены, на чем основаны. И вы сможете представить, насколько курсы состоящие из подобных модулей, могут быть интересными для студентов:
- Для курса «Introduction to Solid State Chemistry» таким модулем является проверка знаний по кристаллографии. Для студента задание заключается в построении сечения, которое соответствует определенным индексам Миллера кристаллографической плоскости. Front-end часть построена так, чтобы в первую очередь быть интересной для студента: ясная, четкая, one-click interface. На back-end части правильность ответа студента проверят соответствующий модуль, реализующий нетривиальный алгоритм нахождения индексов Миллера кристаллографической плоскости по точкам.
- Для того же курса создан модуль, позволяющий студенту ответить на вопросы по теории отталкивания электронных пар валентных орбиталей.
- Для курса «Health in Numbers: Quantitative Methods in Clinical & Public Health Research» множество «лезвий» реализованных только на javascripte, которые позволяют студенту интерактивно освоить концепции курса: линейную регрессию, кривую выживаемости и многие другие.
- Для нескольких курсов был разработан инструмент, позволяющий в форме DSL связать график, слайдеры и содержимое элементов страницы, т. н. graphical slider tool. C его помощью студенты могут исследовать зависимости и формулы: визуально видеть, как меняется так или иначе зависимость (например, кривая диффузии) при изменении параметров.
- Модуль Conditonal, позволяющий преподавателям показывать студенту разный контент курса в зависимости от того, что студент сделал ранее. Модуль используется в курсе Harvard Justice, чтобы задавать студентам вопросы в стиле Сократа, и показывать другие вопросы на основании полученных ответов.
- Модуль Drag and Drop — используется для решения задач, где нужно перетащить нужные элементы на правильные позиции. Например, он используется в«Introduction to Biology — The Secret of Life» для задач по маркировке генов, в курсе «Introduction to Solid State Chemistry» для решения задач по заполнению энергетический уровней молекулярных орбиталей (например, в задачах по теории линейных комбинаций атомных орбиталей). Этот модуль достаточно общий, так как для проверки правильности условий используется constraint programming.
Среди других «лезвий» — модули позволяющие студенту выделять формы на рисунках; one-click видео плейер, поддерживающий html5 и youtube, c возможностью навигации по субтитрам;
облако тегов, с общей базой введенных данных для студентов данного курса;
модуль poll, позволяющий студентам отвечать на вопросы и видеть результаты других студентов, данные хранятся в mongo; и многие другие.
В разработке сейчас находится модуль, который позволит студентам рисовать графики в качестве ответа на вопрос, причем для разной предметной области, способы которыми они будут это делать, будут различными, а также удобными и интересными для студента.
В целом при разработке «лезвия» достигаются несколько целей: хороший и правильный код, удобный интерфейс, правильная передача концепции и образовательный подход. Последнее очень важно для проекта, так как множество инноваций в обучении, правильно внедренные в курс, позволяют курсу быть успешным, а их отсутствие зачастую приводит к скуке. Это, например, mastery learning, instant feedback and constructive learning.
Вот что о них пишет Piotr Mitros, Chief Scientiest of EdX:
Mastery learning means that a student does not move on until they’ve mastered a concept. Rapid feedback means that a student has tools to know whether they have mastered a concept. Constructive learning moves courses beyond passive learning (watching a lecture), active learning (watching a lecture while manipulating the concepts), to a level where the student is guided through synthesizing, deriving, or otherwise constructing the knowledge for themselves. All three of these are strongly researched-backed to show substantial learning gains.
Код описанных blades можно посмотреть здесь, а некоторую 🙂 документацию по ним тут.
ссылка на оригинал статьи http://habrahabr.ru/post/192824/
Добавить комментарий