Инструментальное программирование примеры

Петр Брусиловский
Школа информационных наук
Университет Питтсбурга
Pittsburgh PA 15260
peterb@mail.sis.pitt.edu

Абстрактный: Опытные и начинающие программисты часто используют примеры программ. Которые они создали или изучили в прошлом. Для решения новых задач программирования. Опытные преподаватели курсов. Связанных с программированием. Знают и используют силу примера в своем обучении. В данной статье представлен WebEx — веб-инструмент для изучения примеров программирования. Который позволяет преподавателям использовать подход программирования на основе примеров с гетерогенными классами.

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

[an error occurred while processing the directive]

Часто утверждалось. Что люди используют решения предыдущих проблем для решения новых проблем или задач планирования. Особенно в области программирования. Как опытные. Так и начинающие программисты часто используют примеры программ. Которые они создали или изучили в прошлом. Для решения новых задач программирования.

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

Авторы хороших учебников по программированию (которые сами являются хорошими учителями) также следуют этому подходу и приводят в своих книгах множество объясненных примеров программ. Чтобы побудить студентов работать и изучать приведенные примеры. Многие авторы в настоящее время предпочитают размещать код всех примеров либо на компакт-диске. Поставляемом вместе с книгой. Либо на веб-сайте книги.

Проблема традиционного подхода к использованию примеров программирования в классе состоит в том. Что он хорошо работает только для небольших однородных групп студентов.

Студенты в однородной группе имеют примерно одинаковый уровень знаний по программированию и одинаковую скорость усвоения материала. Работая с небольшой однородной группой. Преподаватель обычно может предсказать количество и сложность примеров для каждой лекции и выбрать правильный темп и уровень детализации презентации. В больших разнородных классах. Где студенты имеют очень разный начальный уровень знаний по предмету и возможности приобретения знаний. Эффективность традиционного примерного подхода резко снижается. Разные студенты нуждаются в существенно разной скорости и уровне детализации объяснений на примерах. Более того, более слабые ученики обычно нуждаются в большем количестве примеров. Чтобы понять ту же концепцию. Учитель, столкнувшийся с разнородным классом. Обречен К сожалению. Для студентов. Которые не смогли понять примеры. Представленные в классе. Нет легкого второго шанса. Даже в ситуации. Когда код всех примеров доступен в Интернете. Он имеет мало пользы для этих студентов. Потому что сам код не имеет объяснительной части.

Мы разработали WebEx. Веб-инструмент для изучения примеров программирования. Чтобы учителя могли использовать подход программирования на основе примеров с гетерогенными классами. Наша цель состояла в том. Чтобы максимизировать возможности обучения для каждого студента. Дать каждому студенту второй шанс в понимании ключевых примеров программирования. Побудить каждого студента исследовать примеры программ и повторно использовать их для решения проблем. Ядром WebEx является база данных объясненных примеров программирования. Подготовленная преподавателями в специальном формате Среда позволяет каждому студенту изучать примеры программ в своем собственном темпе и порядке. В частности. Более слабые ученики смогут работать с большим количеством примеров и исследовать каждый пример более подробно. В настоящее время мы используем WebEx в контексте курса по структурам данных и принципам программирования в Питтсбургском университете. Однако WebEx не зависит от языка и курса и может использоваться с любым курсом. Связанным с программированием. В данной статье представлена первая версия WebEx. Проведено сравнение ее с более ранними подходами к использованию технологии в контексте примерного преподавания курсов программирования и обобщены ее преимущества.

[an error occurred while processing the directive]

[an error occurred while processing the directive]

Ключевая инновационная идея предлагаемого проекта заключается в замене голого кода примеров программирования. Предлагаемых на веб-сайте курса, самоописывающимися примерами Для предоставления самоописывающих примеров мы намерены использовать популярный подход к объяснению примеров. Используемый в ряде учебников по программированию и иногда называемый При таком подходе автор примера (учитель) предоставляет текстовые объяснения для каждой строки в программе примера. Эти объяснения служат. По крайней мере. Двум различным целям. Во — первых. Он объясняет ученику значение каждой строки программы и ее роль в общем решении задачи программирования. Во-вторых, он комментирует конкретный способ использования языковых конструкций в каждой строке кода. Тем самым преодолевая разрыв между общими знаниями студента о конструкциях языка программирования и практическими навыками их использования для решения задач программирования.


Рисунок 1. Код примера программирования остается нетронутым в WebEx.
Зеленая и белая кнопки слева указывают на наличие комментария для данной строки (Полный размер).

