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


Педагогический университет

Методика преподавания основ алгоритмизации на базе системы “КуМир”. Лекция 1. Основные цели курса. Методика построения курса

Анатолий Георгиевич Кушниренко — кандидат физико-математических наук, доцент мехмата МГУ им. М.В. Ломоносова, заведующий отделом “Учебной информатики” НИИСИ РАН. В 1979 году начал читать новый курс программирования на механико-математическом факультете МГУ, с 1985 года принимал активное участие в развертывании  школьного курса информатики в СССР, руководил разработкой и внедрением в школах и вузах программных систем “Микромир”, “Е-практикум”, “Фортран-практикум”, “КуМир”. Автор и соавтор многих учебников по математике  и информатике. В их числе — учебник для университетов  “Программирование для математиков” и школьный учебник “Основы информатики и вычислительной техники”, изданный тиражом более 8 млн. экз.

А.Г. Кушниренко учился в первом в СССР математическом классе (школа № 444) у С.И. Шварцбурда. Выпускник мехмата МГУ (научный руководитель В.И. Арнольд). С 1970 года и по настоящее время преподает на мехмате МГУ. В течение 5 лет преподавал в математических классах московской школы № 7. В период с 1990 по 1998 гг. преподавал в нескольких американских университетах (Rice, Harvard, Rutgers, Penn State). К научным интересам А.Г. Кушниренко относятся: теория динамических систем, вопросы системного программирования, теория многогранников Ньютона и теория малочленов.  В настоящее время в НИИСИ РАН под руководством
А.Г. Кушниренко ведется разработка производственного и учебного программного обеспечения, в частности, получает вторую жизнь популярная среда программирования “КуМир”.

Александр Георгиевич Леонов — кандидат физико-математических наук, доцент, ведущий научный сотрудник  мехмата МГУ им. М.В. Ломоносова, заведующий сектором отдела “Учебной информатики“ НИИСИ РАН, автор системы “КуМир”, научный редактор тома “Информатика“ — одного из самых популярных томов серии “Энциклопедия для детей. Аванта+”, автор многочисленных учебников, учебных пособий и научно-популярных статей.  

А.Г. Леонов — выпускник мехмата МГУ. С момента начала информатизации школьного образования СССР в 1985 году читал новые курсы лекций в Мосстанкине, МАТИ им. К.Э. Циолковского, на различных факультетах МГУ. Им подготовлено и прочитано свыше 30 различных курсов по программированию, теории компиляции, проектированию информационных систем и пр. Являясь автором многих школьных учебников, руководит рядом связанных с этим программных проектов. Имеет свыше 150 печатных работ. Руководит разработкой новой версии мультиплатформенной среды программирования “КуМир”.

Концепция курса

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

Лекция 1. Основные цели курса

Методика построения курса. Проблемный подход. Теория познается через практику. Система “КуМир” — эффективная поддержка традиционных понятий процедурных языков программирования и традиционных методов отладки. Примеры использования “КуМира“ в предпрофессиональных курсах.

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

· умение планировать структуру действий, необходимых для достижения заданной цели при помощи фиксированного набора средств;

· умение строить информационные структуры для описания объектов и систем;

· умение организовать поиск информации, необходимой для решения поставленной задачи.

№ газеты

Лекция

17/2009

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

18/2009

Лекция 2. Практическое знакомство с системой “КуМир”: исполнитель Робот. Понятие алгоритма. Управление исполнителем Робот с помощью пульта. Линейные алгоритмы. Запись алгоритма. Отступление: Карел-Робот в начальном курсе программирования Стэнфордского университета.

18/2009

Лекция 3. Методы “визуальной” записи алгоритма. Программное управление Роботом. Цикл “n раз”. Использование вспомогательных алгоритмов. Запись алгоритмов на алгоритмическом языке.

Контрольная работа № 1.

20/2009

Лекция 4. Арифметические выражения и правила их записи. Алгоритмы с “обратной связью”. Команда “пока”. Условия в алгоритмическом языке. Команды “если” и “выбор”. Команды контроля. “Визуальное” представление команд. Отступление: правила и форма записи арифметических выражений в Фортране XXI века.

21/2009

Лекция 5. Величины в алгоритмическом языке. Команды ввода/вывода информации. Команда присваивания. Вспомогательные алгоритмы. Алгоритмы с результатами и алгоритмы-функции. Цикл “для”. Табличные величины. Логические, символьные и литерные величины.

