Как Взломать Тест Moodle

Когда заказчик просит развернуть ПО для eLearning или дистанционного обучения, каждый вкладывает в эти слова свой смысл:. Репетиторы и преподаватели, привыкшие к классно-урочной системе, чаще всего имеют в виду вебинары — им хочется просто делать то же самое, что они привыкли, только через интернет. Издатели учебников и преподаватели, не планирующие покидать offline, обычно грезят об электронных учебниках для самостоятельного обучения учеников или для демонстрации на очных уроках.

Руководители небольших ВУЗов иногда воображают «магический черный ящик», куда можно загрузить учеников первого курса и вспомнить о них на выдаче диплома. Желательно, чтобы в «ящике» уже «лежали» все учебные материалы и алгоритмы по их применению. В более крупных ВУЗах чаще нуждаются в централизованной системе тестирования, сбора и рецензирования письменных работ с автоматической проверкой их на плагиат. Иногда eLearning представляют «серебряной пулей» решающей все проблемы ВУЗа. Стоит внедрить «eLearning» и всё сразу станет как надо: появятся учебные программы и сами-собой сертифицируются по образовательным стандартам третьего поколения, внедрится болонская система и модульное обучение, откуда-ни-возьмись вырастет ветвистое дерево компетенций, на котором зацветут привязанные к ним учебные материалы и творческие задания, преподаватели перестанут брать взятки, помолодеют и осовременятся, ученики перестанут «сдавать» и начнут «изучать».

Достаточно выбрать правильный «eLearning» в красивой коробочке, купить и нажать кнопочку «Установить», а лучше попросить студента «за зачет» бесплатно скачать в интернете и поставить на старенькой машине с Windows 98 в лаборатории. К сожалению, довольно распространена категория заказчиков, которым выделили деньги на eLearning и им нужно их потратить как-нибудь. Как ни странно, для IT-шника это одна из самых проблемных категорий, так как они часто исходят не из целесообразности, а из своих представлений о солидности и престижности тех или иных технологий и терминов. Владельцы языковых школ хотят систему биллинга, учета и контроля видеоконференций, интегрированную с системами оплаты. Нечто, похожее на агентства-таксопарки, только с учителями в видеоконференции вместо таксистов.

Moodle это программный продукт позволяющая создавать курсы. Вместе с тем система Moodle. Такой вопрос: в moodle можно реализовать такой вариант прохождения теста, при котором нельзя видеть текст вопроса, на который отвечаешь? Просмотра/решения теста (т.е. Если я уже даже ответил на все). За взлом можно давать bonus баллы xD.

  • Затем этот тест можно отредактировать и сохранить как обычный тест. Между Moodle.
  • Тестирование как. Предусмотрено ограничение времени выполнения как всего теста.

Кадровые службы нуждаются в инструменте хранения истории повышения квалификации и организации дистанционного обучения и аттестации без отрыва от производства. Новое веяние — электронные журналы и дневники, добровольно-принудительно внедряемые во всех школах, в лице нескольких продуктов-фаворитов, продвигаемых коммерческими компаниями или региональными госучреждениями, обычно — центрами при департаментах образовани. Объединены одной общей чертой: организованы на подобии сервисов сдачи налоговой отчетности online — заполняются вручную, без связи с обучением, в параллель к бумажным журналам.

То есть бумажный журнал online, иногда erp/crm (распределение ресурсов, коммуникация с «клиентом»), но образовательной функции либо совсем нет, либо она не пригодна к применению. Существуют и гораздо более экзотические варианты, включающие обучение в виртуальных вселенных, работу с виртуальными моделями и лабораториями и др. В действительности, понятие eLearning шире всего перечисленного — это прежде всего новая модель учебного процесса, а не просто перенос в online привычных практик, вместе с отсканированными методичками, набитыми на скорую руку тестами и добавлением функции интернет-магазина. Уже в который раз встречаю положительные отзывы от moodle. У меня это всегда вызывает удивление. У него же ужасный UI!

Я (как студент) пользуюсь им больше полугода, но до сих пор часто не могу найти нужных мне функций. На некоторые разделы можно попасть только из Breadcrumb.

Переход по некоторым ссылкам без всякого подтверждения записывает тебя на курс (по ссылке догадаться об этом действии невозможно), а потом невозможно найти, как перестать быть его участником, и так далее. Расскажите, как им пользуются? Может, у него есть разные варианты UI и мне попался какой-то неудачный? Я, кстати, не считаю команду, работающую с 2003 года, таким уж преимуществом. Боюсь, что именно из-за этого движок выглядит так, как выглядели сайты в начале 2000-х.

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

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

Moodle — очень распространённая система, у неё широкое сообщество, которое напрямую связано с процессом разработки. Совсем уж неудобных вещей там просто не может быть. Я видел довольно много других продуктов — в большинстве UI был в разы хуже. Что касается разработки с 2002 года — разные свистелки и мигалки, обеспечивающие современность интерфейса не самое главное преимущество среды дистанционного обучения.

