Родитель рядом с кодом: как поддержать юного программиста

Родителямобновлено 07.10.20269 мин чтенияесть тренажёр

Помочь ребёнку с программированием может любой взрослый, даже тот, кто никогда не писал код: нужны не знания синтаксиса, а вопросы, терпение и интерес к тому, что ребёнок делает. Ваша задача — помогать думать вслух, вместе искать ошибки и радоваться готовым проектам, а не решать задачи за него.

Загружаем…

Как помочь ребёнку, если вы сами не программируете

Родителю-непрограммисту не нужно объяснять циклы и переменные: его роль — это роль внимательного слушателя и первого пользователя программы. Когда ребёнок объясняет свой код вслух, он сам замечает пробелы в понимании.

Психолог Л. С. Выготский описывал зону ближайшего развития: то, что ребёнок пока не может сделать один, но может с поддержкой взрослого[1]. Поддержка здесь — не готовый ответ, а наводящий вопрос, пример или предложение разбить задачу на части. Именно так родитель может помочь ребёнку без всякого опыта в программировании.

Есть ещё одно преимущество незнания: вы задаёте честные вопросы. «А почему кот идёт влево?» от взрослого, который действительно не знает ответа, заставляет ребёнка разобраться глубже, чем подсказка от того, кто знает.

Чем помочь ребёнку в разном возрасте

Форма помощи меняется с возрастом: в 5–7 лет взрослый играет вместе, в 8–10 лет помогает спланировать проект, а подростку чаще нужна поддержка в организации времени, чем подсказки по коду. Ниже — ориентиры, а не строгие правила: возраст не стоит считать жёсткой границей.

ВозрастСредаКак помогает взрослый
5–7 летScratchJr, игры без компьютераСидит рядом, читает надписи, играет роль «робота», который выполняет команды буквально
8–10 летScratchПомогает нарисовать план игры на бумаге, тестирует проект, задаёт вопросы о блоках
11–13 летScratch и PythonПоддерживает переход к тексту, помогает читать сообщения об ошибках
14 лет и старшеPythonПомогает с расписанием и целями: школьная информатика, ОГЭ, свой проект

Scratch, который разрабатывает группа Lifelong Kindergarten в MIT Media Lab, переведён на русский, поэтому младшему школьнику подсказка взрослого чаще нужна для чтения, а не для программирования. Python бесплатно распространяет Python Software Foundation, и официальная документация Python написана на английском: с ней подростку можно помочь, разбирая примеры вместе. В школе, по федеральной образовательной программе ООО, программирование появляется на уроках информатики с 8 класса, и помощь дома хорошо дополняет эти уроки.

Главное во всех возрастах одно: помочь ребёнку — значит дать ему сделать шаг самому. Если подсказка снимает с него всю работу, это уже не поддержка, а замена.

Вопросы вместо готовых ответов

Если ребёнок застрял, первые 5 минут помощи — это вопросы, а не подсказки. Хороший вопрос заставляет его посмотреть на программу по-новому и найти решение самому.

СитуацияВместо этогоСпросите так
Программа не запускается«Дай я посмотрю»«Что написано в сообщении об ошибке? На какой строке?»
Работает не так, как задумано«Тут надо поменять 10 на 20»«Что ты хотел, чтобы произошло? А что происходит?»
Не знает, с чего начать«Сделай сначала фон»«Что должно случиться первым, когда нажмёшь флажок?»
Задача кажется слишком большой«Это сложно, давай попроще»«Из каких частей состоит игра? Какую можно сделать сегодня?»
Получилось!«Молодец»«Покажи, как это работает. Что было самым трудным?»

Вопрос «что ты ожидал и что получилось?» — самый полезный в программировании. Профессиональные разработчики задают его себе постоянно, и ребёнку полезно привыкнуть к нему с первых проектов.

Отладка вместе

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

  1. Прочитать сообщение. В Python ошибка называет тип и номер строки. Попросите ребёнка вслух прочитать последнюю строку сообщения.
  2. Найти строку. Пусть покажет пальцем строку с номером из сообщения и строку над ней: ошибка часто сидит выше.
  3. Объяснить построчно. «Что делает эта строка?» Ребёнок рассказывает, вы слушаете. Этот приём программисты называют «резиновой уточкой»: объясняя вслух, человек сам находит ошибку.
  4. Менять одно за раз. Одно исправление — один запуск. Иначе непонятно, что помогло.
  5. Записать находку. Тетрадь «мои ошибки» с примерами быстро становится личным справочником.

Пример. Ребёнок написал программу, и Python выдал ошибку SyntaxError:

for i in range(3)
    print("Ура!")

Не подсказывайте сразу про двоеточие: готовый ответ здесь не нужен. Спросите: «Посмотри на другие свои циклы. Чем эта строка от них отличается?» Исправленный вариант:

for i in range(3):
    print("Ура!")

Как читать такие сообщения, подробно разобрано в статье как читать ошибки Python, а общий подход — в материале про отладку программ.

Игра «угадай вывод» в редакторе

Чтобы потренироваться вместе, используйте редактор под заголовком: это окно с кодом, кнопками «Сбросить» и «▶ Запустить» и панелью «Вывод» справа. Черновик сохраняется в браузере.

