Модель предметной области и оценка ее сложности в обучающей системе по программированию

УДК 004.822+519.6

В. В. Лаптев

МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ И ОЦЕНКА ЕЕ СЛОЖНОСТИ В ОБУЧАЮЩЕЙ СИСТЕМЕ ПО ПРОГРАММИРОВАНИЮ

Введение

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

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

Разработка автоматизированной обучающей системы (АОС) представляет собой сложный и трудоемкий процесс. Любая АОС - это система, основанная на знаниях и обрабатывающая знания. База знаний обучающей системы, в первую очередь, должна содержать предметные знания, т. е. знания по учебной дисциплине. Адаптивное поведение АОС во многом определяется способами структурирования учебного материала. Чем больше у системы возможностей обеспечить пользователю индивидуальный маршрут изучения учебного материала, тем более гибким и адаптивным является ее поведение. Поэтому вопросы структурирования, представления, доступа к знаниям являются центральными при разработке современной АОС. Решению проблемы структурирования предметных знаний должен быть посвящен один из начальных этапов разработки АОС. Например, в [1] создание электронного учебника предполагается в 5 этапов: разработка сценария; детализация сценария, определение содержания разделов, формулировка предложений по представлению учебного материала; реализация; инсталляция, тиражирование; сопровождение.

Способы структурирования учебного материала в обучающих системах

Разработка базы знаний обучающей системы начинается с построения модели содержания [2]. Учебный материал обычно делится на порции (структурные единицы). При этом, естественно, определяется некоторая минимальная структурная единица. Мелкие структурные единицы обычно объединяются в более крупные структурные единицы тем или иным способом.

Нужно отметить, что терминология в отношении структурных единиц учебного материала пока не является однозначной. Например, Л. В. Зайцева [3] называет минимальную порцию учебного материала квантом. Набор квантов представляет собой раздел некоторой темы. В ее же более поздних работах [4, 5] отдельная единица учебного материала называется обучающим объектом. Некоторое множество элементарных обучающих объектов объединяется в более крупный обучающий объект. Автор [6] минимальную порцию учебного материала называет knowledge unit - единица знаний. Единицы знаний объединяются в более крупную структурную единицу learning object - обучающий объект. В [1] элементарный фрагмент структуры учебного материала носит название кадр или статья. Кадры (статьи) объединяются в более крупную структурную единицу, называемую модулем. В то же время авторы [7] термин «модуль» используют для именования элементарного фрагмента учебного материала. В [8] минимальной структурной единицей является Object - объект. Несколько объектов объединяются в более крупную структурную единицу Frame - кадр, набор кадров представляет собой Sequence -последовательность, а несколько последовательностей образуют Topic - тему.

В последнее время при разработке баз знаний обучающих систем превалирует модульный подход. В этом случае учебный материал делится на небольшие, относительно независимые фрагменты-модули, которые тем или иным способом объединяются в базу знаний обучающей системы. Эта тенденция нашла свое отражение в стандарте SCORM, последняя версия которого датирована 2007 годом [9]. Отдельный модуль в этом стандарте называется разделяемым (совместно используемым) объектом содержания (Sharable Content Object, SCO). Совокупность модулей некоторой предметной области образует библиотеку знаний. SCORM не накладывает ограничений ни на объем содержательной части SCO, ни на само содержание. Не определены и способы связей отдельных SCO между собой. Вместе с тем, SCORM регламентирует наличие в каждом объекте содержания метаданных (Metadata Dictionary), позволяющих однозначно идентифицировать каждый SCO в библиотеке знаний.

В настоящее время многие исследователи и разработчики фактически используют положения стандарта SCORM при разработке баз знаний обучающих систем. В [2] наименьшая структурная единица учебного материала представляет собой вариант SCO и называется учебным элементом. Отметим, что объект обучения, определение которого приводится в [5], фактически представляет собой конкретную разновидность SCO. Авторы [7] тоже следуют принципам стандарта SCORM и определяют модуль как разделяемую единицу контента (РЕК). Предлагаемая в [10] модель содержания адекватна концепциям SCORM, а наименьшая структурная единица учебного материала называется учебным элементом.

