Помощь в написании студенческих работ
Антистрессовый сервис

Применение API-функций для создания дополнительных расширений в системе Moodle

РефератПомощь в написанииУзнать стоимостьмоей работы

Выборку данных о состоянии проверки работ студентов из базы данных moodle осуществляется на основы многотабличного запроса. В Database API Moodle имеются несколько функция для формирования запросов в БД. Но единственной функцией, позволяющей осуществлять многотабличные запросы, возвращающий массив записей, является get_records_sql (). В разработанном модуле реализована следующая схема… Читать ещё >

Применение API-функций для создания дополнительных расширений в системе Moodle (реферат, курсовая, диплом, контрольная)

В Инновационном Евразийском университете для реализации дистанционной образовательной технологии (ДОТ) применяется виртуальная обучающая среда Moodle, также известная как система дистанционного обучения (СДО). На момент второго квартала 2012 г. в системе насчитывается более 1000 курсов (дисциплин), количество зарегистрированных пользователей — более 1800 человек.

СДО Moodle позволяет не только предоставить студенту доступ к электронному учебно-методическому комплексу дисциплины, но и организовать контроль знаний обучающегося. Контроль знаний в основном осуществляется посредством тестирования и проверки результатов выполнения контрольных, курсовых, практических и лабораторных работ. В случае с тестированием участие преподавателя ограничивается созданием тестовых вопросов. Далее тестирование работает без участия преподавателя: автоматически формируется набор вопросов согласно правилам, указанным преподавателем при создании теста, а после завершения тестирования студента проверяются результаты и выставляется оценка. Что касается контрольных, курсовых и других работ, для проверки которых требуется непосредственное участие преподавателя, то СДО Moodle предоставляет лишь интерфейс загрузки в систему файла с результатами выполнения работы для студента и интерфейс оценивания и рецензирования для преподавателя. Причем, в СДО Moodle нет инструмента [1], позволяющего преподавателю в одном месте получить комплексную информацию о наличии непроверенных работ студентов по всем дисциплинам, за которыми преподаватель закреплен в системе.

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

Благодаря открытому исходному коду и развитой модульной архитектуре, СДО Moodle позволяет расширять возможности системы дополнительными модулями. В рамках магистерской диссертации реализован модуль, позволяющий организовать сбор информации о состоянии проверки работ студентов в СДО Moodle.

Данный модуль в системе Moodle представляет собой блок и создан на языке программирования PHP [2] с использованием API Moodle. API (Application Programming Interface — Интерфейс программирования приложений) — набор готовых классов, процедур, функций, структур и констант, предоставляемых системой Moodle для разработчика плагинов и модулей.

В Moodle имеются определенный набор правил к разработке блоков с использованием API-функций [3]:

  • 1. Блок должен иметь уникальное название, состоящее только из латинских букв и арабских цифр, и не должен совпадать с названиями остальных блоков в системе.
  • 2. В директории blocks корневого каталога системы Moodle необходимо создать папку с названием блока, в которой размещаются все скрипты разрабатываемого модуля.
  • 3. Для блока должен быть реализован класс с названием block_, расширяющий базовый класс block_base, в одноименном файле php-скрипта в папке модуля:

class block_fdo_cab extends block_base { }.

4. Класс блока должен содержать как минимум два метода: init () и get_content (): function init () {.

$this->title = get_string ('title', 'block_fdo_cab');

$this->version = 2 012 032 701;

}.

function get_content () {.

$context = get_context_instance (CONTEXT_SYSTEM); if (has_capability ('block/fdo_cab:view', $context)) {.

require_once (dirname (realpath (__FILE)).'/lib.php');

$this->content = new stdClass;

$this->content->text = $FDO->get_block_link ($FDO->userid); return $this->content;

}.

}.

Метод init () инициализирует класс, определяя два обязательных свойства title и version. Метод get_content возвращает текст, который будет отображаться в блоке в системе Moodle. В данном случае в блоке будет отображаться ссылка на скрипт, реализующий интерфейс модуля.

5. Для указания допускаемых для отображения блока контекстных уровней в системе Moodle используется функция applicable_formats ():

function applicable_formats () { return array ('site' => true);

}.

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

6. Для отображения локализованных строк в интерфейсе модуля используется специальная директория lang в папке модуля. Данная папка имеет иерархическую структуру, содержащую родительские папки языков. Родительская папка ru_utf8 означает, что языком является русский в кодировке Unicode. Внутри родительской папки языка необходимо создать файл с таким же названием файла, как у основного скрипта модуля (block_fdo_cab.php). В данном файле Moodle хранит все строки локализаций в хэш-массиве $string:

