Роль графики в обучении программированию: от Рапиры до Python’а

Роль графики в обучении программированию: от Рапиры до Python’а

Одно из важных свойств в восприятии человеком информации – его уникальная способность быстро анализировать визуализированную информацию. Механизмы этой способности не до конца поняты и пока не воспроизводимы в полной мере в компьютерных системах, но это не означает, что ею следует пренебрегать, например, при изучении алгоритмизации и программирования. Поэтому в группе школьной информатики, созданной А.П. Ершовым в ВЦ СО АН СССР в середине семидесятых годов прошлого столетия, идея использовать визуализацию в методических целях была одной из ключевых. Применение этой идеи заключалась в том, чтобы исполнение алгоритма сопровождалось построением некоторого геометрического образа. В этом случае логические ошибки алгоритмизации обнаруживались бы именно в том месте, где они происходили, а не в результате получения неверного результата расчёта в целом или невыполнимости какой-либо команды в силу более ранних ошибок (например, деления на число 0 или извлечения корня из отрицательного числа, хотя сами эти числа ошибочно возникли гораздо раньше).

Проблема реализации идеи состояла в том, что в то время программирование рисования даже простейших геометрических фигур – отрезка прямой, дуги окружности и т.д. – в существовавших тогда системах математического обеспечения графопостроителей требовало значительных дополнительных усилий. Это отвлекало от решения основной задачи обучения. Чтобы преодолеть эти препятствия была создана система ШПАГА (Школьный ПАкет Графических процедур, Адаптированный), система команд которой предусматривала непосредственное создание нужных графических примитивов с заданными параметрами [1]. Сегодня это звучит достаточно банально, но в тот период ничего подобного ещё не было.

Сопряжение системы ШПАГА с разработанным тогда же языком программирования РАПИРА с русской нотацией позволило полноценно выстроить методику обучения школьников основам программирования с использованием геометрической наглядности исполнения создаваемых учащимися программ. Соответственно был разработан комплекс заданий для учащихся разных возрастных категорий. Часть из них была опубликована в[2 – 6].

К моменту появления компьютерного курса информатики в школе (1990 г.) идея геометрической визуализации исполнения алгоритма была «скрещена» с идеей использования учебных исполнителей. Из трёх учебников, допущенных в то время к использованию в преподавании информатики в компьютерном варианте, два предусматривали учебное программное обеспечение с графическими исполнителями ([7, 8]). Необходимо, конечно, отметить, что у этой идеи был прототип в виде Лого-черепашки, но русскоязычная версия Лого появилась значительно позже (и с этого момента использовалась в преподавании информатики, правда, в довольно ограниченном объёме из-за дороговизны продукта). В то же время в школьных учебниках информатики появились визуализированные исполнители, работающие на клетчатом поле (Робот [8], Паркетчик [9]). Их методическая направленность состояла в визуализации не только исполнения алгоритма, но и простейших структур данных, таких, как массив и стек.

В конце XX века в школу вместе с более совершенной техникой пришло изучение информационных технологий, в том числе графических редакторов. Это было время, когда вообще активно обсуждалось, нужно ли в общеобразовательном курсе учить алгоритмам и тем более программированию. Такой постановке вопроса содействовал целый ряд факторов. Во-первых, и школьникам, и их родителям было совершенно очевидно, что владение информационными технологиями (а они не были тогда широко доступны на бытовом уровне) повышает конкурентную способность выпускника. Во-вторых, учительский корпус справедливо считал преподавание технологий более лёгким по сравнению с преподаванием программирования. В-третьих, количество часов, отводимых на изучение информатики совершенно недостаточно для того, чтобы и технологии, и программирование изучить на достаточно высоком уровне. Нужно было выбирать, и выбор, как правило, делался в пользу технологий. В-четвёртых, активно проводилась идея исключения учебных исполнителей из курса информатики, а обучение алгоритмизации и элементам программирования вести сразу на каком-либо языке (преимущественно на Бейсике или Паскале).