Модульная структура учебного материала обладает рядом привлекательных свойств. Во-первых, модульный подход позволяет реализовать «сборочную» технологию создания базы знаний обучающей системы. Модули (SCO) могут в различных сочетаниях объединяться друг с другом в составе обучающих систем. Во-вторых, в библиотеке знаний можно иметь несколько модулей на одну и ту же тему, но с разным уровнем глубины изложения или с разными акцентами изложения. В-третьих, один и тот же модуль из библиотеки знаний может быть использован в базах знаний нескольких разных обучающих систем из одной предметной области.

Разделение учебного материала на структурные единицы представляет собой физическое деление материала на порции. В рамках обучающей системы множество модулей нужно объединить в единую базу знаний, чтобы система могла строить индивидуальные маршруты изучения учебного материала. Таким образом, требуется разработать систему межмодульных связей. Модель содержания вместе с системой межмодульных связей образуют модель предметной области.

Самой простой схемой объединения является фиксированная последовательность модулей. Именно таким образом построены все традиционные учебники. Однако в этом случае говорить об адаптивности не приходится.

Несколько более гибким способом связей является объединение модулей в виде некоторой иерархии. Количество уровней иерархии зависит от общего объема учебного материала и степени его детализации. Иерархический подход применяется и в плане глубины изложения. В этом случае на верхних уровнях иерархии располагается более общий материал, который углубляется и детализируется на следующем уровне [1, 2].

Однако модульно-иерархическая организация учебного материала все же не обладает достаточной гибкостью для построения системой индивидуальных маршрутов обучения. Поэтому в качестве схемы организации учебного материала очень часто используются специальные виды графов. В [3] учебный материал предлагается организовать в виде графа G(V, S), в котором вершинами являются структурные единицы - объекты изучения (кванты, темы, разделы и т. п.). Ребра графа G представляют собой связи между объектами изучения: если для изучения объекта vk требуется знание объекта vi, то в графе присутствует ребро <vk, vj>. Помимо связи ребро определяет и уровень полноты и точности знания объекта vi, который требуется при изучении объекта vk. Например, при изучении некоторого объекта обучения может потребоваться знание в общих чертах об одном учебном объекте и детальное знание другого объекта.

В [11] описывается корректирующая структурно-смысловая модель (КССМ) лекционного материала, представляющая собой ориентированный граф. В качестве вершин задаются учебные элементы изучаемой дисциплины, а ребрами являются взаимосвязи между ними. Первоначально построенный граф посредством формальной процедуры преобразуется в ярусно-параллельную форму (ЯПФ). Ярусно-параллельная форма позволяет сгруппировать учебные элементы в тематические модули, каждый из которых рассматривается как самостоятельная структурно-смысловая модель (ССМ), взаимосвязанная и взаимодействующая с другими ССМ дисциплины.

Онтологический подход к разработке модели предметной области

Как показано в [12], структурирование предметных знаний может быть проведено с различных позиций: тематических, функциональных, процедурных, операционных, семантических. Однако реальное обучение происходит на уровне усвоения (формирования) понятий предметной области и установления связей между ними. Понятие или концепт - это обобщение предметов (явлений) некоторого класса по их специфическим признакам. Концепты не существуют независимо, они включены в общую понятийную структуру с помощью отношений. Некоторая группа понятий вместе с отношениями, их связывающими, может образовать метапонятие [13]. В [12] строится система физических понятий на примере механики. Авторы [13] описывают методологию структурирования знаний на основе выделения концептов и выявления отношений между ними.

Концептуальное структурирование предметной области обладает наибольшей гибкостью для реализации адаптивного управления обучением. Нужно заметить, что процесс структурирования предметных знаний на понятийном уровне представляет собой процесс построения предметной онтологии [14, 15]. Одно из определений онтологии гласит: онтология предметной области - это система понятий, их свойств, значений свойств и отношений между понятиями, представленная формальными средствами. Одним из удобных и часто используемых представлений онтологии является семантическая сеть, вершинами (узлами) которой являются концепты предметной области, а дуги характеризуют отношения между ними.

