Введение В рамках Глобального стратегического форума, проходившего 9 декабря 2010 г. в Академии наук Российской Федерации, Ассоциация предприятий компьютерных и информационных технологий (АПКИТ) представила доклад «О стратегических направлениях развития индустрии информационных технологий (ИТ) в России» [1]. В докладе сказано, что «недостаточное количество кадров и уровень подготовки выпускников являются основными сдерживающими факторами развития ИТ-индустрии как современного и перспективного сектора экономики». По прогнозам, в 2015 г. потребность в ИТ-кадрах составит приблизительно 350 тысяч человек [2]. Подобная проблема характерна не только для России, но и для остального мира. Например, по грубым оценкам американской некоммерческой организации Code.org, к 2020 г. в США спрос на ИТ-кадры превысит предложение на 1 миллион специалистов [3], а в Европейском союзе, по данным аналитической компании Empirica, к 2015 г. на 900 тысяч открытых вакансий будет всего 100 тысяч выпускников компьютерных специальностей [4]. Проблема нехватки ИТ-кадров в последнее время усугубляется в связи с необходимостью обеспечения информационного суверенитета России. Министр связи и массовых коммуникаций Российской Федерации Николай Никифоров, выступая 15 августа 2014 г. на международном молодежном форуме «Таврида-2014», заявил, что для решения этой важнейшей задачи в России не хватает миллиона программистов [5]. Однако высшая школа не успевает за потребностями бурно развивающейся ИТ-индустрии. В вышеупомянутом докладе АПКИТ отмечается: «В образовательных учреждениях недостаточно преподавателей, обладающих системными знаниями о современных информационных технологиях и имеющих практический опыт в этой области. Как следствие, у российских студентов в ходе обучения редко развиваются компетенции, необходимые для осуществления профессиональной деятельности. Большинство принятых на работу российских выпускников приходится доучивать уже на рабочем месте и вырабатывать у них необходимые для данной профессии навыки». Усугубляет проблему переход высшей школы на новые образовательные стандарты новых поколений 3+ и 4, что требует кардинальных изменений образовательного процесса. Таким образом, возникает важная научно-техническая задача: разработка новых методов и средств обучения, позволяющих гарантированно добиваться требуемого уровня обученности программистов. Для решения этой задачи необходимо автоматизировать управление процессом обучения на уровне изучения конкретной дисциплины, что требует разработки интеллектуальных автоматизированных обучающих систем. Анализ ситуации в сфере практического обучения программированию в российских вузах и в профильных классах средней школы (выпускники которых обычно поступают на ИТ-направления в вузы) показал, что практически все используемые в обучении программированию языки и среды являются промышленными системами для разработки программного обеспечения и не предназначены для обучения. Даже среды, позиционируемые как обучающие (среда КуМир [6] и среда PascalABC.NET [7]), гораздо в большей степени являются средами для разработки, чем для обучения, т. к. управление обучением полностью осуществляет преподаватель. Он определяет форму представления изучаемого материала и последовательность его изучения, задает упражнения и задачи, показывает методы решения и наблюдает за процессом выполнения, направляя деятельность обучаемого в нужное русло. Преподаватель определяет количество и состав контрольных мероприятий, назначает время проведения и оценивает результаты деятельности обучаемого. Таким образом, чтобы ускорить процесс и повысить качество обучения, необходимо хотя бы частично реализовать в автоматизированной обучающей системе «умение» управлять процессом обучения. Реализация подобных свойств требует анализа учебной деятельности и видов управления, применяемых преподавателем при обучении. Структурирование учебной деятельности В самом общем виде процесс обучения представляет собой совместную деятельность обучающего и обучаемого, которую будем называть учебной деятельностью. Такую деятельность можно анализировать с различных позиций, в том числе с точки зрения с ее структуры. В [8] указано, что известно всего четыре способа структурирования учебной деятельности: - функциональный; - динамический; - операционный; - организационный. Эти способы достаточно подробно проанализированы в [8]. Каждый способ акцентирует внимание на различных компонентах учебной деятельности и их связях. Однако для автоматизации управления процессом обучения требуется другое структурирование, отличное от описанных способов. В связи с этим предлагается представить учебную деятельность как систему нескольких принципиально различных видов деятельности: - информационная; - тренирующая; - контролирующая; - административная. Информационная деятельность состоит в том, что обучаемый изучает учебный материал, представленный в некоторой форме: лекции, тексты, рисунки, графики, программный код и т. п. Тренирующая деятельность представляет собой решение задач: студент учится применять полученные знания на практике, решая задачи. Контролирующая деятельность - это проверка знаний и умений студента. Учет показателей процесса обучения представляет собой административную деятельность. Очевидно, что при изучении любой предметной области основными видами деятельности для обучаемого (при любой форме обучения) являются первые два вида деятельности. Контроль и администрирование обеспечивают обратную связь и дают возможность управлять процессом обучения. Эти два вида деятельности практически всегда осуществляет преподаватель. Обучение под руководством преподавателя является более эффективной формой по сравнению с самостоятельной подготовкой. Эффективность такого обучения определяется тем, что преподаватель управляет процессом обучения и направляет деятельность ученика в нужную сторону. Управление информационной деятельностью состоит в том, что преподаватель выбирает, с одной стороны, форму представления учебного материала и, с другой, последовательность предоставления материала обучаемому. Порядок изучения учебного материала определяется, в частности, на основании информации, полученной преподавателем при проведении контроля. Важнейшая особенность обучения программированию состоит в том, что тренирующая деятельность является основной. Написание программ - это главное, чему должен научиться программист. Тренировка в решении задач обычно проходит в несколько стадий. Сначала преподаватель жестко управляет деятельностью ученика: выбирает задание для решения, показывает способ решения, демонстрирует правильный порядок действий для выполнения задания, управляет действиями ученика непосредственно во время выполнения задания, сразу же корректирует его действия при совершении ошибки. Такое «принудительное» управление обучением называется институциональным. По мере обучения управление деятельностью ученика постепенно ослабляется: преподаватель переходит от прямого управления к наблюдению за действиями ученика, не вмешиваясь в его деятельность. При совершении ошибок или по просьбе обучаемого преподаватель может подсказать дальнейшие действия или просто предоставить информацию по изучаемой теме. В конечном итоге ученик получает задания для самостоятельного решения. На этой стадии обучения преподаватель только объясняет совершенные ошибки по конечному результату, не наблюдая и не вмешиваясь в процесс выполнения задания. Заметим, что во время тренировки в решении задач деятельность ученика не оценивается, хотя преподаватель может как поощрить ученика, похвалив его, так и высказать недовольство каким-либо аспектом решения. Оценивание же деятельности обучаемого осуществляется только при проведении контроля. В этом случае обучаемому выдается задание и оценивается только результат его выполнения. При автоматизации процесса обучения требуется автоматизировать все виды деятельности. Обучающая система представляет собой «преподавателя», поэтому должна управлять действиями обучаемого в процессе обучения. Очевидно, что система должна определять порядок предоставления учебного материала обучаемому. Более того, если учебный материал в системе представлен в различных формах, то система должна выбирать и форму представления в зависимости от учебных целей и предпочтений ученика. Так как основной деятельностью при обучении программированию является написание программ, система должна уметь управлять этим процессом. Естественно, обучающая система должна быть способна оценивать как результаты выполнения конкретного задания, так и общий уровень обученности, достигнутый учеником к определенному времени. Причем требуется оценивать как знания обучаемого, так и достигнутый уровень умений и навыков в разработке. Задача обучения как задача управления Задача обучения может быть сформулирована как задача управления [9]. Обучаемый при таком подходе является объектом управления, а обучающий (учитель) рассматривается как управляющее устройство и является субъектом управления. На рис. 1 показана схема взаимодействия объекта и субъекта управления, как она была представлена в [9]. Здесь X - это состояние внешней среды, влияющее на состояние Y объекта управления (ученик). Информацию о состояниях X и Y устройство управления (преподаватель) получает с помощью датчиков Dx и Dy соответственно. Естественно, XD ≠ X и YD ≠ Y, поскольку измеряется только то, что используется в процессе управления обучением. Тем не менее измеренная информация в какой-то мере отражает состояние среды и объекта, поэтому XD ϵ X и YD ϵ Y. Устройству управления (преподавателю) известно о цели обучения Z*, и оно распоряжается некоторым объемом ресурсов R, которые могут быть использованы для обучения. Имея информацию о состояниях среды и объекта управления, о цели и доступных ресурсах, устройство управления должно организовать обучение U, изменяющее состояние Y объекта управления таким образом, чтобы достигались цели обучения Z*. Рис. 1. Схема процесса обучения как процесса управления сложным объектом Очевидно, что при достижении цели Z* объект управления будет находиться в некотором состоянии Y*, которое назовем целевым состоянием. Таким образом, задача устройства управления состоит в том, чтобы организовать такое обучение (управление) U*, которое переведет объект управления в целевое состояние Y*. Некоторый алгоритм управления А должен обеспечить решение этой задачи: U* = A(XD, YD, Z*, R). Пусть информация о состоянии объекта обучения представлена в виде некоторой функциональной зависимости: YD = F(XD, U). Тогда Y* = F(XD, U*), и поиск управления U* можно представить как задачу минимизации: min M(F(XD, U*) - F(XD, U)) = min M(Y* - Y), где М - некоторая мера близости. При этом множество допустимых управлений U определяется выделенными ресурсами R, а целевое состояние Y* - заданной целью Z*. Цель управления Z* в самом общем виде может быть сформулирована в виде некоторого набора критериев, которые в общем случае зависят от состояния среды XD, состояния объекта управления YD и управления U: φi(XD,YD,U) = ai, ψj(XD,YD,U) ≥ bj, ωk(XD, YD, U) → ext, где φi, ψj, ωk - некоторые функционалы над указанными переменными; ai, bj - некоторые константы; i, j, k = 1, 2, … [9]. С точки зрения процесса обучения эти цели означают требования к результатам обучения, и обученный ученик должен удовлетворять этим требованиям. Обычно цели обучения формируются как некоторый набор показателей. Цели-равенства определяют такие элементы знаний и умений, отсутствие которых при обучении недопустимо (например, при обучении программированию недопустимо не знать структурные конструкции). Цели-неравенства задают показатели, которых должен достигнуть обучаемый в процессе обучения (например, рейтинговый балл должен быть не менее 85). И наконец, экстремальные цели обычно относятся к организации самого процесса обучения (например, требуется минимизировать время обучения). Первые два вида целей представляют собой измеримые результаты процесса обучения и должны быть достигнуты при любом управлении процессом обучения. Экстремальные показатели определяют сам ход процесса обучения, и именно достижение этих целей самым существенным образом влияет на формирование управления U процессом обучения (например, ускорять или углублять обучение). Таким образом, адаптивное управление обучением математически формулируется как решение нескольких экстремальных задач при заданных ограничениях. Виды управления в обучающей системе Обучающую систему вместе с обучаемым можно рассматривать как двухкомпонентную динамическую организационную систему [10]. Одним из компонентов является управляемый объект, который называется агентом. Второй компонент - это управляющий орган, называемый центром. В нашем случае агентом является обучаемый, а центром - обучающая система. В соответствии с классификацией расширений простейшей базовой модели [10] данная организационная система является динамической, поскольку участники принимают решения многократно в условиях полной информированности. В [10, 11] рассматриваются 6 методов управления: - управление составом; - управление структурой; - институциональное управление; - мотивационное управление; - информационное управление; - управление порядком функционирования. Из перечисленных видов управления в обучающей системе, рассматриваемой как организационная система, не могут быть применены три: 1. Управление составом, поскольку состав системы определен и фиксирован - обучающая система и обучаемый. 2. Управление структурой, т. к. на самом верхнем уровне функции в системе определены и фиксированы - управляет обучающая система, обучаемый является объектом управления. 3. Управление порядком функционирования, поскольку это определяется на этапе разработки обучающей системы и, следовательно, фиксировано. Остальные виды управления - институциональное, мотивационное, информационное - могут применяться в обучающей системе. Институциональное управление состоит в том, что центр целенаправленно ограничивает множество возможных действий и результатов деятельности агентов [10, 11]. В нашем случае это означает, что обучающая система должна разрешить обучаемому только те действия, которые необходимо выполнить для решения конкретной поставленной задачи [12]. Другой пример институционального управления - ограничение доступных обучаемому тем для изучения или задач для выполнения. Мотивационное управление представляет собой целенаправленное изменение центром предпочтений (функции полезности) агентов [10]. В обучающей системе такое управление может осуществляться посредством начисления поощрительных баллов или штрафов за выбор агентом тех или иных действий. Очевидно, что оценивание результатов деятельности обучаемого представляет собой мотивационное управление. Информационное управление - это управление информированностью субъектов [10]. В обучающей системе подобное управление осуществляется при выдаче обучаемому разнообразной информации в различной форме. В частности, выдача обучаемому подсказок различного уровня детальности представляет собой информационное управление. Особенности управления обучением автоматизированной обучающей системой Сравнивая схему управления (рис. 1) с двухкомпонентной динамической организационной системой, можно видеть, что агентом организационной системы является объект управления (обучаемый), а устройство управления (обучающий) - это центр организационной системы, управляющий агентом. Рассмотрим особенности системы управления, в которой управляющим устройством является автоматизированная обучающая система (АОС). Первое отличие состоит в том, что АОС, в отличие от преподавателя, не имеет возможности получать информацию о состоянии внешней среды X. Внешняя среда влияет на состояние обучаемого, но в АОС отсутствует датчик Dx, измеряющий состояние внешней среды XD. В связи с этим в модели объекта управления отсутствует структура входа модели X. Заметим, однако, что обучающая система может осуществлять обучение в некоторой виртуальной среде Xv. В этом случае, естественно, АОС имеет возможность отслеживать изменения виртуальной среды и ее влияние на обучаемого. Вторым отличием является то, что все ресурсы R, которые АОС может использовать для управления обучением, находятся в самой АОС. Эти ресурсы закладываются в систему при проектировании и в процессе разработки, и АОС не имеет возможности получить дополнительные или изменить существующие ресурсы во время работы. Конечные цели обучения Z* также закладываются в АОС при проектировании, поэтому автоматизированная система, в отличие от живого учителя, не в состоянии скорректировать конечные цели обучения. Однако в систему можно заложить множество разных целей - АОС в таком случае сможет переключаться от одной цели к другой. Кроме того, в АОС полезно различать локальные и глобальные цели. Конечные цели обучения - это глобальные цели, а цель решения конкретной задачи по определенной теме - это пример локальной цели. Локальные цели могут меняться от сеанса к сеансу или даже в процессе одного сеанса обучения. Автоматизированная обучающая система автоматизирует несколько видов совместной деятельности ученика и учителя, применяя при этом разные виды управления. В нашем случае U = , где U1 - институциональное, U2 - мотивационное и U3 - информационное управление. Таким образом, с учетом отмеченных особенностей схема управления выглядит так, как показано на рис. 2. На схеме показан единственный контур управления с обратной связью, но фактически этих контуров не менее двух. Один контур управления, который будем называть локальным, задает цикл обратной связи при выполнении конкретного тренировочного задания. Этот цикл обратной связи показывает величину рассогласования между текущим и целевым состоянием, выраженную в количестве правильных действий, которые обучаемый должен совершить для перехода из текущего в целевое состояние решения задачи. Этот цикл является коротким по времени, поскольку управляющие воздействия система осуществляет в процессе сеанса решения задачи. Обучающая система в этом контуре применяет институциональное управление, если обучаемый не справляется с заданием - как это описано в [12]. Применяется также информационное управление, когда обучаемому сообщается «расстояние» до цели - правильного решения тренировочного задания. Рис. 2. Схема процесса обучения как процесса управления с АОС Второй контур управления - глобальный. Он является главным. В этом контуре цикл обратной связи определяет мотивационное управление учебной деятельностью. Мотивационное воздействие задается посредством датчика, показывающего изменение функции ценности состояния обучаемого - уровня компетенции, достигнутого обучаемым. Обучающая система вправе применять в этом контуре и институциональное управление, ограничивая доступ обучаемого к тем или иным обучающим материалам в соответствии с достигнутым уровнем компетенции. Принципы адаптации в автоматизированных обучающих системах Автоматизированная система не имеет возможности непосредственно управлять агентом (объектом управления), поскольку обучаемый представляет собой сложную систему (в терминах [9]). Внутренние процессы, происходящие в объекте управления под воздействием внешней среды X и управления U, не стационарны и явно не наблюдаемы. Математическое описание этих процессов отсутствует, поэтому судить об изменении характеристик обучаемого в процессе обучения можно только на основании измерения результатов его деятельности YD, косвенно свидетельствующих о состоянии Y агента в некоторый конкретный момент времени. Важнейшей особенностью процесса обучения, интерпретируемого как решение задачи управления обучаемым, является принципиальная невозможность воспроизведения результатов воздействия управления U на агента. Именно эта особенность требует реализации в АОС адаптивного управления процессом обучения. Поскольку адаптивное управление обучаемым невозможно без знания его особенностей и характеристик, АОС собирает эту информацию в модель обучаемого [13-16]. Эта модель обучаемого является динамической моделью. Часть параметров обучаемого - постоянные, они определяются один раз. Однако большинство параметров - переменные, поэтому информацию о таких характеристиках нужно собирать в каждом сеансе. В частности, важнейшими параметрами для адаптивного управления являются достигнутые учеником текущие уровни знаний и умений по каждому разделу (теме, модулю) изучаемого курса. Соответственно цели обучения Z* представлены в АОС в виде нормативной модели обучаемого [17]. Нормативная модель определяет, каким мы хотим видеть ученика в конце курса обучения. В АОС может быть определено несколько нормативных моделей. Например, одна из моделей устанавливает высокий уровень владения всеми разделами (темами, модулями) курса; другая модель определяет высокий уровень владения только самыми важными разделами, а для остальных допустим средний уровень; третья модель может задавать уровень обученности для самых элементарных разделов курса и. т. п. Текущее состояние динамической модели обучаемого и вся предыстория представляют собой конкретную траекторию обучения данного ученика. На основании этих данных можно строить прогнозируемую модель обучаемого [18]. Эта модель может использоваться АОС для определения управляющих воздействий в очередном сеансе обучения. Общая динамика развития процесса обучения часто представляется в виде модели процесса обучения, для представления которой используют обычно разнообразные сетевые модели: ориентированные графы, сети Петри, байесовские сети, цепи Маркова, конечные автоматы и т. п. Модель процесса обучения часто используется для моделирования и определения различных параметров процесса обучения [19, 20]. Адаптивное управление тренирующей деятельностью Тренирующая деятельность - это тренировка в решении задач. При обучении программированию написание программ является основной деятельностью обучаемого, поэтому в составе ресурсов R обучающей системы должно быть множество самых разнообразных заданий на программирование. Пусть для данного этапа обучения в составе ресурсов R система имеет N заданий. Каждое задание xi характеризуется своей трудоемкостью di, и задания упорядочены по возрастанию трудоемкостей: если di < dj, то i < j. Таким образом, d0 = min (d0, d1, …, dN), и dN = max (d0, d1, …, dN). Система в каждом тренировочном сеансе выдает одно задание. Количество сеансов зависит от успехов обучаемого. Сеансы обучения пронумерованы от 0 до K, K ≤ N. В k-м сеансе обучаемый совершает mk = (mtk + mek) действий, где mtk - правильные действия, а mеk - ошибочные. Система вычисляет в каждом сеансе частоту правильных действий: pk = mtk / (mtk + mek) . «Расстояние» до завершения задания вычисляется по формуле hk = (di - mtk) / di . В начале обучения эта величина должна выдаваться как можно чаще, но по мере научения частота вывода этой информации должна снижаться. Очевидно, что частота вывода должна зависеть от результатов деятельности ученика в предыдущих сеансах обучения. Эту частоту можно вычислять по формуле Pk = α (1 - рk - 1), где α - некоторый устанавливаемый при настройках системы коэффициент. Таким образом, чем больше правильных действий совершает обучаемый, тем реже ему выдается информация о расстоянии до цели. Аналогично вычисляется и вероятность вывода подсказки по запросу обучаемого. Схема алгоритма адаптивного управления в тренирующем режиме выглядит так: 1. Установить порог рейтинга 0,0 < eps << 0,5. 2. Установить начальные значения: k = 0, рk = 0,5. 3. Выбрать первую задачу с трудоемкостью dk = d0. 4. Цикл: пока |1 - рk| > eps. a) обучаемый выполняет задание, во время которого ему выдается hk и подсказки с вероятностью pk; b) получить количество действий mtk, mek; c) вычислить pk, Pk; d) вычислить k = k + 1; e) выбрать следующую задачу xk с трудоемкостью dk. 5. Конец цикла. Таким образом, система тренирует обучаемого до тех пор, пока частота правильных действий обучаемого меньше некоторого порога, который установлен в системе. Кроме порога, в системе могут быть определены несколько уровней обученности [21], и АОС может использовать информацию о достижении обучаемым очередного уровня для реализации мотивационного управления. Постановка задачи построения траектории обучения В терминах моделей обучаемого цель обучения можно определить как перевод ученика из состояния Y0, определяемого начальной моделью, в состояние YZ, как можно более близкое к нормативному состоянию Y* (определяемому требуемой нормативной моделью обучаемого). Причем это процесс должен выполняться по траектории обучения, оптимальной с некоторой точки зрения. Задача формирования критериев оптимальности представляет собой отдельную важную проблему, от решения которой существенно зависит качество функционирования автоматизированной системы. Автоматизированная обучающая система осуществляет обучение в рамках обучающих ресурсов R, которые заложены в нее при проектировании. Под обучающими ресурсами в данном случае мы понимаем множество разнообразных учебно-методических материалов по курсу обучения: лекции, презентации, видеоролики, справочники, лабораторные работы, тесты, задания, примеры и т. п. Знания о ресурсах представляются в АОС в виде модели предметной области [22-26]. Модель предметной области помимо предметного содержания обычно включает множество различных отношений между элементами курса и разнообразные параметры элементов. Например, элементы курса могут быть дифференцированы по степени подробности и глубины изложения, по важности и сложности материала и т. п. Построение последовательности этапов обучения и сеансов обучения в рамках одного этапа в значительной степени зависит от организации модели предметной области и целей обучения. Например, в [27] описано построение траектории обучения на основе семантической сети понятий предметной области. Цель достижения максимума уровня обученности не является предметом задачи построения оптимальной траектории обучения, поскольку максимальный уровень обученности в рамках АОС представляет собой изучение всего учебного материала, заложенного в систему. Этот результат может быть достигнут при любых траекториях обучения. Поэтому задача достижения максимального уровня обученности может быть поставлена только при некоторых дополнительных ограничениях. Введем следующие обозначения: T - время обучения; V - объем изучаемого материала; S - сложность изучаемого материала; W - важность изучаемого материала; Q - уровень обученности. Весь учебно-методический материал разделен на порции-кванты k. Тогда указанные параметры вычисляются следующим образом: T = t0 + t1 + … + tn, где ti - нормативное время изучения материала кванта ki; V = v0 + v1 + … + vn, где vi - объем материала кванта ki; S = Fs(fs(k0), fs(k1), …, fs(kn)), где fs(ki) - функция вычисления сложности кванта ki; W = Fw(fw(k0), fw(k1), …, fw(kn)), где fw(ki) - функция вычисления важности кванта ki; Q = Fq(fq(k0), fq(k1), …, fq(kn)), где fq(ki) - функция вычисления уровня обученности при изучении материала кванта ki. Система должна построить некоторую последовательность квантов ki в соответствии с некоторым критерием оптимальности. В эту последовательность не обязательно должны входить все кванты учебного материала, поскольку в АОС может содержаться намного больше разнообразного учебного материала, чем требуется при изучении конкретной тематики. Эта последовательность квантов является учебным планом изучения данной тематики. Очевидно, что оптимизировать можно время, объем изучаемого материала, уровень обученности или сложность изучаемого материала. В качестве возможных вариантов оптимизации можно привести такие: Tp → min при Vp > v; Tp → min при Qp > q; Vp → max при Tp < t, Qp > q; Qp → max при Tp < t; Qp → max при Tp < t, Sp > s, Wp > w; Tp → min при Qр > q, Sp > s, Wp > w; |Qp - Qн|→ min при Tp < t, Wp > w. Важной особенностью обучения программированию является то, что нормативные модели обучаемого принципиально являются нечеткими моделями. Такое положение определяется тем, что для адекватного оценивания умений обучаемого при написании программ требуется оценить качество созданного программного кода. В настоящее время не существует четких моделей оценки качества программ, но разработан подход на основе нечетких нейронных сетей Ванга - Менделя [28], поэтому и оптимизация траектории обучения должна строиться на основе аппарата нечеткой математики. Заключение Автоматизированная обучающая система по программированию включает две взаимодействующие подсистемы: интегрированную среду и управляющую подсистему. В интегрированной среде обучаемый создает программы, а управляющая подсистема организует процесс обучения: выдает задания, запрашивает у интегрированной среды информацию о действиях обучаемого, оценивает деятельность и ее результаты и формирует траекторию обучения. Интегрированная среда с семантическим редактором [29] апробировалась в учебном процессе 2012-2014 гг. на кафедре «Автоматизированные системы обработки информации и управления» Астраханского государственного технического университета для выполнения лабораторных работ по дисциплине «Основы алгоритмизации». Среда использовалась и на факультативных занятиях по программированию в Астраханском колледже вычислительной техники и в 2014 г. внедрена в учебный процесс. Управляющая подсистема реализована в составе веб-сервиса acodemica.ru и в настоящее время находится в стадии бета-тестирования. В настоящий момент развитие автоматизированной системы продолжается. Работа поддержана грантами «У.М.Н.И.К.» в 2011 и 2012 гг. и грантом «Старт» в 2013 г.