Введение в програмирование.
Курс Программирования на языке Pascal
с использованием модуля GRAPH (для шестикласников)
Московский областной общественный Фонд новых технологий в образовании «Байтик» г. Троицк, Московская обл.
Данный курс был разработан и опробирован в Школе программиста Фонда "Байтик". Школа работает с 1998 года под руководством Золотовой Светланы Ивановны. Целью данного курса является подготовка шестикласников к освоению основного курса Школы программирования, а в качестве побочного результата – подготовка к наиболее полному освоению материала Компьютерной Школы, готовящей не программистов, но квалифицированных пользователей (руководитель ).
Курс разбит на этапы, которые будут приведены ниже. На каждом этапе задачи разбиваются на следующие категории:
- задачи, иллюстрирующие теоретический материал;
- задачи на тренировку полученных теоретических и практических навыков
- объемная задача расчитанная на самостоятельный выбор средств для решения с применением всех навыков, полученных на данном и предыдущем этапах обучения.
Основные этапы:
1. Освоение латинской клавиатуры слепым десятипальцевым методом.
2. Освоение приемов редактирования в текстовом редакторе среды Pascal. Сюда входит как знакомство с клавишами управления курсором и отработка приемов редактирования, так и работа с буффером обмена. Одновременно ученики осваивают сохранение своих текстов в файле, открытие файлов, знакомятся с файловой системой с помощью одной из программ-оболочек DOS. После первых же уроков ученики стремятся самостоятельно найти на дереве каталогов и запустить программу-тренажер клавиатуры, программу, загружающую среду программирования, активно интересуются где находятся файлы, которые они сохраняли, и учатся копировать свои файлы на дискету.
3. Написание линейных алгоритмов с использованием процедур графических примитивов. Управление графическим курсором, используя процедуры задания абсолютного местоположения и относительных смещений вдоль осей координат.
При выполнении заданий дети пользуются адаптированным справочником по процедурам и функциям модуля Graph. В дальнейшем это облегчит им общение с реальной литературой по программированию.
Здесь предлагаются следующие задачи:
-выкладывание небольшой картинки разноцветными точками как мозаикой (о подходящем для этой задачи разрешении экрана заботится преподаватель);
-получение на экране изображений зверей, портретов с применением графических примитивов;
-рисование замкнутого контура и его заливка (данная задача перекликается и известным из школьного курса информатики исполнителем «Чертежник»).
В завершении самостоятельно рисуется пейзаж с применением всех изученных способов рисования.
На данном этапе основные трудности у учащихся вызывает система координат экрана. Труден не тот факт, что ось Y направлена в непривычную для школьника сторону, а именно сама декартова система координат на плоскости. Осознание того, что для задания положения точки на экране требуются два числа, а не одно (ведь точка одна) требует у шестикласников заметных усилий.
Трудности вызывает и написание линейных алгоритмов. Оказывается, что из знания того, что машина выполняет команды последовательно, «читая» их сверху вниз и справа налево, не вытекает естественная необходимость записывать команды в том же порядке, а не в том месте текста, куда превратностями судьбы занесло курсор.
Как ни странно наименьшие затруднения вызывает процесс задания фактических параметров (на данном этапе это константы). Все ли параметры заданы или задано больше чем следует, дети выясняют, по возможности, самостоятельно, пользуясь справочником.
4. Освоение понятия переменной. Описание переменной, ввод значения с клавиатуры и оператор присваивания. Поскольку все параметры процедур модуля Graph целочисленные, то в понятие типа переменной мы намеренно не вдаемся, оставляя данную тему на следующий курс обучения.
Здесь предлагаются задачки на построение изображений, меняющих свои размеры и относительное местоположение согласно предварительно оговоренным правилам в зависимости от введенного в диалоге значения переменной. В процессе обучения выясняется, что переменная – это то, что меняется, а вовсе не буковка, которую на уроках математики по известным правилам переносят из одной части уравнения в другую.
5. Задачи на условный оператор.
6. Цикл Repeat. Осуществляем естественный переход от копирования последовательности повторяющихся операторов к применению цикла. Предлагаемые задачи: повторение до нажатия любой клавиши, заданное количество повторений, алгоритмы с повторениями для изображений в стиле исполнитель «Чертежник», вложенные циклы. В итоге самостоятельно рисуется пейзаж, изобилующий всеми выше перичисленными вариантами повторений.
7. Осваиваем задачи на имитацию движения и одновременно цикл For.
8. Решение задач на разные сочетания вложенных циклов. На этом этапе следует доказать когда и какой оператор цикла предпочтительнее применить.
9. Оператор цикла While. Задачи на движение до препятствия.
10. Освоение самостоятельного написания процедур. Начинаем с процедур без параметров и заканчиваем самостоятельной работой по высадке разноцветного парашутного десанта.
Поскольку каждый ученик обладает собственной работоспособностью и способностью к сосредоточению, то скорость прохождения программы и набор конкретных решенных задач для каждого ученика индивидуален. Здесь важно, чтобы присутствовали все разделы программы. Из учеников, успешно и досрочно справившихся с программой, была организована бригада ведущего программиста с целью реализации проекта «Мультфильм». Каждый ученик писал свой набор процедур, и по мере их написания встраивал их в основную программу.
Выводы о последствиях обучения по данной программе были сделаны из наблюдений за детьми, которые посещали и Школу программиста, и Компьютерную школу. Сам автор преподает в обоих и имеет богатый материал для сравнения.
В результате обучения по данной программе, ученики получают представление о файловой системе, и работа в «Проводнике» или в средстве «Мой компьютер» выглядит для них естественной после работы в DOS. Формируется убеждение, что чтобы добиться своего от компьютера, не надо запоминать какие кнопки и в каком порядке нажимать, а надо осознать с каким объектом имеешь дело, и спокойно найти места, где можно просмотреть и изменить его параметры. При работе в приложениях Windows, такие дети лучше осознают, что движения мышью, щелчки кнопками – это всего лишь более удобный, чем прямое написание, способ ввести в компьютер команду, а не просто таинственные пассы мышью.
При дальнейшем обучении программированию дети, освоившие в данном курсе большинство управляющих операторов, при более подробном их изучении более полно усваивают материал, ведь они буквально наблюдали на экране результаты применения этих операторов.
Программа помимо прочего преследовала цель приучить ученика к работе на результат (при построении изображений всегда очевидно достигнута ли цель, и что надо поправить в программе). Подбор и порядок задач стимулировал к самостоятельному выбору средств и принятия решений для реализации цели. Понятно, что сам процесс «рисования» обладает большей мотивацией, чем получение числа в ответе. Поэтому, как начальный этап обучения программированию школьников шестых – седьмых классов, работа с графической библиотекой может быть предпочтительней традиционного способа.


