Этапы развития навыка программирования у детей. Как оценить скиллы ребенка?
Привет! На связи школа программирования для детей Code it!
Часто родители спрашивают нас, как узнать, умеет ли мой ребенок писать код. Родители ценят, что детям нравится, а наш подход побуждает их создавать новые проекты, и таким образом выражать себя. Но родители не понимают, по каким параметрам нужно оценивать скиллы своих детей.
Сегодня попробуем разобраться, какие выделяют этапы в развитии навыка программирования у детей и как определить, на каком этапе находится ваш ребенок.
Любой обучающий процесс стадийный. Это значит, что существует последовательное кумулятивное развитие, разбитое на этапы. Замечательный пример — языковые уровни A1, A2, B1 и др. Переход от одной стадии к другой не всегда четко определен, но на дистанции вполне очевиден.
Преподаватель знает, что развитие любого навыка — чтения, математики, письменной речи — это стадийный процесс, и обучать нужно поэтапно, дозируя информацию, учитывая логику, первичные данные ребенка и так далее. Траектория обучения должна быть понятна, без этого никуда. То же применимо и к обучению детей программированию, хотя стандартов и теории все еще нет.
Предлагаем ознакомиться с этапами освоения кодинга, разработанные профессором бостонского колледжа Мариной Умаски Берс, которая занимается образованием детей в области компьютерных технологий. Ее известная работа “Beyond Coding: How Children Learn Human Values through Programming”, в которой Берс рассматривает программирование как инструмент развития у детей логики, критического мышления, этических норм и коммуникации в обществе.
Итак, Берс выделяет пять этапов развития навыка программирования у детей, переход между которыми четко не регламентирован. Первые четыре стадии, отмечает Берс, возможно пройти самому, экспериментируя и исследуя, например, через создание игр, а вот последний этап явно потребует специального обучения. В зависимости от качества обучения, любопытства и самостоятельности ребенок может быстро усвоить материал, а может и не достигнуть какого-то этапа вообще.
Между этапами есть иерархия, основанная на синтаксисе и грамматике кода: вначале ребенок осваивает простые структуры и команды (например, start/end), далее, очевидно, все более сложные (оператор if).
Этапы развития навыка программирования у детей
Этап 1. Зарождение
Самый первый этап: ребенок знакомится с программированием.
- Ребенок узнает, что технологии принадлежат человеку и разработаны для различных целей.
- Понимает, что такое символ и как он обозначается (не сама команда это действие, а команда задает действие).
- Понимает, что такое язык программирования и зачем он нужен (знает о существовании циклов и управляющих конструкций).
- Знакомится с интерфейсом.
Этап 2. Кодирование и расшифровка
На этом этапе наблюдается наибольший рост: дети изучают основы языка программирования и понимают, как с помощью него создавать проекты.
- Ребенок осознает важность последовательности: определенный порядок команд порождает определенное поведение программы.
- Ребенок осваивает минимальный набор символов и правила грамматики для создания своего первого проекта.
- Ребенок умеет создавать программы с помощью простых причинно-следственных отношений между командами.
- Ребенок умеет определять и исправлять грамматические ошибки в алгоритме.
- Ребенок умеет выполнять отладку методом проб и ошибок.
- Ребенок умеет анализировать простой код и команды.
Этап 3. Понимание в момент восприятия
На этом этапе наблюдается переход с позиции “учиться писать код” к “писать код, чтобы учиться”.
- Ребенок осваивает синтаксис языка программирования и может писать программы.
- Ребенок мотивирован на написание более сложных программ.
- Ребенок понимает, как различать и исправлять логические ошибки в коде.
- Ребенок начинает стратегические подходить к отладке.
Этап 4. Новые знания
На этом этапе ребенок более самостоятелен: сам умеет создавать интересные ему программы, при необходимости сам изучает новую информацию, чтобы дополнить программу новыми фичами.
- Ребенок понимает, как сочетать несколько управляющих конструкций (например, конструкция if — структура принятия решений, которая дает возможность обозначить, должен ли какой-то набор команд выполняться согласно условиям теста) и создавать вложенные программы, обеспечивающие сложную последовательность.
- Ребенок начинает подходить более целенаправленно и логически к построению программ.
- Ребенок мотивирован на написание более сложных программ.
- Ребенок стратегически подходит к отладке.
- Ребенок изучает новые команды и по-новому использует интерфейс.
Этап 5. Целенаправленность
- Ребенок умеет сам создавать сложные программы для своих целей
- Ребенок понимает, как анализировать абстрактные понятия и переводить их в код и наоборот (абстракция в программировании — описание только самых существенных деталей, которые важны для задачи).
- Ребенок может перевести абстракцию в код несколькими способами.
- Ребенок понимает, как создавать программы, требующие участие пользователей.
- Ребенок может создавать несколько программ, которые взаимодействуют друг с другом.
- Ребенок умеет отлаживать несколько управляющих конструкций.
На этом этапе от ребенка требуются все его навыки и гибкость, чтобы писать код на высоком уровне абстракции и создавать самостоятельные проекты. Не все ребята достигают этого уровня по ряду причин, однако те, которым удается, имеют определенный склад ума и понимание программирования как такового. Несомненно, таким ребятам удается осваивать остальные команды, грамматику и синтаксис кода и выражать себя через проекты.
Осваивать программирование нужно с раннего детства (с 5-6 лет). Начинать лучше всего с программирования в Scratch.