Методика раннего обучения информатике
СОДЕРЖАНИЕ
СТРУКТУРА
АЛГОРИТМ
ИСПОЛНИТЕЛЬ
ТЕКСТОВЫЙ
РЕДАКТОР
ГРАФИЧЕСКИЙ
РЕДАКТОР
МУЗЫКАЛЬНЫЙ
РЕДАКТОР

Понятие исполнителя


Дидактический материал

Исполнители в курсе раннего обучения информатике

Понятие исполнителя является одним из наиболее важных в информатике. Несмотря на то, что это понятие относят к пер­вичным, оно имеет четкое определение, которое дети если и не заучивают наизусть, то, во всяком случае, осознанно им опери­руют. Исполнителем называется человек, коллектив, животное или техническое устройство, которые понимают и умеют точно исполнять задаваемые им команды. Конечно, изучение темы начинается не с формулировки опре­деления (появлению этого определения могут предшествовать несколько уроков в теме «Исполнители»): как всегда при зна­комстве с новым материалом на уроке информатики, дети, ини­циируемые учителем, прежде всего, генерируют множество при­меров, затем классифицируют и только после этого, суммируя отдельные наблюдения, приходят к общему определению. Характерное типовое начало темы «Исполнители» — игра в классе, которую учитель не только предлагает, но в первой ее реализации даже берется за исполнение «главной роли». Итак, учитель заявляет, что он готов исполнить любую из согласован­ного набора команд. Составление такого набора — важный эле­мент первого урока в теме: список должен быть не длинным и обозримым, команды — легко определяемыми и реализуемы­ми. Надо обратить внимание на наличие «обратных» команд: если, например, в системе имеется команда ПОДНИМИ РУКУ, то обязательно надо иметь и команду ОПУСТИ РУКУ. С учетом таких «строгих» ограничений, налагаемых на сис­тему команд исполнителя (СКИ), этот набор формируется деть­ми с непосредственных подсказок учителя. Произнесенная деть­ми команда корректируется учителем, дети соглашаются с ним. После этого команду можно зафиксировать: учитель запи­сывает ее на доске. Можно представить, например, такую СКИ:

ПОДНИМИ РУКУ

ОПУСТИ РУКУ

ОТКРОЙ ГЛАЗА

ЗАКРОЙ ГЛАЗА

СКАЖИ «МЯУ»

Начинается игра. Учитель встает у доски и выражает готов­ность исполнять команды. Он послушно поднимает руку по команде

ПОДНИМИ РУКУ

Если после этого такая команда повторно поступает из клас­са, то он поднимает вторую руку. Но если после этого такая команда будет дана в третий раз, то реакция учителя очевидна и понятна детям: он говорит «Не могу». Вероятное развитие событий: хотя на доске записана коман­да во втором лице единственного числа в повелительном накло­нении, детям трудно, непривычно обращаться к учителю «на ты», а потому они могут сказать

ЗАКРОЙТЕ ГЛАЗА

В таком случае надо приостановить игру и объяснить детям, что такой команды нет в нашей системе команд (с этой целью можно записать «новую» команду рядом с имеющейся в спис­ке, выделив ее, например, мелом другого цвета1). И, хотя учи­телю-человеку понятно, что хотели сказать дети, произнесшие эту «новую» команду, он как исполнитель имеет право ответить «Не понимаю» и объясняет, почему «не понимает»: команды ЗАКРОЙТЕ ГЛАЗА не существует в системе команд, понятной исполнителю. Эта игра в непонимание оправдана с методиче­ской точки зрения, дети легко принимают это правило игры. (Даже если дети аккуратно следуют правилам игры в исполни­теля, ситуацию с «непонятной» командой учителю нетрудно спровоцировать.) Человек, в отличие от робота, достаточно часто выдает совер­шенно «немашинное» сообщение «Не хочу», которое, в прин­ципе, невозможно в случае робота-механизма. Даже с дрессиро­ванной собачкой может произойти казус непослушания. В этой ситуации очень важно использовать понятие формального ис­полнителя (и даже, возможно, произнести этот термин в клас­се), которому не позволяется ни при каких обстоятельствах отклониться от заранее сформулированной (спроектированной, оговоренной) СКИ. Сейчас объект детской игры — формальный исполнитель. Первую игру (с учителем-исполнителем) не следует затяги­вать, даже если не исследованы все возможные ее сценарии: дети рвутся сами попробовать себя в роли исполнителей. Класс разыгрывает несколько подобных игр. Теперь роль учителя сво­дится, главным образом, к фиксированию на доске (или, луч­ше, на экране проектора) системы команд: каждому играюще­му класс составляет новую систему команд. Еще один вариант игры: СКИ остается той же, ученики вы­ходят по очереди, учитель старается в темпе давать команды, чтобы исполнитель либо выполнял команду, либо отвечал: «Не могу» или «Не понимаю». Задача ученика-исполнителя — про­держаться как можно дольше, не ошибиться. Выигрывает тот, кто не ошибается.

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

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

Нет необходимости объяснять детям (сейчас) термин «непо­средственное управление», однако учитель должен понимать его. Непосредственным управлением называется род деятель­ности, состоящий в выполнении группы последовательных дей­ствий, когда человек принимает решение о следующем дейст­вии на основании информации о предыдущем. Так, управляя Мудрым- Кротом, школьник сначала посмотрит, в какой пози­ции оказался Крот после последнего перемещения, а затем, в зависимости от этой последней позиции, дает Кроту следую­щую команду. Различие между автоматическим и непосредст­венным управлением состоит в том, что в первом случае испол­нителю передается заранее записанная последовательность из нескольких команд, а во втором исполнитель получает команду за командой. Позднее, когда ученики будут изучать сложный исполни­тель Кукарача, который введет их в мир программирования, им встретится и другой, более общий вид деятельности, при ко­тором исполнитель получает от человека не одну команду, а сразу серию команд — программу действий. Такой способ управ­ления называют программным. Он сложнее непосредственного управления, т. к. все команды написаны заранее: человек при этом не видит результат предшествующего действия, а плани­рует, или программирует его. Программа Машинист — это модель сортировочной горки на железнодорожной станции. На пути стоит локомотив, кото­рый из своего тупика может переместиться на одну из двух ве­ток — нижнюю или верхнюю в зависимости от направления, задаваемого положением стрелки. На верхней стрелке располо­жен состав из нескольких вагонов. Задача состоит в том, чтобы переставить эти вагоны в другом порядке. По существу, речь идет не о единственной задаче, а о целом классе разных задач, решение которых может быть включено не в один, а в два или три насыщенных урока. Необходимо ввести важное соглашение, направленное на по­нимание роли исполнителя: в кабине локомотива сидит не че­ловек (иначе мыслящий человек без нашей помощи сообразил бы, в какой последовательности надо брать вагоны и куда их везти), а робот, которому надо давать команды. Как отдавать команды? Бегать за локомотивом и кричать роботу, куда надо ехать? Естественнее (в условиях нашей задачи) представить, что робот выполняет команды, передаваемые по радио (или мо­бильному телефону).