Главное — как система делает свою работу: функциональная мощность, гибкость, стабильность развития и открытость для интеграции Moodle превышает практически все коммерческие и некоммерческие аналоги, которые я видел. К тому же, уже давно есть версия 2, интерфейс которой выглядит гораздо современнее и поддерживает AJAX-овские штучки, которые, впрочем, очень часто отключают за ненадобностью или по перечисленным в первом абзаце причинам:). Как преподаватель, пользующийся Мудлом, могу только поддержать студента и добавить кучу претензий от себя. Студенту, по крайней мере, не приходится сочинять курсы и писать тексты недель.

Взломать

А мне приходится. Возможно, в версии 2 что-то допилили, но первая меня совершенно не радует. Скажем, чтобы банально подправить текст недели, я кликаю edit, после чего меня уводят (зачем?) с текущей страницы, из-за чего я теряю контекст и не могу оформить все тексты в одном стиле (либо надо руками открывать в новом табе). Затем перекидывают обратно, причём к началу страницы, а не к моей текущей неделе Хранилище файлов — помойка. Если аккуратно не придерживаться правил именования файлов и расположения их по каталогам, получается месиво. Если над курсом работает несколько человек, приходится в оффлайне договариваться между собой. Отсутствуют порою даже самые простые функции.

Gps для пк. Скажем, нельзя одним кликом загрузить на винчестер все приаттаченные студентами домашние работы к текущей неделе. Короче говоря, я использую мудл практически от безысходности, как лучшее из худшего (это аналог вашего выражения «Moodle превышает практически все коммерческие и некоммерческие аналоги, которые я видел»). Обхожусь самой базовой функциональностью: оформить неделю, туда приаттачить слайды лекций, создать форму для присылки домашнего задания (опять в виде аттача), выставить оценки. Всем не угодишь.

Что одним удобно, другим — ад. Хорошо, когда с сообществом разработчиков можно держать контакт, присылать им патчи или потихому дописав для себя аддон (даже не обязательно править ядро, для разработчиков оставлено очень много «ручек», за которые можно схватиться).

Это улучшает обратную связь и система не содержит вещей, которые не удобны вообще всем. Но, конечно, под каждого отдельного пользователя никакое ПО не подгонишь. Многим идея с кнопкой «редактировать», которая позволяет редактировать материалы на той же странице и в том же виде, как их видят студенты. Всяко-удобнее, чем идти в отдельную админку и править там, или править материал локально и загружать в виде scorm-пакета. Про приаттаченные студентами домашние работы — это просто различия в практике работы, как её понимаете вы (скачать, проверить, записать в табличку, залогиниться и выставить результаты) и как её понимают разработчики (открыл работу, кликнул по ссылке, скачалось, открылось в дефолтном редакторе, посмотрел, написал отзыв, поставил оценку, закрыл). К тому же, дописать скриптик, который выплюнет все файлы задания в zip-архиве — несколько строк, поспрашивали бы на форуме на официальном сайте — может у кого-то уже есть. Про «что одним удобно, другим ад» — да ничего подобного.

