Обучение основам алгоритмизации с использованием системы Pascal ABC
Л. В. Батан, УО «Витебский государственный университет имени П.М. Машерова», аспирант, [email protected]
Как известно из истории информатики, толчком к созданию первых учебных программ по информатике послужило появление в 1960 гг. школ, предусматривающих подготовку программистов на базе общего среднего образования [1, с.9]. За время своего существования курс информатики претерпевал значительные и неоднократные изменения. Снижение возраста обучаемых накладывает ограничение на возможный круг решаемых задач по составлению алгоритмов.
Рассмотрим вариант обучения основам алгоритмизации и программирования с использованием среды реализации алгоритмов Pascal ABC. Заметим, что при знакомстве со средой Pascal ABC важно указать ученикам на имеющееся сходство с основными приемами работы в текстовом редакторе Word: загрузка и сохранение текста программы, перемещение по тексту программы в окне редактора, приемы редактирования, использование буфера обмена.
Исполнители
Среда Pascal ABC дает возможность использования такого дидактически важного средства как работа с исполнителями. В Pascal ABC реализованы исполнители Робот и Чертежник, описанные в учебнике [2]. Пожалуй, единственным недостатком для применения этих исполнителей на начальном этапе обучения алгоритмизации является англоязычная система команд, их освоение требует от обучаемых дополнительных усилий. Исполнитель Робот имеет «богатую» систему команд, включая множество команд-вопросов. Наличие команд-вопросов позволяет придумать несложную задачу, подводящую к командам цикла с условием или задачу, подводящую к команде ветвления. Все это позволило бы ввести указанные алгоритмические конструкции уже в начальной школе, если бы эти команды были на родном языке.
Система команд Чертежника состоит всего лишь из четырех команд, причем две из них, по сути, представляют собой процедуры с двумя параметрами - это команды ToPoint(x,y) и OnVector(a,b). Чертежник понимает только целые положительные координаты, что сужает круг решаемых задач. Однако, этих возможностей вполне достаточно для написания линейных и циклических алгоритмов. Отметим, что в Pascal ABC имеется возможность работы с проверяемыми заданиями, такая возможность есть в частности и для исполнителей среды. Так для ис-
полнителя Чертежник, помимо заданий на разработку линейных алгоритмов, имеются группы заданий на использование циклов (в том числе вложенных), процедур (с параметрами и без параметров). Интерес представляет требование в конце выполнения программы вернуть исполнителя в исходное состояние: перо Чертежника должно быть поднято и находиться в начале координат - оно дисциплинирует и является важным при совместной (в бригаде) разработке программ.
Использование команды повторения легче ввести на примере использования цикла с параметром for. Жизненные примеры использования повторения некоторого действия (действий) ученикам хорошо знакомы. Это выполнение утренней зарядки, написание значков (палочек, крючков и т.п.) в прописи. Использование команды цикла for невозможно без введения величины - целочисленной переменной - и ее описания. Простейшая задача для Чертежника, подводящая к команде повторения, - это рисование пунктирной линии. При этом в теле цикла будет составной оператор (begin...end). К сожалению, для Чертежника сложно придумать задачу с использованием команды ветвления.
Поэтапное усложнение материала
Дальнейшее знакомство с основными алгоритмическими конструкциями представляется нам в одном из двух вариантов: использование исполнителя Робот (преемственность по работе с исполнителями) и работа с величинами. Остановимся пока на варианте использования величин.
Введение понятия величины влечет за собой обязательное введение многих других понятий. К таким понятиям, например, относятся следующие: «переменная», «имя переменной» (идентификатор), «константа», «тип переменной» (и константы). Средством наглядности при рассмотрении алгоритмов с величинами может служить графическое представление ячеек памяти компьютера (в которых хранятся значения переменных), например на доске. Ввод и вывод данных желательно сопровождать поясняющими сообщениями. Такие сообщения - суть строковые константы, о чем также полезно сказать ученикам. На наш взгляд, здесь не стоит бояться опережения (инверсии), забегания вперед. Подобные знания станут опорой в дальнейшем - при знакомстве с переменными строкового типа (string). При рассмотрении арифметических операций важно отметить, что операция деления "/" всегда даст вещественный результат (даже если операнды целого типа), который нельзя присвоить целочисленной переменной. Можно выделить следующие кванты информации по теме «Обработка величин» в порядке их введения.
• Вывод данных. Программа, выводящая слово «Привет!», строковые
константы Использование в программе числовых констант
(например, write(2+5)).
• Данные (величины). Переменные и константы. Типы данных: целые, вещественные, строковые (полезно упомянуть символьные и логические). Использование (ячеек) памяти компьютера для хранения значений. Описания переменных числовых типов.
• Задача нахождения суммы любых двух чисел. Ввод данных. Команда присваивания. Использование строковых констант (в запросе на ввод исходных данных и при выводе результатов).
• Выражения и операции. Тип результата при использовании операции деления "/". Операции деления целых чисел: div и mod.
• Некоторые стандартные функции обработки целых и вещественных данных: abs(x), sqr(x) и другие.
Основные алгоритмические конструкции
Еще А.П. Ершовым была предложена реализация принципа последовательности изложения материала в форме цикличности. Это значит, что понятие повторяется, обогащаясь, в новых контекстах. Продолжая начатое при работе с исполнителем Чертежник знакомство с циклом for - to, целесообразно «отработать» его на простых задачах. Одна из таких задач - классическая задача нахождения суммы чисел от 1 до 10, а также различные ее модификации.
Знакомство с командой ветвления также стоит начать с примеров из жизни. Отметим сразу, что проще привести пример сокращенного ветвления, чем ветвления в полной форме.
1. Один из вариантов движения по материалу в разделе «Алгоритмические конструкции» выглядит нижеследующим образом.
2. Задача нахождения суммы чисел (от 1 до 10) и другие задачи на использование цикла for при обработке числовых данных. Варианты использования оператора цикла с параметром: for-downto, for i:=m to n и т.п.
3. Подведение к команде ветвления в сокращенной форме: задача нахождения частного двух чисел (условие: делитель<>0). Простые условия. Использование составного оператора.
4. Подведение к команде ветвления в полной форме: задача проверки числа на четность/нечетность. Задачи на кратность некоторому числу.
5. Использование составных условий (задача: является ли число двузначным). Логические операции and, or, not.
6. Задача: определить название поры года по номеру месяца. Вложенные операторы ветвления.
7. Оператор выбора.
8. Подведение к команде цикла с предусловием: задача нахождения суммы четных чисел.
9. Команда цикла с постусловием.
10. Скорость продвижения по материалу может зависеть от конкретной группы обучаемых. Закреплению материала способствует решение соответствующих задач на составление программ.
Литература
1. Лапчик М.П., Семакин И.Г., Хеннер Е.К. Методика преподавания информатики. Учеб. пособие для студ. пед. вузов / Под общей редакцией М.П. Лапчика. 3-е изд. — М.: Издательский центр «Академия», 2006. — 624 с.
2. А.Г.Кушниренко, Г.В.Лебедев, Я.Н.Зайдельман. Информатика. 7 — 9 классы — Москва. Дрофа, 2002.