10 советов о том, как научить ребенка программировать на Python
10 педагогических советов и 3 книги для тех, кто хочет помочь ребенку научиться программировать на Python.
Современные дети много часов в день проводят в компьютерах, планшетах, телефонах, а вернее сказать – в играх. Неудивительно, что им бывает любопытно узнать, как эти игры сделаны. Они даже могут захотеть создать собственную аркаду, квест или стратегию. Удачный момент, чтобы познакомить чадо с азами кодинга. Мало кто из популярных программистов или основателей IT-компаний не начинал свой путь с написания компьютерной игры. Сегодня средства для разработки программного обеспечения стали куда проще и интуитивно понятнее. Одним из таких инструментов является язык программирования Python и окружающая его доброжелательная среда.
Почему Python?
Среди языков программирования, используемых в реальном мире, Python является одним из самых востребованных и успешно применяемых в различных областях: от анализа данных и умных чат-ботов до парсинга сайтов и написания игр, обучаемых по алгоритмам искусственного интеллекта. Это не единственная причина, почему Python – хороший выбор на роль первого языка программирования:
- Команды и синтаксис просты и легко читаемы по сравнению с другими языками программирования. Язык обязывает к аккуратности в написании кода (например, неотъемлемой частью, а не просто средством форматирования, являются отступы).
- Python содержит множество встроенных библиотек, а также колоссальное сообщество программистов, разрабатывающих для различных задач собственные библиотеки и программы. В большинстве случаев ребенок сможет самостоятельно найти ответ на возникающие вопросы.
- Формальные ошибки выявляются в процессе запуска программы, что облегчает их поиск. Это повышает мотивацию ученика продолжать обучение.
- Совместно с платами Raspberry Pi и другими подобными платформами Python позволяет соединять между собой компьютер и внешний мир, реализуя, среди прочего, концепцию интернета вещей. Это делает процесс программирования более наглядным и захватывающим.
Ниже представлены 10 советов, которые помогут увлечь ребенка программированием на Python.
1. Не нужно заставлять
В первую очередь не надо быть излишне навязчивым. Травматичный опыт может вызвать негативное отношение к предмету. На первых порах важнее показать существование такой области человеческого знания и занятий, которые могут быть одновременно интересны и полезны. Дальнейшее – дело предрасположенности. Всему свое время.
2. Необязательно начинать сразу с Python
И в Google Play, и в AppStore можно найти массу приложений, которые могут увлечь ребенка на более простом, интуитивном уровне, чем написание текстовой программы. В определенный момент ученику захочется чего-то более «взрослого».
Сложности могут возникнуть и с языковым барьером, ведь программирование на Python очень похоже на написание алгоритма на английском языке. Впрочем, это хороший повод начать с ним знакомство пораньше.
3. Возможно, на компьютере уже установлен Python
Дистрибутив Python по умолчанию включен в состав многих операционных систем. Так, на Mac или Linux достаточно в терминале набрать команду python
либо открыть страницу с онлайн-интерпретатором Python. Такая «встроенность» покажет, что заниматься программированием можно в любой момент, когда и где захочется, просто для фана.
4. Напишите свою программу
Если вы умеете программировать, напишите несложную игру, в которую вам вместе будет нескучно играть. Например, кто быстрее угадает число из наперед заданного диапазона (с подсказками «больше/меньше» в случае неудачи).
При проявлении интереса вы можете строка за строкой пройтись по коду программы, объясняя, что делает та или иная часть кода. Когда ребенок спросит, что произойдет, если что-то поменять, нужно не только объяснять, но и показать результат. Так незаметно получится, что игра продолжилась в новом ключе: изменение кода – запуск – проверка полученного.
5. Попробуйте вместе что-то простое, но нескучное
Далее вы можете написать с нуля что-то вместе, разобрав общие концепции программирования. Нет особого смысла начинать с объяснения типов переменных и других не очень притягательных вещей (с этим легко познакомиться по ходу). Лучше рассмотреть небольшой скрипт, в котором совместятся несколько (но не слишком много) идей.
Например, производится обратный отсчет для запуска ракеты, и в конце надо написать слово «Поехали». Одновременно вводятся следующие идеи:
- переменная, принимающая значения
- цикл
for
(илиwhile
) - объект range (например,
range(10, 1, -1)
) - условие
if else
- вывод строки на экран с помощью функции
print
Объясняя, старайтесь соблюсти баланс. С одной стороны, ваши комментарии не должны быть чрезмерно подробными, с другого – нельзя, чтобы инструкции программы превратились в набор магических заклинаний. Проверить понимание можно, предложив отредактировать код так, чтобы изменился результат его выполнения. Скажем, в приведенном примере начать счет не с десяти, а с пяти.
Заметив, что ребенок допускает ошибку, не говорите ему об этом заранее. Лучше вместе разобраться с сообщением об ошибке, чтобы в таких случаях ученик чувствовал себя увереннее и не сдавался. Убедитесь, что ребенок осознает то, как выполняется программа. Можно попросить словами описать зачем нужно то или это.
Другие идеи начала занятий для детей с различными наклонностями:
- Шифровка секретных посланий. Код для шифровки посланий и программа, которая шифрует и расшифровывает сообщения.
- Список покупок. Поиск по списку, сортировка элементов списка по алфавиту, по стоимости с учетом объявленных акций на товары.
- Отрисовка красочной графики в Tkinter. Результат рисования полезно материализовать, распечатав на принтере.
- Телефонная книга. В качестве полей можно использовать не только телефоны, но и другие характеристики: друг/родственник, пол, возраст, цвет волос и т.д. Задача: найти человека с определенным набором качеств.
6. Введите элемент случайности
Познакомьте ученика с импортом нескольких библиотек на примере модулей random
, time
и math
. Библиотека random
позволяет вносить в собственные проекты (например, игры) что-то непредсказуемое. Модуль math
школьник сможет использовать для автоматизации решения учебных заданий. Библиотека time
поможет применять различные элементы задержки. Такие модули также подогревают интерес к тому, чтобы создать что-то на основе нескольких имеющихся возможностей.
7. Дайте пространство для творчества
Перед следующим шагом вполне нормально замахнуться на что-нибудь большее. Или хотя бы посмотреть вместе, как устроены крупные проекты. Может оказаться, что путь постоянного экспериментирования куда привлекательнее, чем изучение пособий. На этом этапе можно создать игру-клон одной из известных несложных игр с помощью библиотеки PyGame. На YouTube имеется множество пособий по ее применению.
Можно пойти иначе и модифицировать одну из любимых игр. Например, в Sims 4 Python задействован для внутриигрового моддинга. Существуют проекты с открытым исходным кодом, полностью написанные на Python (например, игра Frets on Fire). Такие свободные проекты – естественные площадки для изучения и практики программирования, работы с чужим кодом.
Если ребенок заинтересован в более практичных проектах, предложите реализовать что-то из школьных заданий. Например, для решения задач из алгебры и символьных вычислений полезен SymPy, для численного моделирования – NumPy и SciPy, для отображения данных – Matplotlib или Plotly.
8. Купите ребенку самоучитель
Да, проекты из предыдущего пункта могут показаться довольно-таки трудными. Что делать, если у вас недостаточно времени? На помощь приходят самоучители для детей. Академические учебники детям обычно не очень понятны, а вот книжка с красивыми картинками подогреет интерес, систематизирует знания, предложит идеи для новых проектов.
Русскоязычных детских самоучителей для Python третьей версии наберется уже не менее десятка. Ниже мы собрали подборку из трех наиболее интересных книг для детей разного возраста и темперамента.
«Программирование для детей на языке Python» – Луи Стоуэлл
«Программирование для детей на языке Python» – книга Луи Стоуэлла с яркими иллюстрациями, подойдет для младшего школьного возраста. Содержит интересные проекты по созданию собственных игр и понятные инструкции.
Программирование для детей на языке Python
«Python для детей. Самоучитель по программированию» – Джейсон Бриггс
Для вдумчивых детей постарше рекомендуем самоучитель по программированию Джейсона Бриггса «Python для детей». Слово «самоучитель» в заглавии не самое точное, потому что это скорее учебник с практическими разделами. Книга будет особенно полезна тем, кто захочет организовать кружок по программированию.
Python для детей. Самоучитель по программированию
«Python для детей и родителей. Играй и программируй» – Брайсон Пэйн
Книга подойдет для ребят примерного того же возраста, что и предыдущая. Правда, в сравнении с произведением Бриггса, эта написана куда более живо. Поэтому, несмотря на название, контроль родителей/учителей должен потребоваться реже.
Python для детей и родителей. Играй и программируй
9. Свяжите Python и реальный мир
Абстрактная сторона программирования через некоторое время может приесться. Оживить внимание можно, сделав проект, в котором Python заставляет взаимодействовать компьютер с внешним миром. Один из самых простых способов, как это сделать, – использовать плату Raspberry Pi, управляя с помощью Python GPIO-выходами, например:
- Включение/выключение светодиодов или другой электронной нагрузки.
- Изменение яркости свечения светодиода (вариация скважности).
- Считывание нажатий кнопок/клавиш.
Написание кода для проектов на основе этих идей позволит расширить кругозор различными задачами программирования микроконтроллеров.
Еще привлекательнее сделать проект, который реализует какую-либо законченную идею. Объединяя возможности Python и Raspberry Pi, можно создать робота, передатчик морзянки, метеостанцию или даже систему автоматического распознавания объектов с веб-камер!
10. Терпение и забота
Совет, с которого мы начали, актуален и в конце списка. Если в какой-то момент ребенок почувствует, что программирование — это не его, не нужно переубеждать. Хорошо, если он поймет это вовремя и продолжит поиск своего пути.
Если же ребенку нравится программировать, и вы хотите поддержать его стремления, будьте терпеливы. Следите за тем, чтобы отпрыск развивался разносторонне. Продвижение в других сферах может сделать так, что юный программист вдохновится интересным междисциплинарным пересечением, возможностью, которую раньше никто не замечал. Так, уже в школе может родиться проект, который изменит мир.
Успехов в воспитании и педагогической работе!