Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

Главная страничка эксперимента в Лицее г. Троицка   Главная страничка занятий с 5-классниками

КОМПОНЕНТНЫЙ ПАСКАЛЬ И СРЕДА БЛЭКБОКС
НА УРОКАХ ИНФОРМАТИКИ ДЛЯ 5-КЛАССНИКОВ

Тезисы доклада для XIX международной конференции «Применение новых технологий в образовании», Троицк, Московская область, 26–27 июня 2008 г. (информац. письмо)

Леденева Ольга Александровна
МОУ «Лицей города Троицка» Московской обл.

Ткачев Федор Васильевич (info21@inr.ac.ru)
Институт ядерных исследований РАН (ИЯИ РАН), Москва

Аннотация Суммирован опыт использования среды Блэкбокс (конфигурация с исполнителем-черепашкой) в курсе основ программирования для 5-классников в рамках проекта Информатика-21. Оказалось возможным и полезным рано и активно вводить процедуры вместе с понятиями пред- и постусловий, что подготавливает к методу пошагового уточнения. Переход от черепашки к обычным темам не требует никакого переучивания.

Проект Информатика-21 [1] предлагает, по-видимому, единственную на данный момент стройную, научно обоснованную и опирающуюся на богатый педагогический опыт концепцию построения единой системы преподавания информатики, охватывающей учащихся от уровня начинающих до младших курсов университетов. Суть предложений проекта — в использовании единой технологической платформы для «костяка» общих вводных курсов, на который опираются углубленные и профильные курсы в зависимости от специализации учащихся. Такая единая платформа должна удовлетворять ряду специфических требований, возникающих в школьном контексте:

— быть простой (но не примитивной) и легкой для освоения как учениками, так и учителями (а также и родителями);

— поддерживать общепринятые пользовательские интерфейсы;

— предельно ясно представлять фундаментальные идеи программирования (иначе не удается эффективно формировать ключевые компетенции у максимально широкого круга учащихся);

— обеспечивать легкость конфигурации для адаптации к разным условиям и отработки методик;

— быть удобным мостиком к изучению разных промышленных систем.

Простые «школьные» системы (Турбо Паскаль и всякого рода «бейсики») заведомо устарели и слишком примитивны. С другой стороны, промышленные системы — это настоящие «монстры», избыточно сложные по субъективным и историческим причинам. Эта избыточная сложность оказывается чрезмерной обузой не только в школьной среде, но и для прикладников (инженеров, ученых и т.п.; именно последнее обстоятельство послужило отправной точкой проекта Информатика-21, см. доклад [2]).

Язык программирования Паскаль заслуженно популярен как средство эффективного обучения программированию, но он отражает не вполне зрелый уровень искусства конца 1960-х гг. В конце 80-х гг. автор Паскаля Н.Вирт предложил доработанный вариант Паскаля, названный Обероном [3]. Сохраняя всё ценное в Паскале, Оберон аккуратно инкорпорирует средства объектно- и компонетно-ориентированного программирования, но при этом оказывается меньше старого Паскаля и проще на общем подмножестве. Невозможно преуменьшить значение этой разработки: Оберон оказал глубокое влияние на громкие проекты Java и C#. Однако переход на Оберон в образовании тормозится инерцией и дезориентированностью преподавателей быстрым развитием индустрии ИТ, а также давлением корыстных интересов крупных компаний.

Самая удачная реализация Оберона для работы в распространенных ОС создана в 1993 г. учениками Н.Вирта, называется Блэкбокс (BlackBox) и использует диалект Оберона, названный Компонентный Паскаль, чтобы подчеркнуть родство по прямой линии с классическим Паскалем. Важно отчетливо понимать, что это отнюдь не «еще одна» система программирования: не говоря о вкладе самого Н.Вирта, отметим, что ее архитектор К. Шиперский — ведущий специалист по архитектуре програмных систем [4] и с 1999 г. сотрудник исследовательской лаборатории Майкрософт.

Система Блэкбокс бесплатна (о получении см. [1]), вокруг нее сложилось активное сообщество преподавателей, программистов, ученых и инженеров, она прекрасно себя зарекомендовала в проектах самого разного уровня сложности и ответственности (см. материалы сайтов [1] и [7]), а также в преподавании (например, в США с 1996 г.; см. учебник [5]).

В России преподавание на системе Блэкбокс ведется с 2001 г. (первоначально на теоретических кафедрах физического факультета МГУ и в Лицее г. Троицка; отметим, что в 1998 г. С.З.Свердлов начал обучение на основе другой версии Оберона в Вологодском университете [6], и его студенческая команда пробилась в финал Чемпионата мира по программированию 2003 г.). C осени 2005 г. функционирует российский сайт поддержки [7].

