i21edu/Docu/ru/ЧерепашкаДоклад2009.odc

РУСИФИЦИРОВАННЫЕ МИНИ-ИСПОЛНИТЕЛИ ВО ВВОДНЫХ КУРСАХ ПРОГРАММИРОВАНИЯ
Тезисы доклада для XX международной конференции Применение новых технологий в образовании, Троицк, Московская область, 2627 июня 2009 г.
Куркина Любовь Григорьевна 
МОУ Лицей города Троицка Московской обл. 
Ткачев Федор Васильевич
Институт ядерных исследований РАН (ИЯИ РАН), Москва 
Цвелая Ирина Анатольевна 
Фонд новых технологий в образовании Байтик, Троицк, Московской обл.

Адрес в Сети: http://www.inr.ac.ru/~info21/troitsklicej\bytic-xx-2009.htm
Предыдущий доклад 2008 г.: КомпонентныйПаскаль...для5-классников


Аннотация Описывается положительный опыт начального обучения программированию школьников 5-10 классов с применением исполнителей с минимальным числом команд в полностью русифицированной среде Блэкбокс/Компонентный Паскаль.

Замечание от 2009-11-15: Многие наблюдения этого и  сильно перекликаются с выводами А.Г.Кушниренко и Г.Б.Лебедева, зафиксированными в книжке 12 лекций о том, для чего нужен школьный курс информатики и как его преподавать. М.: Лаборатория базовых знаний, 2000. К сожалению, мы узнали об этой книге лишь недавно. Разумеется, никакое обсуждение обучения программированию самых младших программеров не должно игнорировать эту книжку.

В 2008-2009 уч. г. в ряде учебных заведений г. Троицка Московской области велись вводные курсы программирования в рамках образовательного проекта Информатика-21 [1], пропагандирующего пларформу Блэкбокс/Компонентный Паскаль как основу единой системы общих курсов информатики и программирования. Ставилась цель закрепить опыт предыдущего эксперимента с 5-классниками [2], который, в свою очередь, был вдохновлен успехом внедрения платформы в Белоруссии [3]. Узнать подробнее о проекте можно на сайте [1]; здесь ограничимся общими замечаниями. 
Ряд проблем с преподаванием информатики обусловлен хаосом используемых платформ и языков программирования. Для решения этой проблемы проект Информатика-21 пропагандирует платформу Блэкбокс/Компонентный Паскаль. Компонентный Паскаль является современным потомком по прямой линии заслуженного Паскаля. Система Блэкбокс является естественной заменой устаревшему Турбо Паскалю и привлекательной открытой альтернативой чрезмерно громоздким, закрытым коммерческим системам типа Дельфи и проч. Платформа Блэкбокс/Компонентный Паскаль в силу продуманного минималистичного, целостного дизайна, настраиваемости и расширяемости  практически идеальный кандидат на роль единой платформы для системы вводных курсов информатики и программирования. На скелет такой системы могли бы эффективно опереться курсы, ориентированные на специальную и профессиональную подготовку. Такая единая система может охватить учащихся от 5-х классов школ по 3-й курс университетов. 
Целью наших экспериментов в 2008/9 уч. г. была консолидация опыта весны 2008 г. [2], а также наработка конкретных методик для учащихся, начиная с уровня 5-го класса общей средней школы. Для 5-классников была составлена программа вводного курса [4]. Она не является окончательной (см. ниже), но от нее можно оттолкнуться другим преподавателям (например, опыт О.А.Меркуловой, г. Орел). 
Занятия проводились в следующих группах: 
 занятия по программированию в форме кружка для 5-классников в Троицком лицее (Л.Г.Куркина и Ф.В.Ткачев); 
 две группы программирования в Байтике: группа начинающих, 9-й класс; группа продолжающих, 7-8-й класс (И.А.Цвелая и Ф.В.Ткачев); 
 две группы 10-классников в гуманитарном колледже Перспектива (И.А.Цвелая и Ф.В.Ткачев); из-за форс-мажорных обстоятельств здесь удалось провести только три занятия вместо планировавшихся десяти, но опыт получен весьма позитивный. 