Что касается учебных исполнителей, то здесь положительную роль в их возвращении в курс школьной информатики сыграл единый государственный экзамен (ЕГЭ). В экзаменационных заданиях фигурирует немало формальных исполнителей, работающих с последовательностями чисел, символьными строками, в том числе и на клетчатом поле. Стало понятным, что школьников надо знакомить с общим понятием формального исполнителя алгоритма. Графические исполнители (Чертёжник, Черепаха) заняли своё место в учебниках для пропедевтического курса информатики ([10]), а исполнители на клетчатом поле заняли своё законное место в базовом курсе средней школы ([11, 12]).

Современные языки программирования оснащены достаточно богатыми графическими библиотеками. Это позволяет реализовывать указанную идеологию непосредственно при изучении языка программирования. В прошедшем учебном году в одном из классов Специализированного учебно-научного центра (СУНЦ) УрФУ при изучении языка программирования Python учащимся были предложены те же задачи, которые рассмотрены в [2 – 6]. Эти задачи и у нынешних школьников вызывают интерес. Значительное увеличение возможностей современных компьютеров по сравнению с тем, что было в 80-е годы прошлого столетия, позволило формулировать и более сложные задачи со значительно более весомым исследовательским компонентом. Современный язык программирования позволяет учащимся получать результаты, более широко варьируя параметры, за счёт более высокой скорости проводить эксперименты в большем объёме и в режиме реального времени. Особенно эффектным и потому повышающим эффективность является применение анимации.

Хотим в заключение подчеркнуть, что идеи, рожденные более 40 лет назад, не только не утратили своего значения, а могут быть более продуктивно использованы в современных условиях.

Литература

  1. Салихова А.К., Соколова Н.А. Комплекс процедур машинной графики ШПАГА // Н.: 1979. – 12 с. (Препринт / АН СССР. Сиб. отделение, ВЦ; 169).

  2. Салихова А.К., Соколова Н.А. Графическая система Шпага. / Квант, 1980, № 1. – с. 56 – 59.

  3. Юнерман Н.А. Использование графической системы ШПАГА при введении основных понятий программирования // ИнфО, 1988, № 1. – с. 52 – 55.

  4. Глаголева Н.Г., Юнерман Н.А. Основные понятия языка Рапира // ИнфО, 1989, №№ 1 – 4.

  5. Первин Ю.А. Заочная школа программирования: циклы // Квант, 1980, № 9. – с. 52 – 57.

  6. Юнерман Н.А. Программирование задач в полярной системе координат // Квант, 1980, № 10. – с. 47 – 59.

  7. Основы информатики и вычислительной техники. Учебник для сред. учеб. заведений. / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий и др. – М.: Просвещение, 1990. – 254 с.

  8. Основы информатики и вычислительной техники. Учебник для сред. учеб. заведений. / А.Г. Кушнирено, Г. В. Лебедев, Р.А. Сворень и др. – М.: Просвещение, 1990. – 224 с.

  9. Информатика, 7 – 9 кл.: Учебник для общеобразоват. учеб. заведений. / А.Г. Гейн, А.И. Сенокосов, В.Ф. Шолохович – М.: Дрофа, 1998. – 240 с.

  10. Информатика: алгоритмика: учебник для 6 кл. общеобразоват. учреждений. / А.К. Звонкин, С.К. Ландо, А.Л. Семёнов – М.: Просвещение, 2006. – 239 с.

  11. Информатика, 7 класс: учебник для общеобразоват. учреждений. / А.Г. Гейн, Н.А. Юнерман, А.А. Гейн. – М.: Просвещение, 2012. – 191 с.

  12. Информатика, 8 класс: учебник для общеобразоват. учреждений. / А.Г. Гейн, Н.А. Юнерман, А.А. Гейн. – М.: Просвещение, 2013. – 159 с.

Об авторе: кандидат педагогических наук,
Уральский федеральный университет имени первого Президента России Б.Н. Ельцина
Екатеринбург, Россия
Материалы международной конференции Sorucom 2017
Помещена в музей с разрешения автора 18 января 2019