Страницы сайта
Текущий курс
Участники
Общее
Тема 1
Тема 2
Тема 3
Тема 4
Тема 5
Тема 6
Тема 7
Тема 8
Тема 9
Тема 10
Тема 11
Тема 12
Тема 13
Тема 14
Тема 15
Тема 16
Тема 17
Тема 18
Тема 19
Тема 20
Тема 21
Тема 22
Тема 23
Тема 24
Тема 25
Тема 26
Методический комментарий для учителя к уроку «Исполнитель»
Урок 24. «Исполнитель»
На этом уроке начинаем изучать алгоритмику – начала программирования. Как мы говорили во введении, есть наука информатика, некоторым разделам «которой посвящена теоретическая часть настоящего курса, а есть информационные технологии и информационная культура, которой посвящена практическая часть курса. Часто и то и другое называется информатикой.
В современном обществе компьютеры применяются очень широко. Без них не обойтись при подготовке к изданию книг и журналов, при научных и инженерных расчетах, при оформлении телепередач и во многих-многих других случаях.
Компьютер – это универсальное дискретное устройство обработки данных (иногда говорят – обработки информации). Слово универсальная означает, что компьютер может обрабатывать данные любого вида (тексты, изображения, числа, звуки и т. д.) и применяться в самых разных видах человеческой деятельности. Отметим, что внутри компьютера (как иногда говорят «на уровне железа») все данные представлены единообразно – они закодированы как тексты в алфавите из двух символов. Это единообразие в представлении данных разного происхождения – еще одна черта, которая позволяет называть компьютеры универсальными устройствами.
Слово «дискретное» означает «состоящий из отдельных частей» (от латинского discretus – разделенный). Применительно к компьютеру это означает две вещи. Во-первых, данные, с которыми работает компьютер, представлены как тексты – последовательности букв в фиксированном (двоичном) алфавите. Количество букв в таком тексте всегда конечно, хотя и может быть очень велико. Во-вторых, обработка данных происходит по шагам. На каждом шаге может выполняться одна операция из заранее определенного набора операций. При этом набор операций таков, что компьютер может выполнить любую обработку любых данных (напомним: компьютер – универсальное устройство обработки данных).
Как указать компьютеру, какие действия надо выполнить? Основной способ сделать это – составить программу. Работая по программе, компьютер запрашивает у человека исходные данные (или получает их каким-то другим способом, например, вводит из файла или снимает показания с датчиков), выполняет заданные в программе вычисления и сообщает результат. Заменив исходные данные, можно повторить вычисления, при этом заново писать программу не нужно. Мы начинаем знакомиться с программированием – тем, как составлять программы.
Как и в других областях науки, при изучении какого-то явления ученые строят его модель. Моделью дискретного устройства обработки данных является исполнитель. Мы начнем с несложных исполнителей, которые, конечно, не являются универсальными.
Исполнитель
Исполнитель – это устройство, которое способно выполнять определённый набор действий. Каждому действию соответствует команда, предписывающая исполнителю выполнить это действие. Команды, которые понимает и может выполнить конкретный исполнитель, образуют систему команд исполнителя. Никаких других сигналов, кроме тех, которые входят в его систему команд, исполнитель не понимает.
Исполнитель, команда, система команд – основные понятия той части курса, которая посвящена началам программирования – как число в арифметике, точка, прямая, отрезок в геометрии, скорость, масса в физике и т. п.). Другие основные понятия (например, состояние исполнителя, алгоритм, выполнение алгоритма) появятся в нашем курсе позже.
Понятие исполнитель возникло из практики и отражает его определенные стороны. Для работы с исполнителем не обязательно понимать, как он устроен и как выполняется та или иная команда. Достаточно знать, что сделает исполнитель. Например, чтобы пользоваться магнитофоном, не нужно разбираться в устройстве звукоснимающего механизма, достаточно знать, что при нажатии соответствующей кнопки начнется проигрывание музыки.
Составить полную систему команд реальных технических устройств довольно сложно – вы столкнетесь с этим, когда будете обсуждать с детьми задачу 144. Для учебных целей удобнее пользоваться исполнителем, система команд которого не слишком велика, команды и действия которого интуитивно ясные. Такие «идеальные», а точнее сказать «формальные» исполнители проще смоделировать в компьютере, чем пытаться собрать их действующую модель.
Для практической работы с исполнителями (мы называем это компьютерным практикумом) мы предлагаем вам использовать в классе среду Кумир – удобную образовательную среду для работы ученика и учителя. Для каждого исполнителя мы даем также задачи в учебнике: это 2–3 простые задачи на понимание материала листа определений, а также качественные задачи – для решения которых надо не просто составить или выполнить программу для исполнителя (это удобнее и интереснее делать на компьютере), а надо порассуждать, рассмотреть все возможные варианты и даже построить доказательство. Таким образом, задачи, которые мы предлагаем после листа определений, не дублируют, а дополняют задачи компьютерного практикума. Задачи из ученика также удобно давать на дом.
Задачи для компьютерного практикума вы можете составить самостоятельно или можете воспользоваться задачами, которые мы поместили в конце этого учебника. Среда Кумир популярна среди учителей информатики, многие учителя работают с ней на протяжении нескольких лет и готовы поделиться своим опытом. В Интернете несложно найти советы учителей и методистов, готовые комплекты задач и прочую полезную информацию по Кумиру.
В нашем курсе мы используем такие формальные исполнители: Водолей, Перевозчик, Удвоитель, Робот и некоторые другие – для каждого такого исполнителя мы выписываем полную систему команд и даем его исчерпывающее описание. Далее в этой книге под словом исполнитель всюду понимается именно модельный (формальный) исполнитель, который описан точно. Если речь будет идти о реальных исполнителях, это будет оговорено явно.
При описании исполнителя важно не только точно описать систему его команд, но и систему его действий: что именно делает исполнитель, выполняя каждую команду. Для описания этой системы действий нам необходимо понятие состояние исполнителя. Как и другие понятия в нашем курсе, важные понятия для программирования мы вводим тоже постепенно, стараясь не перегружать детей. Поэтому понятие состояние исполнителя подробно рассмотрено чуть позже, в уроке 28, и в этой книге оно обсуждается в пояснениях у этому уроку. В уроках же 24 – 27 рассмотрены несложные исполнители, их поведение пока описано без использования термина состояние – знакомясь с этими исполнителями, ученики, в частности, готовятся к восприятию понятия состояние.
Телесно проиллюстрировать понятие «подмножество» очень просто. Возьмем несколько разных деталей ЛЕГО и сложим их в кучку или в коробочку. Пусть это будет исходное множество А. Теперь любой набор деталей, который мы возьмем из этой кучки, будет представлять собой подмножество множества А. При этом мы можем забрать и сразу все детали, и не взять ни одной – это тоже будут подмножества множества А. Пустое множество является подмножеством любого множества.
Множество полностью определяется набором элементов, которые лежат в этом множестве. Два множества оказываются одинаковыми, если для каждого элемента первого множества во втором найдётся такой же элемент, и наоборот, для каждого элемента второго множества в первом найдётся такой же элемент. Если хотя бы в одном из множеств есть один элемент, которого нет в другом множестве, то такие множества разные. Для записи равенства множеств мы будем использовать знак равенства, для записи неравенства – знак «не равно».Исполнитель Водолей представляет собой не один исполнитель, а семейство исполнителей: каждому набору трех чисел – вместимости сосудов – соответствует один исполнитель.
Система команд исполнителя Водолей состоит из 12 команд. Состояние этого исполнителя в каждый момент описывается тройкой чисел – количеством воды в каждом из трех сосудов. Понятие состояния исполнителя вводится нами позже, тем не менее вы можете его употреблять в разговоре с учениками пока просто как интуитивно понятное им слово.
Дети, которые изучали информатику в начальной школе, могут быть уже знакомы с этим исполнителем – работа с Водолеем входит в программу 2 класса. Таким детям будет полезно познакомиться с Водолеем уже как с формальным исполнителем, для них будет новым интерфейс этого исполнителя в среде Кумир. Скорее всего такие дети смогут на практикуме решить более сложные задачи о Водолее.
Задача 141. Чтобы ребенок хорошо себе представлял работу исполнителя, нужно, чтобы сначала «исполнителем» поработал он сам – выполнил программу вручную. В этой задаче ребенок выполняет программу Водолея. Делать это проще всего с помощью таблицы – так результаты всех действий становятся наглядными. Выполняя программу, ребятам приходится самим находить ответы на множество возникающих в ходе работы вопросов, например, сколько мер воды окажется в сосуде после выполнения команды наполни …; сколько воды останется в сосуде после выполнения команды перелей из … в … и т. п. Вопросы несложные и, конечно, хорошо бы дать возможность каждому ответить на них самостоятельно.
Чтобы не тратить время на вычерчивание таблицы, можно вырезать ее с листа вырезания на вкладыше тетради проектов и наклеить.
Ответ:
Задача 142. Для практической работы на компьютере с исполнителями (мы называем это компьютерным практикумом) мы предлагаем вам использовать среду Кумир. Эта среда является удобной свободной средой для работы ученика и учителя. Интерфейс учителя позволяет вам предложить вашим ученикам те задачи, которые вы сами выберите. Задачи вы можете придумать самостоятельно или взять из многочисленных источников, выложенных в свободный доступ. В конце учебника вы также найдете образцы заданий, которые можно использовать в компьютерном практикуме. При этом вам не нужно открывать Кумир на каждом ученическом компьютере и вводить каждую задачу отдельно: достаточно составить один файл и скопировать его на каждый компьютер ученика. Все подробности работы с Кумиром вы найдете в сопроводительных документах к программному продукту.
Задача 143. Задача, обратная к задаче 141: по результату выполнения каждой команды надо восстановить программу для Водолея. Поначалу дети наверняка наделают ошибок. Попросите задачу решать сначала карандашом. После того, как программа будет написана, предложите проверить свое решение – закрыть правую (готовую) часть таблицы и заполнить ее снова – выполнить команды, записанные ребенком в левом столбце. Сравнив после этого полученную таблицу и таблицу, заданную в задаче, дети смогут самостоятельно найти те места, где они допустили ошибки и исправить их. Как мы уже неоднократно писали, умение найти ошибку в своем решении – важная составная часть обучения. Аналогично умение найти ошибку в составленной тобой программе – очень важное умение для программиста.
Чтобы не тратить время на вычерчивание таблицы, можно вырезать ее с листа вырезания на вкладыше тетради проектов и наклеить.
Ответ:
Задача 144. Важная творческая задача, позволяющая проконтролировать степень усвоения материала листа определений каждым учащимся. Здесь, конечно, не стоит строго подходить к оцениванию выписанной системы команд: она может быть неполной, команды в ней могут быть сформулированы коряво и не очень точно. Главное, что надо оценивать – что ребенок освоил само понятие исполнителя и его команд, нашел дома пример исполнителя и попытался выписать несколько команд, которые исполнитель «умеет» выполнять.
Задача 145. Необязательная. Безусловно, дети увидят прямую аналогию этой задачи с исполнителем Водолей! Задачу легче решать, используя таблицу, аналогичную той, которой они пользовались для решения задач о Водолее. При этом в таблице должно быть три столбца:
КНОПКА – какую кнопку надо нажать;
ВАННА – сколько воды оказалось в ванной после нажатия той кнопки, имя которой записано в первой колонке;
СЛИТО – сколько воды пропало впустую – было слито из ванной, в результате нажатия кнопки, имя которой записано в первой колонке.
Таким образом, задача оказывается решенной, если в колонке ВАННА появляется число 3. Ответом на второй вопрос будет сумма всех чисел из колонки СЛИТО.
Мы приводим один из вариантов решения – при этом решении слито будет 12 л, это наименьший возможный результат. Конечно, решения у детей могут быть и не такими оптимальными. На этом этапе обучения достаточно, если ребенок выпишет любую последовательность нажатия кнопок, приводящую к нужному результату. Сильного ребенка, который привел не самое оптимальное решение, можно попросить придумать другое решение, при котором будет слито меньше воды.
Ответ:
Задача 146. Задача для компьютерного практикума, в результате решения которой дети освоят интерфейс создания новой задачи для Водолея. Так как в задании нет никаких ограничений на параметры задачи, у кого-то может получиться и нерешаемая задача – здесь это не очень важно, так как цель задачи состоит именно в знакомстве с новым интерфейсом. Однако, если у вас будет время, можно обсудить такую задачу в классе, попросить детей подумать, почему так получилось и как надо исправить заданные числа, чтобы задача имела решение.
Например, нельзя решить задачу получения 1 л воды, если объем каждого сосуда – четное число, а в начале все сосуды пустые.
Задача 147. Необязательная. Текстовая задача, которая могла бы быть слишком трудной, если бы дети не познакомились с исполнителем Водолей и не решили бы уже достаточного количества задач на переливание на бумаге и на компьютере.
Понятно, что 13 л молока должно быть налито в 17-литровый бидон: в 5-литровый это количество просто не поместится, а больше емкостей у нас в распоряжении нет. Если просто наполнить большой (17-литровый) бидон и наполнить из него малый (5-литровый), то в большом останется 12 л молока – не годится. Подойдем с другой стороны: нальем малый, перельем молоко в большой. Потом сделаем так еще два раза – большой станет полным, а в малом останется 3 л! Это то, что нам нужно: выливаем теперь все молоко из большого бидона обратно в цистерну, затем выливаем в большой бидон остаток 3 л, потом еще два раза по полному малому бидону – задача решена.
Ответ:
Задача 148. Необязательная.
Ответ: площадь многоугольника Е равна 10½ ед. кв.
Задача 149. Необязательная. Непростая задача об исполнителях с привязкой к терминологии о последовательностях, пройденной в первом полугодии. Составить инструкцию, с помощью которой можно раскрасить данную цепочку, не так уж и сложно. Сложно здесь именно придумать исполнителя и составить его систему команд – собственно привязать знания, полученные в первом полугодии, к текущей теме. Затрудняющемуся ребенку можно предложить для начала составить просто какую-нибудь инструкцию, следуя которой можно раскрасить нужным образом данную последовательность, а затем уже по готовой инструкции принять решение о системе команд исполнителя Раскрасчик бусин. Не обязательно при этом, чтобы система команд была хоть в какой-то степени полной: в задании нет требования, чтобы этот исполнитель умел раскрашивать любую последовательность бусин.
Конечно, однозначного решения в этой задаче нет. Всегда существует вероятность, что дети составят систему команд (или инструкцию) не так, как мы ожидаем. Например, первый этап инструкции, с точки зрения введенной нами лексики, наиболее естественно сформулировать так: «Следующую после каждой треугольной бусины раскрась красным». Однако дети могут заметить другую закономерность и написать так «Все бусины, которые стоят на четных местах, раскрась красным». Аналогичная ситуация возможна с любым пунктом инструкции. При желании можно конкретизировать ребятам задачу – попросить их использовать в каждой команде конструкцию перед каждой или после каждой. Тогда разнообразие инструкций несколько уменьшится. В силу неоднозначности решения вам придется проверить каждое решение и убедиться, что выписанная последовательность из 4 команд соответствует заданным последовательностям. Другой вариант проверки – попросить детей поменяться тетрадями и сопоставить инструкции друг друга с данными в задаче последовательностями.
Ответ: (возможный вариант последовательности из 4 команд)
- Раскрась каждую следующую бусину после треугольной – красным.
- Раскрась каждую предыдущую бусину перед круглой – зеленым.
- Раскрась третью бусину желтым.
- Раскрась пятую бусину синим.