Это просто устаревший CGI интерфейс. Представьте себе, что вот сейчас, когда я пишу комментарий, меня бы выбросили из Хабрахабра на отдельную пустую страницу и заставили бы писать. Очень удобно? Опять же, по поводу скачать или не скачать — тоже не согласен. Вот я веду курс по программированию. Студенты загружают на сервер домашние задания (программы на Java). Как мне быстро убедиться, что файлы не содержат больших частичных совпадений (т.е.

Списываний друг у друга? Это базовая задача для любого такого курса, а не только моя личная. Про «дописать скриптик» — да всё понятно, что можно. Можно в Файрфоксе поставить качалку по типу DownloadThemAll и не мучиться.

Но таких вот особенностей и допиливаний — воз и маленькая тележка. К MS Word мало какие скрипты приходится дописывать, скажем.

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

При этом существует 1001 контора и сервис, которые вокруг этого так или иначе кормятся (проводят семинатры, делают мудл-хостинг, обучают.) А я бы хотел видеть хоть одну приличную конкурентную среду. Это ведь для всех было бы лучше. Причё ещё несколько лет назад они были (коммерческие, правда). А потом как-то потихоньку сплыли. Но опять же, ничего личного. Просто обидно.

Я общаюсь со многими преподавателями, и среди них есть два типа: одни используют мудл и плюются, а другие сидят на собственных самописных решениях. Это довольно печально. На мой взгляд, Moodle на его поле «не переиграешь»: это старый, хорошо развитый, очень распространённый проект, в него очень много вложено и этого нельзя сбрасывать со счетов. Самописные решния здесь не имеют шанса — существуют, пока нужны их авторам, при таком же массовом распространении на них бы плевались во-много раз больше. Все эти 1001 конторы, которые кормятся с Moodle — если они официальные партнеры, они отчисляют 10% с доходов на содержание основной команды разработчиков, которые продолжают допиливать Moodle, чтобы он нравился пользователям (насколько это возможно сделать). За счет этого фонд Moodle получает достаточное финансирование, чтобы регулярно выпускать новые версии, улучшать систему. Ну, насколько это возможно.

Единственный шанс для начинающих с нуля («гаражных») проектов — это изобрести совершенно новую концепцию, которая позволяет делать то же самое и даже лучше, но на 1-2 порядка проще устроена. Вся наша технология так развивается: те же паравозы в самом конце были вершиной инженерной мысли, а потом бац — электровозы, электромотор, редуктор и всё. Дальше снова усложнение. Мы продаем Lumesse Learning Gateway, в России их представляет AXES Management. Это SaaS со всеми плюсами и минусами. У них огромный список топовых клиентов, с точки зрения админа и пользователя — вполне на уровне. Впрочем, своих «затыков» полно у любой системы, я десятки коммерческих перевидал, от полного самопала до крутейших международных вендоров.

В принципе, к Мудлу только одна претензия: к его бесплатной лицензии нужно не забывать добавлять стоимость как минимум одного платного сотрудника, который занимается её обслуживанием. Moodle хорош именно как интеграционная платформа: достаточно стабилен, если не ставить экспериментальные версии (больше 60 тысяч инсталляций выявляют большинство проблем раньше, чем вы их заметите), масштабируем (имеются инсталляции более чем с 1 миллионом пользователей) Всё бы хорошо, но есть нюансы. Выявить-то большинство проблем выявят, но вот когда разработчики их починят — большой вопрос. Масштабирование «из коробки» практически никакое: нет поддержки read-only slave DB (хотя обещают), нет поддержки X-Sendfile (хотя обещают), по некоторым тикетам напрашивается вывод, что собственно разработчики Moodle нагрузочным тестированием себя не утруждают. На одном и том же сервере инсталляция версии 2.0 по умолчанию ест вдвое больше ресурсов (по времени генерации страницы/данным performance info), чем инсталляция по умолчанию 1.9. По коду разбросано вдохновляющее количество хардкода (например, максимальное количество недель в курсе и combobox для него на 52 элемента вместо textbox'а с одним числом, период enrollment'а).

В итоге, для реализация масштаба ВУЗа не соглашусь с автором в части «никаких правок в ядре, никаких патчей и хаков». Да, нужно постараться максимально их избежать, но делать их всё равно придётся рано или поздно, ибо некоторые вещи через API недоступны. Так что лучше сразу обеспечить наличие под рукой хоть какого-то специалиста в PHP, который умеет вести документацию на доработки и таскать их от релиза к релизу. Ну и да, не стоит мне писать, что это OSS, где твой вклад и т.д., ибо я не разработчик.

В конце концов, я же не говорю, что хуже Moodle нет, а лишь сожалею, что нет сильно лучше. По опыту, действительно серьезные вещи правят быстро. Разумеется, обычно не в тот же день, но в ближайшем релизе, иногда даже в ближайшем еженедельном обновлении. Есть одна хитрость — мигрируйте на новую ветку не с основной волной, а чуть позже, когда в ней выйдет хотя бы 1, лучше 2-3 минорных релиза. С мелочами, да, иногда багрепорты через 2-3 года закрывают со словами «старая версия не поддерживается, в новой не актуально». Впрочем, это еще благополучно для проектов такого масштаба.

В коммерческих вообще ответа не добьешься. Про масштабирование из коробки — гляньте в статистику количества пользователей сайтов. Им это как-то не мешает.

Кеширование обращений к БД — есть, хранение сессий в базе — есть. В большинстве случаев этого больше, чем достаточно. Slave DB еще вопрос, прибавит производительности или убавит, всё-ж в Moodle пользователи постоянно что-то меняют и добавляют, там такого перекоса между записью и чтением нет. Конкретно с количеством недель — это было сделано специально: курсы с бОльшим количеством секций слишком тяжелы, их нужно дробить используя механизм мета-курсов. Впрочем, в версии 2 этот параметр настраивается из админки. То, что можно сделать через API гораздо шире, чем может сперва показаться.

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

Вот если нет должного опыта работы с чужим кодом из крупных, развивающихся другой командой проектов, то лучше совсем запретить правки, иначе возможные проблемы превысят всю возможную и невозможную пользу от правок. Явный кеш БД, вроде как, оторвали в 2.x, мотивируя это «лучшим» DB слоем? Хранить сессии в базе они сами не рекомендуют в вики (да и их сессии намного дешевле хранить на ФС с каким-либо session stickness в кластере). Запросов на чтение из БД в Moodle в разы (если не на порядки) больше, чем на запись, и в недрах трекера даже есть, венчающееся «мы что-то где-то как-то протестировали, нам не понравилось».

Я же тоже не просто так написал, я со всем этим реально сталкивался. И те 2.5 Moodle Partner'а, которых я своими глазами видел, либо гасят проблему производительности железом (иногда очень смешно), либо своими собственными разработчиками, которые делают как надо, а не как придётся. Есть, например, забавный, в котором человек спрашивает разработчиков, зачем они раздачу статики от тем оформления запихали в PHP-скрипты. Доводы даже как-то местами понятны, и понятно, что это обходится поставленным впереди прокси-сервером, но ведь это знать надо, что оно вот так-то устроено и вот так-то без последствий лечится. В своё время я правки в ядро просто по diff-ам от оригинальной версии посмотрел. Но мне было проще — была задача просто определить, можно ли это всё выкинуть без значительного ущерба для функционала.

Формат бекапов Moodle состоит из двух частей: базовую структуру генерирует сам Moodle, а данные каждого плагина через API по специальным правилам сохраняет и читает плагин. Поэтому единой документации формата быть просто не может — установили себе сторонний плагин, и он добавил свою часть. Можно, конечно, её игнорировать просто.

Вообще, если уж вы решились работать с форматами бекапов, то просто посмотрите названия тегов, почитайте рекомендации для разработчиков плагинов по сохранению и восстановлению данных своих плагинов — этого достаточно, чтобы разобраться. Принцип стандарта SCORM заключается в том, что пакет общается с JavaScript из основного окна браузера, который установила система и который умеет сообщать системе результат. Учитывая, что бОльшая часть вычислений проходит на клиенте, сомневаюсь, что хоть какую-то безопасность можно обеспечить. Есть секьюрные браузеры для тестирования, но они тоже имеют смысл только на машинах, которые можно контролировать. Про ЭД напишу обязательно, если после сегодняшнего поста останется возможность еще что-то писать:))) Тут как в CS — не успел оглянуться, и ты — труп:) Сколько лет читал Хабр, а не думал, что тут такие порядки:).