Онтологический подход представляет собой общий метод построения баз знаний, поэтому широко применяется при создании интеллектуальных систем различного назначения [16]. Онтологии находят свое применение в программировании [17, 18]. Рассматриваются подходы к использованию онтологий и средств разработки онтологий в учебном процессе [19]. Широко известной обучающей системой, разработанной на основе онтологического подхода, является система БиГОР [20]. Онтологический подход в сочетании с концепцией модульности позволил реализовать в ней синтез индивидуальных маршрутов обучения [21].

Онтологии находят свое применение и при обучении программированию, хотя работ в этой области чрезвычайно мало. В [22] онтология языка С представлена в виде семантической сети. Вершинами сети являются концепты, однако автор использует термин «концепт» в смысле, отличающемся от приведенного выше. Под концептами понимаются элементы предметной области, изучение которых осуществляется в образовательном процессе, т. е. концепт - это абстрактное представление информационного элемента предметной области. Таким образом, концепт в [22] представляет собой не отдельное понятие, а некоторую структурную единицу учебного материала и соответствует модулю системы БиГОР [20].

Помимо концептов предметной области (основной уровень) семантическая сеть дополнена концептами других дисциплин, знание которых необходимо для изучения основного курса (уровень поддержки). Для отслеживания уровня обученности в сеть добавлен уровень тестирования. Для внешнего представления структуры учебного материала в виде дерева сеть дополнена объединяющими узлами. Между вершинами сети определены четыре типа связей: зависимости, объединения, включения и принадлежности.

В [23] описан процесс разработки онтологии и «образовательная» онтология для изучения программирования на языке С. Эта онтология разработана авторами для применения в обучении программированию, однако ее использование в какой-либо автоматизированной обучающей системе не предполагается.

Онтология представляет собой иерархию концептов с основным типом отношений «целое/часть». Онтология состоит из трех ветвей: syntax (синтаксис языка С), programming techniques (методы программирования), platforms (платформы реализации) - эти узлы представляют собой абстрактные метаконцепты. На третьем уровне онтологии размещены разделы изучаемых студентами учебных материалов (например, переменные, выражения, операторы, структура программы), которые делятся на темы и субконцепты, и т. д. Для составления глоссария терминов языка С авторы использовали известную книгу [24].

Помимо знаний о языке С онтология содержит некоторые сведения о приемах (patterns) и стиле (style) программирования. Например, на четвертом уровне иерархии стиль программирования представлен темами «именование» (naming), «комментарии», «структурирование кода» (code structuring). Ветвь Platforms содержит сведения о компиляторах и IDE на трех платформах: windows, unix/linux и mac.

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

Требования к базе знаний обучающей системы по программированию

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

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

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

Очевидно, что база знаний обучающей системы по программированию должна содержать сведения о языке программирования. Однако одну и ту же программу можно писать на разных языках - это говорит о том, что конструкции конкретного языка программирования являются экземплярами более общих понятий. Например, понятие «подпрограмма» является обобщающим понятием для понятия «процедура» и для понятия «функция». И даже эти последние понятия не привязаны к конкретному языку программирования. Другим хорошим примером подобного общего концепта является понятие «тип данных». Поэтому помимо конкретных знаний

о языке база знаний должна содержать и подобные обобщенные концепты. Кроме того, в базу знаний необходимо включить знания о процессе алгоритмизации, о типовых приемах программирования, алгоритмах и структурах данных. Поэтому при разработке следует применить онтологический подход: выделить понятия, выявить отношения между ними и построить онтологию, например, по алгоритму, предложенному в [23].

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

ванию представляет собой весьма сложную задачу. Решение этой задачи требует определения нескольких взаимосвязанных моделей: модели предметной области, модели знаний обучаемого, модели заданий, модели адаптивного управления. В данной работе рассматривается модель предметной области.

Формальная модель предметной области

Обозначим множество понятий (концептов) C = {сь c2, ..., cn}, множество терминов предметной области W = {wb w2, ..., wm}, множество заданий P = {pbp2, ...,pq} и множество информационных единиц учебного материала U = {ub u2, ..., uk}. На этих множествах определим несколько отношений. На множестве CuP введем два бинарных отношения:

