Смекни!
smekni.com

Методика преподавания темы "Программирование в среде Scratch" учащимся начальной школы (стр. 3 из 10)

Вопрос о месте и объеме темы программирования в базовом курсе остается дискуссионным. В различных версиях обязательного минимума этот вопрос решался по-разному. Здесь также можно говорить о двух целевых аспектах, с которыми связано изучение программирования в школе. Первый аспект связан с усилением фундаментальной компоненты курса информатики. Ученикам дается представление о том, что такое языки программирования, что представляет собой программа на языках программирования высокого уровня, как создается программа в среде современной системы программирования. Получив представление о языке машинных команд на материале учебных компьютеров и о языках высокого уровня, ученики будут осознанно воспринимать понятие «трансляция».

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

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

Понятие «алгоритм» является центральным в первом школьном учебнике информатики [11]. В учебнике приводится следующее определение: «Под алгоритмом понимают понятное и точное предписание (указание) исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи» [11, с. 35]. Указание на выполнение каждого отдельного действия названо командой, а «совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя». В качестве основного свойства алгоритма подчеркивается формальный характер работы исполнителя при его выполнении. Отсюда делается вывод о том, что исполнителем алгоритма может быть автомат (машина, робот). На этой идее основан принцип программного управления работой компьютера, поскольку программа – это и есть алгоритм, представленный на языке, «понятном» компьютеру – на языке программирования.

Сформулированные в учебнике [11] понятия явились дидактической основой для раскрытия темы алгоритмизации во всех последующих учебниках информатики.

Практически весь алгоритмический раздел учебника [11] ориентирован на исполнителя – человека. В задачах вычислительного характера (а их большинство в учебнике) в качестве метода работы исполнителя предлагается заполнение таблицы значений. В программировании такие таблицы принято называть трассировочными таблицами. В учебнике сказано: «При исполнении алгоритма компьютером значения величин хранятся в его памяти. При исполнении алгоритма человеком таблица значений выполняет роль дополнительной памяти для исполнителя» [15, с 36].

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

Одним из основных методических достижений учебника [11] стало введение в школьную информатику учебного алгоритмического языка. Алгоритмический язык А.П. Ершова можно назвать русскоязычным псевдокодом, предназначенным для обучения методике структурного программирования. Хотя в самом учебнике слова «структурное программирование» нигде не употребляются, но, фактически, реализуется именно этот подход.

Идея и технология структурного программирования возникла и интенсивно развивалась в 60–70-х гг. XX столетия и связана с именами таких классиков программирования, как Э.В. Дейкстр, X. Д. Миле, Е. Кнут и др. Большой вклад в теорию и практику программирования внес в этот период и академик А.П. Ершов. В частности, им был разработан АЛЬФА-язык программирования (развитая версия структурного языка Алгол-60 с русскоязычной нотацией) и создан транслятор с этого языка (АЛЬФА-транслятор). Учебный алгоритмический язык содержит в себе многие черты АЛЬФА-языка. Для учебных целей на базе алгоритмического языка был создан язык программирования РАПИРА, описанный в учебнике [11]. Однако он не получил распространения. В 1987 г. в МГУ была осуществлена разработка учебной среды программирования на основе алгоритмического языка, получившая название «Е-практикум» (Е-87). Впоследствии она получила развитие и распространение через известный пакет учебного программного обеспечения КуМир (Комплект Учебных Миров).

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

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

Исторически первым педагогическим программным средством, предназначенным для обучения детей алгоритмизации, был язык программирования ЛОГО, разработанный в конце 1960-х гг. американским педагогом-психологом С. Пейпертом [16]. В состав ЛОГО входит исполнитель Черепашка, назначение которого – изображение на экране чертежей, рисунков, состоящих из прямолинейных отрезков. Программы управления Черепашкой составляются из команд: вперед(а), назад(а), направо(в), налево(в), поднять хвост, опустить хвост. Имеется в виду, что Черепашка рисует хвостом, и если хвост опущен, то при перемещении проводится линия, а когда хвост поднят, то линия не рисуется. Кроме того, в языке имеются все основные структурные команды. В целом ЛОГО предназначен для обучения структурной методике программирования. От ЛОГО происходит понятие черепашьей графики, используемой также и в некоторых профессиональных системах компьютерной графики.

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

В учебнике А.Г. Кушниренко [20] были развиты идеи преподавания алгоритмизации, заложенные А.П. Ершовым и С. Пейпертом. Основным методическим приемом стало использование разнообразных учебных алгоритмических исполнителей. В учебнике введено два таких исполнителя – это Робот и Чертежник. Назначение Робота – перемещение по полю, разделенному на клетки с выставленными в разных местах стенами. По пути своего движения Робот может закрашивать клетки, измерять температуру и уровень радиации. Исполнитель Чертежник – это своеобразный графопостроитель, действующий в системе декартовых координат, связанных с экраном. Назначение Чертежника – изображение чертежей, графиков, рисунков, состоящих из прямолинейных отрезков. Чертежник близок по идее к Черепашке, однако работа Черепашки не связана с системой координат (хотя единица длины для нее существует).

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

нц пока снизу стена

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

вправо кц

Авторы учебника [20] интерпретируют своего исполнителя следующим образом: Робот – это автоматическое устройство, управляемое компьютером. Между компьютером и Роботом имеется прямая и обратная связь. По прямой связи от ЭВМ к Роботу передаются управляющие команды, по обратной связи – ответы Робота на запросы о текущей обстановке. Например, фраза «снизу стена» обозначает запрос компьютера к Роботу на проверку условия: находится ли под ним стена. В результате Робот по обратной связи отвечает «да» или «нет» в зависимости от обстановки. То же самое относится к фразе «клетка не закрашена».

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