Контрольная работа № 2.

22/2009

Лекция 6. Методы алгоритмизации. Рекуррентные соотношения. Метод итерации. Инвариант цикла. Рекурсия.

23/2009

Лекция 7. Физические основы современных компьютеров. Микропроцессор - сердце современного компьютера. Как создать компьютер. 

24/2009

Лекция 8. Виртуальные и реальные исполнители в системе “КуМир”. Исполнитель Чертежник. Лего-Робот - программно управляемый исполнитель “КуМира”. Гипертексты в системе “КуМир”. Подготовка заданий для учащихся и их автоматическая проверка.

Итоговая работа.

Рассматриваемые в совокупности, эти умения и образуют операционный (алгоритмический) стиль мышления, который необходим каждому молодому человеку, живущему в информационном обществе, независимо от его профессиональной подготовки и ориентации. Нам памятен лозунг, выдвинутый академиком А.П. Ершовым в 80-х годах прошлого века: “Программирование — вторая грамотность!”1. В годы начала компьютеризации российских школ этот лозунг украшал школьные кабинеты информатики по всей стране и казался многим красивым преувеличением2. Сегодня, в век персональных компьютеров, телефонов, коммуникаторов, электронных книг, Интернета, банкоматов и электронных библиотек, необходимость “информационной грамотности” не вызывает сомнений. Вопрос в том, в чем же эта грамотность состоит и как ею овладеть?

Ответу на этот вопрос и посвящены предлагаемые лекции.

Замечательный ученый и наш коллега Г.В. Лебедев в 1991 году прочел в Архангельске курс лекций для учителей информатики. Эти лекции были позже отредактированы А.Г. Кушниренко и изданы в виде написанной от первого лица книги “12 лекций о том, для чего нужен школьный курс информатики и как его преподавать”3. Обсуждение вопроса, каким должен быть курс информатики в школе, начнем с обширной цитаты из этой книги. Г.В. Лебедев пишет:

“Курс… образно говоря, базируется на трех “китах”:

1) первый, и основной, “кит” называется “Алгоритмический стиль мышления”: главная цель курса — развитие алгоритмического стиля мышления как самостоятельной культурной ценности, независимо, в каком-то смысле, от компьютеров и всего прочего;

2) второй “кит”: курс должен быть “настоящим”. Слово “настоящий” означает, что в процессе упрощения понятий информатики мы должны не “выплеснуть вместе с водой и ребенка”, т.е. упрощать можно лишь до тех пор, пока не теряется содержание, суть дела;

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

При всей кажущейся прозрачности позиции Г.Лебедева, его высказывания достаточно глубоки и нуждаются в пояснениях.

Алгоритмический стиль мышления не дан нам от рождения. В одной школе учителем информатики на занятии был предложен мысленный эксперимент:

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

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

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

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

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

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

На практике, однако, составление, обсуждение, запись алгоритмов невозможны без использования какой-то системы обозначений, какого-то языка. Язык должен быть более простым и более формальным, чем естественный. Академик А.П. Ершов в начале внедрения информатики в школу предложил школьный алгоритмический язык. Первоначально — в 1985/1986 учебном году — этот язык рассматривался только как инструмент для записи алгоритмов в “безмашинном” курсе информатики. Вот цитата из статьи А.П. Ершова 1985 года: “…в отличие от жестких языков программирования алгоритмический язык обладает некоторой синтаксической свободой, присущей языку “деловой прозы”, ориентированной на читателя-человека”.

Но практика внесла свои коррективы, в том же 1985 году появилась первая система программирования на этом языке, и он стал рассматриваться А.П. Ершовым как “псевдокод”, в котором имеется жесткое ядро с фиксированным синтаксисом и семантикой. В этом качестве язык был расширен, доработан и реализован на всех ЭВМ, использовавшихся в школах СССР (IBM PC, Ямаха, Корвет, УКНЦ и др.). В качестве учебного языка программирования, поддерживаемого программной системой “КуМир”, школьный алгоритмический язык в начале 90-х годов приобрел широкую популярность.

Несмотря на то что за 20 лет практики применения школьного алгоритмического языка опубликовано много аргументов в пользу его использования в школьном учебном процессе, остановимся еще раз на нескольких принципиальных моментах.