В типичном учебнике по программированию разбитый пример приводится в специальном формате. Где каждая строка кода сопровождается пояснениями. Которые могут варьироваться от одной-двух строк до нескольких абзацев текста. У этого формата есть явная проблема: даже в учебниках. Которые используют специальный шрифт и цвет для строк кода. Код трудно понять. Так как строки кода разбросаны среди объяснений. Объяснения тоже нелегко понять. Обычно у студента возникает проблема с несколькими строками кода в программе. И ему нужны объяснения только для этих строк. Представление всех объяснений сразу отвлекает студента от концентрации на наиболее необходимых объяснениях. Наконец, чтение через большое

WebEx. Веб-инструмент для интерактивного изучения примеров программирования. Был разработан для преодоления перечисленных выше проблем. Наша ключевая идея состоит в том. Чтобы оставить пример кода нетронутым как можно больше (рис. 1). Пример программы выглядит в WebEx точно так же. Как он выглядит в редакторе программы. Единственное видимое отличие-наличие зеленых или белых пуль слева от каждой линии. Зеленый маркер указывает на наличие объяснений для этой строки кода. В то время как пуля говорит. Что нет никаких объяснений для этой линии. Естественно. Щелчок по зеленому маркеру открывает пояснительную записку для выбранной строки (рис. 2). В духе хорошего гипертекста этот интерфейс позволяет пользователю использовать свою предпочтительную стратегию просмотра. Некоторые пользователи могут захотеть просмотреть пример построчно. Другие студенты могут сосредоточиться на самых трудных для понимания строках и выборочно читать объяснения к этим строкам. В примере на рис.3 роль исследуемой линии не очевидна даже для хороших студентов. У которых, возможно. Нет проблем с пониманием всех остальных линий. Изучая этот пример. Такие студенты могут перейти прямо к этой неприятной линии. Игнорируя другие ненужные объяснения.


Рис. 2: В примере WebEx объяснения показываются по одному рядом с поясняемой строкой (маркер и шрифт для этой строки изменены. Чтобы обеспечить контекст) (Полный размер).

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

Хотя первая версия WebEx уже используется студентами. Нам нужно некоторое время. Чтобы оценить эффективность WebEx как инструмента преподавания и обучения. Мы надеемся. Что база данных интерактивных объясненных примеров даст каждому студенту второй шанс понять ключевые примеры программирования. Каждый студент сможет работать с примерами в своем собственном темпе. Запрашивая только необходимые объяснения.


Рисунок 3: С помощью WebEx студент может выборочно выбирать объяснения наиболее трудных для понимания строк кода. Которые обычно различны для разных студентов (полный размер).

[an error occurred while processing the directive]

База примеров реализована с использованием Microsoft Access. Интерактивная часть среды (исследование примеров и навигация между примерами и концепциями) реализована с использованием технологии Microsoft Internet Server и Active Server Pages. Выбор инструментов Microsoft определяется их бесплатной доступностью для преподавателей и студентов или нашего университета. Кроме того, система Microsoft Access относительно проста в использовании и имеет простой интерфейс. Мы обнаружили. Что учителя и ассистенты не испытывают проблем с копированием. Комментированием и включением своих примеров в таблицы доступа. В настоящее время мы используем WebEx в контексте системы управления курсами Blackboard CourseInfo (Blackboard, 1999). Однако она не зависит от CourseInfo и может использоваться как автономное приложение или в сочетании с любой CMS.

[an error occurred while processing the directive]

В то время как идея интерактивных самоописывающих примеров в Интернете является инновационной. Идея общей базы данных примеров не является полностью новой. Мы знаем (и будем использовать опыт) нескольких сред программирования на основе примеров. Которые позволяют студентам использовать базу данных примеров в процессе решения задач (Brusilovsky & Weber, 1996; Brusilovsky, 1992; Burow & Weber, 1996; Faries & Reiser, 1988; Guzdial, 1995; Hohmann, Guzdial & Soloway, 1992; Linn, 1992a; Linn, 1992b; Redmiles, 1993). С двумя исключениями. Единственной функцией систем программирования на основе примеров было помочь ученику найти соответствующий пример. В большинстве случаев системы просто позволяют студенту выбрать статический пример программы из большого списка или выполнить поиск по ключевым словам. Две системы пошли дальше и предоставили ученику некоторый интерфейс для изучения примера. В системе, разработанной Redmiles (1993), объяснения для примера были ELM-PE (Burow & Weber, 1996) применил подход искусственного интеллекта. Используя свои знания о целях программирования и способность Наш подход-интеграция этих двух. WebEx может предоставить объяснение для каждой строки программы на любом языке с очень небольшими затратами на создание. WebEx-это практический инструмент. Который можно использовать в любом курсе программирования. Тем не менее. Как и упомянутые выше инструменты. Он имеет важную исследовательскую программу — исследовать. Как студенты ue примеры в курсах программирования.

