Введение В самом общем виде процесс обучения представляет собой совместную деятельность обучающего и обучаемого. Более детальный анализ показывает, что взаимодействие преподавателя и студента при обучении состоит из ряда принципиально различных видов деятельности: - информационная – студенту для изучения предоставляется учебный материал в некоторой форме: лекции, тексты, рисунки, графики и т. п.; - тренирующая – студент учится применять полученные знания на практике, решая задачи; - контролирующая – знания и умения студента проверяются и оцениваются; - административная – ведется учет показателей процесса обучения каждого студента. Очевидно, что при изучении любой предметной области для обучаемого превалирующими являются первые два вида деятельности, особенно при самообучении. Контроль и администрирование дают возможность управлять процессом обучения и обеспечивают обратную связь. Эти два вида деятельности практически всегда осуществляет преподаватель, хотя и при самостоятельной работе контроль необходим. Автоматизация процесса обучения предполагает автоматизацию всех видов учебной деятельности. Специфика обучения программированию заключается в том, что тренирующая деятельность является превалирующей для обучаемого. Главное, чему должен научиться программист – это писать программы, поэтому обучающая среда по программированию должна в первую очередь обеспечивать обучение написанию программ. При этом особую важность приобретают автоматизированные методы контроля. В настоящее время автоматизированный контроль осуществляется исключительно посредством тестирования. Однако для определения уровня компетентности в программировании тестирования совершенно недостаточно. Любая профессиональная компетенция представляет собой известную триаду: знания, умения и навыки. Тестирование в какой-то мере позволяет определить только достигнутый уровень знаний предметной области. При обучении программированию необходимо оценивать уровень умений и навыков в написании программ. Опытный программист отличается от начинающего тем, что он выполняет работу значительно быстрее и с меньшим количеством ошибок. Опыт – это результат многократного решения самых разнообразных программистских задач. Желательно, чтобы программист мог набрать подобный опыт в процессе обучения, а не во время реализации профессиональной разработки. В данной работе нами предлагается способ управления обучением решению задач и метод оценки достигнутого уровня умений и навыков. Неформальная постановка задачи При выполнении любого задания обучаемый совершает некоторые операции (действия) в обучающей среде. Например, для создания диаграммы классов обучаемый должен выбрать вид диаграммы, тип узла (класс), создать узлы-классы, задать названия классов, выбрать типы связей между классами, проставить связи на диаграмме и т. п. При создании программы тоже выполняется определенный набор действий: требуется задать последовательность операторов и объявить каждый объект программы, присвоив объектам имена. Для объектов-данных требуется задать тип значений. Для каждой процедуры и функции необходимо задавать имя и список параметров, в котором для каждого параметра указывать тип. Для выполнения конкретного задания требуется совершить в обучающей среде определенный фиксированный набор операций. Назовем операции этого множества правильными. Количество правильных операций составляет трудоемкость задания. Действия, совершаемые обучаемым при выполнении задания, могут быть либо правильными, либо ошибочными. Назовем все действия, совершаемые обучаемым, учебными действиями. Очевидно, что количество ошибочных операций, совершаемых при выполнении конкретного задания, будет тем меньше, чем большим объемом знаний, умений и навыков обладает обучаемый – этот объем составляет опыт обучаемого. Начинающий совершает много ошибок. По мере научения деятельность обучаемого становится все более безошибочной, поэтому задачу обучения умениям и навыкам можно сформулировать как задачу минимизации ошибочных операций при выполнении заданий. Рассмотрим работу обучающей системы в одном сеансе обучения, в котором ученику предоставляется одно задание для выполнения. Одну учебную операцию, выполняемую обучаемым, будем считать единицей учебного ресурса. Перед выполнением задания обучаемому предоставляется обучающей системой некоторый объем этого ресурса, заведомо больший, чем трудоемкость выполнения задания. Выполняя операции, обучаемый расходует этот ресурс. Система отслеживает действия обучаемого и организует обратную связь, вычисляя расход ресурса и его остаток. Эта информация сообщается обучаемому, чтобы он мог скорректировать свои действия. Если обучающий совершает много ошибочных действий, он быстро расходует предоставленный объем ресурса. В некоторый момент ресурса останется настолько мало, что для завершения задания придется действовать безошибочно. В этот момент система переходит в режим институционального (принудительного) управления. В этом режиме множество разрешенных операций ограничивается правильными операциями. Режим институционального управления подобен обучению под присмотром наставника, когда тот обучает ученика правильным действиям для выполнения задания. Таким образом, обучаемый получает возможность завершить задание. Режим институционального обучения может быть включен с самого начала, если система предоставит обучаемому объем ресурса, равный трудоемкости. Подобный режим работы соответствует первому уроку, когда учитель просто показывает, как надо правильно действовать для решения поставленной задачи. Таким образом, обучающая система может работать в трех режимах: - инстуциональный – действиями обучаемого управляет система; - свободный (контрольный) – обучаемый совершает любые действия, система не вмешивается в управление, но ведет журнал действий пользователя и вычисляет метрики-оценки; - полусвободный (обучающий) – обучаемый совершает действия в пределах предоставленного ресурса, система переходит в институциональный режим при исчерпании ресурса, система ведет журнал действия пользователя и вычисляет метрики-оценки. Система организует множество обучающих сеансов, что позволяет обучаемому постепенно набирать опыт и действовать все более безошибочно. Отметим, что система может управлять обучением в самых разнообразных режимах, например разрешить или запретить обучаемому пользоваться помощью или включить информационный режим, в котором каждое неверное действие обучаемого сопровождается подробным сообщением об ошибке. Критерии оценивания На момент выполнения контрольного задания обучаемый обладает некоторым уровнем обученности. Поскольку время выполнения контрольного задания малó по сравнению с общим временем обучения, то можно считать, что за время выполнения контрольного задания текущий уровень обученности остается неизменным. В контрольном режиме система не переходит в режим институционального управления, поэтому доля правильных действий от общего количества учебных действий, совершенных обучаемым, может служить оценкой достигнутого уровня обученности. В контрольном режиме помимо количества ошибочных действий дополнительным критерием для определения уровня навыков служит время выполнения задания. Для контрольного задания задается нормативное время, в течение которого задание должно быть выполнено. Очевидно, что оценка обучаемого, не уложившегося в нормативное время, должна быть снижена. Формальная постановка задачи Предположим, что система содержит N однотипных заданий и обучаемому предоставляется одно задание в сеансе. Пусть Q – это множество учебных действий, D – это трудоемкость задания, а E – множество ошибочных действий. Тогда Q = D È E, и |Q| = |D| + |E|, где |X| – мощность множества Х. Система проводит несколько сеансов обучения-контроля, и в i-м сеансе обучаемому предоставляется ресурс |Qi|: |Qi| = |Di| + |Ei|. Рассмотрим сначала управление обучением без учета времени. За время i-го сеанса фактический объем учебных действий составит: qi = (di + ei) ≤ |Qi|, где di – количество выполненных обучаемым правильных операций, di ≤ |Di|; ei – количество совершенных ошибочных действий, ei ≤ |Ei|. При выполнении задания система вычисляет «расстояние» до завершения задания: hi = (|Di| – di) / |Di|. Эта величина сообщается обучаемому, чтобы он знал, сколько действий осталось до завершения задания. Система переходит в режим институционального управления, если в сеансе обучаемый совершил qi = (di + |Ei|) учебных действий. Лимит ошибок исчерпан, и система принудительно заставляет обучаемого совершить fi = |Di| – di правильных операций. Задание считается выполненным. Если обучаемый самостоятельно выполнил di = |Di| правильных операций, то задание считается выполненным независимо от количества ошибок. После завершения задания требуется вычислить текущий уровень обученности и определить объем предоставляемого ресурса |Qi+1| для следующего сеанса. Пусть r – уровень обученности. Без учета времени в i-м обучающем сеансе уровень обученности ri вычисляется по формуле ri = di / (|Di| + ei). (1) Очевидно, что 0 ≤ r ≤ 1, причем r = 0 означает полное отсутствие каких-либо знаний, умений, навыков. При одновременном стремлении d -> |D| и e -> 0 уровень обученности стремится к 1, что и является целью обучения. Система должна проверять выполнение условия ri > εb, где εb – некоторая положительная константа, 0 < εb < 1. Эта константа определяет начальный минимальный уровень обученности, поэтому неравенство ri ≤ εb означает, что обучаемый совершил слишком много ошибок и нужно повторить в следующем сеансе то же самое задание. В этом случае объем ресурса для следующего сеанса вычисляется по формуле |Qi+1| = |Di| + |Di|(1 – ri ) . В противном случае система выдает следующее задание, и объем ресурса вычисляется так: |Qi+1| = |Di+1| + |Di+1|(1 – ri ). Заметим, что |E| = |D|(1 – r) фактически определяет прогноз количества ошибок, которые может совершить обучаемый при выполнении предлагаемого задания. В обучающем режиме при первом сеансе, когда r = 0, ресурс ошибок |E0| = |D0|. Система выделит ресурс для первого сеанса: |Q0| = 2|D0|. Если принять |E0| = 0, то система с самого начала будет работать в институциональном режиме, заставляя пользователя выполнять только правильные операции. Обучение заканчивается после k-го сеанса (k ≤ N) при выполнении условия: |1 – rk| ≤ εr, где εr – малая положительная константа, 0 < εr ≤ 1. Таким образом, алгоритм адаптивного управления формированием навыков решения задач без учета времени можно представить следующим образом: 1. Задать εb, εr; установить режим обучения: обучающий, контрольный. 2. i := 0, r0 := 0, |D | := |D0|, |E0| := |D0|; 3. пока |1 – ri| > εr 4. i := i + 1 5. если ri < εb тогда |Qi+1| := |Di| + |Di|(1 – ri ) иначе выбрать новую задачу с трудоемкостью |Di+1|, |Qi+1| := |Di+1| + |Di+1|(1 – ri) 6. Сеанс обучения i, получить di, ei 7. hi = (|Di| – di) / |Di| если режим = обучающий и если ei = |Ei| тогда перейти в режим институционального управления иначе если режим = контрольный и если ei = |Ei| тогда закончить сеанс 8. ri = di / (|Di| + ei) 9. конец цикла В этом алгоритме неформализованным остался единственный пункт в шаге 5: выбрать новую задачу с трудоемкостью |Di+1|. Формализация данного пункта существенно зависит от предметной области и решаемых в этой области задач и составляет отдельную тему для исследования. Учет времени Время рассматривается как ресурс, который выделяется системой в обучающих и контрольных сеансах. Пусть трудоемкость задания составляет |D| операций и для выполнения j-й операции требуется tj единиц времени. Тогда общее операционное время выполнения задания равно: . В более простом варианте время выполнения всех операций считается одинаковым, и полное операционное время выполнения задания вычисляется как T0 = t |D|. Заметим, что нормативное время выполнения задания должно быть несколько больше полного операционного времени T0, поскольку время расходуется не только на выполнение операции, но и на переход к следующей (например, на перемещение мышки от одной кнопки к другой требуется некоторое время). Для первого обучающего сеанса система выделяет обучаемому минимальный временной ресурс в объеме T0 единиц времени, а при завершении задания фиксирует фактическое время выполнения. Пусть обучаемый выполнит первое задание за фактическое время t0 ≥ T0. Тогда на выполнение одной операции обучаемый в среднем затратит s0 = t0 / q0 единиц времени. Второй и последующие сеансы завершаются при ti = Ti, и система вычисляет величину si = ti / qi = ti / (|Di| + ei). Эта величина представляет собой индивидуальный темп работы обучаемого при выполнении конкретного задания. Очевидно, что при отсутствии ошибочных действий величина s принимает минимальное значение min s = t / |D|. Обратная величина vi = qi / ti = (|Di| + ei) / ti представляет собой интенсивность (скорость) выполнения операций обучаемым при выполнении конкретного задания. Величины si и vi представляют собой важные характеристики обучаемого и сохраняются в модели обучаемого. Ресурс времени для второго и последующих сеансов вычисляется по формуле Ti+1 = si |Qi+1|. Таким образом, объем временного ресурса, выделяемого в сеансе, регулируется темпом работы обучаемого. Если обучаемый «медленный», то выделяется больше времени, если работает быстро – меньше. С учетом времени система переходит в режим институционального управления либо при исчерпании ресурса ошибочных действий E, либо при исчерпании ресурса времени T. Уровень обученности с учетом времени вычисляется следующим образом: ri = p(ti)(di / (|Di| + ei)), (2) где p(t) – функция снижения оценки при превышении нормативного времени. В [1] для данной функции получена формула p(t) = e-λt, а в [2] показано, что коэффициент d = 1/λ представляет собой трудность задания. В данном случае под трудностью задания мы понимаем трудоемкость задания |D|, поэтому функция снижения оценки принимает вид p(t) = e-t/|D|. (3) Пусть tн – нормативное время, tн = (T0 + tε) ≤ Ti, где tε – малая константа. Тогда превышение нормативного времени в i-м сеансе составит t = (Ti – tн), и эта величина подставляется в качестве аргумента в формулу (3). Таким образом, модифицированный алгоритм формирования навыков решения задач с учетом времени можно представить следующим образом: 1. Задать εb, εr, установить режим обучения: обучающий, контрольный 2. i := 0, r0 := 0, |D | := |D0|, |E0| := |D0|, вычислить T0 3. пока |1 – ri| > εr 1. i := i + 1 2. если ri < εb тогда |Qi+1| := |Di| + |Di|(1 – ri ) иначе выбрать новую задачу с трудоемкостью |Di+1|, i. |Qi+1| := |Di+1| + |Di+1|(1 – ri) 3. Сеанс обучения i, получить di, ei, ti 4. Если режим = обучающий и если if ei = |Ei| или ti = Ti i. тогда перейти в режим институционального управления если режим = контрольный и если ei = |Ei| или ti = Ti ii. тогда закончить сеанс 5. qi := di + ei, si = ti/qi 6. Ti+1 := si |Qi+1| 7. ri := p(ti) di / (|Di| + ei) 4. конец цикла Информационно-энтропийный критерий уровня обученности Выше формула (1) определяет достигнутый обучаемым уровень умений и навыков как долю успешных действий от множества учебных операций. В формуле (2) учитывается время выполнения задания. Однако возможен и другой подход к определению уровня обученности, позволяющий учесть не только успешные, но и ошибочные действия обучаемого – на основе вычисления энтропии. Действие, совершаемое обучаемым при выполнении контрольного задания, будем считать случайным событием. Последовательность действий представляет собой поток случайных событий, обладающий следующими свойствами: 1. Ординарность. Вероятность совершения обучаемым двух или более действий за интервал времени Δt по сравнению с вероятностью совершения за то же время ровно одного действия настолько мала, что ею можно пренебречь. 2. Отсутствие последействия. Вероятность совершения обучаемым некоторого количества действий на одном интервале времени не зависит от того, сколько действий обучаемый совершил в другом интервале времени. 3. Стационарность. На момент выполнения контрольного задания обучаемый обладает некоторым фиксированным уровнем обученности. Можно считать, что за время выполнения контрольного задания текущий уровень обученности, в том числе и достигнутый уровень навыков, остается постоянным. Таким образом, последовательность действий, совершаемых обучаемым при выполнении контрольного задания, является пуассоновским потоком. Поскольку действие может быть правильным и неправильным, система контроля может пребывать в одном из двух состояний: либо в правильном состоянии, либо в состоянии ошибки. Следовательно, процесс, протекающий в контрольном режиме обучающей системы, является марковским [3], причем представляется моделью Гильберта с двумя состояниями (рис.). p 1 – p 1 – q St q Sf Модель Гильберта Пусть St – правильное состояние; Sf – ошибочное состояние; p – вероятность перехода из правильного состояния в ошибочное; q – вероятность перехода из ошибочного состояния в правильное. Соответственно, вероятность остаться в правильном состоянии составляет 1 – p, вероятность остаться в ошибочном состоянии равна 1 – q, причем p + q ≠ 1. Поскольку поток стационарный, существуют финальные вероятности пребывания системы в состояниях St и Sf: pt = q / (p + q); pf = p / (p + q), причем pt + pf = 1. Однако обучающая система имеет возможность вычислить эти вероятности непосредственно: pt = d / (d + e); pf = e / (d + e), где d – количество выполненных обучаемым правильных операций; e – количество совершенных ошибочных действий. Тогда можно вычислить энтропию системы: H = – (pt log2(pt) + pf log2(pf)). Энтропия позволяет определить интегрированный уровень обученности. В самом деле, в первом сеансе обучения, когда уровень обученности нулевой, вероятности pt = pf = 0,5, энтропия максимальна и равна 1. По мере обучения энтропия уменьшается, поэтому критерий обученности можно определить так: r = 1 – H при pt > pf; r = H при pt < pf. Отметим, что вероятности pt и pf можно вычислять не только по отдельному контрольному заданию, но и всему множеству действий, совершенных обучаемым в контрольном режиме при выполнении всех заданий. Таким образом, если обучаемый совершает большое количество ошибочный действий в нескольких заданиях, то его уровень обученности уменьшается. Заключение Предложенный подход предполагает, что обучающая система собирает полную информацию о действиях обучаемого во время сеансов обучения. Например, система может определять время между действиями, вычислять среднее время простоя, время получения помощи, собирать информацию об обращении обучаемого к подсистеме помощи, вычислять интенсивность обращения к подсистеме помощи и т. п. Накопление статистических данных позволит решить несколько важных задач: – по собранным эмпирическим данным выявить индивидуальные кривые научения [4]; – построить индивидуальную модель ошибок обучаемого [5]. Совокупность разнообразных временных и количественных характеристик составляет индивидуальный профиль обучаемого. Знание типичных для студента характеристик позволяет, во-первых, улучшить адаптивное управление обучением и, во-вторых, повысить надежность контроля. Если в процессе сеанса обучения текущие характеристики обучаемого, собираемые системой, существенно отличаются от его статистических характеристик, это может говорить о применении студентом нечестных методов выполнения задания (например, задание выполняет другой студент по просьбе обучаемого). Для реализации описанного подхода требуется, чтобы операции, необходимые для выполнения задания, были «крупноблочными». Например, редактор кода должен оперировать не отдельными символами, а конструкциями языка и объектами программы. Кроме того, система должна «знать», какова трудоемкость выполнения того или иного задания – в системе должны храниться эталонные результаты выполнения заданий [6]. В Астраханском государственном техническом университете на кафедре «Автоматизированные системы обработки информации и управления» (АСОИУ) разработана интегрированная среда программирования на основе семантического редактора [7], позволяющая вести учет всех действий студента. Описанный в статье метод оценивания умений и навыков реализуется в данной среде как один из методов адаптивного управления обучением. В настоящее время разработанная интегрированная среда проходит апробацию на кафедре АСОИУ. При изучении дисциплин «Основы алгоритмизации» и «Алгоритмизация математических задач» студенты выполняют лабораторные работы в семантическом редакторе.