Как программирование развивает навык решения проблем у детей
Содержание
Как известно, программирование развивает навык решения проблем у детей. Тем не менее, не все понимают, что это за навык, и недооценивают его важность. На примере программы, которую ребята пишут на первых уроках курса Программирование на Python, мы продемонстрируем как конкретно развивается этот навык и что это дает ребенку.
Про навык решения проблем
Представим ситуацию, что ребенок столкнулся с проблемой в повседневной жизни — не важно, в какой сфере — которую ему нужно самостоятельно решить.
“Ну что, ты решил, как будешь поступать?” — спрашиваете вы своего ребенка.
“Я даже не знаю, с чего начать!” — отвечает он вам.
Так вот, навык решения проблем именно про это — про структурный подход к решению проблем. Ведь если проблема объемная, нужно сначала обдумать план действий, а уже потом начинать действовать.
Итак, как ребенку (да и любому взрослому) решить проблему:
1. Разбить проблему на подпроблемы.
2. Определить, какую предпроблему решить в первую очередь.
3. Найти решение для каждой подпроблемы, пока не будет устранена вся проблема.
Разбить проблему на подпроблемы
По-другому, реализовать декомпозицию. К решению мелких проблем приступить легче. А как только хотя бы одна из них будет устранена, ребенок обретет уверенность в себе и импульс для решения последующих задач.
Определить, к какой подпроблеме подступиться в первую очередь
После декомпозиции происходит осмысление порядка решения всех мелких задач, которые стоят перед нами. Скорее всего, что-то из них уже решено, а что-то решить несложно. А тут — и до полдела рукой подать!
Найти решение для каждой подпроблемы
Творческий подход, логика и критическое мышление, и никакой магии — проблема решена!
Как программирование помогает детям развивать этот навык
Разберем на практическом примере — простой программе-игре “Камень-ножницы-бумага”, которую пишут дети на первом уроке курса программирования на Python.
Итак, преподаватель задает тему и предлагает написать программу. Все ученики в недоумении, никто не знает ответа. Отсюда вся группа начинает декомпозировать задачу — дробить на подзадачи. Результат декомпозиции:
1. Пользователь делает выбор
2. Компьютер делает выбор
3. Определяется победитель и выводится на экран
Каждая подзадача — 1-3 строки кода, с которым ребята знакомы. Недоумение сменяется уверенностью, ведь отправная точка определена.
Ищем решения для каждой подзадачи
Итак, после того, как ребята знают порядок действий, они могут написать код для каждого из них.
На первом этапе компьютер просит пользователя сделать выбор. Ребятам известно, как сделать это при помощи кода, ведь это первая тема курса Программирование на Python. На втором этапе выбор делает компьютер — важно сделать его рандомным.
Все, что остается, — чтобы компьютер определил победителя на основе вариантов, сделанных пользователем и компьютером. Но перед этим от ребят требуется перечислить всевозможные комбинации и их результаты, оформив в виде схемы. Дети понимают, что используется логическая операция “если — то”.
“Если я выбираю камень, а компьютер — ножницы, то я проиграл”.
Как выглядит готовый код на Python, написанный ребятами:
В заключение
На примере создания простейшей игры мы показали, как программирование помогает ученикам пройти путь от незнания-недоумения до полного решения поставленной задачи. Вообще, в программировании без декомпозиции никуда, ведь программы становятся все сложнее и многограннее.
Поэтому программирование стимулирует ребят укреплять их навык решения проблем и развивать критическое мышление.
В Code it! дети на каждом занятии работают над задачами, которые требуют кропотливого труда, креативности и обязательно навыка решения проблем.