[an error occurred while processing the directive]

[an error occurred while processing the directive] Опыт предыдущих работ по базам данных примеров позволяет предвидеть проблему навигации. Как мы уже отмечали. Известные базы данных обычно позволяют ученику выбрать пример из большого списка или выполнить поиск по ключевым словам. Однако эксперимент с ELM-PE environment (Weber, 1996) показывает. Что только в двух третях всех случаев пользователи смогли найти наиболее релевантный пример. Используя эти простые инструменты выбора примеров. В нашем случае проблема навигации может оказаться еще более серьезной. Поскольку расчетное количество примеров в нашей среде будет в несколько раз больше. Чем в известных базах данных.

Чтобы помочь студентам ориентироваться в нашей базе данных примеров. Мы планируем организовать все примеры в гиперпространство. Эта идея была первоначально исследована Линном (1992b). Который также показал. Что это гиперпространство должно быть структурировано в соответствии с пониманием предмета на уровне эксперта. Мы намерены применить концептуальный подход к структурированию гиперпространства примеров. Концептуальный подход был первоначально предложен автором для структурирования гиперпространства страниц в межкнижной системе (Brusilovsky. Eklund & Schwarz, 1998). Ядром концептуальной навигации является глоссарий концепций. Используемых в курсе — от конструкций программирования на языке Си (оператор присваивания) до концепций более высокого уровня (цикл). Пользователи могут ознакомиться с описанием каждой концепции на отдельной странице глоссария. Система поддерживает двустороннюю связь между примером и каждым понятием. Используемым в данном примере. Это означает. Что с каждой страницы концепции учащиеся могут перейти ко всем примерам. Демонстрирующим использование этой концепции. И наоборот, с каждой страницы примера ученик сможет перейти к описанию каждой задействованной концепции. Этот подход поддерживает богатую навигацию. В частности. Начиная с интересующего примера. Студент сможет перейти к объяснению неприятного понятия. Используемого в этом примере. А затем к другому более простому примеру. Использующему это понятие. Наш опыт работы с InterBook показывает. Что эта организация может успешно поддерживать навигацию в гиперпространстве с несколькими сотнями страниц контента (то есть примеров) и более чем сотней концепций. В дополнение к новому концептуальному доступу к примерам мы намерены сохранить реализованный в настоящее время доступ к учебному плану. Где студент может получить список ссылок на все примеры. Относящиеся к данной лекции.

[an error occurred while processing the directive]

Одним из ключевых предположений. Лежащих в основе WebEx. Является то. Что примеры в базе данных вносятся несколькими преподавателями. Которые преподают различные разделы одного и того же курса. Таким образом. Из вторичной опоры для преподавания конкретного раздела курса база примеров станет общим ресурсом для всего курса. Местом накопления После инициализации эта база данных может использоваться несколькими поколениями инструкторов. Которые также могут внести свой вклад в свои любимые примеры. Как это часто бывает. Преподают разные инструкторы в разные годы. В этой ситуации общая база примеров предложит значительное сокращение работы для нового преподавателя курса. Вместо подготовки и тестирования большого количества примеров для анализа на каждой лекции преподаватель может просто выбрать и повторно использовать подмножество примеров из базы данных. Которые он или она находит наиболее релевантными. Сами студенты могут иметь доступ ко всему богатству объясненных примеров. Что позволит более слабым студентам работать с большим количеством примеров. Чем было представлено в классе.

Сейчас мы работаем над улучшением преподавательской части WebEx. В оригинальной версии WebEx учителя должны создавать и комментировать примеры непосредственно с помощью Microsoft Access. Этот подход хорошо работал для одного или двух учителей. Чтобы поддержать более широкое сообщество учителей. Работающих над одним и тем же курсом. Мы разрабатываем веб-интерфейс для учителей. Позволяющий создавать. Обновлять и повторно использовать примеры. Цель состоит в том. Чтобы сделать систему инструментом в руках учителя. Поддержать все основные виды деятельности учителя. Работающего с примерами. Наш опыт показывает. Что это один из главных ключей к успеху любой образовательной системы на занятиях.

 