1. Отношение Ср. пара (сi, pj) е Ср, 1 < i < n, 1 < j < q тогда и только тогда, когда для усвоения концепта сi требуется выполнить задание pj.

2. Обратное отношение Pa. пара (pj, сг) е PC, 1 < i < n, 1 < j < q, если при выполнении задания pj происходит усвоение понятия ci.

Таким образом, с каждым концептом ci связано некоторое подмножество заданий P(ci), мощность которого обозначим как qi = |P(ci)|. На этом подмножестве вводится отношение последовательности (sequence) выполнения заданий SP(cy. пара (p;i, p;2)eSP(C), 1 < j1, j2 < qi, j\ ф j2 тогда и только тогда, когда задание pj2 должно быть выполнено после задания p;i.

Множество информационных единиц U представляет собой множество структурных единиц учебного материала, о которых говорилось выше. Наименьшая структурная единица называется модулем. Единицей изучения является модуль. Модуль, предъявляемый системой для изучения, не обязательно содержит теоретический материал. Например, отдельный модуль может представлять собой описание лабораторной работы по некоторой теме/разделу.

Множество информационных единиц U не совпадает с множеством концептов С: один модуль может содержать сведения о нескольких понятиях, и одно понятие может быть упомянуто в нескольких модулях. На множестве CuU задаются два бинарных отношения:

1. Отношение Си пара (сг-, uj) е Cv, 1 < i < n, 1 < j < k тогда и только тогда, когда описание или объяснение понятия Ci содержится в информационной единице Uj.

2. Отношение UC: пара (и, сг) е UC, 1 < i < n, 1 < j < k тогда и только тогда, когда содержание информационного элемента Uj относится к понятию с; это отношение устанавливает, в каких информационных элементах упоминается о данном понятии.

Пары отношений Cv и UC фактически определяют гиперссылки между модулями.

Множество терминов W определяет глоссарий предметной области. Мощность множества терминов T не совпадает с мощностью множества С концептов: m ф n, поскольку среди терминов могут быть синонимы, что исключается для концептов. Например, синонимами термина «ключевое слово» являются термины «зарезервированное слово», «служебное слово»; синонимом термина «идентификатор» является термин «имя». Поэтому на множестве CuW определяется бинарное отношение С^. пара (сь wj) е Ст, 1 < i < n, 1 < j < m тогда и только тогда, когда для обозначения концепта ci используется термин w;-.

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

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

1. Класс - это конструкция языка программирования, с помощью которой определяется новый тип данных.

2. Класс может содержать поля и методы.

3. Класс задается с помощью ключевых слов struct, class или union.

Первое определение не привязано ни к какому языку программирования и задает отношение is-a между концептами класс и тип данных. Второе определение задает отношение has-a между концептом класс и концептами поле и метод. Третье определение тоже задает отношение is-a, но конкретно для языка программирования С++.

Отношение между концептами может быть прямым и обратным, что отражается в определениях. Например, определение поля класса может быть таким: поле - это элемент класса. Такое определение задает отношение part-of между концептами поле и класс. Оба отношения has-a -и part-of являются отношением целого и части, но первое имеет направление от целого к части, а второе - от части к целому.

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

Отношение is-a задает естественную последовательность изучения концептов: сначала должны быть изучены определяющие концепты, затем определяемые. Бинарное отношение последовательности (sequence) изучения концептов SC зададим так: пара (сь j е S^ 1 < i, j < n,

i Ф j тогда и только тогда, когда понятие с{ должно быть изучено перед изучением с}-. Отношение SC представляет собой ориентированный ациклический граф.

Отношения has-a и part-of типа «целое/часть» позволяют определить бинарное отношение включения (include) 1С: пара (с, с}) е 1С, 1 < i, j < n, i ф j тогда и только тогда, когда понятие с{ является сложным понятием (метапонятием), в которое входит с. Отношение 1С определяет семантические связи между концептами. Например, концепт ключевое слово входит как составная часть в метапонятие лексика (языка программирования).

Другим отношением, определяющим семантические связи между понятиями, является отношение «класс/экземпляр». Например, в третьем определении термина «класс» концепты struct, class, union являются экземплярами понятия ключевое слово. Определим бинарное отношение KC: пара (сг-, с;) е КС, 1 < i, j < n, i ф j тогда и только тогда, когда понятие с является метапонятием, конкретным представителем которого является понятие сi.

Подобным же образом определяются и другие отношения. Все множество отношений, определенных на множестве концептов, обозначим как R = {rb r2, ., rp }.

Таким образом, модель предметной области представляет собой неоднородную семантическую сеть с вершинами-концептами, связанными несколькими типами отношений.

Оценка сложности модели предметной области

Обучающая система осуществляет адаптивное управление процессом обучения, предлагая студенту тот материал, который он еще не изучал или не усвоил в достаточной степени. Очевидно, что различные темы/разделы/модули курса обладают разной степенью сложности для усвоения. Поэтому АОС должна уметь оценивать сложность предлагаемого для изучения материала и уровень подготовки студента. Тогда сопоставление этих показателей покажет соответствие сложности материала и уровня обученности. Например, разность этих показателей используется в известной логистической модели Раша - Бирнбаума [25].

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

Меры сложности концептов и модулей. Семантическая сеть представляет собой связный ориентированный мультиграф G(C, E), вершинами которого являются концепты множества С, а дугами - отношения множества R. Поэтому представляется в качестве мер сложности использовать различные меры, вычисляемые на графе [26]. Очевидные соображения подсказывают, что граф, имеющий больше вершин или ребер, является более сложным. Формализуем этот подход. В некоторых случаях для удобства будем считать, что дуги не ориентированы.

Отдельный модуль u содержит небольшой фрагмент (подграф) графа семантической сети, который обозначим как Gu. Множество понятий, относящихся к конкретному модулю u и представляющих вершины этого подграфа, обозначим С(п). Включение С(п) с С является строгим, поскольку один модуль не может (не должен) содержать все концепты. Величина |Ou)|, равная количеству концептов модуля, определяет порядок этого подграфа. Обозначим порядок модуля как m(u). Определим прямую понятийную (концептуальную) сложность модуля как величину, равную порядку графа Gu:

т(и) = \С(и)\.

Таким образом, модуль, с которым связано больше понятий, считается более сложным.

Понятия, относящиеся к одному модулю, на самом деле относятся к одному из трех разных видов: понятие может быть входным, выходным или внутренним. Входным называется понятие, используемое в модуле, но не определенное в нем. Выходное понятие модуля - это понятие, определенное в модуле, но не используемое для определения других понятий модуля. Внутреннее понятие модуля не только определено в модуле, но и используется для определения другого понятия в том же модуле. Поэтому множество С(и) представляет собой объединение трех подмножеств:

С(и) Свх(и) ^ Свн(и) ^ Свых(и).

Соответственно вычисляются три меры сложности модуля:

1) прямая входная сложность твх(и) = \Свх(и)\;

