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

Наука Школе

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

РУСИФИЦИРОВАННЫЕ МИНИ-ИСПОЛНИТЕЛИ ВО ВВОДНЫХ КУРСАХ ПРОГРАММИРОВАНИЯ

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

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

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

Цвелая Ирина Анатольевна
Фонд новых технологий в образовании «Байтик», Троицк, Московской обл.
 

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

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

В 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» http://informatika-21.su/

[2] О.А. Леденева, Ф.В.Ткачев. Компонентный Паскаль и среда Блэкбокс на уроках информатики для 5-классников. Доклад на XIX международной конференции «Применение новых технологий в образовании»; Троицк, Моск. обл., 26-27 июня 2008 г.; см. также поурочные отчеты: http://www.inr.ac.ru/~info21/troitsklicej/vtorojetap.htm

[3] Министерство образования Республики Беларусь. Язык объектно-технологического программирования Компонентный Паскаль в среде программирования BlackBox. Программа факультативных занятий. Авторы: А.Б.Кондратович и П.А.Шекель. http://www.adu.by/modules.php?name=News&file=article&sid=770

[4] Л.Г.Куркина, Ф.В.Ткачев. Календарно-тематическое планирование кружка «Информатика» для 5-х классов. http://www.inr.ac.ru/~info21/troitsklicej/tretijetap.htm

[5] Martyn Long. The Psychology of Education. RoutledgeFalmer, 2000.

[6] Стенографический отчёт о встрече Президента РФ Дмитрия Медведева с российскими студентами – победителями чемпионата мира по программированию. http://www.kremlin.ru/text/appears/2009/05/215879.shtml

[7] Ф.В.Ткачев. Обучение программированию: российская перспектива. Доклад на конференции JMLC'03. http://www.inr.ac.ru/~info21/texts/2003-08-JMLC/ru.htm

 

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

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

Наука Школе