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


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

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

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

Визуальное программирование — способ создания программы для ЭВМ путем манипулирования графическими объектами вместо написания ее текста” — такое определение дано в популярной интернет-энциклопедии “Википедия”. Но что в реальности могут дать “визуальные” методы записи алгоритмов? Для ответа на этот вопрос обратимся к более глубокой проблеме — методам взаимодействия человека с ЭВМ — человекомашинном интерфейсе.

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

С точки зрения эргономики людей “сильно разнесенные” переключатели легко включать и выключать не может ни один человек. А вот на какой высоте нужно установить пульт управления лифтом или банкоматом? Эргономическое проектирование подразумевает выбор таких парамет­ров устройства управления, при которых оно будет удобно среднестатистическому большинству, например, автомобильное кресло окажется удобным для 95% водителей, тогда как остальным 5% такие кресла покажутся неудобными. При этом создание кресла, которое подходит большему проценту людей (то есть имеющее специальные регулировки), может оказаться физически невыполнимым, так как потребует изменения размера самого автомобиля. Например, если мы захотим, чтобы за рулем было удобно водителям “баскетбольного роста”, то может потребоваться увеличение высоты крыши.

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

Однако не только традиционная эргономика накладывает ограничения на интерфейс педагогических программных средств. Так как большинство механизмов, созданных цивилизацией, взаимодействуют с нами в основном механически, то накоплен большой опыт, и ограничения, связанные с меньшими размерами и весом ребенка, как правило, легко сформулировать и постараться учесть. Но как учесть взаимодействие с программной средой, которое имеет большее отношение к области интеллектуальной, нежели физической? В своей книге “Интерфейс: новые направления в проектировании компьютерных систем” известный специалист в области проектирования человекомашинного интерфейса Джеф Раскин дает ответ: “Мы должны овладеть эргономикой сознания, если мы хотим создавать интерфейсы, которые могли бы хорошо работать. Удивительно, но мы часто не замечаем собственные ментальные ограничения, поэтому для определения границ возможностей нашего сознания мы должны прибегнуть к тщательному наблюдению и экспериментированию. Изучение прикладной сферы наших ментальных способностей называется когнитивным проектированием, или когнетикой1.

Некоторые когнитивные ограничения вполне естественны: например, как нельзя ожидать от обычного школьника способности возводить в квадрат в уме многозначные числа, так нельзя проектировать педагогически программные средства, полноценное использование которых требует детальной зубрежки увесистого тома типа “Введение в Microsoft Word”. Для этого у учащихся просто нет ни сил, ни времени, ни — главное — мотивации. Часто программные системы и известные компьютерные интерфейсы (а также некомпьютерные интерфейсы в широком смысле слова) разработаны с расчетом на некие когнитивные способности, которыми взрослый человек или ребенок на самом деле не обладает. Тогда уместно говорить о низком качестве таких человекомашинных интерфейсов.

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

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

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

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

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

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

Для решения задачи школьнику нужно умудриться поймать сразу трех зайцев:

· продумать алгоритм;

· записать его на некотором (изученном) алгоритмическом языке, причем достаточно формально (Робот, как и собака, понимает только определенные команды. После того как щенка обучили команде “Сидеть”, “сядь” отнюдь не воспринимается им как команда);

· используя (изученный заранее) интерфейс некоторой педагогической программной системы, загрузить алгоритм в ЭВМ и проверить его работоспособность.

Как видим, каждый из трех “зайцев” вполне прыток, и “догнать” его начинающему программисту иногда не под силу. Рассмотренный в лекции 2 метод: от непосредственного управления к записи программы, когда ученик наблюдает текст программы на пульте Робота, — упрощает и ускоряет изучение начал программирования, увы, только если это изучение удалось хоть в каком-то виде начать. Но зайцев-то три, и иной раз ученику справиться с ними сразу не под силу. Ученик не может сделать первый шаг, он в тупике. Как быть, как помочь? Труднее всего помочь с первым зай­цем, ибо ни мы с вами, ни самые маститые ученые пока не очень понимают, как человек придумывает что-то новое. Однако если первого зайца за ученика мы не можем “поймать”, то упростить ему задачу “ловли” двух других и оставить больше сил на первого мы в силах.