Правила игры для двоих такие. Ребёнок читает программу и говорит, что она выведет. Родитель записывает ответ на листке. Потом нажимаете «▶ Запустить» (или Ctrl+Enter) и сравниваете. Если не совпало, ребёнок объясняет, где ошибся в рассуждении. Затем меняйте роли: пусть ребёнок поменяет одно слово в списке, а вы угадываете, что изменится. Взрослый, который ошибается вслух и разбирается вместе, показывает, что ошибки — нормальная часть работы.

Такая самопроверка закрепляет знания лучше перечитывания: Roediger и Karpicke показали в исследовании, что попытка вспомнить ответ даёт более прочное запоминание, чем повторное чтение[2]. Если ребёнок сделает ошибку в коде, редактор покажет сообщение и подсказку на русском.

Проекты на выходные

Совместный проект на выходные — это способ помочь ребёнку увидеть цель: не «выучить циклы», а сделать открытку бабушке или игру для младшего брата. Ниже идеи, для которых родителю не нужно знать код.

ПроектСредаЧто делает взрослый
Анимированная открытка к праздникуScratchПридумывает текст поздравления, записывает голос
Игра «поймай яблоко»ScratchТестирует игру и честно говорит, где скучно
Семейная викторинаPythonСоставляет вопросы о семье, проходит викторину
Узор черепашкойPython, turtleВыбирает цвета, предлагает «а если 8 сторон?»
«Угадай число»PythonИграет против программы и ищет способ её «сломать»

Больше идей по уровням — в подборке идеи проектов Scratch. Роль «тестировщика» особенно ценна: ребёнок видит, что его программой пользуется живой человек, и сам начинает думать о том, где она может сломаться.

Как поддерживать интерес

Интерес держится на своих проектах, зрителях и ощущении прогресса. Сеймур Пейперт, автор языка Logo, писал, что дети лучше всего учатся, когда создают то, что им самим важно[3].

  • Зритель. Регулярный «показ» проекта семье по выходным. Ребёнок готовится, а значит доделывает.
  • Хвалить процесс. «Ты долго искал ошибку и нашёл» работает лучше, чем «ты гений».
  • Сравнение с собой. Откройте проект месячной давности: видно, сколько стало понятно.
  • Свобода темы. Игра про любимого героя важнее «правильного» учебного задания.

Подробнее о мотивации — в статье как поддержать интерес к программированию.

Миф: «Чтобы помогать, родителю нужно самому выучить Python». Это не подтверждается практикой: вопросы, внимание и роль первого пользователя доступны любому взрослому. Знание языка полезно, но не обязательно.

Миф: «Если ребёнок долго мучается, надо сразу показать решение». Готовый ответ снимает напряжение, но не учит. Короткая пауза и наводящий вопрос дают больше, а «правильного» времени, после которого обязательно подсказывать, не существует.

Когда ваша помощь мешает

Если взрослый берёт мышку и клавиатуру в свои руки, помощь мешает: проект становится его, а не ребёнка. Есть и другие ситуации, где лучше отойти на шаг.

  • Вы исправляете код быстрее, чем ребёнок успевает подумать, уже 2–3 раза за вечер. Сядьте подальше и ждите вопроса.
  • Ребёнок 13–14 лет хочет разбираться сам. Предложите помощь один раз и оставьте дверь открытой.
  • Вы сидите рядом все 60 минут занятия. Ребёнок начинает ждать подсказки вместо того, чтобы думать.
  • Вы задаёте вопрос за вопросом 10 минут подряд. Это уже допрос; дайте паузу и вернитесь позже.

Чего делать нельзя

  • Нельзя забирать клавиатуру и исправлять код за ребёнка, даже если «так быстрее».
  • Не следует сравнивать ребёнка с одноклассниками, братьями или «детьми из интернета».
  • Не стоит ругать за ошибки в программе: ошибка — обычный этап работы.
  • Нельзя превращать занятия в обязаловку с отчётом по часам.
  • Не стоит обесценивать игры: желание сделать свою игру — сильный повод учиться.
  • Не допускается высмеивать проект, даже в шутку и даже если он «детский».

Если хочется с чего-то начать прямо сегодня, откройте вместе первую программу ребёнка.

Источники

[1] Выготский Л. С. Мышление и речь. М., 1934.

[2] Roediger H. L., Karpicke J. D. Test-enhanced learning: Taking memory tests improves long-term retention // Psychological Science. 2006. Vol. 17, № 3. P. 249–255.

[3] Papert S. Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books, 1980.

Вопросы и ответы

Что делать, если я совсем ничего не понимаю в коде?

Попросите ребёнка научить вас. Объясняя взрослому, он повторит материал и заметит, что понимает плохо. Ваша роль — честно переспрашивать.

Сколько времени уделять совместным занятиям?

Достаточно короткой встречи несколько раз в неделю: посмотреть проект, задать вопросы, сыграть в «угадай вывод». Регулярность важнее длительности.

Нужно ли проверять домашние задания с курсов?

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

Как помочь ребёнку, если он хочет бросить?

Выясните причину: скучно, трудно или нет времени. Иногда хватает смены проекта на более интересный, иногда — паузы на несколько недель.

Стоит ли учиться программировать вместе с ребёнком?

Если вам интересно — да. Но держите роль ученика рядом с ним, а не учителя: пусть ребёнок будет на шаг впереди.

Ребёнок просит сделать за него домашнее задание. Что ответить?

Предложите разобраться вместе: какое условие, что уже получилось, где застрял. Сделанная за него задача не даст навыка, а на контрольной рядом никого не будет.