При организации факультатива по обучению программированию в Scratch основными целями были: во-первых, заинтересовать обучающихся 5 классов процессом программирования, во-вторых, изучить основные алгоритмические структуры на примере разработки различных мини-проектов.
Среда программирования Scratch предназначена для детей от 5 до 16 лет. Так, с одной стороны, программа простая и интуитивно понятная в использовании, яркая и занимательная, чем привлекает детей младшего школьного возраста. С другой стороны, набор команд и возможностей позволяет реализовывать довольно сложные проекты.
Особенности программы Scratch позволяют создавать различные типы проектов:
- анимационные ролики;
- игровые программы;
- обучающие программы и тренажеры;
- интерактивные сюжеты.
Любой проект в Scratch формируется из блоков, разбитых на категории. Способ построения блоков определяет вид алгоритма, который будет реализован.
Предполагается, что ученики 5 класса впервые знакомятся с процессом программирования, поэтому в развлекательный процесс передвижения разноцветных блоков и получения занимательного результата в виде веселых проектов были включены образовательные моменты по изучению основных алгоритмических структур: следование, ветвление и цикл.
Рассмотрим основные алгоритмические структуры, их реализацию в Scratch и примеры возможных программ, где эти структуры применимы.
Традиционно логически первым мы рассматриваем алгоритмическую конструкцию «Следование», и его реализацию с помощью линейного алгоритма. Данная конструкция является приоритетной при начальном изучении программы, так как предполагает последовательное выполнение действий по порядку их написания. Она не вызывает затруднений при изучении и может применяться в различных ситуациях, но не позволяет сконструировать достаточно интересный и разнообразный проект.
Например, с помощью линейного алгоритма можно создать программу, с помощью которой герой рисует (чертит) геометрические фигуры (квадрат). Рассмотрим, как будет выглядеть программа:
Рисунок 1. Пример линейного алгоритма. Рисование квадрата. |
Рисунок 2. Результат выполнения программы |
Также можно использовать линейные алгоритмы при создании несложных мультфильмов, где герои не должны взаимодействовать, а должны менять облик (костюмы) в строго определенное время.
Рисунок 3. Пример линейного алгоритма. Кот и летучая мышь. Программа кота |
Рисунок 4. пример линейного алгоритма. Кот и летучая мышь. Программа для летучей мыши |
Рисунок 5. Результат выполнения программы
Далее логично изучается алгоритмическая конструкция ветвление. Ветвление очень широко используется при организации взаимодействия между персонажами и реакции персонажей на окружающую среду. В качестве примера можно привести простые игры с прикосновениями. Например, игра про кота и мины. Суть которой заключается в том, что персонаж управляемый кнопками «вверх», «вниз», «влево» и «вправо» должен обойти мины. Если персонаж касается мины, то она взрывается и игра считается проигранной. Основные блоки программы будут выглядеть следующим образом:
Рисунок 6. Пример разветвляющегося алгоритма. Кот и мина. Программа кота |
Рисунок 7. Пример разветвляющегося алгоритма. Кот и мина. Программа мины. |
Также можно привести пример, когда конструкция ветвление имеет более сложную форму и условие представляет собой составную конструкцию
Рисунок 8. Пример составного условия при реализации алгоритма ветвления
Последняя конструкция, которую мы рассмотрим это «повторение» и соответствующий ему циклический алгоритм. Данный тип алгоритма очень популярен и широко применим в создании анимации и игр, так как позволяет закрепить процессы взаимодействия в повторяющихся блоках. Для этого используются стандартные схемы организации циклов: цикл с предусловием, цикл с постусловием и цикл с заданным числом повторений.
Рассмотрим несколько примеров.
Рисунок 9. Организация с помощью цикла управлением персонажем |
Рисунок 10. Цикл с заданным числом повторений |
Рисунок 11. Цикл с предусловием |
Рисунок 12. Цикл с постусловием |
С практической точки зрения нужно понимать, что любой проект, достаточной сложности будет содержать все представленные алгоритмические конструкции в полном взаимодействии. Поэтому их отдельное изучение целесообразно только на начальном этапе знакомства с основными возможностями программы.
Специфика программы позволяет представить сложные темы по алгоритмизации в понятной, доступной и даже развлекательной форме, что помогает преодолеть у детей барьеры в изучении программирования в старших классах на более высоком уровне с использованием более абстрактных сред программирования.