Одной из трудностей выбора языка для записи алгоритмов в школе А.П. Ершов называл противоречие между разнообразием языковой практики программирования и единством учебного процесса в школе. Действительно, при наличии производственных языков программирования, таких, как Паскаль и Си, Java и Basic, трудно не остановить свой выбор на одном из них. Но ведь школа готовит не программистов и, более того, с педагогической точки зрения изучение любого алгоритмического языка в процессе предпрофессиональной подготовки в школе можно и нужно рассматривать не как получение конкретных производственных навыков, а как пропедевтику изучения многих производственных языков программирования в последующей карьере.

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

Важным моментом является также национальная окраска школьного алгоритмического языка, его русскоязычность (а также возможность локализации лексики языка в национальных республиках). Ведь уже в дошкольном возрасте ребенок сталкивается с естественными алгоритмами в быту. Разумеется, эти алгоритмы формулируются на родном языке. Отправляя любимое чадо в магазин, мама дает наказ: “Купи два батона по 13 рублей и городскую булочку за 7 руб­лей. Если не будет по 13, то купи один за 18”. Даже в страшном сне невозможно представить мать, почему-то переходящую на иностранный язык при выдаче подобного задания собственному ребенку. Поэтому вполне естественной является запись алгоритмов на родном языке, позволяющая использовать бытовой и лингвистический опыт, уже накопленный ребенком. В период вхождения в новый и сложный для ребенка курс было бы неразумным проигнорировать этот уже накопленный и закрепленный на практике опыт и добавить к содержательным трудностям нового предмета технические трудности освоения множества новых непонятных слов. Такая порочная практика приведет к непроходимым джунглям в кроне дерева знаний. Если вы думаете, что выучить десяток слов на английском языке и использовать их при составлении алгоритмов не составляет никакого труда, прочтите следующий замечательный отрывок из книги А.К. Звонкина “Малыши и математика”5:

Давайте встанем на место ребенка и попробуем сами научиться арифметике... но только по-японски! Итак, вот вам первые десять чисел: ити, ни, сан, си, го, року, сити, хати, ку, дзю. Первое задание — выучить эту последовательность наизусть. Вы увидите, что это не так-то просто. Когда это наконец удастся, можете приступать ко второму заданию: попробуйте научиться считать также и в обратном порядке, от дзю до ити. Если и это уже удается, давайте начнем вычислять. Сколько будет к року прибавить сан? А от сити отнять го? А хати поделить на си?

А.П. Ершов считал также существенным, что школьный алгоритмический язык допускает словесное описание естественных алгоритмов, он приводит следующий пример:

Основная методическая проблема этого и других подобных примеров — неопределенность правил игры. Хотя алгоритм ПЕРЕХОД УЛИЦЫ внешне выглядит понятным, остается неясным, кто отдает команды, скажем, команду “пропусти машину”, и кто эти команды исполняет. Остается также невыясненной связь между отдельными командами: нужно долго вчитываться в алгоритм, чтобы предположить, что вопрос “машина близко” нужно задавать сразу после выполнения одной из команд — “посмотри налево” или “посмотри направо”.

Разрешение всех этих неопределенностей лежит во введении метафоры исполнителя и базового набора понятий:

· исполнитель, система команд исполнителя;

· алгоритм, ЭВМ — исполнитель алгоритмов.

Этот набор понятий в конце 80-х годов прошлого века был введен в нескольких учебниках информатики6.

В те времена считалось, что информатику нужно преподавать в старших классах, и учебники были рассчитаны на 9–11-е классы. Правильна ли эта точка зрения? Когда можно и нужно преподавать информатику в школе?

В работах академика А.П. Ершова указывается на необходимость непрерывного информатического образования. Для каждого из этапов школьного образования он определил следующее содержание:

начальный этап: совокупность наиболее фундаментальных навыков, знаний, понятий и представлений, необходимых для формирования операционного стиля мышления;

центральные классы средней школы: совокупность прикладных навыков и умений, необходимых для применения идей и методов информатики в других отраслях человеческой деятельности;

старшие классы средней школы: система основных положений информатики как науки в соответствии с ее местом в современной системе научных знаний;

выпускной класс: комплекс знаний, необходимых для общей ориентации в возможностях современной и перспективной компьютерной техники и информационных систем.

В реалии школы мы имеем сегодня другую картину, редко когда занятия информатикой начинаются раньше 5-го класса.

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

Таким образом, тезис академика А.П. Ершова “Программирование — вторая грамотность!” можно последовательно перефразировать в тезис “Каждый должен уметь (немножечко) программировать” или в еще более сильный тезис — “Программирование — новая грамотность”. Эта новая грамотность может осваиваться параллельно с традиционной грамотностью или даже предшествовать освоению ребенком умений читать и писать.

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