Как обычно, «предкомпьютерная» часть урока предполагает работу с дидактическим материалом. Для «бескомпьютерной» модели сортировочной горки можно использовать

  • спичечные коробки-вагоны и спички-рельсы;
  • магниты различных форм на магнитной доске с нарисован­ными на ней рельсами;
  • локомотив, вагоны и рельсы игрушечной железной дороги;
  • наконец, живые «вагоны», где объектами-моделями высту­пают дети, двигающиеся по рельсам, которые мелом расчер­чены на полу.

Один дидактический материал не исключает другой. Несмот­ря на ограниченное количество задач в «трехвагонной» компь­ютерной модели, вполне уместны демонстрация одной задачи на магнитной доске, а другой — на «живых» вагонах. Впрочем, на «бескомпьютерных» моделях задачи вполне можно исполь­зовать и модификации условий, например не три вагона, а че­тыре. Готовя формальное введение общей схемы знакомства с ис­полнителями, следует и в обсуждении программы Машинист, и, еще раньше, в ее моделях и инсценировках обращать внима­ние на те элементы, которые составляют структуру схемы зна­комства. Вопрос, который при таком обсуждении напрашивается сам собой: являются ли, например, солнышко или домик на экран­ной картинке элементами среды? Учитель убежденно отвечает детям: «Нет». Среда — это те элементы из окружения робота, которые необходимы и достаточны для выполнения команд из его СКИ.

Поскольку именно с исполнителем Машинист впервые по­является понятие среды исполнителя, учитель называет объек­ты среды — типы и количество вагонов, расположение путей и стрелки (стрелок), ограничения на перемещения вагонов и т. д. В беседах о Машинисте, инсценировках и компьютерных лабораторных работах с этим исполнителем в обязанности учи­теля всегда входит фиксация СКИ и операторского протокола. В фиксируемых на доске записях команд из СКИ ошибки допу­скать нельзя ни в коем случае, а вот в записи операторского протокола в некоторый момент рекомендуется допустить ошиб­ку (например, вместо правильной записи ВПЕРЕД сделать не­правильную — ВПЕРЕТ). Это, конечно, провокация. На нее класс, уже встречавшийся с сообщениями «Не понимаю», дол­жен отреагировать адекватно. Более трудоемко изучение ситуаций, где исполнитель дол­жен выдавать сообщение «Не могу»: такие ситуации рассмат­риваются и анализируются отдельно для каждой команды из СКИ.

Потребуется внимательное отношение к инсценировке «жи­вые вагоны». Дети с удовольствием предлагают себя в качестве участников игры. При этом, вероятно, многим будет больше импонировать роль локомотива, чем исполнителя или автора алгоритма, по которому должен работать исполнитель. Между тем, и «локомотив», и «вагоны» — это всего лишь статисты, а действительно активными участниками являются именно ав­тор и исполнитель. Алгоритм перестановки вагонов, решающий задачу, пред­стает в виде операторского протокола. Запись протокола дает возможность обсудить два важных понятия информатики. Пер­вое из них — откатка — уже известно детям, например, по алгоритмическим этюдам. Повторение знакомого механизма в новой теме не только закрепляет понятие откатки, но и подчер­кивает его фундаментальность и инвариантность. Вместе с от­каткой обычно напоминают и обратную операцию — накатку.

Второе понятие — структурирование записи алгоритма, по­зволяющее говорить об этапах проектирования алгоритма и, в частности, о технологии проектирования «сверху вниз». Внеш­не представление операторского протокола не ново: протоколы Монаха, Конюха, Переливашки, Угадайки имели такой же вид линейной последовательности команд. Но из-за заметно вырос­шей длины протокола (число команд в задачах Машиниста. превосходит три десятка) актуально обсуждение нового приема записи такого алгоритма:

  • сначала надо выделить крупные блоки-этапы (перевоз одного вагона с верхнего пути на нижний; перевоз вагона на верхний путь с нижнего); тем самым, определяется последовательность основных, крупных этапов алгоритма; эти укрупненные бло­ки-этапы алгоритма записываются на естественном языке;
  • затем каждый выделенный крупный этап описывается в виде последовательности более мелких порций действий, задавае­мых командами СКИ.

Именно в таком способе построения алгоритма и просматрива­ется пропедевтика технологии проектирования «сверху вниз». Разработчики учебного программного обеспечения опреде­лили важное место программных исполнителей в системе ди­дактических средств уже на хронологически первых этапах ста­новления школьной информатики. Достаточно назвать широко известный исполнитель — Черепашку, введенную Сеймуром Пайпертом в качестве главного персонажа учебной высокоуров­невой языковой системы программирования Лого, или группу исполнителей языка Робик, составивших наполнение другой учебной языковой системы, которая была создана в новосибир­ском Академгородке в коллективе, возглавлявшемся академи­ком А. П. Ершовым.

Ориентация двух названных систем на младших школьников сама по себе могла бы уже служить основанием для появления новых программных объектов — программных исполнителей — в качестве базовых дидактических инструментов в школьной ин­форматике: наглядность, конкретность, динамичность, просто­та управления оправдывали использование программных ис­полнителей в задачах информатического образования младших школьников. Вместе с тем, в период становления школьной ин­форматики языковые системы программирования оставались единственным технологическим средством, используемым в при­ложениях, в том числе, и педагогических. Поэтому и учебные системы того времени, такие, как Лого С. Пайперта или Робик Г. А. Звенигородского, оставались в целом языковыми, исполь­зующими программные исполнители в качестве встроенных объектов, подчиненных базовой языковой системе. Высокие дидактические достоинства Лого неоднократно про­демонстрированы в экспериментальных и систематических кур­сах программирования и информатики в разных странах. И все же современные условия общеобразовательной компьютеризо­ванной школы заставляют искать новые подходы к построению начального курса информатики: за три десятилетия существо­вания Лого заметно изменились взгляды на цели, методику и содержание обучения информатике; актуальный в свое время лозунг «Программирование — вторая грамотность!» постепенно уступил место требованиям информационной культуры, когда язык программирования перестает играть роль ведущего ди­дактического инструмента. Позиция такого инструмента сей­час уверенно и обоснованно занята системами программных исполнителей.