$string['title'] = 'ФДО Кабинет';

$string['main_link_tutor'] = 'Кабинет тьютора';

$string['studwork'] = 'Проверка работ';

Строки из хэш-массива $string доступны с помощью API-функции get_string ().

7. Для ограничения доступа к информации модуля используются специальные API-функции: get_context_instance () и has_capability ().

Функция get_context_instance () создает объект context, если он еще не существует. Объект context указывает, на каком уровне предполагается работа с системой.

Функция has_capability () проверяет имеет ли текущий пользователь разрешение на выполнение указанного действия в рамках объекта context.

Следующий код проверяет, имеет ли текущий пользовать разрешение на просмотр информации блока на глобальном уровне системы:

$context = get_context_instance (CONTEXT_SYSTEM);

if (has_capability ('block/fdo_cab:view', $context)) {}.

8. Для определения прав доступа к блоку в каталоге модуля используется специальная директория db, внутри которой создается файл access.php. В данном файле описывается, на каком уровне, какое действие, для каких ролей разрешается либо запрещается выполнять.

$block_fdo_cab_capabilities = array (.

'block/fdo_cab:view' => array ('captype' => 'read',.

'contextlevel' => CONTEXT_SYSTEM, 'legacy' => array (.

'user' => CAP_ALLOW,.

'guest' => CAP_PREVENT.

).

).

);

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

В ИнЕУ на основе API Moodle и внутреннего класса модуля fdo_cab_control, описанного в файле fdo_cab.php каталога lib в директории модуля, представленного объектом $FDO, разработан модуль, собирающий информацию о состоянии проверки работ студентов с формированием комплексного отчета. Данный модуль доступен на главной странице сайта в разделе «Дистанционное» на доске объявлений (рисунок 1).

программный виртуальный обучающий модуль.

Кабинет администратора.

Рисунок 1 — Кабинет администратора.

Текст блока изменяется в зависимости от роли пользователя в системе (кабинет администратора, кабинет тьютора, кабинет преподавателя). Данную функцию реализует метод get_block_link () класса fdo_cab_control.

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

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

Тьютор кафедры имеет более полный отчет, охватывающий все дисциплины его кафедры. В то же время тьютор является преподавателем на кафедре и так же осуществляет преподавательскую деятельность. В этом случае отчет будет представлен двумя таблицами, отображающими информацию по дисциплинам преподавания и по остальным дисциплинам кафедры (рисунок 2).

Вид отчета в кабинете тьютора.

Рисунок 2 — Вид отчета в кабинете тьютора.

Для администратора системы реализован комплексный отчет по всем дисциплинам всех кафедр (рисунок 3).

Вид отчета в кабинете администратора.

Рисунок 3 — Вид отчета в кабинете администратора.

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

Выборку данных о состоянии проверки работ студентов из базы данных moodle осуществляется на основы многотабличного запроса. В Database API Moodle имеются несколько функция для формирования запросов в БД. Но единственной функцией, позволяющей осуществлять многотабличные запросы, возвращающий массив записей, является get_records_sql (). В разработанном модуле реализована следующая схема многотабличного запроса (рисунок 4).

Схема многотабличного запроса выборки данных.

Рисунок 4 — Схема многотабличного запроса выборки данных.

Схема включает следующие таблицы:

  • · mdl_grade_grades (хранит информация о всех оценках);
  • · mdl_grade_items (содержит информация о всех элементах, которые могут быть оценены);
  • · mdl_course_modules (хранит информация и связях курса, элементов контента и модулей);
  • · mdl_course (основная таблица курсов);
  • · mdl_course_categories (хранит информация о категориях);
  • · mdl_context (хранит информацию о местоположении объекта в структуре системы);
  • · mdl_role_assignments (содержит информация о распределении ролей по контекстам системы). Разработанный модуль, представленный в системе дистанционного обучения Moodle в виде блока, позволяет тьюторам кафедр, преподавателям и администратору системы в автоматическом режиме получать комплексную информацию о состоянии проверки работ, загружаемых студентами в виртуальную обучающую среду Инновационного Евразийского университета.
  • 1. http://docs.moodle.org Moodle 1.9
  • 2. Jonathan Moore, Michael Churchward — Moodle 9 Extension Development. — Packt Publishing, 2010.— 320 c.
  • 3. Зандстра М. PHP. Объекты, шаблоны и методики программирования, 3-е издание. — М.: Вильямс, — 560 с.
Показать весь текст
Заполнить форму текущей работой