Общее число учащихся  порядка 40 человек с 5-го по 10-й классы и с самым разным уровнем подготовки и способностей. 
Замечание по методике эксперимента. У преподавателей есть тенденция уделять больше внимания сильным учащимся [5]. Например, энтузиасты программирования ориентируются на ничтожный процент потенциальных компьютерных гениев [6]. Однако ставить мозги в отношении основ алгоритмики  и как ремесла, и как фундаментальной умоструктурирующей дисциплины  нужно гораздо большему контингенту учащихся [1]. Даже у заведомо способных учащихся предмет может не пойти. Тем более проблемы возникают при массовом обучении. 
Поэтому для нас особый интерес представлял проблемный контингент: здесь бывают наглядно видны недостатки методик, а найденные решения работают и для сильных учеников. Подобный перенос опыта вверх уже успешно применялся одним из авторов (использование школьного опыта в университетском курсе [7]). 
Опыт, который мы хотим зафиксировать  это высокая методическая эффективность мини-сред (мини-библиотек, мини-исполнителей), имеющих минимальный набор команд и четко ориентированных на задачи конкретного этапа обучения. При этом все такие мини-среды остаются частью единой общей среды Блэкбокс  используют общие меню, общий язык программирования и т.д. Эта идея возникла из опыта наших экспериментов с 5-классниками [2], где использовалась некая реализация исполнителя-черепашки, известного по среде Логомиры. 
Цветастые среды учебного типа (Логомиры, Scratch и т.п.) замкнуты в собственном мирке, являются самоцелью для разработчиков и имеют разбухший арсенал средств на все случаи жизни. Они удобны для учителя, не очень хорошо представляющего себе, куда он должен привести учеников, т.к. позволяют легко и даже не без пользы их занять. Если же рассматривать это лишь как этап в целостной системе обучения, то такие среды оказываются своего рода ловушкой, в которой может завязнуть учебный процесс. 
Мы же с самого начала исходили из того, что подобная учебная среда, реализованная как часть полноценной системы программирования,  лишь ступенька в целостном курсе и должна быть подчинена целям конкретного этапа обучения. В частности, набор команд на каждом этапе должен быть продуман и ограничен, так как избыточные возможности отвлекают внимание и вызывают потери дефицитного учебного времени. 
Первый такой этап-ступенька  освоение стандартных приемов редактирования текстов (редактор текстов в Блэкбоксе поддерживает стандартные базовые приемы редактирования, горячие клавиши и т.п.). Важность этих приемов подчеркивалась в программе [4]. Однако обнаружилось, что некоторые из 5-классников испытывали трудности с освоением комбинаций типа Ctrl+X. К тому же и освоение приемов выравнивания текстов и т.п. происходит в процессе программирования со скрипом. Поэтому были придуманы простые упражнения по работе с текстами, причем роль мини-среды здесь играет сам Блэкбокс (в принципе в нем можно деактивировать на этом этапе все лишние меню, но мы обошлись и без этого, т.к. команды редактирования и так сосредоточены в одном меню). Упражнения состоят в том, чтобы напечатать в строчке свое ф.и.о. (т.е. нечто, максимально привязанное к я учащегося; это удерживает внимание) и затем, используя стандартные приемы (выделение слов двойным кликом, копирование посредством Ctrl+С, Ctrl+V и т.д.) создать еще несколько строк с перестановками слов (заодно дети знакомятся с этим фундаментальным понятием), а также с разным выравниванием строк (лесенкой, пилкой и т.п.). Здесь же удобно поучиться менять атрибуты текста (жирный шрифт, курсив, размер, цвет ...). В группах гуманитарного колледжа этим упражнениям (в расширенном варианте, включающем форматирование таблиц) была специально посвящена часть первого занятия, с отличным эффектом. Важно, что эти упражнения выполняются в той же среде, в какой в дальнейшем происходит программирование. 
Первое умение, которое вырабатывается в курсе программирования,  составление линейных последовательностей команд. Интересно, что при малом числе основных команд исполнителя такие последовательности быстро разрастаются, поэтому рано и естественно возникает потребность принимать организационные меры к упорядочению программы  т.е. вводить процедуры вместе с важнейшими понятиями пред- и пост-условий [2]. Другими словами, процесс обучения сразу нацеливается вглубь: ведь умение структурировать сложную программу составляет сущность программирования. 
Поэтому мы во всех группах сосредоточились на работе с вариантом черепашки, умеющей выполнять лишь две основные команды (идти на заданное расстояние и повернуть на заданный угол), а также минимум вспомогательных команд (поднять/опустить перо и выбрать черный/синий/красный цвет). Наиболее четко прошли занятия в гуманитарном колледже, где в обеих группах всего лишь за три пары удалось на практике ознакомиться с приличным объемом материала (процедуры, целочисленные переменные, параметры, простые циклы, простые выражения). Разумеется, для уверенного освоения этого материала нужно больше упражнений, но достигнутая эффективность занятий превзошла ожидания. 
Следующий пример мини-исполнителя возник на занятиях в Байтике, где одна из девочек явно не относилась к категории будущих компьютерных гениев. Ей была предложена индивидуальная учебная траектория  порисовать с помощью модуля, эмулирующего турбопаскалевскую графику, используя примитив line(x1,y1,x2,y2) и др. Однако задание ввергло девочку в ступор. По соображениям, описанным в начале доклада, подозрение обычной лени было отложено, и был проделан следующий эксперимент: тут же был написан специальный небольшой модуль (гибкость Блэкбокса позволяет делать такие фокусы прямо в классе). Модуль содержал всего две сущности, названные русскими именами: Точка  записевый тип с двумя полями x и y, которым присваиваются значения обычным образом, а также процедура Линия( т1, т2 ) с двумя параметрами типа Точка и очевидным смыслом. Введение одной организующей абстракции (запись Точка), а также русских имен радикально изменило ситуацию: О! Так гораздо понятней! Действительно, ведь на уроках геометрии прямую проводят через пару точек, а не через четыре числа. 
Этот впечатляющий пример перехода из состояния сонный тормоз к активной работе заставляет сделать следующие выводы. 
Во-первых, записи, обычно считающиеся средством продвинутого уровня в традиционных схемах обучения программированию, на самом деле чрезвычайно полезны в качестве организационного средства уже на самом начальном уровне; объяснить, что такое запись и как передавать ее в процедуру в качестве параметра,  проще, чем научить оперировать логическими выражениями и корректно составлять циклы. Исходя из этого опыта, мини-среда (модуль), названная ТочкиЛинии, включена в новые версии учебных комплектов Блэкбокса, распространяемых проектом Информатика-21. 
Во-вторых, для начинающих программистов все-таки важно видеть понятные слова на родном языке. Это не новость, но уникальная гибкость Блэкбокса позволила довести идею до логического завершения. Была написана процедура-фильтр, выполняющая закулисный перевод ключевых слов и дающая возможность компилировать программы с русскими ключевыми словами. Программа на Компонентном Паскале теперь может иметь такой, в высшей степени читабельный вид: 
МОДУЛЬ Пример; 
	ПОДКЛЮЧИТЬ Ввод, Вывод; 

	ПРОЦЕДУРА Печатать; 
		ПЕРЕМЕННЫЕ ц, сумма, предел: ЦЕЛЫЕ; 
	НАЧАЛО
		Ввод.Открыть; УБЕДИТЬСЯ( Ввод.сделано ); 
		Ввод.Цел( предел ); УБЕДИТЬСЯ( Ввод.сделано ); 
		ц := 0; сумма := 0; 
		ПОКА ц # предел ДЕЛАТЬ 
			сумма := сумма + ц; 
			ц := ц + 1 
		КОНЕЦ; 
		Вывод.Цел( сумма ); 
		Вывод.НовСтрока; 
	КОНЕЦ Печатать; 