Причины, побудившие искать замену языковым системам программирования и обосновавшие системы программных испол­нителей в качестве программного обеспечения школьной инфор­матики (и, в частности, курса раннего обучения информатике), были проанализированы в лекции 2. Приведенная там аргумен­тация с уверенностью определяет современные учебные про­граммные средства как системы программных исполнителей, ориентированные на разный возрастной контингент учащихся: программы пакета Малыш — для дошкольного воспитания (где преобладают формы игровой деятельности), исполнители Роботландии — для учащихся начальной школы, исполнитель Кенгуренок — для школьников центральных классов, Робот и Чертежник — исполнители для старшеклассников. Присутствие программных исполнителей на всех уровнях школьного информатического образования свидетельствует о том, что исполнители являются инвариантом дидактической спирали этого мировоззренческого курса (см. занятие 5).

1 Сейчас, когда подключенный к учительскому компьютеру проектор — не редкость в школьном кабинете информатики, все манипуляции с ме­лом можно (и нужно!) заменить слайдами специально к уроку созданной презентации. Ясно, однако, что к сущности обсуждаемого урока форма представления учебной информации прямого отношения не имеет.

Схема знакомства с исполнителем

Подробное рассмотрение исполнителя Машинист в курсе раннего обучения информатике необходимо, чтобы подготовить базу для введения общего определения исполнителя и типовой схемы изучения программных исполнителей. Знакомя учащих­ся с этой схемой, учитель сначала обсуждает с детьми последо­вательно каждый ее этап, а в конце урока эти этапы вырисовы­ваются в единую таблицу, которая становится элементом ряда последующих уроков:

  • Название (имя) исполнителя
  • Среда, в которой работает исполнитель. Для исполнителя Машинист — это компьютерный экран с изображенными на нем вагонами, железнодорожными путями и стрелкой. Если же речь идет о машинисте настоящего маневрового тепловоза, то здесь средой становится сортировочная горка на железнодорожной станции с целой системой стрелок, на­стоящий тепловоз с радиоаппаратурой для передачи команд и т. п. Описывая среду, важно не обрисовывать второстепенные, иллюстрационные детали, а подчеркнуть, что среда — это усло­вия окружающей обстановки, необходимые и достаточные для выполнения команд из СКИ
  • Как задаются команды? В инсценировке задачи о маши­нисте автор алгоритма задает команды голосом (задание команды дублируется ее записью на доске); в компьютерном варианте задачи команды набираются на клавиатуре заглав­ными буквами.
  • Как выполняются команды? Ответ на такой вопрос во мно­гом определяется средой. Возвращаясь вновь к игре с «жи­выми вагонами», констатируем, что выполнение команды ВПЕРЕД — это перемещение «состава» (группы детей) по «рельсам» (нарисованным на полу линиям). На экране вы­полнение команды означает перемещение нарисованного со­става справа налево — движение до стрелки или от стрелки до вагонов в тупике (или до тупика).
  • Когда возникает сообщение «НЕ МОГУ»? Для каждой команды ситуация, в которой порождается это сообщение, определяется по-разному. Так, исполнитель не может вы­полнить команду ПРИЦЕПИ, если к локомотиву уже при­цеплены все три вагона. В исходном состоянии нельзя дать исполнителю команду НАЗАД, поскольку он стоит в тупи­ке, из которого можно двинуться только вперед. Одно из возможных изображений схемы знакомства с испол­нителем:

Структура общей схемы знакомства введена с опорой на при­мер исполнителя Машинист. Сейчас уместно проследить по предложенной схеме свойства уже известных, ранее использо­ванных на уроках исполнителей, начиная с исполнителей-уче­ников, выступавших в первых инсценировках, и кончая про­стым исполнителем Перевозчик: учитель предлагает вызванным ученикам рассказать о том или ином исполнителе, строго сле­дуя схеме, которая находится (сейчас и на нескольких последу­ющих уроках) в центре внимания класса. Не в каждом исполнителе одинаково отчетливо выражены все элементы схемы знакомства. Поэтому после рассмотрения Перевозчика надо провести подобное обсуждение и с другими знакомыми исполнителями. Вот пример — исполнитель Ко­нюх. После достаточно простого описания среды учитель просит назвать все команды, которые понимает и умеет выполнять исполнитель по имени Конюх. Ответ — список команд, осущест­вляющих правильные перемещения коня на маленькой (3 х 3) клетчатой доске. Таких команд — 16 (число полей, с которых возможны ходы коней на такой доске, — 8; с каждого поля до­пускаются два возможных хода):

Подходящий тест на понимание:

— Какое сообщение выдаст Конюх в ответ на команду а1-b2? Конечно, ответ легко найти, попытавшись выполнить эту коман­ду на компьютере. Возникает сообщение «Не понимаю» (хотя априорно часть школьников могла бы предположить сообщение «Не могу»: ведь выполняя такую команду, исполнитель дол­жен нарушить принятые правила: конь не может ходить на со­седнее поле по диагонали). Важен не столько правильный от­вет, сколько его разумное объяснение: команды а1-b2 нет в СКИ Конюха.

Интересен в этом отношении исполнитель Мудрый Крот, который не выдает ни одно из аварийных сообщений. Действи­тельно, Крот запрограммирован так, что он может перемеща­ться лишь в свободном пространстве или вдоль стенок, но не может проходить сквозь стену. Поэтому, когда, например, справа от Крота — стена, то его «молчаливый» отказ двигать­ся вправо и следует воспринимать как сообщение «Не могу». Так же обстоит дело с сообщением «Не понимаю»: програм­ма не реагирует на нажатия клавиш, отличающихся от управ­ляющих стрелок. И хотя при нажатии, например, на клавишу BS нет ожидаемой реакции «Не понимаю», тем не менее, именно так следует воспринимать отказ исполнителя выполнить команду: исполнителю задана команда, не входящая в СКИ, т. е. непо­нятная ему, он молча демонстрирует это непонимание, не вы­полняя команду. Таким образом, даже в «экзотических» ситуациях, подоб­ных Мудрому Кроту, схема знакомства с исполнителем сохра­няет свою методическую универсальную значимость.

Особенности Мудрого Крота (или какого-нибудь другого, на­угад выбранного исполнителя), кажущиеся отклонениями от общей схемы знакомства, нельзя оставлять на уровне «экзоти­ки». Далеко не у каждого исполнителя (особенно у исполните­лей вне Роботландии) существуют аварийные сообщения «Не могу» и «Не понимаю» в буквально совпадающих «редакци­ях». Выражения «Не могу» и «Не понимаю» должны воспри­ниматься как ярлыки, как названия двух определенных классов в классификации сообщений исполнителя. Важно не название класса, а существо ситуаций, отнесенных к этому классу. Та­ким образом, представление об исполнителе создается тогда, когда известно, как реагирует исполнитель, если он попадает в класс ситуаций, называемых «Не могу». В классе таких ситуа­ций Крот не двигается в ответ на нажатие управляющей стрел­ки. Его «непослушание» и есть реакция «Не могу». Значение среды в общей схеме знакомства очень важно. Од­нако во всех рассмотренных примерах — от инсценировок в классе до программных моделей учащиеся не ощущают не­посредственно этой важной роли среды. Для того чтобы проде­монстрировать среду исполнителя как определяющий компо­нент схемы общего знакомства с исполнителем, полезно пока­зать школьникам две разные задачи (два разных исполнителя) с совпадающими системами команд. В качестве первой такой задачи можно использовать Маши­ниста, которому посвящено несколько уроков. После заверше­ния этой серии уроков учитель вводит детей в иную операцион­ную обстановку, иную среду, где все действия совершаются на рельсах, но в совершенно других условиях (не реализованных на компьютере).

В качестве второй задачи (с системой команд, совпадающей со СКИ роботландского Машиниста) можно взять задачу, описанную в давней (1988 года) книге «Роботландия» (Переславль-Залесский, АН СССР, Институт программных систем). Фрагмент задачи приводится ниже. «... По пятницам у Пети Кука хорошее настроение: в этот день по расписанию — его любимая информатика. После привычного начала — проверки домашних заданий, обзора газетных новостей о применениях компьютеров — на­чинается основная часть урока. Сегодня речь пойдет о новых алгоритмических задачах и новом исполнителе. Учитель начинает с необычного вопроса: — Кто из вас помнит фильм про неуловимых мстителей? — Я! Я! Конечно, помним! — Во фильм! У него еще и продолжение есть! Учитель улыбается, но все же мягко прерывает этот по­ток восклицаний своим рассказом, пока «воспоминания» не до­стигли уровня воинственных звукоподражаний «Бах! Бабах! Бум! Тра-та-та-та!» — У юных бойцов было много героических дел. Так много, что они не вместились в знаменитый фильм «Неуловимые мстители». И даже в его продолжение. Сегодня я расскажу вам об одном незнакомом вам боевом эпизоде из их жизни. Класс затаил дыхание. Что же дальше? — Haш бронепоезд двигался к линии фронта. И его очень ждали на боевых позициях: и пушки, и снаряды, а, главное, све­жее подкрепление — два взвода молодых бойцов — были так нужны красному полку, уставшему от долгих боев. Путь бронепоезда был нелегок. По окрестным лесам шны­ряли белогвардейские банды. Их можно было ждать на любом полустанке. Командир, пристально вглядывавшийся вперед, ре­шительно махнул рукой машинисту: «Тормози!». Из-за пово­рота показалась четверка неуловимых. Еще с рассвета они отправились в разведку, и вот сейчас на своих горячих конях мчались навстречу бронепоезду. — Засада! — доложил запыхавшийся Цыган, осадив коня рядом с командиром. — Большой отряд беляков. С пушками. Даже с танком. Могут взорвать путь. Вперед нельзя! Командир срочно собрал штаб в тесной артиллерийской баш­не. Солнечный луч через амбразуру ложился на карту фронта. — Боевое задание нельзя не выполнить. Но силы не равны. Надо идти в обход. — В обход-то можно, — угрюмо сказал машинист броне­поезда. — Да ведь на этом одноколейном пути до ближай­шей станции — 20 километров. Задним ходом до нее долго двигаться. — Зачем задним? — воскликнула Оксана. В боевой красно-армейской форме ее нельзя было отличить от мальчишки. — Ведь рядом, всего в полукилометре, есть тупик, где можно раз­вернуться. Командир хорошо знал эти места. Он здесь вырос, пахал землю, здесь и воевал. Подумав, он скорее спокойно, нежели сурово, отказался от восторженной идеи Оксаны: - Нет! Не получится! Это совсем маленький тупичок. В него можно загнать только один вагон или только локомотив. А ведь у нас кроме паровоза еще три вагона.». Не прерывая рассказ, учитель рисует план тупика (рис. 10.1):

Рис. 10.1. Исходное состояние задачи о бронепоезде

«Собравшиеся вокруг стола молчали, видимо, согласившись с мнением опытного командира. Вдруг Валерка, самый сообра­зительный из «неуловимых», вскочил со стула: — Еще как получится! Вот смотрите! И, схватив несколько спичечных коробков, которые дол­жны были изображать вагоны, начал объяснять алгоритм разворота». В этом месте учитель возвращает класс из героической эпо­пеи гражданской войны к сиюминутным событиям: — Ваша задача, ребята, состоит в том, чтобы восстановить ход рассуждений Валерки. Вы должны описать одно за другим те действия, которые предстоит выполнить машинисту броне­поезда, чтобы развернуться в маленьком тупике одноколейного пути. Напоминаю условия задачи:
  1. в состав бронепоезда входят три вагона и локомотив, ис­ходное состояние которых показано на предыдущем рисунке.
  2. в тунике можно разместить либо только один вагон, либо только паровоз без вагонов;
  3. паровоз может тянуть вагоны за собой и толкать их впере­ди себя, но в конце разворота он должен находиться в голове состава, направленного в обратную сторону:

    Рис. 10.2. Конечное состояние задачи о бронепоезде

  4. при маневрировании можно отцеплять и прицеплять ваго­ны (соединение или разъединение одного вагона — это отдель­ное действие алгоритма). Итак, за работу. Напишите в тетрадях ваши алгоритмы. Класс работает сосредоточенно. Ведь сейчас в их руках судь­ба бронепоезда! Думают, пишут, снова думают... Важно отметить, что у этого нового исполнителя точно та же СКИ, что у исследованного уже Машиниста:

ВПЕРЕД

НАЗАД

ПРИЦЕПИ

ОТЦЕПИ

СТРЕЛКА

Однако трактовка команд (ответ на вопрос «КАК ВЫПОЛ­НЯЮТСЯ» в схеме знакомства) совсем иная:

— ВПЕРЕД: движение вперед

  • либо до ближайшей закрытой стрелки,
  • либо до тупика,
  • либо до стоящих на пути вагонов,
  • либо за стрелку на основном пути (если стрелки открыты);

    — НАЗАД: (аналогично) движение назад либо до ближай­шей закрытой стрелки, либо до тупика,

  • либо до стоящих на пути вагонов,
  • либо за стрелку на основном пути (если стрелки открыты);

    — ОТЦЕПИ: отсоединение от состава одного (дальнего от ло­комотива) вагона;

    — ПРИЦЕПИ: соединение с одним (ближайшим к составу) вагоном;

    — СТРЕЛКА (команда выполняется только для одной из стрелок, ближайшей к составу).

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

  1. Новый исполнитель называется Квадратик. Назван он так потому, что с его помощью можно рисовать некоторые про­стые фигуры и среди них — квадрат.
  2. Среда Квадратика — рисованная модель экрана.
  3. СКИ составлена из пяти команд:

КВАДРАТ (KB)

ТРЕУГОЛЬНИК (ТР)

ОКРУЖНОСТЬ (ОК)

ЗАКРАСКА (ЗА)

ОЧИСТКА (ОЧ)

Команды этому исполнителю надо задавать, набирая их на клавиатуре заглавными русскими буквами (для упрощения в начальном состоянии программы установлен, по умолчанию, регистр заглавных русских букв). В связи с двойным способом задания команд Квадратика уместно отвлечься для обсуждения методического механизма постепенного сокращения синтаксических конструкций. Сущ­ность этого метода состоит в том, что при первой встрече с тем или иным объектом, он (объект) по требованиям используемого языка записывается длинной синтаксической конструкцией. Конструкция эта, тем не менее, несет отчетливое семантиче­ское наполнение. Работая с такой конструкцией, школьник лег­ко усваивает изучаемое понятие, теряя, правда, темп за счет набора длинных слов на клавиатуре. С усвоением понятия можно использовать его сокращенные формы, которые, возможно, ме­нее выразительны с точки зрения содержания понятия, но существенно ускоряют клавиатурные операции. Так, в Робике — одном из первых учебных языков программирования, ориенти­рованных на младших школьников (Г. А. Звенигородский, «Первые шаги программирования», М.: Наука, 1986), команда присваивания сначала вводилась в своей полной форме:

ЗНАЧЕНИЕ [ИМЕНИ] <имя-1> ПРИСВОИТЬ ИМЕНИ <имя-2>

в которой раскрывалось содержание сложной, но фундаменталь­ной команды присваивания; затем разрешалось опускать неко­торые ключевые слова; получалась команда типа

ЗНАЧЕНИЕ АЛЬФА ПРИСВОИТЬ ИМЕНИ БЕТА

Потом оказывалось возможным не писать и слово ЗНАЧЕНИЕ:

АЛЬФА ПРИСВОИТЬ БЕТА

Наконец, вершиной фрагмента темы, посвященной присваи­ванию, становилось введение условного обозначения, которое заменяло собой ключевое слово ПРИСВОИТЬ:

АЛЬФА -> БЕТА

Школьники, прочувствовав в предшествовавших многочис­ленных трудоемких упражнениях смысл операции присваива­ния, встречали этот символ с пониманием и удовлетворением. Вернувшись теперь к исполнителю Квадратик, можно ска­зать: как ни трудно школьнику набирать длинные слова ТРЕ­УГОЛЬНИК и ОКРУЖНОСТЬ, следует настоять на том, чтобы в первом упражнении использовались полные варианты команд. С этой целью учитель (пока!) не говорит детям, что означают выделенные цветом первые две буквы в слове-команде. А вот при повторных упражнениях учащиеся узнают, что вместо длин­ной команды можно использовать ее двухбуквенную сокращен­ную форму и, как правило, принимают такую рекомендацию с удовольствием.

Если следовать схеме знакомства с исполнителем, то неис­следованными остались пункты «Как выполняются команды» и «В каких ситуациях возникает сообщение Не могу». Важно, чтобы эта часть работы была проведена детьми полностью само­стоятельно.

Арифметические исполнители

Арифметические исполнители представляют собой методи­чески эффективный раздел обширной темы «Исполнители» в курсе раннего обучения информатике. Арифметические опера­ции выполняются командами, которые, с одной стороны, строго формализованы и не требуют дополнительных комментирующих обсуждений, а с другой стороны, хорошо знакомы учащимся на­чальной школы по урокам математики. Чтобы опереться на ап­риорные знания младших школьников, в качестве множества значений операндов в арифметических операциях программных исполнителей используются только целые положительные чис­ла. С этим ограничением связаны аварийные сообщения «Не могу» у тех исполнителей, которые допускают операции вычита­ния и деления (хотя, разумеется, ориентируя такого рода испол­нителей на старших школьников, программисту, реализующему такой исполнитель, не составило бы труда предусмотреть отрица­тельные и дробные результаты арифметических операций).

Простейшим из программных исполнителей, представляю­щим этот класс программ в Роботландии, можно назвать Авто­мат. Он использует всего только две арифметические опера­ции, более того, два очень частных случая сложения и умно­жения: сложение (счетчика) только с единицей и умножение (счетчика) только на 2. Задачи этого исполнителя формулиру­ются так: для любого заданного целого числа построить после­довательность команд из СКИ Автомата, которая исходное нулевое состояние счетчика преобразует в заданное число. На таком множестве задач естественно выбрать задачу на оптими­зацию: получить результат с помощью минимального количе­ства команд. В последовательности команд только самая первая команда очевидна: она должны быть сложением, поскольку умножение не меняет нулевое состояние счетчика. Порядок следования остальных команд может быть, вообще говоря, любым. Однако получение заданного результата 13 путем тринадцати прибав­лений единицы — это, несомненно, не лучшее решение. Жела­ние поскорее добраться до результата подсказывает детям идею из последовательности умножений (удвоений). Но почти всегда (кроме случаев, когда заданое число представляет собою сте­пень двойки) такой алгоритм не приводит к решению. Возника­ет задача об оптимальном чередовании команд, приводящих к заданному результату. Решая ее, учитель сначала записывает результат, например, 13 и спрашивает: «Какой из двух команд исполнителя Авто­мат можно получить это число?» Ответ:

ПРИБАВИТЬ

(поскольку в противном случае результат был бы четным). Следовательно, к началу зафиксированной команды в счетчи­ке должно было находиться число 12. Записав это число ря­дом с командой

12 ПРИБАВИТЬ

учитель задает тот же вопрос. Теперь ответ на него звучит ина­че: « I 2 получается командой УМНОЖИТЬ, так как в против­ном случае число было бы нечетным». Этот ответ отмечается записью, располагаемой выше предыдущей:

6 УМНОЖИТЬ

Проводя подобные рассуждения до тех пор, пока не будет до­стигнут нуль (исходное состояние счетчика), получают последо­вательность команд:

0 ПРИБАВИТЬ

1 УМНОЖИТЬ

2 ПРИБАВИТЬ

3 УМНОЖИТЬ

6 УМНОЖИТЬ

12 ПРИБАВИТЬ

которая и является описанием искомого алгоритма. Легко ви­деть, что этот алгоритм, по построению, оптимальный и един­ственный. В таком построении (повторенном несколькими упражнени­ями в классе и домашними заданиями) важна технологическая деталь: команды алгоритма создаются и записываются «задом наперед», в порядке, обратном их предстоящему выполнению. Первая из сформированных команд будет выполняться послед­ней и, наоборот, последняя из записанных команд выполняется первой. Сформулированный порядок формирования и выполне­ния алгоритма прямо повторяет правило стека — «последний пришедший обслуживается первым». Таким образом, хотя у исполнителя Автомат нет своего стека, тем не менее, школь­ник, работающий с Автоматом, формирует стек на листочке бумаги: записанная первой на листочек команда выполняется последней, а последняя записанная — первой. Такая «стековая структура» команд демонстрирует, что в стек могут укладывать­ся не только данные, но и команды. Именно так, в стеке, хра­нят свои команды многие из современных вычислительных машин — от простейших калькуляторов до гигантских супер­компьютеров.

0 ПРИБАВИТЬ

1 УМНОЖИТЬ

2 ПРИБАВИТЬ

3 УМНОЖИТЬ

6 УМНОЖИТЬ

12 ПРИБАВИТЬ

Таким образом, исполнитель Автомат активно подготавли­вает школьника к понятию стека. Это, безусловно, задача про­педевтическая, поскольку при последующем изучении инфор­матики школьники встретятся не раз и со стеком структур данных, и со стеком управляющих структур. На том уроке, где представляется Автомат, слово «стек» еще не произносится: хотя уже известны и Монах, и Машинист, и Автомат, все же стек как самостоятельный объект изучения появляется только у Плюсика. Исполнитель Плюсик — одна из замечательных точек курса раннего обучения информатике, в которой пересекаются ин­формационная и компьютерная линии курса. В информационной линии Плюсик является активной иллюстрацией информацион­ных процессов — хранения, передачи и обработки информации. В компьютерной линии исполнитель Плюсик представлен как модель процессора. В предшествующих разделах курса моделирующие качества программных исполнителей уже обсуждались (Переливашка, Машинист). Однако в школьном кабинете информатики уча­щемуся гораздо ближе компьютер, чем абстрактная Перели­вашка или динамичный, но весьма ограниченный в своих воз­можностях Машинист. Поэтому учителю так важно показать детям исполнитель Плюсик как модель компьютера: здесь они увидят и «процессор», обрабатывающий информацию, и запо­минающее устройство, представленное стеком.

Центральным понятием уроков, посвященных Плюсику, оста­ется, конечно, стек. В исполнителе Машинист он существовал как некоторый вспомогательный объект. Сейчас на нем фоку­сируется внимание. Как всегда, организуя «предмашинную» часть урока, учитель показывает, как стековый механизм па­мяти реализуется в стопке книг, на детской пирамидке, в мен­зурке, наполненной покрашенными шариками для настольного тенниса. Во всех этих примерах-демонстрациях дети знакомят­ся с новыми понятиями — верхушка стека, глубина стека. В компьютере стек очень удобен тем, что адрес операнда всякой операции определяется однозначно — это верхушка стека. Что­бы выполнить, например, команду СЛОЖИ, надо сначала взять из верхушки стека один из операндов. Конечно, в операции сло­жения безразлично, какой из операндов второй, а который — первый. Но формальный исполнитель Плюсик даже в этом слу­чае поступает по реализованному в нем алгоритму: в верхушке стека располагается «второй» операнд операции. Когда слагаемое из верхушки стека взято, то, тем самым, место в верхушке осво­бождается, и его сразу же занимает следующий элемент стека, который является первым слагаемым операции. Взятое из вер­хушки стека число попадает на один из двух входов устройства, непосредственно выполняющего операцию. Это и есть арифме­тическое устройство процессора. Затем из стека (вновь из вер­хушки) извлекается следующее число, которое в нашей опера­ции является первым операндом. Это число попадает на другой вход арифметического устройства. Устройство выполняет сло­жение введенных таким образом чисел, а получившийся на вы­ходе результат отправляется обратно в стек и занимает место опять в верхушке стека. В результате выполнения арифметиче­ской операции глубина стека уменьшается на единицу: вместо двух взятых чисел-операндов в верхушке стало одно число-результат.

В начале работы исполнителя стек пуст. Чтобы его запол­нить, нужна команда, имеющая формат ЗАПОМНИТЬ <число>. В результате ее выполнения число, задаваемое в команде, попадает в верхушку стека, а глубина стека увеличивается на единицу. Можно поэкспериментировать с этой командой, вводя в стек несколько чисел подряд. Цель эксперимента — опреде­лить, в какой ситуации команда ЗАПОМНИ порождает сообще­ние «Не могу». Далее, демонстрируется выполнение коммутатив­ных операций сложения и умножения. Ставя вычислительные опыты с исполнителем Плюсик, дети могут поставить вопрос о сообщении «Не могу» для команд СЛОЖИ и УМНОЖЬ и, глав­ное, самостоятельно ответить на них. Больше внимания требуют команды ВЫЧТИ и ДЕЛИ. В этих командах первый операнд — уменьшаемое и делимое — дол­жен быть больше второго операнда — вычитаемого и делителя (коль скоро принято соглашение о множестве целых положительных чисел как области определения операндов Плюсика). Но поскольку Плюсик всегда направляет первый операнд на правый вход арифметического устройства, а второй — на ле­вый, то порядок выполнения некоммутативных операций дол­жен быть предусмотрен при заполнении стека. Следовательно, из двух операндов команды ВЫЧТИ первым в стек должно по­пасть большее — уменьшаемое, а вторым — меньшее вычитае­мое, так как на левом входе арифметического устройства ока­зывается последнее попавшее в стек число. Упражнения с некоммутативными арифметическими операциями занимают столько времени на уроках Плюсика, сколько необходимо для усвоения этого непростого механизма, устанавливающего соответ­ствие между последовательностью команд формирования стека и выполнением некоммутативных операций. Только после этого можно переходить к вычислению ариф­метических выражений, где участвуют три операнда. Если в число операций такого выражения входит, по крайней мере, одна некоммутативная операция, то порядок заполнения стека становится важным.

В вычислении выражения 2 + 7 — 3 возможны два вариан­та. Первый из них — с возможно опускаемыми скобками: (2 + 7) - 3, второй — со скобками обязательными 2 + (7 - 3).

В первом случае уменьшаемое — сумма, которая вычисляет­ся в скобках, попадает в стек раньше, чем в верхушку стека по­падает вычитаемое — 3, как этого требуют правила вычитания в стеке.

ЗАПОМНИ 2

ЗАПОМНИ 7

СЛОЖИ

ЗАПОМНИ 3

ВЫЧТИ

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

ЗАПОМНИ 2

ЗАПОМНИ 3

ЗАПОМНИ 7

ВЫЧТИ

СЛОЖИ

Отсюда видно, что если есть разные варианты группирования операндов в скобки, то предпочтение следует отдавать тем из них, при которых в скобки попадают некоммутативные операции. Ясно, однако, что это возможно не всегда. Вот пример: 7 + 2 - 3. В нем (7 + 2) - 3 — это разрешимая задача для Плю­сика, а при вычислении 7 + (2 - 3) Плюсик, работающий толь­ко с положительными числами, выдаст сообщение «Не могу». Таким образом, расстановка скобок — это сложный момент темы. Тем более, что в программе для Плюсика они формально отсутствуют, их всегда надо держать в воображении (или пере­носить это воображение на лист бумаги в виде дополнительных скобок). Например, для вычисления

(15 - 3) : (1 + 2)

надо отчетливо осознавать, что сначала в стек должны попасть числа, участвующие в вычислении делимого (левой скобки), за­тем следует выполнить операцию над этими числами, чтобы скобка сменилась одним числом, затем сверху в стек добавить числа, необходимые для вычисления делителя (правой скобки), только после этого вычислить делитель и выполнить послед­нюю команду ДЕЛИ:

ЗАПОМНИ 15

ЗАПОМНИ 3

ВЫЧТИ

ЗАПОМНИ 2

ЗАПОМНИ 1

СЛОЖИ

ДЕЛИ

На примере Плюсика полезно закрепить механизм постепен­ного сокращения синтаксических конструкций: на первом за­нятии с этим исполнителем команды предлагаются в развер­нутой форме, а далее используются их сокращенные формы С (СЛОЖИ), У (УМНОЖЬ) и т. д. В частности, операции со скобками целесообразно выполнять после того, как хорошо освоены сокращенные формы команд Плюсика. Для преобразования обычного арифметического выражения в программу для Плюсика можно просматривать выражение по­следовательно слева направо, записывая команды ЗАПОМНИ число. Если после очередной записи команды ЗАПОМНИ выяснит­ся, что над последними двумя числами в стеке можно выпол­нить арифметическую операцию, записывается соответствую­щая команда. Если строго следовать этому алгоритму, ошибки не будет!

Пример.

Выражение: 28*(36-700/5)+15

(*) Составление программы для Плюсика: Просматриваем запись (*) слева направо и записываем команды запоминания:

ЗАПОМНИ 28 (нельзя выполнить операцию)

ЗАПОМНИ 36 (нельзя выполнить операцию)

ЗАПОМНИ 700 нельзя выполнить операцию)

ЗАПОМНИ 5 (можно выполнить деление)

ДЕЛИ (700/5, можно выполнить вычитание)

ВЫЧТИ 36-700/5, можно выполнить умножение)

УМНОЖЬ (28*(36-700/5), нельзя выполнить операцию)

ЗАПОМНИ 15 (можно выполнить сложение)

СЛОЖИ (28*(36-700/5)+15)

Возможности Плюсика полностью покрывают вычислитель­ные потребности начальной школы. Поэтому в качестве завер­шения темы «Арифметические исполнители» можно пореко­мендовать проведение урока математики в школьном кабинете информатики. Последнее обстоятельство настолько важно, что при возможности следует (даже ценою разового перепланирова­ния расписания кабинета информатики) пригласить детей в ка­бинет на урок, который в расписании назван «математика». Столь же важно, чтобы такой урок провел основной учитель класса, ведущий, в частности, математику, даже если курс ран­него обучения информатике ведет в классе другой учитель (что должно быть, как об этом говорилось в предшествующих лек­циях, скорее исключением, нежели правилом). На таком уроке сосредоточены вычислительные упражнения — задачи и при­меры, решения которых записываются не в тетрадях, а на компьютерных экранах, в среде Плюсика. А сами задачи и примеры учитель не придумывает, а предлагает из школьного учебника (задачника) математики, с которым дети постоянно работают в школе. У такого урока, наряду с его учебными целями, большой важности воспитательная задача: здесь конструктивно и эф­фективно демонстрируются межпредметные связи информатики; дети воочию убеждаются, что компьютер — не только объект изу­чения на уроке информатики, но и дидактический инструмент других уроков. Позднее такие уроки можно сделать регулярны­ми (компьютерные диктанты и грамматические упражнения на уроке русского языка, оформление дневника наблюдений на уроке естествознания и т. п.). Плюсик позволяет показать детям нетрадиционную запись арифметического выражения, называемую обратной польской записью. Эта запись оказывается очень удобным средством в компьютерных программах, переводящих обычные арифмети­ческие выражения на язык компьютеров, память которых ор­ганизована в виде стека.

Вот как может выглядеть обычная запись выражения:

а + b * (с + d/e)/f

Обратная польская запись того же выражения имеет вид:

abcde/+*f/+

Сравните: Обычная запись выражения:

2 + 5 * (10 + 134/12)/7

Программа для Плюсика:

ЗАПОМНИ 2