Этому служат правильный продуманный интерфейс педагогического программного средства (на всех этапах изучения информатики) и визуальное (пиктографическое) программирование.

Пиктограммы (от англ. — icons) — маленькие картинки, служащие для обозначения кнопок и других объектов на экране. Пиктограммы являются неотъемлемым признаком современных интерфейсов. По мнению компании Apple Computer, “пиктограммы могут существенным образом увеличить ясность и усилить привлекательность приложения. Кроме того, использование пиктограмм позволяет намного упростить процесс перевода программ на другие языки. Всякий раз, когда требуется добавить объяснение или надпись, попытайтесь вместо текста использовать пиктограмму”. Однако, по словам Дж. Раскина, повальное увлечение пиктограммами причинило больше вреда, чем пользы человекомашинному интерфейсу: “Пиктограммы делают интерфейс более привлекательным в визуальном отношении и, при определенных условиях, могут способствовать большей понятности. Однако со временем стали понятны и недостатки пиктограмм. Например, как в операционной системе Macintosh, так и в Windows сейчас уже используются средства для объяснения значения пиктограмм. Если вы наводите курсор на какую-то пиктограмму, появляется небольшое окно с текстом, в котором дается ее описание. Возникает очевидный вопрос, который я неоднократно слышал от пользователей, впервые встретивших такие текстовые окна: “Почему вместо пиктограмм сразу не использовать текст?” <…> Ведь, по сути дела, вместо того чтобы объяснять, пиктограммы зачастую сами требуют для себя объяснений3. Иногда использование пиктограмм обосновывается их независимостью от языка, что является ценным свойством для программного обеспечения с точки зрения расширяющегося международного рынка. Однако следует учитывать, что… смысл пиктограмм зависит от культуры, в которой они используются”4.

В педагогическом программном средстве, призванном для изучения начал программирования, использование пиктограмм вполне уместно.

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

Смысл трех “зеленых” пиктограмм-стрелок достаточно понятен, они изображают команды “Вперед”, “Вправо” и “Влево”. Пиктограмма с банкой краски изображает команду “Закрасить”. Четыре команды обратной связи, разбитые на две пары, помечены красным знаком вопроса. Пиктограмма “кирпичная стена” изображает команду-вопрос “Впереди стена”; перечеркнутая “кирпичная стена” изображает команду-вопрос “Впереди свободно”. Пиктограмма “закрашенная клетка” изображает команду-вопрос “Клетка закрашена”. Перечеркнутая “закрашенная клетка” изображает команду-вопрос “Клетка чистая”. Ученик составляет программу, собирая ее из команд “с полки” и размещая в ячейках “главного алгоритма”. Процесс редактирования программы состоит в добавлении или удалении команд в алгоритм и из алгоритма. При добавлении команды между занятыми ячейками команды раздвигаются, освобождая место для вставки. Вставка возможна, пока в шаблоне для алгоритма есть свободные ячейки. Кроме главного алгоритма, с которого всегда начинается выполнение программы, в “ПиктоМире” можно использовать три вспомогательных алгоритма — f1, f2, f3. На каждый алгоритм отводится 12 ячеек для команд. На полке “ПиктоМира” рядом с командами исполнителя лежат команды f1, f2, f3. Учителю придется потратить минуту на то, чтобы научить детей читать эти три команды. Впрочем, учителю обязательно нужно потратить гораздо больше времени на то, чтобы дети запомнили названия команд, — это поможет им в составлении программы и позволит уверенно обсуждать процесс ее составления между собой и с учителем.

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

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

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

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

Рассмотрим, например, решение задачи 8а из учебника5 (см. рисунок а).

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