Блэкбокс удобнее Турбо Паскаля (отзыв 5-классника А.Адамовича, параллельно изучающего стандартный курс программирования на Турбо Паскале в Байтике), хотя под внешне простой оболочкой здесь скрыты радикально более мощные механизмы. Специалисты называют Блэкбокс «практически идеальной» платформой для вводных курсов программирования [8]. Более того, учащихся можно провести в единой среде, без потерь крайне дефицитного учебного времени на переучивание, от самых первых шагов до весьма продвинутого уровня (включая объектные методы). Методисты отмечают это как важнейшее преимущество среды, не имеющей в этом отношении конкурентов [9].

Серьезные усилия по переходу с Турбо Паскаля на Блэкбокс предпринимаются в Томском гос. университете (А.И.Попков и Ю.Л.Костюк), а также преподавателями в Москве, Орле, Екатеринбурге, Новосибирской области и др. (особо отметим Хабаровскую школу программистов [10], возглавляемую опытнейшим методистом и автором ряда учебников В.В.Потопахиным [11]).

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

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

Для системы Блэкбокс (кстати, это хороший пример ее уникальной расширяемости) написан ряд «исполнителей» (черепашка-чертежница, робот и др.), восходящих к методикам 1980-х гг. (Кушниренко и др. [13]). Программа для, например, черепашки в Блэкбоксе — это обычная программа на Компонентном Паскале, содержащая вызовы библиотечных команд управления черепашкой. Рисунок черепашка чертит в отдельном окошке.

Сначала мы испытали пакет, собранный И.Е.Ермаковым (работа велась только с одним исполнителем из пакета — черепашкой). Выяснилось, что некоторые дополнительные «удобства» в пакете (метафора документа как тетради с заданиями, сокрытие нескольких «технических» строк программы и т.п.), не столько помогают, сколько мешают (нужно разбираться, как всё это работает, причем достаточно скоро всё равно приходится переходить к полноценному «штатному» режиму работы). Во-вторых, выяснилось, что имеет смысл оформить работу каждого ученика в виде отдельной папки со своим меню (по фамилии ученика), с собственными шаблонами программ и т.п., причем настраивать свои меню и проч. может даже сам ученик. Такую подсистему легко копировать на флэшку, чтобы забрать домой (некоторые ученики так и поступали; для всего Блэкбокса достаточно флэшки в 32М).

Чтобы сфокусировать внимание на главном, мы «построгали» черепашку, оставив только самые необходимые команды. Кроме того, конфигурация Блэкбокса была настроена так, чтобы система сразу открывалась с набором окошечек для работы с черепашкой (это делается в специальном модуле Config, который учителю легко подправить под нужды любой группы). В итоге был сформирован простой пакет для работы с черепашкой для начинающих младших школьников (его можно сгрузить с сайта [1]).

Блэкбокс поддерживает многооконный интерфейс: одновременно открыты программа ученика, справка по командам черепашки (откуда их можно копировать в программу), окно с рисунком. Ученики быстро научились открывать второе окошко на свою программу, а также использовать свои старые программы в качестве «шпаргалок».

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

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

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

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

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

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

Литература

[1] Проект Информатика-21: http://informatika-21.su/

[2] Ф.В. Ткачев. Доклад на конференции JMLC'2003, см. [1].

[3] N. Wirth. The Programming Language Oberon // Software — Practice and Experience, Vol.18, No.7, p.671-690 (1988). N. Wirth, J. Gutknecht. Project Oberon. The Design of an Operating System and Compiler. Addison-Wesley, 1992, xii+548 pp.

[4] C.Szyperski. Component Software. Addison-Wesley Longman 1998.

[5] J.S.Warford. Computing Fundamentals. Vieweg, 2002.

[6] http://www.uni-vologda.ac.ru/cs/

[7] http://oberoncore.ru

[8] Т.Евсикова. Отдел методологии информатики, Институт математики и информатики, Вильнюс, Литва.

[9] С.Н. Коваль (Отдел образования Советского района, г. Новосибирск). Выступление на Совещании в Томском гос. ун-те, июль 2007.

[10] Хабаровская школа программистов, http://www.lotos-khv.narod.ru/

[11] В.В.Потопахин. Turbo Pascal. Освой на примерах. С-Петербург, BHV, 2005; Turbo Pascal. Решение сложных задач. С-Петербург, BHV, 2006.

[12] http://www.inr.ac.ru/~info21/troitsklicej/vtorojetap.htm

[13] А.Г.Кушниренко, Г.В.Лебедев, Р.А.Скворень. Основы информатики и вычислительной техники. М., Просвещение, 1990.

[14] Римский принцип управления сложностью. http://www.inr.ac.ru/~info21/rimskijPrincyp.htm

Главная страничка эксперимента в Лицее г. Троицка   Главная страничка занятий с 5-классниками

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе