Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №14/2009


Только в номере
Лого-карнавал: опыт и плодотворные идеи

Погружение в ЛогоМиры.

Приглашение на семинар

Лого и бразильский карнавал. Сеймур Пейперт. Разные модели образования

Некоторые способы жизни возможны только в хорошей компании. А иначе никак не получается.

Четыре года назад я предложил нескольким коллегам собраться на семинар. Назвали “Погружение в ЛогоМиры — методика и технология работы в проектной среде”. С тех пор семинар собирается в разном составе и в разных местах. У него есть раздел на сайте “Лаборатории дистанционного повышения квалификации педагогов”, где время от времени разворачиваются обсуждения, потом затихают (ссылка и пояснение в конце).

Один из предполагаемых смыслов этого семинара — сохранение и сообщение опыта. Очень хочется создать некоторое дружелюбное товарищество по взаимной передаче опыта — прямо “с пылу с жару”. Получили в Лого что-то интересное и на радостях сразу показываем — делимся, еще новое пробуем общими силами. Появление такого содружества — одна из моих давних надежд и, соответственно, одна из причин появления этого семинара.

Сеймур Пейперт — ученик Пиаже, математик и психолог — создал язык Лого в 1967 году, то есть больше 40 лет назад. И создал не для обучения детей программированию, как многие думают, а для того, чтобы у детей и взрослых была компьютерная среда, помогающая им наиболее эффективно развиваться вместе. То есть этот язык должен был бы стать для людей в некотором смысле родным.

Свои принципы и соображения Пейперт опубликовал в книге “Переворот в сознании: дети, компьютеры и плодотворные идеи”. В 1989 году эта книга была издана на русском языке, и многие, я думаю, ее читали.

В одной из глав он пишет про две основные модели образования.

Первая всем нам хорошо знакома. Сверху учитель (а над ним программа!) — снизу ученики. От учителя очередные порции знания попадают к ученикам, если они будут послушны и внимательны. А если не будут — ну сами виноваты и пусть стоят в углу. Эта модель людей “строит” — с первых же шагов ставит их на формальные “программные” рельсы и далее целенаправленно обучает — основательно, регулярно, по пунктам. При этом одновременно, как часто бывает, отучает думать и действовать сообразно живым ситуациям. Школа, построенная по такой модели, передает ученику массу ценнейших знаний, но процесс приема-передачи осуществляется малоэффективно. Главным образом благодаря этой самой вертикальной схеме передачи. Обязательно надо добавить — есть замечательные учителя, и они в рамках этой самой модели творят подлинные чудеса. Но это не снимает общей проблемы.

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

Каждый раз, когда что-то становится регулярным и обязательным “по программе”, возникает проблема мотивации. Даже если речь идет о таких нескучных по своей природе вещах, как литература или математика.

В идеале жизнь (вовсе не обязательно именно школьная) должна бы подбрасывать школьникам реальные задачи, в решении которых остро требуется школьная премудрость — математика, география, информатика, литература… Но не подбрасывает. То ли с жизнью что-то не так, то ли школа не очень-то на это ориентирована. Но факт — не срастается одно с другим.

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

Один из таких образов — бразильские школы самбы, народные клубы по подготовке ежегодного карнавала.

Люди собираются и готовят массовое танцевальное представление. Кто пришел — тот и пришел, всем весело и интересно. Это представление будет еще и состязанием с другими такими же клубами. И вот собравшиеся готовят праздник с общим желанием добавить что-то свое к общей радости — что-то такое сделать, чтобы все обалдели. То есть эти собрания — просто их жизнь, они собираются и танцуют. Радость танца — главная мотивация. Люди чувствуют себя естественно и свободно просто потому, что вся обстановка естественна и свободна. Быстро собирается группа, которая сочиняет и обсуждает сценарий. Те, кто умеет что-то особенное, показывают остальным. Вместе выбирают роли и движения каждому по силам. Если надо чему-то научиться или научить другого — это происходит просто по ходу жизни. Каждый понимает, что он умеет, чему хотел бы и может научиться. И чему сам может научить других.

Это не значит, что я, например, предлагаю сбросить ежедневную школьную рутину с парохода современности — мы все в ней существуем, это наша жизнь. Но пусть с нами будет и образ другой жизни и другого учения — веселого и свободного. Учения, которое может происходить как бы само собой, просто в комнате или на полянке, где люди собрались повеселиться и подготовиться к чему-то радостному и важному для них всех.

Мы будем заниматься более или менее формальными вопросами, но давайте время от времени соединять две линии Пейперта: идею компьютерной среды и идею карнавала. Будем пробовать.

Почему я программирую на Лого

Мог бы и на Паскале или на Си, а вот программирую на Лого. Я уверен, что “детская” среда программирования не должна иметь потолка. А это означает, что в такой среде взрослые реально (а не только с учебной целью) должны программировать на том же самом языке, что и дети. Иначе у детей будет ощущение, что им раздали пластмассовые молоточки — играть в них можно, а для работы они не годятся. И я взялся решать на Лого задачки, которые возникают по ходу жизни у меня, у детей, у кого-то из друзей. Это не было “умозрительным решением” — просто по-другому не получалось. Некоторые из моих коллег поступают так же. И это меня радует. Лет 10 назад в ИНТе я был на одной из встреч московских учителей с Сеймуром Пейпертом. На вопрос “а Вы сами Лого используете, когда у Вас возникает какая-то интересная проблема?” Пейперт сказал: “Ну конечно! Постоянно”. Такие дела.

Список некоторых тем семинара:

1. Концептуальное позиционирование ЛогоМиров как проектной среды. Учитель информатики в проектной среде. Растровый графический редактор как среда алгоритмических задач. Физика, геометрия и технология растрового мира.

2. Сотрудничество человека с черепахой (взаимодействие реального и виртуального исполнителей). Черепаха-кисть, самодельное перо, черепаха-ладонь (гончарный круг).

3. Наглядные примеры процедурного программирования. Как проще всего дать представление ученикам о переменных. Невидимое окно, невидимый лист. Работа с внешними файлами.

4. Конструируем и исследуем новые миры. Жизнь черепахи с простыми рефлексами. Программирование рисованием. Простые и неочевидные решения традиционных задач: движение по контуру, рисование окружности и дуги.

5. Кинематика. Простые и сложные задачи на движение. Спирали. Параллельные процессы. Фигуры Лиссажу, маяк и лодка, равноускоренное движение.

6. Работа с текстом. Работа со списками. Рекурсия — прием программирования и стиль мышления.

7. Лого в локальной сети. Реализация коммуникационных идей. Чат, форум, совместное рисование. Сетевая игра в ЛогоМирах.

8. Коллективные проекты. Как строить общий дом.

9. Мультипликационный редактор в Лого. Создание веб-страниц с помощью ЛогоМиров. ЛогоМиры как генератор html-кода.

10. Задачи на движение. Живые графики. Черепаха строит график зависимости реального расстояния от реального времени.

11. 12 разных способов создать мультфильм в ЛогоМирах.

Ниже я представлю некоторые материалы семинара, надеюсь, кого-то они заинтересуют.

Команды Лого написаны в их русских “ЛогоМирошных” вариантах.

Маленький проект для начального обучения программированию в ЛогоМирах

С тех пор, как в среде ЛогоМиры к языку Лого добавились разнообразные инструментальные возможности, возникла необходимость время от времени отвечать на вопросы типа: “Ну зачем рисовать домик программно, если можно спокойненько выбрать в графическом редакторе замечательные инструменты и нарисовать все, что нужно”. Однажды мне пожаловалась учительница, что ее третьеклассникам скучно учиться программировать в ЛогоМирах и что ей самой стало скучно от этого.

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

1. Сделать так, чтобы минимальное программирование приводило к значительным результатам, не достижимым просто так с помощью “ручных инструментов”. Можно показать ученикам примеры интереснейших, красивейших рисунков, которые руками не нарисуешь при всем желании. Это могут быть традиционные Лого-узоры: звездочки, спирали, фракталы. Это могут быть и дома, и деревья. Важно, чтобы все это было программно сделать достаточно просто, а руками практически невозможно.

2. Использовать сам процесс “ручного” рисования как повод для постановки актуальных алгоритмических задач. Таких задач я знаю много. В материалах семинара они есть.

3. Превратить программирование в интересную игру с элементами состязаний и приключений.

Вот на эту последнюю тему как раз есть пример, взятый из общего форума нашего семинара.

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

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

Как это все делается?

1. Создаем черепаху по имени “Путник” и отключаем ее от мышки

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

2. Рисуем маршрут для Путника

Толстой светлой линией рисуем маршрут-задание (тот, кто задает задание, может и программно рисовать, если это нужно, а может и “руками”). По этому маршруту игроку (ученику) надо будет с помощью команд Лого провести черепаху.

Надо, чтобы эта линия оказалась нестираемой. Для этого ее следует “заморозить” с помощью команды отключи_фон (обратное действие, соответственно, подключи_фон).

Теперь, даже если мы дадим команду сотри, наша трасса никуда не денется — будет на экране.

3. Создаем окошко и называем его “Маршрут”

В этом окошке ученик будет писать код, двигающий путника к цели. Код виден, никуда с листа не девается. Учитель тоже может в любой момент помочь или проконтролировать. В общем, удобно. В ЛогоМирах 3.0 есть другие способы наглядно разместить код, но все равно мне нравится в окошке. Тут есть дополнительная наука.

В окошке должен быть написан стартовый код:

Путник, домой сотри по

и переведена строка — все остальное будет писать ученик (игрок).

4. Задаем черепахе правило для выполнения

Правило совсем простое:

делай Маршрут

В сущности, все! Уже можно играть. Но для придания системе некоторой игровой интриги нужна еще одна черепаха — та, что будет пускать нас дальше, если путь пройден правильно.

5. Создаем черепаху-Портал

Наряжаем ее деревом или звездочкой. Даем имя “Портал”, — если текущая задача выполнена, то эта черепаха пустит нас к следующему заданию (на другой лист или в другой проект).

В этой черепахе написать правило:

если_иначе коснулись?

"Путник "Портал [лист2]

[сообщи [Ты еще не дошел!]]

При щелчке мышкой в “Портал” будет происходить следующее:

· если Путник касается Портала, то игрок отправится на следующий лист (а может быть, и в другой проект, если использовать команду

возьми_проект "ИмяПроекта;

· если Путник не касается Портала, то появится сообщение: “Ты еще не дошел!”

В отдельных текстовых окошечках можно писать идеи-подсказки.

ВСЕ! Осталось придумывать трассы и проходить их.

Правда, эта система не проверяет правильность прохождения маршрута — Путник может просто “прыгнуть” прямо к Порталу. Но останется след на листе и программа в окошке — в любой момент можно будет отследить такое нарушение и обсудить его с игроком.

Кажется, я представляю себе, как можно вместе со школьниками усовершенствовать эту систему — сделать ее более игровой, заманчивой, в то же время дидактичной, но это отдельная тема.

Другая отдельная тема — как затеять собственно действо вокруг задач-приключений такого рода? Как устроить состязание, которое бы не перегружало человека ответственностью, а наполняло его сердце радостью…

Сотрудничество человека и черепашки. Черепаха-кисточка

Один из моих любимых примеров — превращение черепахи в инструмент живого рисования.

Мне, как и детям, очень часто гораздо удобнее выполнить рисунок своей рукой, а не с помощью хитроумных команд. И зачем мне тогда программирование? А вот зачем: я могу запрограммировать инструмент, которым рисую. В сущности, любая рисовальная программа так и устроена. Только там кто-то все запрограммировал уже за меня. В ЛогоМирах я могу сделать это сам, и сам получить инструменты совершенно необыкновенные — такие, которых нет в других средах.

Моим инструментом (или товарищем в работе) будет черепашка — обученная, далеко превосходящая меня по шустрости, точности, неутомимости.

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

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

Много черепах. КУБ-555

Многие чрезвычайно увлекательные и содержательные модели не требуют “большого” программирования. Вот кубик. Это несложная картинка, “надетая” на черепашку в виде формы:

Как нарисовать кубик? Это так называемая “кабинетная проекция” — фронтальная грань изображается квадратом, боковое ребро отходит под углом 45 градусов и имеет видимую длину в половину реальной длины ребра. Если мерить в экранных точках, то на длину видимого ребра 20 пикселей длина бокового ребра должна быть 7 пикселей по диагонали. 7, а не 10, потому что по диагонали пиксели раза в полтора длиннее, чем вдоль сторон экрана. Грани раскрашиваем в разные тона, исходя из предположения, что свет падает сверху — слева — спереди.

При рисовании кубика можно использовать редактор форм. Это поможет избежать мелких огрехов. Можно обойтись без редактора форм.

Внутри черепашки очень несложное правило:

вп 200 лв 180.

Обратите внимание: формально — это все программирование в этом проекте.

Наш кубик умеет “ускакивать” по щелчку со своего места. А по следующему щелчку возвращаться. Изюминка в том, что таких кубиков будет много и мы соберем из них структуру — большой КУБ.

Скопируем исходную черепашку-кубик несколько раз и аккуратненько приставим кубики один к другому. Получим ПОЛОСКУ (см. рисунки ниже).

Скопируем полоску и из нескольких полосок вручную составим СЛОЙ.

Все черепашки — копии исходной, они знают одно и то же правило — по щелчку убегают со своего места и по щелчку возвращаются обратно.

И, наконец, копированием слоев собираем целый КУБ.

 

При сборке надо быть очень внимательным, чтобы все кубики встали ровненько грань к грани.

Можно, конечно, и программно такой куб собрать, но эта задача не для третьеклассников. А собрать кубик, просто копируя объекты, вполне для них посильная задача. Результат же оказывается очень интересным.

Когда КУБ собран, выполним отключи "ИмяЛиста, чтобы черепах нельзя было ненароком сдвинуть со своих мест случайным движением мышки.

Из этого КУБа можно сделать очень интересные вещи:

Теперь, получая задание в виде словесных описаний или картинок, можно ломать голову над созданием таких вот объемных фигур. Трудность в том, что мы не можем повернуть кубик, и, стало быть, прежде чем добраться до скрытых кубиков, нам придется убирать верхние или передние слои. Попробуйте “вытащить” из этого КУБА стул со спинкой, табуретку и выдумать что-то свое, неожиданное.

Интересно, что любая задача из этой серии имеет решение — длинное, но надежное. И это решение (замечу в скобках) вплотную подводит нас к идее рекурсии — главного инструмента языка Лого. Особая задачка для старших — посчитать, сколько всего разных вариантов можно собрать из одного КУБА. Некоторые задачи имеют простое решение, над другими придется потрудиться.

Обратите внимание: мы совсем немного программировали, но благодаря “вкусному” зрительному образу одного элемента и емкой структуре целого появился целый мир новых возможностей. Кажется, это один из важнейших принципов среды Лого.

Много черепах. Счеты

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

Написать счеты на компьютере — задачка не очень сложная. Почему бы и не на Лого? Одно смущало — такое количество черепашек (каждая косточка) будет двигаться не очень-то быстро. При расчетах — еще куда ни шло, а при сбросе на ноль больших значений придется несколько секунд сидеть и ждать. Так я и сомневался, пока однажды под утро не понял сквозь сон, что черепахи должны выполнять роль не отдельных косточек, а целых линеек с косточками. Идея оказалась очень простой и продуктивной. Очень просто сделать так, чтобы щелчок в линейку различал конкретное место щелкнутой черепашки — по разнице координат самой черепашки и курсора. А по расстоянию от курсора до центра клюнутой черепашки совсем не сложно вычислить номер клюнутой косточки. Разным отложенным на линейках значениям должны соответствовать разные формы черепах.

Например, эта форма отображает число 0.

А эта форма — число 5.

Идея буквально за 5–6 часов привела меня к созданию Лого-счетов. Но, написав эту программу, я задумался. Десятичные счеты вроде бы нужны действительно только в начальной школе, а вот если использовать тот же программный аппарат для создания счетов двоичных или шестнадцатеричных, то получится экранный прибор уже для средней школы — очень полезный в теме “Системы счисления”. Но не писать же для каждой из систем свои счеты! Проще и удобнее научить черепаху каждый раз делать все то, что делал я сам, создавая счеты десятичные. А число косточек и линеек передавать ей, как параметр. Это оказалось совсем несложным и потребовало еще примерно одного дня работы. Основная идея такова — при создании новых счетов все изображения линеек с косточками для каждой из цифр создаются программно — их отштамповывает специальная черепашка на отдельном служебном листе, и с помощью команды <возьми_графику> они загружаются в соответствующие формы.

Так выглядит лист с десятичными счетами:

На картинке ниже отложено число 16. Это число щелчком в пиктограмму косточки в правом верхнем углу передано в переменную, хранящую число косточек на линейке будущих счетов, — то есть мы сказали, что будем строить шестнадцатеричные счеты.

Далее там же, в верхнем правом углу, щелкаем в пиктограммку счетов.

И вот перед нами ШЕСТНАДЦАТЕРИЧНЫЕ счеты, созданные черепахой.

Они работают, показывая отложенное число и в десятичной, и в заданной системах счисления.

Последнюю версию программы abacus.mw2 вы можете найти в общем форуме нашего семинара. Я мог бы привести тут ее код, но это мало чему поможет — кроме собственно программы, там довольно много объектов, созданных вручную. И вам проще скачать программу, чем мне сейчас создавать описание :).

Много черепах. Гусеница

Все черепахи этой гусеницы движутся “глядя друг на друга”. А самая первая следует за курсором. Каждая черепаха вычисляет расстояние до следующей и сдвигается на часть этого расстояния, заданную значением в окошке “Делитель”.

Бегунок РФ задает размер формы. Если выбрать размер меньше 5, то включается функция “перспектива” и размер начинает зависеть от места черепахи на листе.

Код не привожу — его можно найти на сайте.

Адрес семинара в Интернете на сайте “Лаборатории дистанционного повышения квалификации педагогов” http://learning.9151394.ru/course/view.php?id=7. Он так и называется: “Погружение в ЛогоМиры: методика и практика работы в проектной среде”.

Если вы не зарегистрированы на этом сайте, то можете войти гостем, но лучше зарегистрироваться — тогда можно будет задавать вопросы и получать ответы прямо на сайте.

Можно написать мне на адрес MultiStudia@mail.ru.

Появляйтесь!

Ев. Ге. Кабаков

TopList