2) прямая выходная сложность твых(и) = \Свых(и)\;

3) прямая внутренняя сложность твн(и) = \Свн(и)\.

Таким образом, прямая концептуальная сложность модуля равна сумме этих трех величин:

т(и) = твХ(и) + твн(и) + твых(и).

Отметим, что не бывает модулей без входных концептов, но некоторые модули могут не иметь выходных и/или внутренних концептов. Например, если модуль является описанием лабораторной работы, то в нем отсутствуют определения новых понятий. Модули, в которых отсутствуют определяемые концепты, естественно считать более простыми по сравнению с модулями, где определяются новые понятия. Соответственно модули, в которых присутствуют только входные и выходные концепты, считаются более простыми по сравнению с модулями, в которых определены внутренние концепты.

Еще одной мерой сложности модуля является размер графа Ои - количество ребер в нем. Обозначим множество ребер подграфа Ои как Е(и), Е(и) с Е. Тогда мощность множества \Е(и)\ определяет размер этого подграфа. Обозначим размер модуля как ,^(и). Определим прямую межконцептную сложность модуля как величину, равную размеру графа Gu:

s(u) = \Е(и)\.

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

Ребра графа Ои представляют собой разные виды отношений. Обозначим множество ребер модуля, представляющих одно отношение, как Еи(г). Размер Ои по отношению г обозначим как su(r) = \Еи(г)\. Межконцептная сложность модуля вычисляется как сумма размеров по каждому отношению:

