Обучение алгоритмизации
Первыми заданиями по управлению исполнителем должны быть задачи на работу в режиме прямого управления с целью получить определенный рисунок (слово, в зависимости от выбора исполнителя). Продемонстрируйте ученикам реакцию исполнителя при выполнении команды не входящей в «ски». Исполнитель дает сообщение о невозможности выполнить команду. Обучение программированию для исполнителя нужно строить на последовательности решаемых задач. Очередность задач должна определяться следующими принципами: - от простого к сложному: постепенное усложнение задач; - новизна: каждая задача вносит какой-то новый элемент знаний (новая команда, новый прием программирования); - наследование: следующая задача требует использования знаний, полученных при решении предыдущих задач. Рассматривается последовательность задач, которая позволяет ученикам осваивать приемы алгоритмизации в таком порядке: - составление линейных алгоритмов; - описание и использование вспомогательных алгоритмов; - составление циклических алгоритмов; - использование ветвлений в алгоритмах; - использование метода последовательной детализации при составлении сложных алгоритмов. Задача 1. (напримере использования исполнителя «черепашка»): составить алгоритм рисования буквы «Т» в центре поля рисунка. Длина горизонтального и вертикального отрезков - 40. Задача 2. (на примере использования исполнителя «черепашка») естественным образом выводит на идею вспомогательного алгоритма. Задание следующее: составить алгоритм рисования числа «1919». Учитель может поступить следующим образом: предложить ученикам написать алгоритм прежними средствами (с использованием примитивов). Такое задание, очевидно, не вызовет энтузиазма учеников, поскольку принцип им уже понятен, а писать длинный линейный алгоритм довольно скучно. В этой ситуации вполне возможно самостоятельное «открытие» учениками идеи вспомогательного алгоритма. Обратив внимание на то, что в рисунке дважды присутствуют цифры «1» и «9», ученики могут прийти к идее отдельного описания алгоритмов рисования этих цифр, а затем использования их для получения четырехзначного числа «1919». После обсуждения этой идеи учитель вводит понятие вспомогательного алгоритма и объясняет, как производится его описание и использование. Умение использовать вспомогательные алгоритмы необходимо вырабатывать у учеников как можно раньше, уже на примерах линейных алгоритмов. Важнейший прием алгоритмизации и программирования - декомпозиция задачи, т. е. выделение в исходной задаче некоторых более простых подзадач. Алгоритмы решения таких подзадач называются вспомогательными алгоритмами, а реализующие их программы - подпрограммами (процедурами). Таким образом, решение исходной задачи разбивается на несколько алгоритмов: основной алгоритм и вспомогательные алгоритмы. В основном алгоритме происходит многократное обращение к вспомогательному алгоритму. Задача 3:построить прямоугольную рамку по краю поля. Решение этой задачи требует объединения умений, полученных учениками при решении предыдущих задач. Циклическая программа рисования линии оформляется в виде процедуры ЛИНИЯ. А в основной программе происходит четырехкратное обращение к этой процедуре. Задача 4:расчертить экран горизонтальными линиями. Эта задача является прямым продолжением предыдущей задачи. Усложнение заключается в том, что используются две процедуры: ЛИНИЯ и ВОЗВРАТ. Кроме того, основной алгоритм сам становится циклическим. Здесь снова нужно отметить то важное обстоятельство, что при использовании процедур в основной программе необходимо учитывать начальное и конечное состояние исполнителя при их выполнении. Задача 5:нарисовать орнамент, состоящий из квадратов, расположенных по краю поля. Здесь вводится еще одна структурная команда - ветвление. На примере этой задачи еще раз демонстрируется методика последовательной детализации. Причем, в отличие от предыдущих программ, здесь используется два шага детализации, поскольку в процедуре РЯД содержится обращение к процедуре следующего уровня - КВАДРАТ. Разобравшись в рассмотренных задачах, выполнив самостоятельные задания аналогичного типа, ученики должны усвоить два основных принципа структурной методики алгоритмизации (структурного программирования): - всякий алгоритм может быть построен с использование трех типов управляющих структур: следование, ветвление, цикл; - при построении сложных алгоритмов следует применять метод последовательной детализации.
|