• En
  • Рус

Почему я отдаю предпочтение обучению учащихся основам программирования средствами Scratch

Почему я отдаю предпочтение обучению учащихся основам программирования средствами Scratch










СВЕТЛАНА ИВАНОВА
методист, Образовательный центр ПВТ

О среде программирования Scratch существуют самые расхожие мнения. Часть педагогов разделяет и горячо поддерживает посыл Митчела Резника, руководителя исследовательской группы Lifelong Kindergarten Массачусетского технологического института, которая создала среду программирования Scratch: «Для того, чтобы дети могли не только развивать свое мышление, но и иметь возможность самовыражаться и лучше осознать, кто они на самом деле, мы использовали 4 основных принципа при разработке Scratch: проекты, партнеры, увлеченность, игра». Подтверждением тому являются статьи из рубрики «Делимся опытом» в первом выпуске издания «Программирование в среде Scratch». Думаю, подобных статей мы еще увидим немало. В то же время есть мнение учителей информатики, которые занимаются подготовкой учащихся к республиканской олимпиаде по учебному предмету «Информатика». Это мнение звучит приблизительно следующим образом: «Как теперь организовывать подготовку учащихся к республиканской олимпиаде? Ведь налажена целая система подготовки учащихся, начиная с 5 класса, а то и с 4 класса. Кто же теперь придет на факультативные занятия по программированию на языке Pascal? Вы всех детей забрали на факультативные занятия по Scratch. Создаете открытки, какие-то анимированные истории. Одним словом, играетесь».

Но многие учителя информатики видят и преимущество среды программирования Scratch перед языком программирования PascalABC в обучении учащихся программированию на уроках информатики. Например, на портале Scratch.by в рубрике «Новости проекта» размещена статья «Scratch vs PascalABC», в которой Виктор Константинович Коховец, учитель информатики ГУО «Валищенская средняя школа» Пинского района, отвечает на вопрос «В чем преимущества Scratch в обучении информатике перед используемым сейчас PascalABC?».

В этом случае хочется вспомнить утверждение Сеймура Пейперта: «У языка программирования должен быть «низкий порог» (любой способен начать изучать этот язык) и «высокий потолок» (есть возможность со временем создавать сложные проекты). Кроме этого, у языков программирования должны быть «широкие стены» (язык программирования должен поддерживать различные проекты, так, чтобы люди с разными интересами могли вовлечься в процесс изучения языка). У меня создалось впечатление, что именно «низкий порог» среды Scratch спровоцировал ложные представления у части учителей информатики о ее потенциале. Приведу еще пример высказываний в адрес Scratch: «Как можно воспринимать среду Scratch серьезным стартом в развитии навыков алгоритмизации и программирования, если обучать Scratch могут учителя начальных классов?» А еще есть мнения, что максимум можно работать в Scratch до 4 класса, а потом надоедает и у детей пропадает интерес. Из бесед, к сожалению, зачастую становится очевидно, что интерес пропадает в первую очередь у учителя, а не у учащихся. Может, это происходит потому что не смогли рассмотреть «высокий потолок» или смущают «широкие стены»?

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

Scratch был создан в качестве инструмента, который сделает программирование простым и интуитивно понятным. Его цель – позволить детям, у которых нет опыта программирования, изучить основные принципы императивного, объектно-ориентированного и многопоточного программирования.

Создан под влиянием Logo, Smalltalk.

Парадигмы, поддерживаемые Scratch (далее в скобках указаны языки, поддерживающие данную парадигму и находящиеся на слуху у учителей и у школьников):