s(u) = Su(гll) + Su(гl2) + ... + Su(гlk).

Модуль, множество ребер которого включает в себя больше типов отношений, считается более сложным по сравнению с модулем, в котором понятия связаны меньшим типом отношений.

Одной их известных мер на графе является диаметр графа. Для модуля и диаметром является максимально длинный путь от одной из входных вершин до одной из выходных вершин. Обозначим диаметр модуля как Ди):

Б(и) = 0(0и) = тах ё(си с,),

где с е Свх(и), с, е Свх(и). Модуль с большим диаметром позиционируется как более сложный.

Граф модуля Ои можно представить в ЯПФ. Одной из важных характеристик ЯПФ графа является его высота - количество уровней. Обозначим высоту модуля как И(и):

И(и) = Н(Ои).

Модуль с большей высотой считается более сложным. Отметим, что Ди) < И(и).

Рассмотрим теперь подходы к определению сложности концептов. Вершины-концепты графа 0(С, Е) семантической сети курса аналогичным образом разбиваются на те же три типа.

Выходными концептами называются концепты, определенные в данном курсе и не используемые для определения других концептов того же курса. Внутренними концептами называются концепты, определенные в данном курсе и используемые для определения других концептов того же курса. Входными концептами называются понятия, используемые в данном курсе, но не определенные в нем. Входные понятия курса будем также называть первичными понятиями. Заметим, что первичные понятия обычно не принадлежат множеству понятий изучаемой предметной области [12]. Изучение курса нужно начинать с тех модулей, входные понятия которых являются первичными.

Определим меру прямой сложности концепта с как степень (валентность) соответствующей вершины мультиграфа 0(С, Е). Обозначим прямую сложность концепта как т(с):

т(с) = ё(с).

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

Важными мерами сложности концепта являются его субмножество и супермножество [12]. Субмножество концепта - это все те понятия, которые надо предварительно изучить, чтобы усвоить данный концепт. Супермножество концепта - это все понятия, которые нельзя изучить, не усвоив данный концепт. Отметим, что первичные понятия курса не имеют субмножества и у выходных концептов курса отсутствуют супермножества.

Порядок субмножества концепта с обозначим как Мвх(с), а порядок супермножества -Мвых(с). Назовем глобальной сложностью понятия с сумму порядков его субмножества и супермножества:

М(с) = Мвх(с) + Мвых(с).

Субмножество и супермножество концепта представляют собой деревья, поэтому дополнительной мерой сложности концепта являются высоты этих деревьев. Обозначим высоту субмножества как квх(с) и высоту супермножества как Лвых(с). Отметим, что высота и порядок субмножества являются мерами сложности понятия, а вот порядок и высота супермножества могут служить мерами важности концепта: чем объемнее у концепта супермножество, тем более важным является концепт при изучении курса.

Меры сложности темы. Меры сложности составных информационных единиц рассмотрим на примере мер темы. Тема представляет собой некоторое подмножество связанных между собой модулей: Т\ = и,1 и и2 и ... и игг, где 1 < г < к - количество модулей в теме. Подграф темы Т обозначим как GT; множество понятий, относящиеся к теме Т, обозначим как С(Т), множество дуг графа ОТ обозначим как Е(Т). Для темы можно рассчитывать все меры, определенные выше для модуля и концепта. Такие меры будем называть контекстно-зависимыми. Например, меру концепта М(с) можно вычислять по множеству концептов темы СТ. Отметим, однако, что контекстная мера Н(с) одинакова для всех понятий, поскольку равна высоте ЯПФ подграфа GT.

Для темы полезно вычислять не только абсолютные меры, но и средние величины по модулям и концептам. Например, обозначим как тср(и) среднюю концептуальную сложность модуля в теме:

