Диссертация (1167217), страница 29
Текст из файла (страница 29)
При неудовлетворительном результатеобучающийся спускается на один уровень сложности, которых теоретическиможет быть любое количество, и чем ниже уровень сложности, тем большетестовых заданий необходимо выполнить. Если тест 1.1 выполнен на проходнойбалл, то спуск на более простые уровни не происходит и обучающийся сразупереходит к странице 1.2. Таким образом, можно изучить оба урока, выполняятолько тесты высокой сложности, а также открытые задания (которые все желучше было бы организовать по алгоритму Кроудера). Адаптивность проявляетсяв приведенной компоновке в следующих количественных показателях: обучаясьна курсе, слушатель может выполнить от 32 до 176 тестовых заданий разногоуровня сложности (без учета заданий в итоговых тестах урока).Ограничение по дате не представляется возможным использовать приобучении на курсе нескольких обучающихся или групп независимо друг от друга,175поскольку ограничение по дате срабатывает автоматически для всех студентовкурса не относительно, а абсолютно.
Например, если один урок курсапредполагает работу над материалом в течение месяца, но один студент началобучение в сентябре, а другой – в ноябре, то создать для них индивидуальныеограничения перехода к следующему уроку только по дате в рассматриваемойверсии LMS Moodle невозможно.Тем не менее, при работе в курсе фиксированной группы, все студентыкоторой начали обучение одновременно, ограничение по дате представляется намоптимальным выбором.Ограничение по профилю пользователя представляется удобным, еслинеобходимо допустить до определенного модуля только одного обучающегося(реже – несколько обучающихся).
Например, при сдаче итогового экзамена покурсу,вкоторомслушателиобучаютсяиндивидуально.Здесьудобнокомбинировать ограничение по учетной записи с ограничением по дате, особенно,если слушатель и администратор находятся в разных часовых поясах и непредставляется удобным открывать модуль вручную в праздничное или ночноевремя. В случае в несколькими обучающимися такое ограничение можнопрописать через набор ограничений для каждого обучающегося («Фамилия = … ИВремя = …»), соединив эти наборы через союз «или».С помощью подсистемы взаимозависимости модулей можно такжепошагово работать с одним и тем же учебным материалом, что было быневозможно вне ОВС. Таким учебным материалом является небольшой связныйтекст. Рассмотрим несколько практических примеров работы с ним, эффективноиспользуя подсистему зависимости по линейному алгоритму.Рассмотрим последовательность из двух модулей.
В первом (тестовом)модуле обучающемуся будет предложено выполнить задание на расшифровкутекста по его аудиозаписи. После верного выполнения задания (можно установитьразличный порог прохождения, например от 85 до 100 %) будет открыт доступ кследующему модулю, в котором обучающему уже будет предъявлен текст впечатном виде. Это может быть модуль открытого задания на комментирование176каких-либо положений из теста. Очевидно, что без использования подсистемывзаимозависимости модулей задание на расшифровку может потерять всякийсмысл.Другим примером может служить последовательность из трех модулей, впервом из которых аудиозапись текста предъявлена с пропусками (например,выпущены формы артикля или предлоги), т.
е. диктор не произносит эти словаили части слов. Во втором модуле предъявлен печатный текст с теми жепропусками для их заполнения и автоматической проверки результата. Третиймодуль представляет весь текст целиком для выполнения какого-либо открытогозадания.2.2.3.4 Подсистема протоколирования работы пользователейПодсистемапротоколированияработыпользователейфиксируетпрактически каждое действие пользователей любого уровня в системе. Онапредставлена различного рода отчетами на уровне курса, которые имеютразличные настройки и является очень популярным инструментом оценкиуспешности образовательного процесса [Luna 2017].
Из четырех видов отчета(«журнал событий», «события в реальном времени», «отчет о деятельности» и«участие в курсе») важнейшим для эффективного администрирования является,на наш взгляд, «журнал событий» [Logs 2017]. Этот вид отчета позволяетформировать выборку в виде таблицы, по следующим параметрам:– наименование курса;– имя участника курса;– определенный день / все дни;– элемент курса;– произведенное действие;– образовательный уровень.В результате выводится таблица, в которой фиксируются:– дата и время (столбец отсортирован от большего к меньшему),– фамилия и имя участника (например, преподавателя),177– фамилия и имя затронутого действием участника (как правило, студента),– элемент курса над которым проводится действие,– уровень действия (система в целом или элемент),– наименование действия,– уникальные идентификаторы всех затронутых персоналий и элементовсистемы,– источник действия (как правило, «web»),– IP-адрес, с которого совершалось действие.В реальных условиях работы упомянутая таблица чрезвычайно полезна дляснятия точных данных о проверке письменных работ преподавателем вопределенном курсе в заданный период времени, который составляет обычноодин календарный месяц.
Выбирая только те строки, в которых наименованиедействия соответствует записи «Представленный ответ был оценен» (припервоначальном выборе произведенного действия как «Обновление»), можнополучить список открытых заданий всех студентов курса, проверенныхпреподавателем в учетный период.Таблица выводится постранично, но при загрузке выборки в виде файламожно получить полный список. Форматы загружаемых файлов следующие:– таблица Excel;– таблица OpenDocument;– CSV-файл (разделитель – табуляция);– CSV-файл (разделитель – запятая);– документ XHTML, не разбитый на страницы.Разнообразие форматов сохранения отчета можно оценить положительно.Так, последний вариант (документ XHTML, не разбитый на страницы) хорошоподходит в качестве отчета по всей деятельности обучающегося в курсе и можетслужить весомым доказательством его работы.
Представление в виде CSV-файла(разделитель – запятая) хорошо поддается дальнейшей программной обработке,например, для автоматической сортировки по преподавателям, студентам и повремени проверки преподавателями открытых заданий студентов.178Допустим, необходимо выяснить, сколько письменных работ былопроверено каждым из работающих в курсах преподавателей за прошедший месяц.В этом случае выборка в пределах всей системы получится очень объемная,поскольку будет содержать действия не диапазона дней, а за все днисуществования системы или за один конкретный день. Невозможность работать сдиапазонами представляется нам не очень удачным решением.
Тем не менее, имеявыборку по всем дням существования системы, можно получить CSV-файл(разделитель – запятая) для последующей программной обработки.Разработанная программа на языке программирования Python считываетCSV-файл, выбирает из него только те записи, которые лежат в заданномвременном диапазоне, и формирует из них двухмерный список Python, в каждойстроке которого содержатся время совершения проверки, фамилия, имя, отчествопреподавателя, фамилия, имя, отчество студента и наименование проверяемогозадания. Далее устанавливается количество преподавателей и для каждого из нихформируется список проверенных заданий с указанием времени, фамилиистудента и наименования задания. Если преподаватель многократно проверялодно и то же задание у одного и того же студента, то задание все равноотобразится только один раз. Результаты сохраняются в файле TXT дляпоследующего распечатывания.
Примечательно, что программа при ее высокойэффективности с точки зрения полученных результатов состоит всего из 45-50строк (в зависимости от плотности компоновки) и может быть интегрирована влюбой программный продукт на языке программирования Python:import csvfrom datetime import *import time# gets date as 5/07/17 and returns date as 2017-07-05def dateToSQLDate(date):dateAndTime = date.split(', ')lst = dateAndTime[0].split('/')lst[2] = '20' + lst[2]if len(lst[0]) == 1:lst[0] = '0' + lst[0]SQLDate = '-'.join(lst[::-1]) + ', ' + dateAndTime[1]return SQLDate179data = []date1 = str(datetime.now()).split()[0]date2 = '2017-07-24'with open('logs/logs_20170805-0146-20170804_2246-comma_separated.csv', 'r',encoding='utf-8') as csvfile:f = csv.reader(csvfile, delimiter=',', quotechar='"')counter = 0for row in f:for cell in row:if 'has been graded' in cell:counter += 1row[0] = dateToSQLDate(row[0])currentDate = time.strptime(row[0].split(', ')[0], '%Y-%m%d')date1format = time.strptime(date1, '%Y-%m-%d')date2format = time.strptime(date2, '%Y-%m-%d')if currentDate >= date2format and currentDate <=date1format:data.append(row[0:4])# Sort by tutorstutors = []for row in data:if row[1] not in tutors:tutors.append(row[1])txt = date2 + ' - ' + date1 + '\n'for t in tutors:txt += t + ':\n'assign = []for row in data:if row[1] == t:if row[2]+row[3] not in assign:txt += '\t' + row[0] + ', ' + row[2] + ', ' + row[3] + '\n'assign.append(row[2]+row[3])txt += str(len(assign)) + '\n'*2f = open('logs/report.txt', 'w', encoding='utf-8')f.write(txt)f.close()2.2.3.5 Подсистема сохранения данных (резервное копирование)Подсистемасохраненияданных(резервноекопирование)являетсяключевой для любого программного продукта, и LMS Moodle не может являтьсяздесь исключением.Резервное копирование в LMS Moodle происходит как на уровне курсов, таки на уровне отдельных его элементов, например, тестовых заданий, глоссария,базы данных.
Начиная с версии 3.0 администратору становится доступнымавтоматическое резервное копирование с функцией установки расписания,180количества максимальных резервных копий и удаления старых резервных копий[Backup 2017].Например, с помощью описываемой подсистемы можно создать пустойкурс-шаблон, содержащий по одному типовому модулю из всех используемых(теоретический, открытое задание, тест, глоссарий и др.). Разворачивая этотшаблон на веб-сервере, можно относительно быстро изготавливать курсы такогоже типа, но по другим иностранным языкам.2.2.3.6 Тестовые задания и банк вопросовLMS Moodle обладает широко используемой возможностью проводитьтестирование [Coy 2013].