Зачем что-то упоминать, если про СКОРМ и так всё давно стопроцентно известно и понятно: он по опредлению, по самой своей сути, по спецификации передаёт результат пользователя в открытом виде типа сmi.status=completed, при этом стандарт ОПИСАН, т.е. Никакой обратной инженерии не требуется, бери и меняй что хочешь. Можно менять программой «фидлер», можно одной строкой скрипта, как угодно. Все это знают и все с этим спокойно уживаются. Нужна безопасность — отказываемся от СКОРМА.

Нужно удобство/совместимость — используем СКОРМ. Вот project Tin Can уже на подходе. Я не углублялся, но возможно там этот вопрос как-то решается. Хотя как его решать, если определение «правильно-неправильно ответил» происходит на стороне клиента? В нашем универе (Москва, один из ведущих экономических ВУЗов) eLearning внедряют начиная с года моего поступления (2002), может и раньше. Если не ошибаюсь, сначала это была самописная система, последние несколько лет — moodle.

Сейчас я уже сам преподаю, а процесс не особо движется. Скажем так, на том уровне распространение eLearning и осталось: как этим занимались отдельные преподаватели по отдельным предметам — так и занимаются.

Да, таких становится больше, но не принципиально. Плюс IT-отдел — это как тайное общество, которое делает вид что занимается чем-то жутко сложным, благо руководство очень смутно представляет и контролирует их работу. Скажем, восстановление пароля может затянуться на месяц, или данные могут неожиданно откатиться на полгода назад Не успевает наше образование и наука за технологиями. Пока в ВУЗах не сменится 1-2 поколения преподавателей и руководства, такие кардинальные изменения в обучении (и сознании) не пройдут.

За статью спасибо, давно ждал, когда кто-нибудь напишет о Moodle на Хабре. Функции указанные в статье конечно впечатляют, но почитав комментарии, понял, что негативные ощущения от работы с Moodle не только у меня. Очень ждал релиза Moodle 2.0, но в итоге получилось снова таки не жилец для своего времени. Не должна лидирующая платформа на рынке выглядеть так в 2012 году.

Даже несмотря на то, что я плевался на HighLearn во время своей учебы он был в разы удобней и приятней, чем Moodle. А кто сказал, что платформы для для организации обучения должны быть бесплатными? С какой стати? В общем, я тоже не вижу на рынке достойных платформ для организации электронного обучения. Мне вот другое странно, если все недовольны, так разве Хабр не то место, где стоит обсудить создание своей, новой платформы, попробовать прописать модель и создать инструмент, который бы радовал глаз и не работал бы через пень-колоду?!

Может быть обсудим это дело?

Comments are closed.