ЗАПОМНИ 5

ЗАПОМНИ

10 ЗАПОМНИ

134 ЗАПОМНИ

12 ДЕЛИ

СЛОЖИ

УМНОЖЬ

ЗАПОМНИ 7

ДЕЛИ

СЛОЖИ

Конечно, при работе с Плюсиком не надо вводить термин «обратная польская запись», но нужно добиться, чтобы перевод выражения из обычной формы в обратную польскую (програм­му для Плюсика) не представлял для детей особого труда.

Арифметические игры и математические применения

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

Такова игра Баше — классический алгоритмический этюд. Играя в эту игру, приходится вычислять (устно) разности меж­ду количествами объектов. Многочисленны в школьной математике задачи на взвеши­вания для определения фальшивых монет. Один вариант такой игры (только одна монета в множестве монет является фальши­вой, и она легче остальных) включен в Роботландию в виде программы Пиастры. Цепочка простых арифметических опе­раций и сравнений (выполняемых мысленно) составляет основу для принятия решений в этой игре. Насыщена сравнениями двузначных чисел игра Максит. Здесь при каждом ходе должны быть выполнены серии число­вых сравнений с целью выбора оптимального решения. Часть вычислительной работы (отслеживание состояния счетчика) оставляет за собой компьютер, однако на долю пользовате­ля-ученика выпадают хотя и не сложные, но многочисленные арифметические операции.

Еще более широко представлены вычислительные игры в программно-методической системе Хиты Роботландии. И это не удивительно: ведь основная ориентация этой открытой сис­темы — на предметные использования компьютеров в школе (Роботландия входит в эту систему в качестве одного из компо­нентов). Одна из страниц в мониторе Хитов называется Счи­талка. На странице Считалки расположен, в частности, и Плю­сик. В пакете Считалка заслуживают внимания (с точки зрения обсуждаемой сегодня темы) две программы. У одной из них не претенциозное название — Устный счет (и она оправдывает свое название), но возможности этой программы широки: она представляет, по существу, пакет арифметических игр, выбор того или иного варианта игры делает пользователь-ученик (воз­можно, по указанию учителя).

На экране — множество карточек, покрывающих прямо­угольную область на экране. В ней п строк и п столбцов (п ме­няется, в зависимости от варианта задачи, от 4 до 10). Карточ­ки пронумерованы числами от 1 до п х п. Несколько случайно выбранных компьютером номеров (при п = 4 — три номера, при п = 6 - 5 номеров, при п = 10 - 10 номеров) выделены яр­кой подсветкой. Возможное исходное состояние для таблицы при п = 4 показано на рисунке, который приведен на следую­щей странице:

Игрок делает ход, составляя выражение — сумму или раз­ность (вид выражения зависит от условий задачи, выбираемых в начале работы программы) — из чисел, написанных на кар­точках. При этом, по крайней мере, один из трех элементов выражения должен быть «выделенным». Например, для приве­денного рисунка с указанными выделениями в числе допусти­мых могут быть выражения:

2 + 3 = 5; 5 + 9 = 14; 2 + 12 = 14.

В первой и второй суммах — по одному выделенному эле­менту, в третьем — все три элемента выделены. Если выраже­ние составлено правильно, то карточки с числами, образующи­ми это выражение, убираются с экрана, открывая спрятанную под ними картинку. Понятно, что с каждым «правильным» вы­ражением количество выделенных чисел уменьшается. Однако по исчерпании всех выделенных чисел программа создает (сно­ва случайно) очередную тройку выделенных чисел. Если выра­жение составлено неправильно (либо левая часть выражения не равна правой, либо оба операнда и результат являются не выде­ленными числами), компьютер сообщает «Не могу».

Из-за ограничений на правильность выражений все карточ­ки убрать с экрана не удается. Выигрывает тот, кому удалось убрать наибольшее количество карточек. Хотя один кон игры проводит один ученик, в такой игре можно устраивать разные коллективные соревнования и турниры — на наименьшее ко­личество оставшихся карточек или на время.

Вторая программа пакета Считалка интересна тем, что на­глядно демонстрирует, как старые и давно забытые алгоритмы возрождаются вновь при новых дидактических инструментах. Речь идет о программе Умножайка, моделирующей умножение многозначных чисел по старинному методу, предложенному ве­ликим математиком древней Средней Азии — Аль-Хорезми. Для каждого произведения создается таблица с числом столб­цов, равным числу разрядов первого множителя, и числом строк, совпадающим с числом разрядов второго множителя. Так, для произведения 327*3456 строят таблицу, которую за­полняют по правилам знакомой младшим школьникам табли­цы умножения:

Теперь начинаются подиагональные сложения клеток, начи­ная с правого нижнего угла. При этом под нижней клеткой диагонали (ниже таблицы) записывается младший разряд диа­гональной суммы, а старший разряд переносится на следующее суммирование:

Аль-Хорезми использовал этот метод в своей педагогической работе, обучая алгоритмам вычислений немногочисленных (по нынешним временам) студентов. Ян Амос Коменский, введя классно-урочную систему, поставил метод «на поток»: преж­ний метод (Аль-Хорезми) требовал для каждого вычисления от­дельный лист бумаги; при стремительно растущем количестве учеников пришлось изобретать иные алгоритмы, экономящие бу­мажные ресурсы. Так вошел в школу тот привычный сейчас метод умножения многозначных чисел, где числа надо пере­множать, формируя суммируемые строки и смещая одну стро­ку относительно другой влево на один разряд.

Персональный компьютер может вернуть прежнему методу его силу: ведь расходы на необходимую при промежуточных расчетах память незначительны при нынешних объемах запо­минающих устройств. Значит, в школьных кабинетах инфор­матики можно вычислять точно так же, как это делал десять веков назад великий Аль-Хорезми. А если учесть, что в про­грамме реализованы несколько режимов работы (ручной, полу­автоматический и автоматический), то программа Умножайка становится не только практическим вычислителем, но и хоро­шим методическим инструментом. Рассказывая об алгоритме Аль-Хорезми, нельзя не вспом­нить выдающегося советского ученого, математика, педагога, методиста, историка Наума Яковлевича Виленкина, которому и принадлежит идея возрождения метода Аль-Хорезми.

Мы рекомендуем учителю математики, имеющему доступ в школьный кабинет информатики и возможность работать с ис­полнителем Умножайка, попробовать древнюю методику обуче­ния умножению многозначных чисел в современных условиях.