Адаптивный сервис Интернет-образования для доступа к интерактивным примерам. Петр Брусиловский, Сергей Сосновский, Майкл Юделсон Университет Питтсбурга, США {peterb, sas15, mvy3}@pitt.edu Аннотация: В данной статье обсуждается необходимость создания адаптивной навигационной поддержки для студентов, имеющих доступ к большому числу интерактивных примеров в Интернет-образовании. Нами представлена система NavEx (навигация по примерам), которая способна обеспечить адаптивные комментарии к примерам по программированию без необходимости создания ссылок на руководства и учебники. Система служит как дополнительный адаптивный сервис, что-то между образовательным порталом и современным многократно-используемым информационным ресурсом. 1. Примеры из Интернета на курсах программирования. Всегда считалось полезным, чтобы люди использовали методы решения старых задач для решения или планирования новых задач. Это особенно необходимо в области программирования. И опытный программист, и новичок всегда используют примеры программ, которые они создали или изучили ранее для решения новых задач. Опытные преподаватели программирования во время каждой лекции приводят в пример и объясняют одну или несколько тщательно отобранных программ. В Интернет-образовании коды этих примеров приводятся в Интернете вместе с другими видами учебного материала, чтобы обучаемый мог изучить материал и самостоятельно рассмотреть программу. Наша система WebEx (Брусиловский, 2001) пытается объединить преимущества этих двух подходов (объяснение педагогом и комплексность Интернета) к представлению примеров. Система WebEx будет предоставлять понятные для понимания примеры программ в Интернете. Идея WebEx проста – автор или позднее преподаватель с использованием примера кода может предоставить текстовое объяснение каждой строки кода программы. Обучаемые смогут просматривать эти комментарии на любом шаге и в любой последовательности, щелкая мышкой на строке комментариев. (Рис. 1) Первая версия WebEx была реализована и представлена в 2001 году (Брусиловский, 2001). С тех пор, WebEx активно использовалась в течение нескольких семестров на курсах программирования для студентов Питтсбургского Университета. Каждый семестр предлагалось все больше и больше примеров взятых из классных лекций – легких для восприятия и снабженных комментариями. В течение прошлого семестра мы провели несколько анкетирований для оценки системы. Давая ответы на первые две анкеты, лишь несколько студентов заинтересовались в получении программ с расширенными комментариями вместо обычных 3-5 примеров, которые дают на лекциях. Чтобы оценить необходимость увеличения числа примеров, к вопросам обычных анкет мы добавили дополнительный вопрос. Мы спрашивали студентов, какие примеры они бы хотели видеть в системе WebEx. Ответы варьировались от “Никаких примеров вообще” и “Все примеры из лекции” до “Дополнительные примеры к тем, которые давались на лекциях”. Результаты показали, что значительная часть студентов хотела бы видеть больше объясненных примеров, чем те, которые были даны на лекциях. Более того, количество студентов, которые хотели “больше примеров” росло даже, когда число примеров на лекциях увеличилось. Например, в осенний семестр 2002 гола только 39% респондентов были заинтересованы в “дополнительных примерах”, в то время как 61 проценту обучаемых хватало лекционных примеров. В весенний же семестр 2003 года цифры изменились: 50% проголосовали за “большее число примеров”, а 50 процентам обучаемых они не были нужны (за оба семестра никто не выбрал вариант “Не нужно примеров вообще”). То, что система WebEx составлена несколькими авторами, которые являются преподавателями и дают дополнительные примеры может стать тривиальной проблемой. В типичной ситуации, когда разные преподаватели используют свои личные примеры, единственное, что они должны сделать, чтобы давать на своих занятиях больше примеров – это согласовать, как они будут использовать примеры других преподавателей. Можно также добавить, что в будущем, факультеты использующие WebEx, смогут использовать примеры подготовленные другими факультетами из цифровой образовательной библиотеки (такой как http://www.citidel.org/). Однако, недостаток навигатора по примерам для студентов, делает невозможным “простое” сравнение похожих примеров. Рис.1 : Интерфейс WebEx В нашем обычном курсе около 60 примеров. Это довольно большое количество, но у студентов возникают проблемы в нахождении необходимого примера, потому что каждый пример привязан к конкретной лекции. Работая над темой каждой лекции, студент может сфокусироваться на 2-5 примерах связанных с данной лекцией. В то время как поиск примеров из другого класса или цифровой библиотеки затруднен. Получая нечеткие рекомендации, какой пример рассмотреть и когда, обучаемые могут выбрать неподходящие в это время примеры (слишком сложные, слишком легкие или на другую тему). Чтобы помочь обучаемым выбрать “правильный пример”, мы применили адаптивную аннотацию с необходимыми условиями, специальную адаптивную технологию навигационной поддержки. (Брусиловский, 1996). Эта технология впервые была использована в системе ISIS-Tutor (Брусиловский и др., вторая половина1998 года) и была определена как очень эффективная. С тех пор, она использовалась в системах ELM –ART (Вебер и др. 2001), InterBook (Брусиловский и др. 1998), ACE (Спичт и др. 1998) и других системах. С помощью данной технологии, каждый объект образования описывается понятиями определенной области знаний. Некоторые понятия являются целью обучения, а некоторые необходимыми условиями для понимания объекта. Отслеживая текущий уровень знаний обучаемых, адаптивные системы могут динамически классифицировать примеры, как подходящие или не подходящие (например, как слишком легкие или слишком сложные). Статус каждого объекта отображается с использованием модели светофора. В данной статье представлена система NavEx (навигация по примерам), которая была создана для рассмотрения идеи предоставления адаптивной навигационной поддержки для доступа к примерам программ. В следующем разделе представлена точка зрения студентов на систему NavEx. В последнем разделе описаны технологии, которые мы развиваем для реализации NavEx. 2. Интерфейс NavEx Интерактивное окно системы NavEx разделено на 3 блока (Рис. 2). В крайнем левом блоке содержится список ссылок на все примеры/анализы примеров доступные студенту в текущем курсе. Эти ссылки отмечены цветными маркерами. Красный маркер означает, что обучаемый не имеет достаточных знаний, чтобы рассмотреть этот пример. Поэтому, доступ к ссылкам отмеченным красным маркером запрещен. Зеленый маркер означает, что обучаемый имеет достаточный уровень знаний, чтобы рассмотреть данный пример. Зеленая галочка означает, что обучаемый уже рассмотрел данный пример. Значок “Play” означает, что это пример в данный момент активен. Порядок ссылок на примеры фиксированный, поэтому обучаемому будет легче найти пример на том же месте, что и ранее, независимо от прогресса студента в обучении. Верхний блок показывает название текущего примера. Под ним находятся две ссылки: одна загружает исходный код примера в центральный блок (чтобы его скопировать, откомпилировать и изучить), другая загружает интерактивный пример анализа программы (представленный самой системой WebEx, являющейся компонентом NavEx). Анализ содержит фрагмент того же исходного кода, но в данный момент он содержит комментарии автора или преподавателя, использовавшего этот пример. Эти комментарии содержат значение и цель написания данной строки, и помогает объяснить текущее понятие или идею. Длинные комментарии показаны справа от кода программы и могут быть активированы нажатием на маркер, следующий за строкой. Если комментарий доступен, то маркер зеленый; если нет, маркер белый (символизирует то, что комментарий отсутствует). Интерфейс NavEx представлен как сервер, написанный на языке Java. Все сведения и информация хранятся в реляционной базе данных. NavEx рассматривается как дополнительный сервис архитектуры дерева знаний (Брусиловский и др. 2002). Он осуществляет работу нескольких общих протоколов, включая примеры моделирования, представленные самими обучаемыми и прозрачную аутентификацию. Как пример дополнительного сервиса, NavEx находится между порталом Интернет-образования и многократно-используемым стыкуемым объектом. Система несет в себе дополнительную ценность для тех преподавателей и студентов, которые используют ее через портал. В отличие от других видов дополнительных сервисов у системы NavEx есть возможность приспосабливаться к целям курса и знаниям обучаемых. С помощью этой системы преподаватели смогут обходить, требующий больших затрат времени, процесс подбора примеров для каждого курса лекций. Обучаемые получают адаптивное руководство по подбору примеров, наиболее подходящих к их целям обучения и их знаниям. 3. Индексированные примеры в NavEx Чтобы подготовить для обучаемого адаптивное руководство, система должна обладать знаниями о самом материале. Индексирование материала со знаниями из конкретной области – это трудоемкий процесс, требующий экспертной оценки в областях образования и прикладных наук (Брусиловский 2003). В NavEx мы использовали альтернативный автоматизированный подход. Текущий раздел детально описывает этот процесс. Рис. 2: Интерфейс NavEx Не существует универсальных принятых рекомендаций о том, на какой стадии в областях программирования легче определить концепции решения. Некоторые полагают, что это должно осуществляться в момент построения или планирования модели программирования (Lutz и др. 1992); другие говорят, что понятие должно быть выведено из структур языка(Bar и др. 1976). С первой точки зрения, идея модели более существенно относится к реальной цели изучения программирования и к тому, что программисты действительно используют. Однако, второй подход более прямой и облегчает задачу индексирования. С заметным исключением ELM -PE (Вебер и др.1995), все адаптивные упорядоченные системы, известные нам работают с понятием конструктивного уровня. Текущее выполнение алгоритмов индексирования для NavEx также включает в себя понятие конструктивного уровня. Традиционно считается, что выделение гармматически-значимой структуры из программного кода – это задание для специального класса программ, называемых синтаксическими анализаторами. Для системы NavEx мы создали компонент индексирования, который анализирует код С каждого примера и создает список использованных понятий (концепций). Этот компонент создан с помощью хорошо-известных утилит Unix - lex и yacc. На вводных курсах программирования было установлено 51 понятие для описания подмножества функций языка С. Каждая структура программирования в примере могла быть проиндексирована одним или большим количеством понятий, в зависимости от знаний обучаемого. Как пример, для программного кода представленного на Рис.1, упорядоченный список понятий следующий: include, void, main_func, decl_var, long, decl_var, assign, ne_expr, pre_inc, while, compl_printf. Важно упомянуть, что каждое понятие здесь представляет не просто ключевое слово, найденное в программе, а грамматически-полную структуру программирования. Например, понятие while было обнаружено алгоритмом индексирования только после обнаружения всей структуры цикла, включающей ключевое слово while, условие повторения и тело цикла. Вот почему понятие while в списке индексов идет после понятий ne_expr (выражение не равенства) и pre_inc (увеличение). Следующий шаг заключается в разделении понятий, связанных с каждым примером на необходимые предварительные и итоговые понятия. Необходимые предварительные понятия – это те понятия, которые обучаемый должен усвоить до начала работы с каким-либо примером. Как итоговые отмечены те понятия, которые пример помогает усвоить, т.е. показаны цели обучения примеров. Как автоматическое устройство выделения знаний, наше грамматически-обоснованное устройство не способно различать необходимые предварительные и итоговые понятия – оно просто представляет список всех использованных понятий. Однако, для адаптивной упорядочивающей и навигационной поддержки эта функция очень важна. Система NavEx использует оригинальный алгоритм автоматической идентификации итоговых понятий (Рис.3). Этот алгоритм адаптирован для особенностей методов обучения на курсах. Источник знаний для этого алгоритма – последовательность сгруппированных примеров. Каждая группа сформирована из примеров, представленных на одной лекции. Группы расставлены в том порядке, в котором были представлены лекции. План нашего алгоритма деления на необходимые предварительные и исходные понятия основывается на следующих допущениях: В процессе анализа примеров какой-либо лекции, считается, что понятия, полученные на предыдущих лекциях успешно усвоены. В каждом примере, все понятия, представленные в предыдущих лекциях считаются необходимыми предварительными, в то время как понятия, впервые встретившиеся в данной лекции, считаются итоговыми. Список новых понятий, найденных во всех примерах, связанных одной лекцией считается целью обучения лекции. Итоговые понятия, полученные с помощью данного алгоритма, являются полностьюпроиндексированным списком примеров лекции и последовательности целей обучения, связанных с курсом лекций. Эта автоматически-сгенерированная последовательность представляет особый подход к обучению программированию на языке С (Брусиловский 2003). Если однажды проиндексировать все примеры и создать последовательность целей обучения, любой пример программы сможет быть правильно проиндексирован, и его можно будет связать с подходящей лекцией курса. Строго говоря, создание связи с правильной лекцией является первым шагом в процессе. Пример связывается с последней лекцией, на которой представлены понятия из примера (т.е. самая последняя лекция, которая содержит хотя бы одно понятие примера в своей образовательной цели). После этого, пример индексируется относительно этой лекции. Важно снова выделить то, что итоговые понятия адаптированы к особенностям преподавания данного курса, который получен из исходной последовательности примеров. Известно, что разные преподаватели, обучая одному и тому же языку программирования, могут использовать очень разный порядок представления новых понятий (Моффатт и др. 1982). Естественно, последовательность примеров в курсе обучения должна быть адаптирована под метод обучения преподавателя. Рис. 3: Псевдокод для идентификации предварительных и итоговых понятий. Несмотря на то, что описанный индексированный подход, использующий компонент для анализа характерен для программирования, мы предполагаем, что предложенная общая идея может быть применима в широком классе областей. В менее формализованных областях, где понятия не имеют ярко-выраженных грамматических конструкций, классический подход поиска информации может быть использован вместо обыкновенного грамматического разбора. Текущая оценка показывает, что использованные алгоритмы индексирования вместе с механизмом построения межпонятийных иерархий примеров NavEx, обеспечивают значительный ресурс для адаптивной навигационной поддержки примеров. Механизм адаптации представлен в следующем разделе. 4. Обеспечение адаптивной навигационной поддержки примеров Адаптация к навигации в NavEx осуществляется на основе оверлейной пользовательской модели ( Гриир и др. 1993). Знания пользователя представлены в виде бинарного вектора k, где ki=1 означает, что пользователь успешно усвоил понятие i, а ki=0 означает обратное. Когда пользователь регистрируется в системе, создается новый сеанс связи и информация о его текущем уровне знаний извлекается из записи пользователя. Эта информация содержит понятия, который усвоил пользователь и примеры, которые он рассмотрел. Зная уровень знаний пользователя в каждой области, и имея в наличии список параметров в виде необходимых предварительных и итоговых понятий, использовавшихся во всех примерах, последовательный механизм может динамически подсчитать текущий образовательный статус каждого примера. Текущий статус каждого примера представлен в крайнем левом блоке системного окна (Рис. 2) в форме адаптивной аннотации. Уже изученные примеры отмечены зеленой галочкой, доступные примеры отмечены зеленым маркером, недоступные – красным маркером. Когда пользователь щелкает мышью на ссылке примера и просматривает результирующий код примера, итоговые понятия примера меняют свой статус на “изученные” (ki=1). Изменения в уровне образования пользователя передаются в пользовательскую запись. Доступность новых примеров определяется с помощью проверки того, что все их предварительные понятия ранее изучены. В то время как пользователь просматривает примеры, все больше и больше новых примеров становятся доступными. Адаптивный аннотационный подход NavEx, основанный на знаниях – это вариант популярного подхода первоначально представленного системой ISIS-Tutor. Этот подход считается очень эффективным (Брусиловский и др. 1998). 5. Краткие выводы и дальнейшая работа Нами была представлена система NavEx, наша первая попытка создания адаптивной навигационной поддержки для доступа к примерам программных кодов. Система NavEx использует эффективный адаптивный аннотационный подход, с использованием необходимых предварительных понятий. Однако, в отличие от других систем, использующих этот подход, NavEx не требует ручной индексации объектов образования. В результате, NavEx может виртуально использоваться любым преподавателем курсов программирования. Система NavEx позволяет преподавателям, не знакомым с адаптивной гипермедией, добавлять их собственные примеры, обмениваться примерами или использовать примеры из цифровой библиотеки. Наша текущая цель заключатся в улучшении качества адаптивной навигационной поддержки в системе NavEx. Текущая версия позволяет распознавать используемые, готовые и не готовые примеры. Следующая версия будет распознавать слишком легкие примеры для обучаемых и рекомендовать примеры, которые наилучшим образом подходят для достижения необходимой цели обучения. Кроме того, мы планируем связать изучение примеров с самопроверкой знаний, для чего используется система QuizPACK (Сосновский и др. 2003). 6. References Barr, A., Beard, M., & Atkinson, R. C. (1976): The computer as tutorial laboratory: the Stanford BIP project. International Journal on the Man-Machine Studies 8, 5 (1976) 567-596. Brusilovsky, P. (1996): Methods and techniques of adaptive hypermedia. User Modeling and UserAdapted Interaction 6, 2-3 (1996) 87-129. Brusilovsky, P. (2001): WebEx: Learning from examples in a programming course. In: Fowler, W. and Hasebrook, J. (eds.) Proc. of WebNet'2001, World Conference of the WWW and Internet, Orlando, FL, AACE (2001) 124-129. Brusilovsky, P. (2003): Developing Adaptive Educational Hypermedia Systems: From Design Models to Authoring Tools. In: Murray, T., Blessing, S. and Ainsworth, S. (eds.): Authoring Tools for Advanced Technology Learning Environments: Toward cost-effective adaptive, interactive, and intelligent educational software. Ablex, Norwood (2003) In Press. Brusilovsky, P., Eklund, J., and Schwarz, E. (1998): Web-based education for all: A tool for developing adaptive courseware. Computer Networks and ISDN Systems. 30, 1-7 (1998) 291-300 Brusilovsky, P. & Nijhawan, H. (2002): A Framework for Adaptive E-Learning Based on Distributed Re-usable Learning Activities. In: Driscoll, M. and Reeves, T. C. (eds.) Proc. of World Conference on E-Learning, ELearn 2002, Montreal, Canada, AACE (2002) 154-161. Brusilovsky, P. & Pesin, L. (1998): Adaptive navigation support in educational hypermedia: An evaluation of the ISIS-Tutor. Journal of Computing and Information Technology 6, 1 (1998) 27-38. Greer, J. & McCalla, G. (eds.) (1993): Student modelling: the key to individualized knowledge-based instruction. NATO ASI Series F, Vol. 125, Springer-Verlag, Berlin (1993) p. Lutz, R. (1992): Plan diagrams as the basis for understanding and debugging pascal programs. In: Eisenstadt, M., Keane, M. T. and Rajan, T. (eds.): Novice programming environments. Explorations in HumanComputer Interaction and Artificial Intelligence. Lawrence Erlbaum Associates, Hove (1992) 243285. Moffatt, D. V. & Moffatt, P. B. (1982): Eighteen pascal texts: An objective comparison. ACM SIGCSE bulletin 14, 2 (1982) 2-10. Sosnovsky, S., Shcherbinina, O., and Brusilovsky, P. (2003): Web-based parameterized questions as a tool for learning. In: Rossett, A. (ed.) Proc. of World Conference on E-Learning, E-Learn 2003, Phoenix, AZ, USA, AACE (2003) 309-316. Specht, M. & Oppermann, R. (1998): ACE - Adaptive Courseware Environment. The New Review of Hypermedia and Multimedia 4 (1998) 141-161. Weber, G. & Bögelsack, A. (1995): Representation of programming episodes in the ELM model. In: Wender, K. F., Schmalhofer, F. and Böcker, H.-D. (eds.): Cognition and Computer Programming. Ablex, Norwood, NJ (1995) 1-26. Weber, G. & Brusilovsky, P. (2001): ELM -ART: An adaptive versatile system for Web-based instruction. International Journal of Artificial Intelligence in Education 12, 4 (2001) 351-384, available online at http://cbl.leeds.ac.uk/ijaied/abstracts/Vol_12/weber.html.