Какие же стимулы мы можем использовать? Один из мощных стимулов — естественная “здоровая” лень ученика. Когда для решения очередной задачи потребуется выполнить большое количество однообразных действий, сам по себе возникнет вопрос, как тут схитрить. Так, для задачи 8д при составлении алгоритма “в лоб” в “ПиктоМире” потребуется выдать Вертуну 28 команд (в предположении, что в начальный момент Вертун смотрит направо). Действительно, Вертун должен закрасить 12 клеток, а для этого он должен будет сделать 12 шагов и 4 поворота в четырех угловых клетках. В “ПиктоМире” создано искусственное ограничение на размер алгоритма — по 12 команд в основном и во вспомогательных алгоритмах. Понятно, что последовательность из 27 команд не уместится в 12 ячейках главного алгоритма. Естественная реакция школьника на нехватку ячеек в главном алгоритме — использование ячеек в алгоритмах f1, f2 и f3. Для этого можно прибегнуть к простой хитрости, ставя в конце главного алгоритма пиктограмму f1, а в конце алгоритма f1 — пиктограмму f2. Тем самым, не строя пока еще отношения основной — вспомогательный между алгоритмами, а фактически создавая один большой алгоритм, любой школьник сумеет решить задачу 8д (и попутно привыкнет к использованию f1 и f2). При этом, хотя необходимость “перетаскивания” 30 команд может подвигнуть часть школьников к повторному использованию f1 (или даже f1, f2 и f3), задача 8 еще не требует осознания и использования понятия “вспомогательный алгоритм”. Однако можно придумать задачу, которая потребует для решения более полусотни команд и тем самым при решении в “ПиктоМире” (с его лимитом 48 ячеек на команды во всех алгоритмах) приведет школьника к введению “настоящих”, повторно используемых вспомогательных алгоритмов. Другой способ побудить школьников к использованию “настоящих” вспомогательных алгоритмов — организация конкурса на поиск самого короткого решения задач 8а–8е (т.е. занимающего минимальное число ячеек). Такой конкурс может оказаться кратчайшим путем к полноценному использованию вспомогательных алгоритмов. Самым коротким решением задачи 8д окажется решение в 11 команд (см. рисунок).

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

“В общем случае, если в записи алгоритма X встречается вызов алгоритма Y, то алгоритм Y называется вспомогательным для X, а алгоритм X называется основным для Y”.

Но вернемся к решению задачи 8д с 4-кратным использованием f1. Это решение оставляет легкое ощущение незавершенности игры “кто напишет короче”. Сильно смущает основной алгоритм, где идут подряд записанные 4 команды вызова алгоритма f1. Нельзя ли и тут провести модернизацию?

Оказывается, можно. В “ПиктоМире” можно задать, сколько раз нужно выполнять все команды вспомогательного алгоритма, — 1, 2, 3, 4, 5 или 6, или до бесконечности, точнее, пока не будет выполнено определенное условие. Таким специальным способом можно задать в “ПиктоМире” частные случаи общих конструкций: цикл “N раз” и цикл “пока”. Берем пиктограмму с изображением четырех точек (то есть 4) и размещаем ее в синем поле перед вспомогательным алгоритмом f1: команды, размещенные в ячейках алгоритма f1, будут выполнены 4 раза. Тем самым мы исключили 3 команды f1 ценой добавления одной команды повторителя.

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

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

Итак, продумаем сам алгоритм. Перед нами два пути. Первый — написать линейную программу для Робота. Нам нужно пройти и закрасить всего-навсего 6 клеток, так что понадобится всего 12 команд. Второй путь — найти в действиях Робота повторяющиеся куски и попробовать сократить программу (и сделать ее более профессиональной), используя вспомогательные алгоритмы и цикл “N раз”. Выберем второй путь. В алгоритме можно выделить некоторую дважды повторяющуюся часть, алгоритм закраски столбца. Перед выполнением этого алгоритма Робот должен находиться в верхней клетке столбца. После выполнения алгоритма все клетки должны быть закрашены, а Робот должен оказаться в нижней клетке столбца. Так как высота столбца равна 3, закрашивание столбца потребует выполнения трех команд закрашивания и двух команд перемещения вниз:

закрасить

вниз

закрасить

вниз

закрасить

Разместим эти команды во вспомогательном алгоритме и назовем его (по аналогии с “ПиктоМиром”) f1 :

алг f1

нач

закрасить

вниз

закрасить

вниз

закрасить

кон

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

алг f1

дано | Робот в верхней клетке столбца

| высоты 3

надо | Робот в нижней клетке того же

| столбца, все клетки столбца

| закрашены

нач

закрасить

вниз

закрасить

вниз

закрасить

кон

Общий вид главного алгоритма будет таким:

Переместить Робота в верхнюю клетку

первого ряда

f1

Переместить Робота в верхнюю клетку

второго ряда

f1

Переместить Робота в исходное положение.

При этом алгоритм f1 уже составлен, а три перемещения еще надо детализировать.

Нам надо поставить Робота в верхнюю клетку перед первым использованием алгоритма f1. Для этого потребуется одно перемещение на клетку вверх:

вверх

Для перемещения Робота из нижней клетки первого закрашенного ряда в верхнюю клетку второго ряда потребуется 3 команды:

вверх

вверх

вправо

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

нц 2 раза

вверх

кц

вправо

Для перемещения Робота в исходное положение потребуется сместить его влево и вверх.

Итак, алгоритм примет вид:

алг главный

нач

вверх

f1

нц 2 раза

вверх

кц

вправо

f1

влево

вверх

кон

Задача решена, а результаты работы в системе “КуМир” можно увидеть на рисунке:

Замечание. Если отказаться от естественного желания закрашивать столбец сверху вниз и использовать алгоритм f1, “привязанный” к средней клетке ряда, то алгоритм главный упростится, а алгоритм f1 усложнится:

алг f1

дано | Робот в средней клетке столбца

|высоты 3

надо | Робот в той же точке, все клетки

| столбца закрашены

нач

закрасить

вниз

закрасить

вверх

вверх

закрасить

вниз

кон

алг главный

нач

f1

вправо

f1

влево

влево

кон

Упражнения

1. Сформулируйте основные эргономические ограничения младших школьников.

2. Перечислите основные когнитивные ограничения средней школы.

3. Попробуйте написать самые короткие алгоритмы для задачи 8б и 8г с использованием вспомогательных алгоритмов.

4. Напишите короткие алгоритмы для задачи 8в и 8е с использованием вспомогательных алгоритмов и цикла N раз.

5. Напишите программу на “КуМире” для задачи 8д.

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

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

Схема программы без вступления и исполнителей:

алг первый алгоритм

|

кон

алг второй алгоритм

|

кон

. . .

алг последний алгоритм

|

кон

Выполнение такой программы состоит в выполнении первого алгоритма (он называется основным алгоритмом программы). Остальные алгоритмы будут выполняться при вызове из первого алгоритма или из других ранее вызванных алгоритмов.

Схема программы со вступлением и без исполнителей:

вступление

алг первый алгоритм

|

кон

алг второй алгоритм

|

кон

. . .

алг последний алгоритм

|

кон

Выполнение такой программы состоит в выполнении вступления, а затем первого алгоритма.


1 Джеф Раскин. Интерфейс: новые направления в проектировании компьютерных систем. СПб.: Символ-Плюс, 2004.

2 Там же.

3 Как говорил Козьма Прутков: “...пояснительные выражения объясняют темные мысли”.

4 Джеф Раскин. Интерфейс: новые направления в проектировании компьютерных систем. СПб.: Символ-Плюс, 2004.

5 Кушниренко А.Г., Лебедев Г.В., Сворень Р.А. Основы информатики и вычислительной техники. М.: Просвещение, 1990, 1991, 1993, 1996.

6 Кушниренко А.Г., Лебедев Г.В., Сворень Р.А. Основы информатики и вычислительной техники, п. 6.3. М.: Просвещение, 1990, 1991, 1993, 1996.

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

TopList