тср(и) = (т(ип) + т(иЙ) + ... + т(игг)) / г.

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

Величины \тср(Т) - т(и)\, вычисляемые для каждого модуля ие Т, показывают сбалансированность распределения множества понятий темы по модулям. Большое отклонение от средней сложности может служить индикатором того, что модуль слишком велик и его нужно разделить на несколько модулей меньшего размера. Хорошей мерой сбалансированности набора модулей в теме является число Миллера 7 ± 2. Другим вариантом показателя баланса является отношение или т(и) / тср(Т).

Кроме средних величин, для темы полезно вычислять и относительные меры. Назовем относительной концептуальной сложностью модуля и в теме Т величину

тТ(и) = т(и) / \СТ\.

Аналогичным образом вычисляются и другие относительные меры модулей. Подобные же меры вычисляются и для концептов. Например, относительная прямая сложность концепта c в теме T вычисляется так: mT(c) = т(с) / |СТ|.

Автоматизация построения составных информационных единиц

Рассмотрим курсы «Программирование на языке высокого уровня», «Структуры данных и алгоритмы», «Объектно-ориентированное программирование». Очевидно, что эти дисциплины имеют общую предметную область, поэтому нужно рассматривать общее для этих дисциплин множество концептов и набор модулей. В каждой из дисциплин задействовано некоторое подмножество концептов C и подмножество связанных модулей. Поэтому необходима сборка модулей в единое целое, для чего требуется разработка системы управления контентом (Learning Content Management System, LCMS). Система должна автоматически подбирать модули на основе межмодульных связей (см. выше определение отношений Cv и UC).

Меры связи модулей. Отношение Си задает информационный индекс I (u) каждого модуля u. Пусть Р(С) является множеством всех подмножеств множества С. Каждое подмножество можно представить битовой строкой, в которой каждый бит соответствует отдельному понятию. Если понятие принадлежит подмножеству, бит равен 1, в противном случае бит равен 0. Тогда каждой информационной единице u можно поставить в соответствие битовую строку, в которой установлены биты для понятий, содержащихся в u, - это и есть информационный индекс. Представление информационного индекса в виде битовой строки позволяет вычислить расстояние Хэмминга между модулями. Для сборки система выбирает более близкие модули.

Пусть в модуле ui определены выходные концепты, причем некоторые из них являются входными для модуля uj. Заметим, что m(u) + m(u) > C(ui и u), поскольку в первой сумме дважды учитываются понятия, являющиеся общими для обоих модулей. Поэтому меру концептуального сцепления двух модулей определим так:

L(ui, uj) = 1 - C(ui и u) / (m(ui) + m(ui)).

Определим меру «вовлеченности» модуля в тему. Своими выходными понятиями модуль связан с несколькими модулями темы. Отношение LT(u) = mn^u) / z, где 1 < z < k - количество модулей в теме, показывает, насколько широко данный модуль связан с другими модулями темы. Таким образом, система управления контентом при построении конкретной базы знаний может вычислять и учитывать дополнительную информацию о межмодульных связях.

Заключение

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

СПИСОК ЛИТЕРАТУРЫ

1. Информатизация образования: направления, средства, технологии / под ред. С. И. Маслова. -М.: Изд-во МЭИ, 2004. - 868 с.

2. Соловов А. В. Электронное обучение: проблематика, дидактика, технология. - Самара: Новая техника, 2006. - 464 с.

3. Зайцева Л. В. Методы и модели адаптации к учащимся в системах компьютерного обучения // Educa-tuional Technology & Society. - 2003. - № 6 (3). - С. 204-211.

4. Зайцева Л. В., Буль Е. Е. Адаптация в компьютерных системах на базе структуризации объектов обучения // Educatuional Technology & Society. - 2006. - № 9 (1). - С. 422-427.

5. Зайцева Л. В. Технология разработки адаптивных электронных учебных курсов для компьютерных систем обучения // Educatuional Technology & Society. - 2008. - № 11 (1). - С. 400-412.

6. Redeker G. H. J. An Educational Taxonomy for Learning Objects // Proceedings of the 3rd IEEE International Conference on Advanced Learning Technologies. ICALT 2003. - Athens, Greece, 2003. - P. 250-251.

7. Норенков И. П., Зимин А. М. Информационные технологии в образовании. - М.: Изд-во МГТУ им. Н. Э. Баумана, 2004. - 352 с.

8. CMIGuidelines for Interoperability AICC. Revision 3.4, 2000. - AICC CMI Subcommittee.

9. SCORM 3rd Edition, Sharable for Learning Object Model, Advanced Distributed Learning / http://www.adlnet.org. - 2007.

10. Рыбаков А. Е. Моделирование структуры учебных курсов и подсистемы навигации для систем управления обучением, поддерживающих стандарт SCORM // Информационные технологии. - 2009. - № 3. - С. 77-81.

11. Горленко О. А., Подлеснов Ю. П., Можаева Т. П. Корректирующая структурно-смысловая модель лекционного материала учебных дисциплин // Качество. Инновации. Образование. - 2004. - № 2. - С. 45-51.

12. Атанов Г. А., Пустынникова И. Н. Обучение и искусственный интеллект, или Основы современной дидактики высшей школы. - Донецк: Изд-во ДОУ, 2002. - 504 с.

13. Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. - СПб.: Питер, 2000. - 384 с.

14. Онтологии и тезаурусы: модели, инструменты, приложения: учеб. пособие / Б. В. Добров, В. В. Иванов, Н. В. Лукашевич, В. Д. Соловьев. - М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2009. - 173 с.

15. Константинова Н. С., Митрофанова О. А. Онтологии как системы хранения знаний. -http://www.ict.edu.ru/ft/005706/68352e2-st08.pdf.

16. Норенков И. П. Интеллектуальные системы на базе онтологий // Информационные технологии. -2010. - № 1. - С. 17-23.

17. Клещев А. С. Роль онтологий в программировании. Ч. 1. Аналитика // Информационные технологии. -2008. - № 11. - С. 28-33.

18. Клещев А. С. Роль онтологий в программировании. Ч. 2. Интерактивное проектирование информационных объектов // Информационные технологии. -2008. - № 10. - С. 42-46.

19. Кафтанников И. Л., Коровин С. Е. Перспективы использования WEB-онтологий в учебном процессе // Educatuional Technology & Society. - 2003. - № 6 (3). - С. 134-138.

20. Норенков И. П., Уваров М. Ю. База и генератор образовательных ресурсов // Информационные технологии. - 2005. - № 9. - С. 60-65.

21. Норенков И. П., Соколов Н. К. Синтез индивидуальных маршрутов обучения в онтологических обучающих системах // Информационные технологии. - 2009. - № 3. - С. 74-77.

22. Шабалина О. А. Модели и методы для управления процессом обучения с помощью адаптивных обучающих систем: дис. ... канд. техн. наук: 05.13.10. - Астрахань, 2005. - 158 с.

23. Gavrilova T., Sosnovsky S. Development of educational ontology for C-programming // Information Theories & Applications. - 2006. -Vol. 13, N 4. - Р. 303-308.

24. Керниган Б., Ритчи Д. Язык программирования Си. - СПб.: Невский Диалект, 2001. - 352 с.

25. Нейман Ю. М, Хлебников В. А. Введение в теорию моделирования и параметризацию педагогических тестов. - М.: Прометей, 2000. - 169 с.

26. Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. - СПб.: БХВ-Петербург, 2003. - 1104 с.

Статья поступила в редакцию 15.06.2010

DOMAIN MODEL AND ESTIMATION OF ITS COMFLEXITY IN THE TRAINING SYSTEM FOR PROGRAMMING

V. V. Laptev

Methods for complexity evaluation of the domain model elements in the training system for programming are considered in the paper. The approach is based on semantic network representation of the domain model and concepts integration in information units - modules. Various measures of concepts complexity, modules and themes are analyzed. Modules coupling measures are also proposed, which can be used in the content management system.

Key words: domain model, ontology, concept, notion, module, semantic net, concept complexity, unit complexity.