КОНЕЦ Пример. 
При этом, как и в англоязычном варианте, предусмотрена процедура раскрытия всего скелета синтаксической конструкции по 1-2 первым буквам, поэтому реальных нажатий на клавиши, чтобы набрать программу, нужно немного. Это важно, т.к. необходимость облегчить набор текста обусловила птичий стиль старого Школьного Алгоритмического Языка (НАЧ, НЦ, КЦ ...). 
В школьных комплектах Блэкбокса изначально русифицированы меню и сообщения компилятора. Учитывая, что команды черепашки тоже переведены на русский язык, теперь можно начинать обучать программированию, оставаясь полностью в русском языке и плавно переходя к английскому по мере готовности учащихся. (Ключевые слова на разных языках могут быть перемешаны в одной программе, а словарик перевода легко приспосабливается для других языков; см. [1].) 
Легкость расширения Блэкбокса открывает возможности для создания разнообразных мини-сред. Например, еще один мини-исполнитель, реализующий традиционного робота, был запрограммирован И.А.Дехтяренко, одним из родителей-участников проекта [1]. Наконец, нетрудно представить себе не рисующего, а какого-нибудь поющего мини-исполнителя. 
Выводы. Наш опыт доказывает удобство системы Блэкбокс/Компонентный Паскаль как единой основы общих вводных курсов информатики и программирования. Методической опорой становятся мини-исполнители (или мини-среды),  подобные известным черепашкам, роботам и т.п.,  но с минимальным набором команд для отработки конкретных тем на каждом этапе обучения. Такие мини-среды являются просто модулями Блэкбокса, и программирование все время ведется на одном и том же полноценном языке программирования. 
Новая возможность использовать ключевые слова на родном языке устраняет из начального курса программирования барьер иностранных слов (вместе с барьером обратного перехода; причем читабельность получающихся программ  выше, чем в старом ШАЯ). Это важно при обучении самых младших школьников, а также для максимального расширения аудитории общих вводных курсов программирования, что в эпоху информационных технологий трудно переоценить. 
В результате нижняя граница по возрасту (т.е. самый младший возраст, начиная с которого школьников можно охватить предполагаемой единой системой общих курсов программирования на основе Компонентного Паскаля) может быть установлена на уровне 5-го класса, т.е. еще до деления на профили. Заметим, что проблема того, как заниматься информатикой с учащимися 5-6 классов, до сих пор оставалась нерешенной. Использование русифицированных мини-исполнителей на платформе Блэкбокс/Компонентный Паскаль дает эффективное решение этой проблемы. 
Литература 
[1] Проект Информатика-21  
[2] О.А. Леденева, Ф.В.Ткачев. Компонентный Паскаль и среда Блэкбокс на уроках информатики для 5-классников. Доклад на XIX международной конференции Применение новых технологий в образовании; Троицк, Моск. обл., 26-27 июня 2008 г.; см. также поурочные отчеты:  
[3] Министерство образования Республики Беларусь. Язык объектно-технологического программирования Компонентный Паскаль в среде программирования BlackBox. Программа факультативных занятий. Авторы: А.Б.Кондратович и П.А.Шекель.  
[4] Л.Г.Куркина, Ф.В.Ткачев. Календарно-тематическое планирование кружка Информатика для 5-х классов.  
[5] Martyn Long. The Psychology of Education. RoutledgeFalmer, 2000. 
[6] Стенографический отчёт о встрече Президента РФ Дмитрия Медведева с российскими студентами  победителями чемпионата мира по программированию.  
[7] Ф.В.Ткачев. Обучение программированию: российская перспектива. Доклад на конференции JMLC'03.