• Знакомство с системой программирования кумир. Простейший алгоритм

    Исполнитель “Робот”. Понятие алгоритма. Управление “Роботом” с помощью пульта. Команды-вопросы. Протокол сеанса ручного управления “Роботом”. Автоматическое управление “Роботом” с помощью ЭВМ. Алгоритм - план будущей деятельности. Алгоритмический язык.

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

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

    № газеты

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

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

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

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

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

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

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

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

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

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

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

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

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

    Итак, для начального знакомства с Роботом вообще ничего знать не нужно. Даже не обязательно твердо помнить, где “право”, а где “лево”, так как на кнопках пульта Робота вместо слов “вправо-влево” выгравированы стрелки. Но задачи уже можно ставить и решать. Замечательно в этих задачах то, что если уж ученик задумался над задачей по управлению Роботом, то учитель может быть на 100% уверен, что все сложности ученика алгоритмические: “как же это сделать?”, а не “что же тут надо решать?”. Нет сложности не только в самом Роботе, но и в постановке задачи. Нарисуем на поле Робота прямоугольное препятствие размером 3 ? 4, поставим Робота под левым нижним углом препятствия, дадим школьнику пульт и попросим “поуправлять” Роботом так, чтобы он обошел вокруг препятствия и закрасил все клетки, прилегающие к препятствию. Эта постановка задачи проста и даже скучновата. Задача станет интереснее, если попросить школьников составить план решения аналогичной задачи обхода прямоугольного препятствия “неизвестных размеров”. Неизвестность размеров проявляется в том, что пульт школьнику дается, а поле Робота не показывается. Тут-то и возникает стимул для изучения остальных кнопок на пульте Робота - команд-вопросов. Опыт работы со школьниками показывает, что после демонстрации работы этих команд задача обхода прямоугольного препятствия “неизвестных размеров” также не вызывает особых трудностей у 5–6-классников.

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

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

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

    Данный курс и посвящен объяснению того, как педагог может помочь школьникам преодолеть эту содержательную трудность овладения алгоритмическим стилем мышления.

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

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

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

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

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

    Для дошкольников или младшеклассников игрушечность Робота совершенно необходима и полезна. Графически Робот должен быть привлекательным, симпатичным и смешным, таким, как Робот-фонарщик в игре Lightbot (см. лекцию 1), а вовсе не унылым ромбиком, как в учебнике 7–9 Кушниренко, Лебедева, Зайдельмана. Графическая аскетичность уместна в старших классах школы, дабы не отвлекать ученика от содержательной задачи забавным видом исполнителя.

    Игрушечная простота, однако, не всегда присуща даже компьютерным играм. Так, книга правил игры “Star Wars RPG” - это 300-страничный том, правда, написанный в стиле “all you need to play”. В другой игре - “Dungeons & Dragons”, для полноценной игры потребуются минимум две такие книжки, не изучив которые нельзя даже думать о победе.

    Итак, вернемся к принципам преподавания, которые мы предлагаем. Г.В. Лебедев в своих лекциях в Архангельске сформулировал их так:

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

    1) все познается через работу (“черепаха” курса);

    2) проблемный подход;

    3) выделение алгоритмической сложности в “чистом виде” .

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

    Такой стиль управления исполнителем с помощью пульта мы назовем “непосредственным управлением”: решение об управляющем воздействии принимается по ходу управления.

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

    Теперь задача ученика - не видя ничего, кроме пульта управления, заставить Робота спуститься под препятствие (при этом расстояние от начального положения Робота до препятствия неизвестно).

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

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

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

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

    Почему же алгоритм трудно записать? Можно выделить три причины:

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

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

    И все-таки, как же миновать трехглавого дракона, который мешает нам научиться составлять алгоритмы для ЭВМ?

    Прежде всего сделаем шаг назад и заметим, что задача записи алгоритма существует и вполне реальна. Предположим, мы посылаем Робота на какую-нибудь далекую планету. Пусть мы - на Земле, а Робот - на клетчатом поле на космической станции на Нептуне. Тогда, если мы сами командуем Роботом с Земли, наша команда дойдет до Нептуна примерно за 4 часа, после чего еще столько же времени ответ будет идти назад.

    Скажем, мы “спросили” “справа стена?”, через 4 часа эта команда дойдет до Робота, Робот проверит, есть ли справа стена, и еще 4 часа ответ будет идти обратно на Землю. И только после этого мы сможем его проанализировать, принять решение, куда двигаться дальше, и послать соответствующую команду Роботу (которая еще 4 часа будет идти до Робота). Такое управление предполагает неторопливое исследование планеты с темпом выдачи команд - 3 команды в сутки. В большинстве случаев такой низкий темп недопустим. Более того, на Нептуне за 8 часов со стенками может что-нибудь случиться: одни стенки могут исчезнуть, а другие - возникнуть. Чтобы управлять Роботом с нормальной скоростью, можно вывести на орбиту вокруг Нептуна спутник и командовать Роботом со спутника. От спутника до Робота сигнал будет идти доли секунды - задержек не будет, и процесс ускорится. Поскольку, однако, мы не собираемся держать на борту спутника экипаж для управления Роботом, на спутнике придется установить ЭВМ. Тогда мы с Земли сможем послать на спутник программу - алгоритм управления Роботом. Эта программа будет идти до спутника те же 4 часа, но зато потом ЭВМ сможет командовать Роботом без нашего участия, выдавая команды и получая ответы за доли секунды.

    Для нас методически важно четкое разграничение того, что делает исполнитель, а что - ЭВМ, поэтому в приведенном примере не рассматривается возможность интеграции ЭВМ прямо с Роботом, так как это будет совсем другой исполнитель и для него нужно писать совсем другие алгоритмы.

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

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

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

    Работа пользователя в системе “КуМир” состоит в:

    Подготовке программы к выполнению (редактирование, загрузка/сохранение программы, настройка параметров системы и т.п.);

    Выполнении программы (в обычном или отладочном режиме);

    Просмотре (анализе) результатов работы программы (окончательных или промежуточных).

    В зависимости от выполняемого действия система “КуМир” находится в одном из четырех возможных состояний:

    РЕДАКТИРОВАНИЕ

    ВЫПОЛНЕНИЕ

    АНАЛИЗ РЕЗУЛЬТАТОВ (или просто АНАЛИЗ)

    Состояние системы накладывает естественные ограничения на возможность выполнения различных действий. Например, во время выполнения программы нельзя изменять ее текст.

    Смысл двух первых состояний ясен из их названия. В состояние АНАЛИЗ система переходит после окончания выполнения программы (нормального или аварийного). В этом состоянии пользователю доступны все рабочие сообщения программы - для просмотра и анализа. Любое действие по изменению текста программы сбрасывает эти рабочие сообщения и переводит систему в состояние РЕДАКТИРОВАНИЕ.

    В состояние ПАУЗА система переходит в случае остановки во время выполнения (при вызове встроенной функции ПАУЗА или после очередного шага при выполнении программы “по шагам”).

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

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

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

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

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

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

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

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

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

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

    В общем виде алгоритм на языке “КуМир” записывается так:

    алг тип_алгоритма имя_алгоритма (описание_параметров)

    | дано условие_применимости_алгоритма

    | надо цель_выполнения_алгоритма

    · последовательность команд

    На поле Робота нет всей информации об обстановке: каждая клетка поля имеет свою температуру и свой уровень радиации, которые не изображаются. В ответ на команды, отмеченные служебным словом вещ (вещественный), Робот и сообщает эту “невидимую” информацию о клетке, в которой он стоит: числовое значение температуры (в градусах Цельсия от –273 до +233) или уровень радиации в неотрицательных условных единицах.

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

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

    Упражнения

    1. Нарисуйте обстановку Робота, разместите его где-нибудь на поле и составьте два алгоритма обхода Роботом препятствия слева и сверху при помощи непосредственного управления с пульта.

    2. Измените обстановку и проведите Робота за препятствие с помощью пульта, когда поле Робота не видно.

    3. Модифицируйте исполнителя Робот. Пусть стены могут быть разной высоты - низкие и высокие (например, высокие - границы поля). Добавьте команду “прыг”, по которой Робот запрыгивает на низкие препятствия или спрыгивает с них. Придумайте новую обстановку Робота с такими низкими препятствиями. Управляя Роботом с пульта, составьте алгоритм перемещения Робота с перепрыгиванием препятствия слева.

    4. Добавьте Роботу команды “справа/слева/снизу/сверху низкое препятствие”. Проведите Робота за препятствие, когда поле Робота не видно. Придумайте более удачное название этих команд.

    5. С какими трудностями вы столкнулись при выполнении задания п. 4 (опишите их, формализуйте для себя)?

    6. Загрузите систему “КуМир” с сайта www.infomir.ru и проделайте упражнения 1–2 в системе “КуМир”.

    7. Напишите программу в системе “КуМир” для п. 1.

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

    Программирование с использованием языка КуМир

    (из опыта работы)

    КуМир (Комплект Учебных МИРов) – система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней и высшей школе .

    Она разработана в Российской Академии наук в рамках плановых работ и распространяется свободно (на условиях лицензии GNU GPL v.2).

    Скорее всего в ближайшие годы будет происходить постепенный переход на компьютеризированный вариант сдачи ЕГЭ по информатике. Компьютерная тестирующая система (КТС ЕГЭ) пока ориентирована на использование кроссплатформенных систем программирования Кумир и FreePascal.

    В 1985 году наш академик АП Ершов придумал язык русский алгоритмический язык, похожий на язык программирования ALGOL. Но поскольку в то время ещё не было компьютерной поддержки этого языка (те, кто преподавали информатику в первые её годы вхождения в школу, помнят, что всё делалось в безмашинном варианте, вручную, на бумаге), потом появились компьютеры с дисковой операционной системой (DOS). Но хорошей программной поддержки русского алгоритмического языка не было создано. Первый КуМир работал очень медленно, его интерфейс был очень примитивен. Про Кумир забыли, так как стали появляться другие, более удобные и функциональные языки. Но, к сожалению, почти все они англоязычные . Для массовой школы их освоение сопряжено с использованием английских слов и сокращений, что требует дополнительного времени на освоение. Поэтому программирование как таковое из школы постепенно почти ушло. Учителя за редким исключением просто не включали программирование в свои уроки. А программа по информатике содержит линию программирования, значит этим надо заниматься.

    Те, кто изучает язык Delphy, Pascal, Си, возврат к алгоритмическому языку воспринимают как откат назад, в прошлое, считая его примитивным. А время идёт, и наши программисты тоже работают. Тот Кумир, что был в 80-е годы, претерпел значительную доработку, и на сегодня версия 1.72 является одной из перспективных, полностью готовой для работы в школе в компьютерном варианте.

    Первый сигнал о втором пришествии Кумира появился в апреле 2010 года после семинаров, которые проводили, и на Дне учителя информатики 2.04.2010 в рамках Девятого московского педагогического марафона. Чуть позже в газете «Информатика» появилась статья и, посвященная компьютерному варианту ЕГЭ.

    Новость произвела эффект разорвавшейся бомбы среди учителей информатики. На педагогических сайтах развернулись бурные дискуссии (см. тему «Быть Кумиру?» и обсуждение на сайте pedsovet. org).
    Большинство участников этих словесных баталий Кумир не приняли, было сказано много ругательных слов.

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

    Но теперь встал вопрос о том, что Кумир становится одним из (двух) языков, разрешенных на компьютерном ЕГЭ по информатике, то есть «поднимается» на уровень 10-11 классов. Это заставило задуматься. Мера явно вынужденная: для компьютерного ЕГЭ требуется

      кроссплатформенность бесплатность простота установки относительная известность и популярность.

    Таких сред не очень много, поэтому возврат к КуМиру вполне логичен. С этим придётся считаться и использовать в своей работе.

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

    29 ноября 2010 года Московский институт открытого образования (МИОО) провёл апробацию компьютеризированной системы проведения ЕГЭ по информатике и ИКТ (КТС ЕГЭ). В газете «Информатика» (№№ 24/2010 и 2/2011) опубликованы статьи из серии «Освой КуМир за 6 часов». До этого, в 2009 году, напечатан цикл материалов и «Методика преподавания основ алгоритмизации на базе системы КуМир». На очередном Дне учителя информатики (01.04.2011) продвижение КуМира продолжилось (проведены семинар и круглый стол). Все это говорит о том, что с Кумиром придется считаться.

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

    Как и любое явление, язык КуМир имеет достоинства и недостатки. О них много говорили на упомянутом курсе МИОО, даже была сделана Wiki-страничка «Плюсы и минусы Кумира».

    Современные версии языка 1.7, 1.8 обладают рядом существенных недостатков:

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

    Кушниренко обещал, что версия 2.0 будет существенно быстрее.

    Общие выводы по Кумиру :

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

    ПиктоМир

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

    Программирование в ЕГЭ имеет вес 10 (первичный балл), что составляет 25% всей работы

    В своей практике основы языка КуМир закладываю ещё в 7 классе при изучении исполнителей Чертёжник и Робот (по программе ЛЛ Босовой). В 9 классе работаю по такому плану.

    Тема урока

    Практическая работа на уроке

    Знакомство со средой КуМир: непосредственное управление действиями Робота (интерфейс, команды, отказы)

    Работа с Пультом, редактирование стартовой обстановки, запись линейных алгоритмов

    Программное управление Роботом. Основная конструкция алгоритма: алг-нач-кон. Команда повторения: цикл К раз

    Рисование контура (прямоугольник), 3 одинаковых букв. Запись текста программ в память компьютера

    Команда повторения: цикл ПОКА. Блок-схема

    Движение Робота до стены

    Команда ветвления в полной форме. Блок-схема

    Обход преграды в форме угла

    Команда ветвления в краткой форме. Блок-схема

    Закраска верхних боковых выходов горизонтального коридора

    Переменная: имя, тип, значение. Команда присваивания

    Подсчёт закрашенных клеток, выходов, шагов до преграды, возвращение в исходную клетку (цикл К раз)

    Вложенные структуры. Блок-схема

    Закрашивание ряда клеток через одну

    Вычислительные алгоритмы, функции div и mod

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

    Команды ввода и вывода, функция sqrt. Аргументы, результаты, промежуточные величины.

    Решение квадратного уравнения на компьютере

    Нахождение максимума (минимума) двух и трёх чисел

    Знакомство с исполнителем Чертёжник. Абсолютное и относительное смещение

    Изображение прямоугольника с диагоналями, домика

    Вспомогательные алгоритмы

    Рисование улицы из трёх домиков. Рисование орнамента

    Рисование параболы

    Рисование параболы

    Алгоритм Евклида

    Запись алгоритма и выполнение программы на компьютере

    Сумма цифр десятичного числа

    Запись алгоритма и выполнение программы на компьютере

    Команда выбора из многих вариантов

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

    Самостоятельная и групповая работа (индивидуальные дифференцированные задания)

    Исполнение алгоритмов (протокол)

    Самостоятельная и групповая работа (индивидуальные дифференцированные задания)

    Создание алгоритмов и выполнение программ на компьютере

    Повторение: основные алгоритмические конструкции

    Перевод Робота к ближайшей стене

    Контрольная работа

    Составить алгоритм, исполнить программу

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

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

    Большую помощь в работе по данной теме оказывает пособие «Информатика 7-9 классы» АГ Кушниренко, ГВ Лебедева, ЯН Зайдельмана, 2002, Дрофа.

    Из 14 шаблонов возможных на ЕГЭ заданий (в кодификаторе элементов содержания и требований к уровню подготовки выпускников общеобразовательных учреждений в 2013 году) уже 3 задачи решаются в 9 классе: Нахождение максимума (минимума) двух, трёх, четырёх чисел без использования массивов и циклов, Нахождение корней квадратного уравнения, Нахождение наибольшего общего делителя двух натуральных чисел. Работу над остальными задачами необходимо решать в индивидуальном плане с теми учащимися 10-11 классов, которые будут сдавать ЕГЭ по информатике и ИКТ.

    Использованные источники:

      http://kpolyakov. *****/2011/04/blog-post_5678.html Сайт разработчиков Кумира (lpm. *****) Кумир на сайте НИИСИ РАН (www. *****/kumir) , Методика преподавания основ алгоритмизации на базе системы Кумир (*****). Кушниренко (publ. *****). Учебники по КуМиру (www. *****). , . Информатика 7-9 классы (2003 г.). (www. *****).

    · Преподавание программирования в среде КуМир.

    · Решение задач в системе Кумир (test. kumir. su).

    · Курс алгоритмизации с использованием исполнителей системы Кумир и автоматического тестирования (*****)

      Курс «Алгоритмизация и программирование: от первых шагов до подготовки к ЕГЭ» (*****) Система программирования «КуМир». Издательство «Лицей»(www.). Методика преподавания основ алгоритмизации на базе системы «КуМир». Лекции, АГ Кушниренко, АГ Леонов, Учебно-методическая газета «Информатика» №№ 17, 18, 20-24 за 2009 год, Издательский дом «Первое сентября»; Информатика 7-9 классы. АГ Кушниренко, ГВ Лебедев, ЯН Зайдельман, Дрофа, М, 2002; Язык и система КуМир, Встроенная справка программы Комплект учебных миров; Информатика. Учебно-методическая газета для учителей №24 (2010 г.) и №2 (2011 г.), Издательский дом «Первое сентября»;

    1 урок

    Простейший алгоритм.

    Откройте программу «Кумир» Рис.1

    Рис.1

    Используя из строки меню «Программа→Открыть программу→1 Пример.kum», в поле алгоритма появится 1 пример Рис.2

    Рис.2

    Для выполнения нажмите F9 при этом в строке выполнения появится запись Рис.3 , в ответ на это надо ввести число, например 5 и нажать « Enter » Рис.4

    Рис.3 Рис.4

    Введите второе число, например 7 и нажмите « Enter » Рис.5 алгоритм выполнен!

    Рис.5

    Очистите поле алгоритма «Программа→Новая программа» - поле очищено.

    Имя алгоритма может быть любым набором символов:

    Имя бывает у величин, таблиц, алгоритмов и исполнителей. Имя – это последовательность

    слов, разделенных пробелами. Первое слово имени не должно начинаться с цифры. Ни

    одно из слов не должно быть ключевым словом.

    Примеры имен: m, погода на завтра, Ноябрь 7, Седьмое ноября, дом_57б.

    Примеры неправильных имен:

    Альфа-бета (”-” — недопустимый символ)

    Альфа или омега (или — ключевое слово)

    Типы величин

    Величины, с которыми работает КуМир-программа, подразделяются на несколько типов.

    Величина каждого из типов может принимать свой набор значений. В языке КуМир предусмотрены следующие типы величин:

    цел — принимает целые значения от -2147483647 до 2147483647

    вещ — принимает вещественные значения между и

    лог — принимает значения да или нет (внутреннее представление – да=1, нет=0)

    сим — значением может быть любой литеральный символ (практически любой символ)

    лит — значением может быть строка литеральных символов

    Типы цел и вещ называются числовыми; типы сим и лит — текстовыми.

    Язык КуМир содержит встроенные функции преобразования числовых типов в тексто-

    вые и наоборот. При необходимости значения целого типа автоматически переводятся в вещественные, а символьные — в текстовые. Для преобразования вещественных

    значений в целые используется встроенная функция int

    На первых уроках будем рассматривать только первые два.

    Описание величин: величины описываются рядом с ключевым словом нач

    Нач цел j, k, n, вещ s

    Математические операции

    Название операции или функции

    Форма записи

    сложение

    вычитание

    умножение

    деление

    возведение в степень

    корень квадратный

    абсолютная величина

    знак числа

    синус

    косинус

    тангенс

    котангенс

    арксинус

    арккосинус

    арктангенс

    арккотангенс

    натуральный логарифм

    десятичный логарифм

    степень числа e

    минимум из чисел x и y

    максимум из чисел x и y

    остаток от деления x на y

    частное от деления x на y

    целая часть числа x

    случайное число в диапазоне от 0 до x

    x + y

    x - y

    x * y

    x / y

    x ** y

    sqrt(x)

    abs(x) и iabs(x)

    (-1, 0 или 1) sign(x)

    sin(x)

    cos(x)

    tg(x)

    ctg(x)

    arcsin(x)

    arccos(x)

    arctg(x)

    arcctg(x)

    ln(x)

    lg(x)

    (e . 2 . 718181 ) exp(x)

    min(x,y)

    max(x,y)

    (x, y — целые ) mod(x,y)

    (x, y — целые) div(x,y)

    int(x)

    rnd(x)

    Составление алгоритмов.

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

    алг среднееарифм

    нач цел а,б,с, вещ д

    ввод а;ввод б;ввод с

    д:=(а+б+с)/3

    вывод "д=",д

    кон

    1. Составить программу на нахождение гипотенузы в прямоугольном треугольнике по введенным с клавиатуры катетам. (напоминаем)

    алг гипотенуза

    нач цел а,б, вещ с

    ввод а;ввод б

    с:=sqrt(а*а+б**2)

    вывод "с=",с

    кон

    1. Составить программу на вычисление заданного с клавиатуры синуса угла (напоминаем что sin α надо перевести в радианную меру: где пи=3,14

    алг синус

    нач цел а,вещ пи,с

    пи:=3.14

    ввод а

    с:=sin(а*пи/180)

    вывод "синус=",с

    кон

    1. Вычислить площадь трапеции по введенным с клавиатуры двум основаниям и высоте(напоминаем S =)

    алг трапеция

    нач цел а,б,h, вещ s

    Ввод а,б,h

    S:=(а+б)*h/2

    Вывод "s=",s

    кон

    в последнем примере обратите внимание на строку ввод а,б,h переменные надо вводить через пробел, после последней нажать «Ввод»

    Для самостоятельного решения:

    (значения переменных вводить с клавиатуры)

    Дополнительно:

    1. перевести дюймы в мм, если 1 дюйм = 2,54 мм
    2. перевести км/ч в м/с (умножить на 1000, разделить на 3600)
    3. перевести часы в секунды.
    4. Рассчитать скорость тела (v = S / t )
    5. вычислить площадь и периметр прямоугольника со сторонами а, б
    6. вычислить объем прямоугольной призмы.
    7. вычислить площадь круга
    8. вычислить площадь треугольника по 3 сторонам (формула Герона)
    9. вычислить гипотенузу прямоугольного треугольника

    Цели урока:

    • Расширить представления учащихся об исполнителях алгоритмов;
    • закрепить представление об алгоритме как модели деятельности исполнителя.
    • сформировать умение записи, исполнения и отладки алгоритмов с использованием команд робота в среде “Кумир”

    Обеспечение урока:

    • система Кумир;
    • мультимедийный проектор;
    • карточки-задания;
    • компьютеры.

    Ход урока

    1. Организационный момент.

    2. Проверка усвоения изученного материала.

    1. Блиц-опрос учащихся на знание основных характеристик исполнителя чертежник: круг решаемых задач, среда исполнителя, система команд исполнителя, система отказов исполнителя, режимы работы исполнителя.
    2. Обсуждение № 17 из д/з
    3. Визуальная проверка № 18-19 из д/з.

    3. Объяснение нового материала.

    Исполнитель Робот действует на прямоугольном клетчатом поле. Между некоторыми клетками поля могут быть расположены стены. Некоторые клетки могут быть закрашены.

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

    По команде закрасить Робот закрашивает клетку в которой стоит. Если клетка уже была закрашена, то она закрасится повторно, хотя никаких видимых изменений не произойдет.

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

    Вопрос: Вспомните, как называются ошибки в записи команд. (Синтаксические и логические.)

    Напишем программу, исполняя которую Робот нарисует на клетчатом поле меандр из четырех витков.

    нач
    . нц 4 раз
    . . вправо
    . . закрасить
    . . влево
    . . закрасить
    . . влево
    . . закрасить
    . . вверх
    . . закрасить
    . . вверх
    . . закрасить
    . . вправо
    . . закрасить
    . . вправо
    . . вправо
    . . вправо
    . . вниз
    . . вниз
    . кц
    .
    кон

    Исполнитель Робот может принять любую стартовую обстановку. Инструменты → Редактировать стартовую обстановку Робота. В окошке строим стартовую обстановку и сохраняем как стартовую под любым именем.

    1. Выполните тот же рисунок с помощью вспомогательного алгоритма.
    2. Предложите свой вариант программы.

    использовать Робот
    алг
    нач
    . меандр
    . меандр
    . меандр
    кон

    Алг меандр
    нач
    . вправо
    . закрасить
    . влево
    . закрасить
    . влево
    . закрасить
    . вверх
    . закрасить
    . вверх
    . закрасить
    . вправо
    . закрасить
    . вправо
    . вправо
    . вправо
    . вниз
    . вниз
    кон

    Итог урока.

    Домашнее задание.

    § 3.1, 3.2 (1, 2) РТ № 1, 2, 7, 11 (стр. 85) Босова Л. Информатика 7 кл.

    Знакомство с программой Кумир осваение азов программирования.

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

    При изучении одного из наиболее трудных разделов информатики «алгоритмизация и программирование».

    Цель разработки :

    Скачать:


    Предварительный просмотр:

    Методическая разработка по информатике.

    Тема: «Исполнитель Робот в программе КуМир на уроках информатики »

    учитель технологии «Информатика и ИКТ»

    Пояснительная записка

    Цель разработки : изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.

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

    Учащиеся должны знать:

    • что такое исполнитель; СКИ Робота, среду исполнителя Робот;
    • что такое алгоритм; в чем состоят основные свойства алгоритма;
    • способы записи алгоритмов: блок-схемы, учебный алгоритмический язык; основные алгоритмические конструкции: следование, ветвление, цикл; структуры
    • алгоритмов; ⇒ назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов:

    Учащиеся должны уметь:

    • понимать описания алгоритмов на учебном алгоритмическом языке;
    • выполнить трассировку алгоритма для известного исполнителя;
    • составлять линейные, ветвящиеся и циклические алгоритмы управления исполнителя Робот; выделять подзадачи; определять и использовать вспомогательные алгоритмы.

    Занятие 1 (2 часа) Урок 1.

    Исполнитель Робот. Система команд исполнителя.

    План урока.

    1. Описание СКИ исполнителя, среды исполнителя.

    2.Разбор типичных алгоритмов Робота.

    Ход урока.

    Рассмотрим описание исполнителя.

    Среда исполнителя : Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки.

    СКИ Робота : простые команды: вверх, вниз, влево, вправо, закрасить.

    Команды логические: (проверки условия)

    сверху свободно снизу свободно

    слева свободно справа свободно.

    Логические связки: И,НЕ, ИЛИ:

    Пример:(Не слева свободно) или (не справа свободно)

    Команда ветвления : команда цикла:

    Если условие то нц пока условие

    Серия команд серия команд

    всё кц

    (В КИМах 2009 года команды Робота отличались от привычных детям, что приводило к путанице :)

    Команда ветвления : команда цикла:

    Если условие то нц пока условие делать

    Серия команд серия команд

    конец конец

    Общий вид окна программы Кумир. Графическая среда Робота:

    В КИМах демонстрационного варианта 2010 года формат команд изменен на привычный

    Порядок создания алгоритма:

    1.Командами Инструменты -Редактировать стартовую обстановку нарисовать на поле Робота стены и установить Робота в начальное положение.

    2.Командами Робот- Сменить стартовую обстановку сохранить новую обстановку.

    3.Командами Вставка- Использовать Робот указать исполнителя.

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

    5.Командами Выполнение –выполнить непрерывно (или по шагам) запустить алгоритм.

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

    Занятие 1 (2 часа) Урок 2.

    Практическая работа « Составление линейных алгоритмов».

    Задания: 1.Робот в произвольной точке поля. Закрасить клетку сверху, снизу и справа от исходного положения.

    1. Робот в произвольной точке поля. Передвинуть Робот на 4 клетки вправо, закрасив их.
    2. Создайте новую стартовую обстановку, нарисовав на поле квадрат со стороной 4 клетки. Сохраните обстановку как стартовую.
    3. Создайте новую стартовую обстановку, нарисовав на поле коридор с проходами в стенах. Сохраните обстановку как obst2.fil. Смените стартовую обстановку на вновь созданную.

    Занятие 2 (2 часа) Урок 1.

    Тема : Ветвление и последовательная детализация алгоритма.

    Разбор задач КИМов с использованием исполнителя Робот.

    использовать Робот

    алг ким 2009

    нач

    если не снизу свободно

    то вправо

    все

    если не снизу свободно

    то вправо

    все

    если не снизу свободно

    то вправо

    все

    кон

    использовать Робот

    алг ким 2010

    нач

    если не снизу свободно

    то вправо

    все

    если не снизу свободно

    то вправо

    все

    если не снизу свободно

    то вправо

    все

    кон

    Пр. раб. №14. Составление и отладка алгоритмов ветвления

    Задания. См. Приложение.

    Занятие 3. Циклические алгоритмы. Урок 1-2

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

    Пр. раб. №15. Составление и отладка циклических алгоритмов

    1.Составьте алгоритм, закрашивающий все внутренние клетки, прилегающие к стене.

    использовать Робот

    алг

    нач

    нц пока справа свободно

    закрасить; вправо

    кц

    нц пока снизу свободно

    закрасить; вниз

    кц

    нц пока не снизу свободно

    закрасить; влево

    кц

    кон

    2.Составить алгоритм, закрашивающий все клетки между Роботом и стеной. Расстояние до стены неизвестно.

    использовать Робот

    алг

    нач

    нц пока справа свободно

    вправо; закрасить

    кц

    кон

    3.Составить алгоритм, закрашивающий все клетки, находящиеся между двумя стенами.

    использовать Робот

    алг уч3

    нач

    нц пока (не сверху свободно) или (не снизу свободно)

    вправо

    если (не сверху свободно) и (не снизу свободно)

    то

    закрасить

    все

    кц

    кон

    4.Составить алгоритм, закрашивающий все клетки вокруг прямоугольной стены.

    алг уч4

    нач

    закрасить;вверх

    нц пока не справа свободно

    закрасить;вверх;

    кц

    закрасить;вправо

    нц пока не снизу свободно

    закрасить;вправо;

    кц

    закрасить;вниз

    нц пока не слева свободно

    закрасить;вниз;

    кц

    закрасить;влево

    нц пока не сверху свободно

    закрасить; влево;

    кц

    кон

    использовать Робот

    алг уч5

    нач

    вправо

    нц пока не снизу свободно

    закрасить; вправо

    кц

    закрасить; вниз

    нц пока слева свободно

    закрасить; влево

    кц

    нц пока не слева свободно

    закрасить; вниз

    кц

    закрасить;влево;закрасить; вверх;

    нц пока сверху свободно

    закрасить; вверх

    кц

    нц пока не сверху свободно

    закрасить; влево

    кц

    кон

    Занятие 4 Урок 1

    Вспомогательные алгоритмы .

    Цель: ввести понятие основного и вспомогательного алгоритма; объяснить правила использования вспомогательного алгоритма; разобрать примеры алгоритмов с использованием вспомогательного.

    План урока

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

    2.Разбор примеров решения задач с применением вспомогательного алгоритма.

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

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

    Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма.

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

    Задача1:

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

    Решение

    Разбор на доске:

    Задача2. Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает в шахматном порядке квадрат 8 х 8. Конечное положение Робота может быть произвольным.

    Занятие 4 Урок 2

    Практическая работа на ПК «Решение задачи с использованием вспомогательных алгоритмов» .

    Цель : привить практические навыки построения алгоритмов методом последовательного уточнения.

    План урока

    1.Задание полностью проходит за ПК. Учащиеся получают задания и выполняют их в программной среде Кумир. Результаты Работы сохраняются в виде файлов для последующей проверки.

    Задача1 . Робот находится в нижнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает 6 вертикальных полос одинаковой длины в 6 клеток. Конечное положение Робота может быть произвольным.

    Задача2 .Используя вспомогательные, составьте алгоритм для закрашивания клеток, образующих число 1212.

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

    Занятие 5 Урок 1-2

    Контрольная работа

    «Составление алгоритма в среде исполнителя Робот».

    Цель: проверить полученные знания по созданию и умению анализировать алгоритмы в программной среде Кумир.

    Задания для контрольной работы делятся по уровням сложности и включает в себя 3 задачи с исполнителем Робот (1 и 2 задача –на ветвление и циклы, 3 задача с- на использование вспомогательного алгоритма.) Тексты заданий приводятся в приложении.

    Исходные и конечные обстановки и созданные алгоритмы записываются в виде файла.

    Оценка выставляется соответственно уровню сложности задания. Ученик вправе сам выбрать тип задания.