Вместо краткого изложения статьи мы решили дать краткое изложение преимуществ WebEx.

  • WebEx максимизирует образовательные возможности для каждого студента в рамках курса программирования. Основанного на примерах. Предоставляя возможность исследовать и повторно использовать самоочевидные примеры программирования. Это дает Он также обеспечивает поддержку для возможных дистанционных студентов.
  • Преподаватель способен тратить меньше времени на рутинный анализ примеров во время лекции и уделять больше времени интерактивной и творческой работе со студентами. Нет необходимости следить за тем. Чтобы большинство студентов Мы ожидаем некоторого высвобождения времени преподавателя. Которое в настоящее время тратится на анализ примеров во время декламации и в рабочее время.
  • База примеров будет служить ресурсом Значительно сокращается время. Необходимое преподавателю для подготовки качественной лекции по данному курсу.
  • База примеров. Разработанная и структурированная опытным преподавателем. Может помочь менее опытным преподавателям лучше преподавать курс
  • Благодаря проблемно-независимой природе инструмента WebEx может применяться в контексте преподавания различных курсов. Связанных с программированием.

 

Blackboard (1999) Курс 1.5, Blackboard Inc. http://company.blackboard.com/CourseInfo/index.html (Дата обращения 21 августа 1999 года)

Брусиловский П., Эклунд Дж.. Шварц Э. (1998) Веб-образование для всех: инструмент для разработки адаптивных учебных курсов. Компьютерные сети и системы ISDN (Материалы Седьмой Международной конференции World Wide Web, 14-18 апреля 1998 года) 30 (1-7), 291-300.

Brusilovsky. P. and Weber. G. (1996) Collaborative example selection in an intelligent example-based programming environment. В кн.: D. C. Edelson and E. A. Domeshek (eds.) Proceedings of International Conference on Learning Sciences, ICLS’96, Evanston, IL, USA, AACE, pp. 357-362, http://www.contrib.andrew.cmu.edu/~plb/papers/icls96.html.

Брусиловский П. Л. (1992) Интеллектуальный репетитор. Среда и Руководство по вводному программированию. Educational and Training Technology International 29 (1), 26-34.

Burow, R. and Weber. G. (1996) Пример объяснения в учебных средах. В кн.: C. Frasson, G. Gauthier and A. Lesgold (eds.) Intelligent Tutoring Systems . Lecture Notes in Computer Science, Vol. 1086, (Материалы Третьей Международной конференции по интеллектуальным системам обучения, ITS-96, Монреаль, 12-14 июня 1996 г.) Berlin: Springer Verlag. Pp. 457-465.

Fares, J. M. and Reiser. B. J. (1988) Доступ и использование предыдущих решений в ситуации решения проблем. В: Труды Десятой ежегодной конференции Общества когнитивной науки, Монреаль, 1988, Lawrence Erlbaum Associates. Pp. 433-439.

Guzdial, M. (1995) Программно реализованные строительные леса для облегчения программирования для обучения науке. Интерактивные учебные среды 4 (1), 1-44.

Hohmann, L.. Guzdial. M.nd Soloway. E. (1992) SODA: среда автоматизированного проектирования для выполнения и обучения проектированию программного обеспечения. В: И. Томек (изд.) Материалы 4-й Международной конференции, ICCAL’92, Берлин, Вольфвилл, Канада, 17-20 июня 1992 года. Springer-Verlag. Pp. 307-318.

Kelley, A. and Pohl. I. (1995) C by Dissection : The Essentials of C Programming. NY: Addison-Wesley.

Linn, M. C. (1992a) Могут ли объяснения экспертов помочь студентам развить навыки проектирования программ. Int. J. Man-Machine Studies, International Journal on the Man-Machine Studies 36, 511-551.

Linn, M. C. (1992b) How can hypermedia tools help teach programming. Учиться. Instr., Learning and Instruction 2, 119-139.

Redmiles, D. F. (1993) Уменьшение вариативности производительности программистов с помощью объясненных примеров. In: Proceedings of INTERCHI’93, New York, Amsterdam, 24-29 апреля 1993, ACM, pp.

Weber. G. (1996) Индивидуальный отбор примеров в интеллектуальной обучающей среде. Журнал искусственного интеллекта в образовании 7 (1), 3-31.