·       императивная: описывает процесс вычислений посредством описания управляющей логики программы, то есть в виде последовательности отдельных команд, которые должен выполнить компьютер. Каждая команда является инструкцией, изменяющей состояние программы (C, C#, C++, Java, PHP);

·       на уровне значений: сосредотачивается на изучении типов данных, то есть значений и элементарных операций над ними, их структуры и свойств. Обычно элементарные операции образуют алгебру над пространством значений (C, C#, C++, Java, Pascal);

·       объектно-ориентированная: каждый спрайт на самом деле является объектом со своими свойствами (переменными) и поведением (скриптами), и разные объекты могут взаимодействовать (C#, C++, Java, PHP);

·       скалярная: низкоуровневая парадигма, диктующая отсутствие в языке матричных операций. Каждая операция применяется к отдельным скалярным величинам, но не ко всему массиву (C, C#, Java, Pascal);

·       структурная (в низкоуровневом понимании): все программы конструируются из ограниченного набора элементов или блоков (C, C#, Pascal);

Типизация:

·       динамическая: большая часть проверок типов данных выполняется на этапе выполнения программы, хотя некоторые проверки (например, проверка синтаксической корректности кода) выполняются на этапе компиляции. Кроме того, типы данных ассоциируются с конкретными значениями, а не с переменными (PHP, Python);

·       неявная: не требует явного объявления типа для используемых переменных;

·       типизированная: спецификация каждой операции включает в себя типы данных, которые могут быть аргументами этой операции, и запрещает применение этой операции ко всем остальным типам данных. (C, C#, C++, Java, Pascal).

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

Нельзя проигнорировать и опыт работы. В свое время, работая учителем информатики, подготовку учащихся к олимпиадам по программированию я начинала с 5 класса, так как уже для учащихся 5-6 классов проводились районные и областные олимпиады по программированию на языке Pascal. Имеется и опыт проведения факультативных занятий для учащихся 2-4 классов «Творческая деятельность в среде программирования Scratch», а также для учащихся 5-6 классов «Создание компьютерных игр на языке визуального программирования Scratch». Предлагаю сравнить перечень знаний и умений учащихся 5-6 классов, достаточный для успешного участия в олимпиаде по программированию на языке Pascal, и перечень знаний и умений, приобретаемый в результате посещения факультативных занятий «Создание компьютерных игр на языке визуального программирования Scratch» для учащихся 5-6 классов (табл. 1).

 

 

В результате подготовки к районной и областной олимпиадам по программированию на языке Pascal (5-6 классы)

В результате посещения факультативных занятий «Создание компьютерных игр на языке визуального программирования Scratch» для учащихся 5-6 классов

Должны знать:

 

+

понятие алгоритма

+

+

структуру программы

+

+

понятие переменной и типа переменной

+

+

процедуры/блоки ввода и вывода данных

+

+

арифметические операции

+

+

оператор присваивания

+

+

правила использования арифметических операций с целочисленными и вещественными переменными

+

+

правила использования строкового типа данных

-

+

алгоритмические конструкции «следование», «цикл», «ветвление»

+

+

простые и составные условия

+

+

формат описания одномерного массива/ список

+

+

понятия процедуры и функции

-

+

Должны уметь:

 

 

владеть приемами записи арифметических выражений

+

+

владеть приемами работы со строковым типом данных

-

+

использовать процедуры/блоки ввода-вывода

+

+

использовать алгоритмические конструкции «следование», «цикл», «ветвление» для решения задач

+

+

использовать простые и составные условия для решения задач

+

+

вводить/выводить элементы массива

 

+

выполнять основные действия над элементами массива

 

+

выполнять поиск элементов с заданными свойствами

+

+

использовать процедуры и функции

 

+

Таблица 1.

Еще один вывод в пользу среды Scratch как средства обучения программированию: в результате посещения факультативных занятий «Создание компьютерных игр на языке визуального программирования Scratch» для учащихся 5-6 классов ребенок овладеет знаниями и умениями даже больше достаточного уровня для успешного участия в олимпиадах по программированию. Если говорить о специфике задач, решаемых в рамках подобных олимпиад, то приведу еще один пример. 15 мая 2018 года в г. Орше прошла Витебская областная олимпиада по программированию в среде Scratch для учащихся 5-6 классов, почетным гостем которой был Митчел Резник. Одним из организаторов олимпиады являлся факультет математики и информационных технологий ВГУ имени П.М. Машерова, а задания составляла заведующий кафедрой информатики и информационных технологий Алейникова Татьяна Григорьевна. Отмечу, что данную олимпиаду по программированию в среде Scratch отличает от большинства подобных олимпиад и конкурсов тип задач. Вот одна из них – задача «Банкомат».

В банкомате имеется достаточное количество купюр номиналами 50, 20, 10 и 5. Пользователь по запросу вводит сумму (не больше 500) и получает ее минимальным количеством купюр. Изображение купюр появляется на сцене, выдается сообщение пользователю. Предусмотрите обработку некорректного ввода запрашиваемой суммы.

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

На олимпиадах по программированию на языке Pascal для 5-6 классов, как правило, не предлагаются задачи на обработку строкового типа данных. А в среде Scratch такие задачи решают. Вот еще одно задание Витебской областной олимпиады по программированию в среде Scratch. Задача «АБВ».

Разработайте проект, в котором введенный с клавиатуры пользователем текст отображается в виде бегущей по сцене строки. Используйте для отображения символов костюмы спрайта «Алфавит» (это русские буквы и пробел, другие символы отображаются пробелом).

Если во введенном тексте содержится слово Скретч, то после бегущей строки на сцене появляется поздравление «С днем рождения, Скретч».

Указание. Буквы алфавита сохранены в списке «алфавит», их изображения в том же порядке – в костюмах спрайта «Алфавит».

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

Кроме того, Scratch предлагает мощный набор мультимедийных инструментов: стандартные блоки предоставляют множество графических и звуковых функций, а также возможность обработки сигналов с клавиатуры, мыши и сенсора. Поэтому хотелось бы отметить среду Scratch и как мощный инструмент обучения учащихся программированию через создание компьютерных игр. Пускай ребенку не нужно писать код руками, но, продумывая сложные алгоритмы и собирая блоки, он может создавать удивительные проекты. В зависимости от жанра игры нужно владеть специальными знаниями по математике, понимать физику происходящих процессов. Уровень сложности создаваемых учащимися компьютерных игр можно оценить, если на сайте scratch.mit.edu в строке поиска ввести названия игр на русском или на английском языках, например, пятнашки, тетрис, три в ряд, шахматы, платформер или ввести название вашей любимой игры. Убеждена, что после того как вы заглянете внутрь проекта, вы оцените среду программирования Scratch за возможность со временем создавать сложные проекты и за возможность создавать различные проекты, позволяющие учащимся с разными интересами вовлечься в процесс программирования.

Спустя месяц после своего визита в Беларусь Митчел Резник поделился своими впечатлениями об увиденном, вот одно из них:

«Преподаватели в Беларуси все еще ищут оптимальные способы внедрения программирования в школьную программу. В Минске я принял участие в круглом столе с учителями, чиновниками и исследователями в области образования. Одним из главных был спор вокруг «строгости» и «творчества». Некоторые участники считали, что школы должны сосредоточиться на дисциплинированном, строгом подходе к обучению основным навыкам и основным понятиям. Другие участники выступали за основанный на проектах подход, направленный на поощрение творческого мышления и творческого самовыражения. Я утверждал, что это ложная дихотомия: я считаю, что учащиеся могут и должны изучать основные навыки в ходе работы над творческими проектами. Полагаю, у учеников больше шансов хорошо усвоить основные понятия и навыки, пока они работают над проектами, которые им небезразличны и интересны».

Вывод: начать программировать в Scratch легко, а насколько будет «высок потолок» и «широки стены» – зависит от нас – учителей.



наверх