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

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

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

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

Начиная

В этом руководстве мы покажем несколько основных примеров, ориентированных на графическое программирование. Мы покажем вам, как использовать различные библиотеки для базовой разработки игр, включая стандартные библиотеки и некоторые пользовательские библиотеки Repl.it. Мы рассмотрим примеры с использованием:

Вполне вероятно, что для начала вы познакомите своего ребенка только с одним или двумя из них, но каждый из них имеет свои сильные стороны. С Python Turtle проще всего начать, но он довольно ограничен. PyGame слишком сложен для начинающих, но вы можете создавать гораздо более сложные игры.

Мы создали Python Play поверх PyGame в качестве компромисса между простотой и мощностью. Базовый заимствует синтаксис из старых парадигм программирования: использование таких вещей, как GOTO, редко встречается в современных языках программирования, но это может облегчить новичкам понимание того, что происходит «под капотом» с точки зрения потока программы, по сравнению с более современными конструкциями, такими как определения функций. .

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

Если у вас еще нет учетной записи Repl.it Teams, прочитайте это Введение в Teams и зарегистрируйтесь. Бесплатной учетной записи будет достаточно, чтобы продолжить, но вы можете выбрать премиум-вариант для более мощных реплик и повышенной конфиденциальности.

Рисование с черепахой Python

Мы начнем с Python Turtle, так как он использует команды высокого уровня, такие как forward(), для перемещения символа черепахи по экрану. Это позволяет вашему ребенку очень легко понять основы того, как он работает, и модифицировать его, чтобы перемещать черепаху по-другому или рисовать другие фигуры.

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

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

Идея состоит в том, что вы (родитель) рисуете лабиринт, показывая ребенку, как вы это делаете, а затем позволяете ему посмотреть на ваш код и написать код, который заставит его черепашку перемещаться по лабиринту и «убегать».

Создайте новую реплику Python или разветвите нашу и начните с добавления следующего кода в файл main.py.

import turtle 
parent = turtle.Turtle() 
kid = turtle.Turtle() 
kid.shape('turtle')

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

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

Добавьте приведенный ниже код в тот же файл.

parent.up()
parent.setx(100)
parent.sety(200)
parent.down()

parent.color('red')

parent.right(90)
parent.forward(300)
parent.up()
parent.forward(50)
parent.down()
parent.forward(50)

Первый блок кода поднимает перо и перемещает его в координаты (x,y) (100,200), затем снова опускает перо. (По умолчанию перья будут рисовать по мере их перемещения, поэтому они перемещаются в новое начальное положение, не создавая линии.)

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

Последний блок кода меняет направление (на 90 градусов вправо) и рисует линию (вниз, так как сейчас смотрит черепаха) длиной 300 пикселей. Затем он поднимает перо и перемещает его еще на 50 пикселей, чтобы создать зазор, и, наконец, опускает перо, чтобы закончить линию.

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

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

kid.right(90)
kid.forward(120)
kid.left(90)
kid.forward(200)

С приведенным выше кодом черная черепаха повернет направо (лицом вниз), переместится на тот же уровень, что и пробел в красной линии, повернет налево и продвинется вперед через пробел.

Если вашему ребенку нравится решать эти лабиринты, а вам надоело их создавать, вы можете использовать модуль Python random, чтобы помочь с рисованием случайных лабиринтов.

Создание интерактивных игр с помощью Python Play

Python Play — это уровень абстракции, построенный поверх PyGame, который упрощает создание более продвинутой игры, чем с Turtle, но без необходимости понимать все концепции, необходимые для PyGame.

Если вы хотите что-то почти такое же простое, как Turtle, но с более продвинутыми параметрами, такими как простая обработка ввода с помощью мыши или клавиатуры, это хороший вариант для внедрения перед чем-то более продвинутым, таким как PyGame.

Разветвите this repl, представляющую собой простую игру, показывающую, как обрабатывать ввод с помощью мыши.

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

Вы можете показать ребенку, как:

Измените символы, которые составляют кота

Путем изменения строки

cat = play.new_text('=^.^=', font_size=70)

Сделать игру проще или сложнее

Особенно, если вы используете компьютер с трекпадом или иным образом считаете, что ваша мышь недостаточно чувствительна, вы можете упростить игру несколькими способами:

Изменяя количество секунд, в течение которых кошка отображается в следующем коде.

cat.show()
cats_shown += 1
await play.timer(seconds=0.6)

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

if cats_shown >= 15:
    cat.words = 'Game over!'

Или увеличив размер шрифта в исходном определении кота.

Создайте совершенно новую игру

Как только вы оба освоитесь с синтаксисом Python Play, составляющим эту игру, взгляните на все строительные блоки, доступные в документации, и создайте что-нибудь интересное!

Создание более продвинутых игр с PyGame

PyGame сложнее, чем Python Play, но также имеет более широкое сообщество и множество готовых примеров, которые можно использовать в качестве отправной точки.

Скорее всего, вашему ребенку будет полезно начать с более простых библиотек и постепенно перейти на Python Play. Но если вы хотите прыгнуть вглубь, у нас также есть подробное руководство о том, как создать игру жонглирования в PyGame.

Рисование на чистом холсте с помощью Basic

Раньше программирование выглядело совсем по-другому. Старые языки, такие как BASIC, в значительной степени полагались на операторы GOTO и другие конструкции, которые редко встречаются в более современных языках.

Однако эти конструкции также «ближе к металлу» и могут помочь новичкам понять, как на самом деле работают такие вещи, как поток программ.

Classic Basic на Repl.it сочетает в себе синтаксис BASIC с некоторыми более современными функциями для лучшего из обоих миров.

В самом простом случае его можно использовать как Microsoft Paint: рисовать пиксель за пикселем на холсте, но используя код вместо мыши.

Вот начальный пример, показывающий, как нарисовать собаку попиксельно, а затем добавить линию с помощью цикла for.

Разветвите этот repl, чтобы вы и ваш ребенок могли рисовать вместе с помощью кода.

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

Куда дальше?

Как только ваш ребенок поймет основы программирования, он может перейти к работе с нашими учебниками.

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

Это также хорошее время, чтобы познакомить детей с вычислительным мышлением. CS Unplugged — хороший ресурс для обучения новичков основам информатики без компьютера.

Первоначально опубликовано на https://docs.repl.it.