Поэтому вполне справедливо задаться вопросом о минимальном возрасте, в котором можно начинать занятия по информатике и(или) знакомить детей с элементами программирования (например, программным управлением простейшими исполнителями). Оказывается, что современное поколение можно начинать знакомить с информатикой еще до освоения азбуки! Если предоставить ребенку интересную игрушку-робота или посадить его за управление красочным и интересным персонажем компьютерной игры, то в возрасте 4–6 лет дети вполне справляются с процессом управления, мысленно составляя программу. И более того, после успешного решения задачи ребенок вполне способен объяснить, как надо решать поставленную в игре задачу, в какой последовательности и зачем нужно нажимать кнопки на пульте управления, — т.е. в сознании ребенка формируется программа действий по управлению игрушкой-роботом или персонажем в компьютерной игре. Особенность такого специфического программирования в младшем возрасте в том, что, не умея читать и писать, ребенок не может облечь свой план в письменную форму. Однако может успешно нарисовать этот план или рассказать о нем.

Еще совсем недавно барьер “безписьменности” был непреодолим: сначала требовалось обучить ребенка элементарной грамоте, затем обучить его какому-то записываемому в текстовой форме формальному языку программирования, и только после этого ребенок получал возможность самостоятельно составлять и отлаживать программы на некотором формальном языке. Сейчас этот барьер успешно преодолевается. Например, в Интернете имеется программа-игрушка Light-bot (http://noplay.ru/logic/light_bot.htm). В ней смешной персонаж — Робот-фонарщик — должен ходить по заводским помещениям и зажигать встроенные в пол лампочки дежурного освещения. Робот-фонарщик умеет выполнять лишь простейшие команды: перемещение на одну клетку, поворот, зажигание лампочки, прыжок на ступеньку вверх. Робот перемещается по клетчатому полю-лабиринту, образованному из проходов между стенками-кирпичами, на некоторые из которых Роботу приходится запрыгивать. Лампочки нужно зажечь на местах, отмеченных определенным цветом. Цель ребенка — запрограммировать Робота так, чтобы он зажег лампочки во всех выделенных цветом полях.

Основное достижение этого педагогического программного продукта в том, что ребенок составляет программу действий робота, пользуясь не текстами, а пиктограммами команд Робота, выбирая команды из таблицы команд, изображенной на экране. Интерфейс (drag & drop, англ. тащить и бросать) вполне прост и ясен для ребенка возраста 4–6 лет — нужно мышкой перетаскивать команды из таблицы в программу.

Конечно, ребенку подчас нелегко составить алгоритм в уме, однако, взяв в руки карандаш, практически любой малыш сможет нарисовать свой алгоритм — план будущих действий Робота. Пять элементарных команд Робота фиксированны, две составные команды ребенок может запрограммировать сам. Эти нехитрые правила игры позволяют дошкольнику за 2–3 получасовых сеанса познакомиться с азами программирования.

К простейшим задачам для дошкольников и младших школьников относятся также “Ханойские башни” и всем известные “Волк, коза и капуста”. Многочисленные компьютерные реализации последней задачи имеют практически идентичный и легкий в освоении интерфейс. Активизируют действующих персонажей, как правило, “кликом” мыши. Для повышения интереса детей используются графика и звуковое сопровождение. Практически в любой конкретной реализации игры можно найти мелкие шероховатости и сделать ряд замечаний. Как правило, нигде нет отмены совершенных действий (undo, от англ. — откатка, отмена предыдущего действия). Однако основной недостаток подобных микроигр кроется совсем в другом.

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

За изучением LOGO и Basic’а в системе непрерывного образования, как правило, последуют Pascal, Java или даже Си.

Подобная смена “правил игры” в процессе обучения информатики имеет и положительные, и отрицательные стороны. Хорошо то, что при смене языков программирования и программных систем наглядно выделяются и проявляются их сходства и различия, создается понимание того, что универсально, а что случайно и второстепенно. Плохо то, что на освоение новых правил игры, новых языков и систем программирования, доведение до автоматизма приемов пользования ими уходит много времени и усилий. Иначе говоря, чем чаще меняются правила игры, тем больше непроизводительные затраты.

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

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

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

Еще один довод в пользу разработанного А.П. Ершовым школьного алгоритмического языка — доступность свободнораспространяемой многоплатформенной системы программирования “КуМир”. Эта система эффективно поддерживает школьный язык на практически всех компьютерных платформах, обладает широким набором программных исполнителей и иными методически продуманными средствами повышения производительности труда обучаемого.

В системе “КуМир” используется школьный алгоритмический язык с русской лексикой и встроенными исполнителями Робот и Чертежник. При вводе программы “КуМир” осуществляет постоянный полный контроль ее правильности, сообщая на полях программы обо всех обнаруженных ошибках. При выполнении программы в пошаговом режиме “КуМир” выводит на поля результаты операций присваивания и значения логических выражений. Это позволяет ускорить процесс освоения азов программирования.

Система “КуМир” методически продолжает LOGO, однако в пропедевтическом курсе, который можно начать в младших классах или даже в детском саду, ощущается “программная дыра”, которая с трудом покрывается разнородными программными средствами. Заполнить этот разрыв призван “младший брат “КуМира” — система программирования “ПиктоМир”.

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

Таким образом, “КуМир” окажется полноценным педагогическим программным средством программирования на всех этапах изучения информатики в школе — от подготовительных до выпускных классов.

Иногда “КуМиру” противопоставляют объектно-ори­ентированные языки программирования, предлагая использовать в старших классах именно их. Здесь авторы могут сослаться на свой университетский опыт успешного использования “КуМира” во вводном практикуме по программированию на механико-математическом факультете МГУ. “КуМир” используется в первом семестре первого курса, затем его сменяет изучение языка Си, и только на втором курсе появляется C++.

Разумеется, “КуМир” не является объектно-ори­ентированным языком программирования. Однако он не так уж далек от объектно-ориентированности. В “КуМире” используется широкое по своему охвату понятие “исполнитель”. Под исполнителем понимается не только конструкция языка программирования “КуМир”, но и человек, автомат или прочее устройство, или группа устройств, связанных общими свойствами и имеющих раз и навсегда фиксированную систему команд. Важным свойством исполнителя является его “незнание” об управляющей им системе, что в ООП именуется абстрагированием.

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

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

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

В заключение заметим, что школьный алгоритмический язык и “КуМир” в каком-то смысле закончены, замкнуты. В языке вводятся два фундаментальных понятия структуризации действий — команды ветвления/повторения и вспомогательные алгоритмы и два фундаментальных понятия структуризации объектов: табличные величины и исполнители7.

Действия -> Команды (Циклы) -> Вспомогательные алгоритмы

Объекты -> Величины (Таблицы) -> Исполнители

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


1 Одноименная статья может быть найдена в интернет-архиве А.П. Ершова: http://www.ershov.ras.ru/russian/second_literacy/article.html.

2 Таким же преувеличением, как сделанное А.П. Ершовым в начале 80-х годов предсказание о том, что в скором времени у каждого человека на Земле в повседневном персональном пользовании будет несколько микропроцессоров.

3 12 лекций о том, для чего нужен школьный курс информатики и как его преподавать: А.Г. Кушниренко, Г.В. Лебедев. Методическое пособие. М.: Лаборатория базовых знаний, 2000.

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

5 Звонкин А.К. Малыши и математика. Домашний кружок для дошкольников. М.: МЦНМО, МИОО, 2006.

6 Основы информатики и вычислительной техники: А.П. Ершов,
А.Г. Кушниренко, Г.В. Лебедев, А.Л. Семенов, А.Х. Шень.
Пробный учебник для средних учебных заведений. Под ред. А.П. Ершова. М.: Просвещение, 1988.

Основы информатики и вычислительной техники: А.Г. Кушниренко, Г.В. Лебедев, Р.А. Сворень. Учебник для средних учебных заведений. М.: Просвещение, 1990–1996 (общий тираж разных изданий этой книги составил 7 млн. 560 тыс. экз.; книга была переведена: на молдавский язык, издана в 1991 г. в Кишиневе издательством “Лумина”; на узбекский язык, издана в 1991 г. в Ташкенте издательством “Укитувчи”).

7 Исполнители в “КуМире” используются двояко. На начальном этапе система “КуМир” позволяет использовать готовые исполнители и обучаться программированию, составляя алгоритмы управления ими. На последующих этапах в “КуМире” можно создавать новые внутренние исполнителей в программе, используя их как метод структуризации объектов и действий в программе.

Ан. Ге. Кушниренко ;
Ал. Ге. Леонов

TopList