Как ребенка учить питону
Есть ли жизнь после Scratch, или как познакомить ребёнка с Python
У нас в EPAM работает школа программирования для детей сотрудников — e-kids. В школе волонтёры-сотрудники учат детей работать со Scratch — визуальной средой программирования, созданной специально для обучения детей и подростков. Но всегда рано или поздно наступает момент, когда Scratch уже становится детям не интересен.
Путём проб и ошибок нашим учителям удалось найти способ, как развивать детей дальше, чему учить, чтобы они при этом не потеряли интерес к программированию из-за слишком сложных задач. Так в e-kids стали обучать более сложному языку программирования — Python. В этой статье я собрала полезную информацию от коллег, кто преподает в школе, о том, как детей познакомить c Python.
Scratch — это визуальная среда программирования, здесь не нужно вводить код вручную, можно быстро получить результат, дети могут сразу увидеть, как меняется проект после того, как добавляется новый блок. Со Scratch не нужно тратить время на поиск букв на клавиатуре, это также избавляет от болезненного поиска синтаксических ошибок в проекте.
Но когда ребёнок уже достаточно изучил возможности Scratch, он начинает терять интерес к работе. Задачи начинают повторяться, ничем новым Scratch удивить уже не может — значит, самое время подумать о переходе от Scratch к какому-нибудь языку программирования, где можно приступить к написанию кода.
При выборе языка стоит обратить внимание не только на опыт детей, но и на их возраст. По опыту преподавателей e-kids, минимальный возраст детей для того, чтобы предлагать им писать код, 11-12 лет.
Подготовка к обучению
Почему Python?
У Python несложный синтаксис и большое сообщество. Если у ребенка возникнут сложности с решением, можно легко найти ответ в интернете. А также есть множество внешних источников, задач, ресурсов, которые можно использовать для самостоятельного изучения.
Программы-помощники
Для подготовки уроков или домашних заданий иногда использовались специальные сервисы.
Книги-помощники
Из всего разнообразия книг учителя e-kids рекомендуют эти:
Console vs Graphics
Все привыкли «Hello, world» обычно вводить в консоль, но когда дети видят консоль, они сразу впадают в уныние.
Поэтому лучше использовать такие библиотеки, как Turtle и Tkinter. Обе входят в стандартный дистрибутив Python и не требуют дополнительной установки. Детям будет проще переходить на Python через эти библиотеки, потому что многие методы повторяют блоки в Scratch.
Turtle легко кастомизируется: фон можно заменить на картинку комнаты, а черепашку — на другого персонажа.
Библиотека Tkinter, в свою очередь, позволяет писать оконные приложения, она уже содержит много примитивов с переключателями кнопок, выключателями, флагами, меню и т.д. Так, совместив Turtle и Tkinter, уже можно написать простейшую игру.
Как написать игру на Python
Покажу на примере, как проходило знакомство детей с Python на уроках в e-kids.
В другом блоке дети описали функцию, где в качестве аргумента был наш герой, указали, что он должен говорить, как долго и какого цвета будет надпись.
Таким образом, комбинируя эти блоки, дети уже могли написать игру, похожую на те, которые они разрабатывали на Scratch. Часть блоков уже есть в библиотеке Turtle, какие-то дописывали сами.
Примерно так выглядел код, который писали дети: есть фоновое изображение, герой, фразы, которые он говорит, и мусор, который мог собирать персонаж.
В отдельном блоке у нас была описана логика – персонаж собирает мусор, если он находится близко к мусору, он говорит какую-то фразу. Это очень напоминает то, как описывается логика персонажа в Scratch. Там тоже можно открыть персонажа и добавить какие-то блоки поведения, после чего персонаж оживал.
На уроках детям ставятся самые разные задачи, как разработка игры, так и исправление ошибок. Например, можно перемешать блоки, тогда программа перестает работать, и дать детям задание найти, что не так, в каком порядке должны идти блоки.
Путь проб и ошибок
Некоторые вместо Python выбирают JavaScript или Java. На одном из курсов e-kids преподаватели решили попробовать разобрать работу с Flask — фреймворком для создания веб-приложений на языке Python, но эта затея потерпела крушение. Задачи стояли слишком амбициозные: показать, как создавать сайт с блогом, галереей и гостевой книгой. Хоть структура всех этих компонентов и была похожая, казалось бы, дети могли просто поменять что-то в блоге и сделать галерею, например. Но учителя столкнулись с кучей проблем:
Вывод
Технологии становятся важной частью нашей жизни. Код – это язык нашего мира, который сочетает в себе математику, логику и алгоритмы и учит новому взгляду на мир.
Программирование учит, как решать большие проблемы, разбивая их на последовательность более мелких, более управляемых проблем. Надеемся, что наши занятия помогают детям решать проблемы более эффективно и мыслить глобально.
Программа e-kids развивается в России, Украине, Беларуси и Казахстане. В 2019 году в России прошли обучение 203 ученика — дети сотрудников. Кроме того, с сентября 2019 мы стали заниматься также с детьми из детских домов и с инвалидностью. Более 80 сотрудников стали волонтерами программы.
Волонтерами сотрудники становятся по разным причинам: у многих из них есть дети, и родители-разработчики хотят показать им ИТ с другой стороны или покрыть пробелы в школьном образовании, а кому-то просто нравится процесс обучения.
Программирование на Python для детей
Python — это язык программирования высокого уровня, который упрощает процесс обучения написанию кода. Он также входит в десятку лучших языков программирования. Изучение основ создания кода становится проще с Python как для детей, так и для всех начинающих, поскольку большинство команд Python — это обычные английские слова.
Новичкам не нужно жонглировать двоичными представлениями, чтобы научиться программировать на Python. Существует несколько инструментов для написания кода с простым и понятным интерфейсом. Они поощряют детей пробовать свои силы в программировании, тем самым удовлетворяя их потребность в изучении Python.
Вы можете обучать детей языку Python, не заставляя их выполнять утомительные задания по предварительному чтению гор специализированной литературы.
Python считается современным языком программирования и используется для разработки бесчисленных программных продуктов. С помощью него дети могут создавать свои приложения от простого вывода «Hello World!» до разработки анимации и игр. Программирование на Python развивает у ребенка интерес к изучению этой сферы.
Что такое Python?
Python — один из самых популярных языков программирования последнего времени. Как и любой другой язык программирования, Python помогает нам описывать различные компьютерные команды для получения желаемого результата. Синтаксис Python позволяет новичкам легко написать практически любой набор инструкций.
Например, если вы хотите отобразить «Hello!» на экране компьютера, необходимая для этого команда в Python будет выглядеть следующим образом:
Такой простой набор команд и синтаксис облегчают детям изучение Python. Высокая читабельность — одна из тех особенностей языка, которая привела к его огромной популярности среди программистов. Кроме того, с помощью Python можно легко продемонстрировать важные концепции объектно-ориентированного программирования даже детям. Ниже перечислены другие полезные особенности Python.
Python делает упор на простой подход к программированию, который можно интерпретировать и понять без изучения сложного синтаксиса. Кроме того, как было сказано выше, язык поддерживает повторное использование кода и разделение его на модули/пакеты. Все эти особенности делают его довольно эффективным языком программирования.
Почему дети должны изучать Python?
Поскольку этот язык известен своей легкостью восприятия, программирование на Python для детей может привить им страсть к написанию кода, не перегружая их.
В цифровую эпоху ничто не может превзойти важность навыков программирования. Поэтому среди других языков, таких как Java, C# и т.д., он является наиболее подходящим вариантом для изучения основ написания кода ребенком.
Причины, по которым дети должны изучать Python:
Как лучше всего детям изучать Python?
Освоение программирования на Python станет более достижимым для детей, если они будут следовать хорошим ориентированным на них видеоурокам. В Интернете можно найти несколько подобных курсов, обучающих малышей Python. Также они могут изучать основы программирования на Python, обращаясь к некоторым неплохим книгам. Например, из таких учебников дети могут узнать о переменных в Python и о том, как изменение переменной влияет на вывод программы.
Самое важное, о чем нужно помнить при написании кода на Python, — это синтаксис. Существуют различные инструменты для создания кода, которые позволяют детям изучить основные понятия программирования на Python. Для обучения синтаксису они могут практиковаться в создании небольших фрагментов кода в таких инструментах.
Часто дети отказываются от изучения языков программирования из-за сложных синтаксических структур. Однако с Python и его довольно простым синтаксисом эта проблема отпадает.
Очень важно поддерживать заинтересованность детей к обучению программированию, чтобы они могли развить хорошую концептуальную базу. Для этого необходимо разбить всю информацию по конкретной теме на кусочки и поощрять маленьких студентов самостоятельно решать упражнения по Python. Это, в свою очередь, делает изучение программирования на Python для детей более доступным, не вызывая у них потери интереса.
Чем больше они будут решать упражнений, тем лучше они смогут понять основные концепции и применение различных базовых элементов программирования, таких как инициализация переменных, условные операторы, циклы, функции и т.д.
Установка может оказаться очень трудоемкой для некоторых сред программирования. С Python все обстоит совершенно иначе. Для установки в Windows требуется всего три шага. Дети могут установить Python на свои компьютеры, скачав программу с официального сайта. Родителям, вероятно, стоит помочь им при выборе версии, совместимой с используемой операционной системой.
После завершения установки ребенок сразу может приступить к увлекательному процессу создания кода с нуля. Лучший способ изучения Python для детей — это написание небольших фрагментов кода и последующий их запуск в терминале или текстовом редакторе.
Некоторые из лучших книг по Python для детей
Как только у ребенка появится интерес к программированию, самое время расширить его кругозор с помощью тематических книг. Ниже перечислены некоторые из лучших учебников для детей.
Вышеупомянутые книги весьма полезны для обучения детей основам программирования.
Книга «Python для детей. Самоучитель по программированию» написана в увлекательной форме, что поможет сохранить интерес маленьких студентов к изучению этого языка программирования. Она преподносит материал в очень легкой для понимания манере, которая побуждает ребенка глубже вникнуть в концепции Python.
Книга «Python для детей и родителей. Играй и программируй» также имеет очень интересный подход. Темы, освещенные в ней, подходят для изучения языка детьми и родителями.
Что дети могут делать с Python?
10 советов о том, как научить ребенка программировать на Python
Leo Matyushkin
Современные дети много часов в день проводят в компьютерах, планшетах, телефонах, а вернее сказать – в играх. Неудивительно, что им бывает любопытно узнать, как эти игры сделаны. Они даже могут захотеть создать собственную аркаду, квест или стратегию. Удачный момент, чтобы познакомить чадо с азами кодинга. Мало кто из популярных программистов или основателей IT-компаний не начинал свой путь с написания компьютерной игры. Сегодня средства для разработки программного обеспечения стали куда проще и интуитивно понятнее. Одним из таких инструментов является язык программирования Python и окружающая его доброжелательная среда.
Почему Python?
Среди языков программирования, используемых в реальном мире, Python является одним из самых востребованных и успешно применяемых в различных областях: от анализа данных и умных чат-ботов до парсинга сайтов и написания игр, обучаемых по алгоритмам искусственного интеллекта. Это не единственная причина, почему Python – хороший выбор на роль первого языка программирования:
Ниже представлены 10 советов, которые помогут увлечь ребенка программированием на Python.
1. Не нужно заставлять
В первую очередь не надо быть излишне навязчивым. Травматичный опыт может вызвать негативное отношение к предмету. На первых порах важнее показать существование такой области человеческого знания и занятий, которые могут быть одновременно интересны и полезны. Дальнейшее – дело предрасположенности. Всему свое время.
2. Необязательно начинать сразу с Python
И в Google Play, и в AppStore можно найти массу приложений, которые могут увлечь ребенка на более простом, интуитивном уровне, чем написание текстовой программы. В определенный момент ученику захочется чего-то более «взрослого».
Сложности могут возникнуть и с языковым барьером, ведь программирование на Python очень похоже на написание алгоритма на английском языке. Впрочем, это хороший повод начать с ним знакомство пораньше.
3. Возможно, на компьютере уже установлен Python
Дистрибутив Python по умолчанию включен в состав многих операционных систем. Так, на Mac или Linux достаточно в терминале набрать команду python либо открыть страницу с онлайн-интерпретатором Python. Такая «встроенность» покажет, что заниматься программированием можно в любой момент, когда и где захочется, просто для фана.
4. Напишите свою программу
Если вы умеете программировать, напишите несложную игру, в которую вам вместе будет нескучно играть. Например, кто быстрее угадает число из наперед заданного диапазона (с подсказками «больше/меньше» в случае неудачи).
При проявлении интереса вы можете строка за строкой пройтись по коду программы, объясняя, что делает та или иная часть кода. Когда ребенок спросит, что произойдет, если что-то поменять, нужно не только объяснять, но и показать результат. Так незаметно получится, что игра продолжилась в новом ключе: изменение кода – запуск – проверка полученного.
5. Попробуйте вместе что-то простое, но нескучное
Далее вы можете написать с нуля что-то вместе, разобрав общие концепции программирования. Нет особого смысла начинать с объяснения типов переменных и других не очень притягательных вещей (с этим легко познакомиться по ходу). Лучше рассмотреть небольшой скрипт, в котором совместятся несколько (но не слишком много) идей.
Например, производится обратный отсчет для запуска ракеты, и в конце надо написать слово «Поехали». Одновременно вводятся следующие идеи:
Объясняя, старайтесь соблюсти баланс. С одной стороны, ваши комментарии не должны быть чрезмерно подробными, с другого – нельзя, чтобы инструкции программы превратились в набор магических заклинаний. Проверить понимание можно, предложив отредактировать код так, чтобы изменился результат его выполнения. Скажем, в приведенном примере начать счет не с десяти, а с пяти.
Заметив, что ребенок допускает ошибку, не говорите ему об этом заранее. Лучше вместе разобраться с сообщением об ошибке, чтобы в таких случаях ученик чувствовал себя увереннее и не сдавался. Убедитесь, что ребенок осознает то, как выполняется программа. Можно попросить словами описать зачем нужно то или это.
Другие идеи начала занятий для детей с различными наклонностями:
6. Введите элемент случайности
7. Дайте пространство для творчества
Перед следующим шагом вполне нормально замахнуться на что-нибудь большее. Или хотя бы посмотреть вместе, как устроены крупные проекты. Может оказаться, что путь постоянного экспериментирования куда привлекательнее, чем изучение пособий. На этом этапе можно создать игру-клон одной из известных несложных игр с помощью библиотеки PyGame. На YouTube имеется множество пособий по ее применению.
Можно пойти иначе и модифицировать одну из любимых игр. Например, в Sims 4 Python задействован для внутриигрового моддинга. Существуют проекты с открытым исходным кодом, полностью написанные на Python (например, игра Frets on Fire). Такие свободные проекты – естественные площадки для изучения и практики программирования, работы с чужим кодом.
Если ребенок заинтересован в более практичных проектах, предложите реализовать что-то из школьных заданий. Например, для решения задач из алгебры и символьных вычислений полезен SymPy, для численного моделирования – NumPy и SciPy, для отображения данных – Matplotlib или Plotly.
8. Купите ребенку самоучитель
Да, проекты из предыдущего пункта могут показаться довольно-таки трудными. Что делать, если у вас недостаточно времени? На помощь приходят самоучители для детей. Академические учебники детям обычно не очень понятны, а вот книжка с красивыми картинками подогреет интерес, систематизирует знания, предложит идеи для новых проектов.
Русскоязычных детских самоучителей для Python третьей версии наберется уже не менее десятка. Ниже мы собрали подборку из трех наиболее интересных книг для детей разного возраста и темперамента.
«Программирование для детей на языке Python» – Луи Стоуэлл
«Программирование для детей на языке Python» – книга Луи Стоуэлла с яркими иллюстрациями, подойдет для младшего школьного возраста. Содержит интересные проекты по созданию собственных игр и понятные инструкции.
«Python для детей. Самоучитель по программированию» – Джейсон Бриггс
Для вдумчивых детей постарше рекомендуем самоучитель по программированию Джейсона Бриггса «Python для детей». Слово «самоучитель» в заглавии не самое точное, потому что это скорее учебник с практическими разделами. Книга будет особенно полезна тем, кто захочет организовать кружок по программированию.
«Python для детей и родителей. Играй и программируй» – Брайсон Пэйн
Книга подойдет для ребят примерного того же возраста, что и предыдущая. Правда, в сравнении с произведением Бриггса, эта написана куда более живо. Поэтому, несмотря на название, контроль родителей/учителей должен потребоваться реже.
9. Свяжите Python и реальный мир
Абстрактная сторона программирования через некоторое время может приесться. Оживить внимание можно, сделав проект, в котором Python заставляет взаимодействовать компьютер с внешним миром. Один из самых простых способов, как это сделать, – использовать плату Raspberry Pi, управляя с помощью Python GPIO-выходами, например:
Написание кода для проектов на основе этих идей позволит расширить кругозор различными задачами программирования микроконтроллеров.
Еще привлекательнее сделать проект, который реализует какую-либо законченную идею. Объединяя возможности Python и Raspberry Pi, можно создать робота, передатчик морзянки, метеостанцию или даже систему автоматического распознавания объектов с веб-камер!
10. Терпение и забота
Совет, с которого мы начали, актуален и в конце списка. Если в какой-то момент ребенок почувствует, что программирование — это не его, не нужно переубеждать. Хорошо, если он поймет это вовремя и продолжит поиск своего пути.
Если же ребенку нравится программировать, и вы хотите поддержать его стремления, будьте терпеливы. Следите за тем, чтобы отпрыск развивался разносторонне. Продвижение в других сферах может сделать так, что юный программист вдохновится интересным междисциплинарным пересечением, возможностью, которую раньше никто не замечал. Так, уже в школе может родиться проект, который изменит мир.
Успехов в воспитании и педагогической работе!
Мой способ знакомства учеников младших классов с Python
В наше время большинство детей знакомится с миром программирования через создание проектов на платформе scratch.mit.edu Создание проектов происходит путем соединения разноцветных блоков без ввода кода с клавиатуры (вводим только значения переменных).
Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.
Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.
Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct.
Ну а фанатам программирования можно посоветовать Python, ведь это один из самых простых языков для изучения. Но как же быть, ведь ученики начальных классов совершенно не знакомы с клавиатурой?
Вот пример простейшего проекта на Scratch в котором ребенок вводит с клавиатуры только 2 числа.
Во «взрослых» языках программирования приходится вводить гораздо больше текста с клавиатуры, но есть способ упростить детям жизнь при переходе от Scratch к Python.
Еще несколько лет назад с Питоном пытались конкурировать Pascal и Basic, но сейчас сайт hh.ru показывает что количество вакансий с упоминанием этих языков на порядки отстает от Python.
Россия, IT, Телеком
5 807 вакансий «Python»
262 вакансии «Pascal»
44 вакансий «VB.NET»
И под Pascal на hh.ru подразумевается Delphi, а не PascalABC, используемый в школах.
(На всякий случай вот фанатская подборка литературы по PascalABC для расширения кругозора pascalabc.net/rubantsevbooks )
Пару лет назад я решил познакомить своих учеников с Python и начал искать литературу по этой теме. Книг по Питону для детей оказалось совсем немного, и ни одна из них меня полностью не удовлетворила — пришлось снова, как и истории про Scratch habr.com/ru/post/234823, изобретать все самому.
Что же не так в этих книгах? Общая проблема — там много кода. И если для учеников старших классов это не критично, они за 20 минут смогут вколотить программу на 30-40 строк, то для учеников начальной школы это огромная проблема.
Также, сами проекты, которые предлагаются в книгах, по моему мнению, не очень подходят для младших классов.
Небольшой обзор литературы с моим личным рейтингом.
3 место
Python for Kids archive.org/details/PythonForKids/mode/2up
Вот отзыв об этой книге от vectorplus из Канады.
Книга “Написана легким языком, с юмором, детям нравится. У неё есть недостаток, свойственный многим книгам по программированию. Как в известной шутке — как нарисовать сову. Овал — круг — сова. От простых понятий слишком резкий переход к достаточно сложным концепциям.” Подробности в статье habr.com/ru/post/485424
Ну и список проектов: сначала проекты с черепашкой, которые подходят для начальной школы, а потом 20 страниц делаем игру теннис, и потом 60 страниц делаем игру про Стикмана (код игры на 6 страниц), а это уже для старшеклассников.
2 место
Python для детей Автор: Ханс-Георг Шуман
www.litres.ru/hans-georg-shuman/python-dlya-detey-48411263
Здесь больше коротких проектов, но в конце также мощная игра про насекомых на 40 страниц. Малыши осилят только первую часть книги.
1 место
Вордерман, Вудкок, Макаманус: Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python www.labirint.ru/books/481230
В этой книге есть и про создание проектов на Scratch (всего 3 проекта) и про Python (4 проекта). Проектов немного, но они хорошо пошагово расписаны с мельчайшими подробностями, но несмотря на это книга не поможет в проведении занятий на кружке. Но это хороший самоучитель для детей 10-12 лет, которые занимаются самостоятельно.
Не обнаружив на просторах интернета подходящего учебника я придумал собственный способ знакомства детей с Python, и помогла мне в этом платформа trinket.io.
На этой платформе есть возможность работать онлайн со следующими языками программирования:
А главным открытием для меня стало то, что блочный тринкет, в три клика превращается в код на Python! Первый клик — просмотр кода.
Ещё пара кликов — преобразование блочного тринкета в тринкет на Python.
Ученик получает программу на Python, которую создал без долгого мучительного поиска символов на клавиатуре. Теперь учитель может провести аналогии с блочным языком, рассказать о синтаксисе и дать задание изменить координаты, чтобы квадратик превратился в прямоугольник.
Также теперь ребенок может «копипастить» чтобы собрать более сложный проект, например как этот с рисованием картинки.
Вот так и появился мой курс по Python для учеников начальной школы в котором они знакомятся с этим языком программирования. Сложные проекты не создаем, работаем в рамках 45 минутного урока. По-новому смотрим на циклы и условия, знакомые по программированию на Scratch, разбираемся с числовыми и текстовыми переменными, о которых раньше вообще не задумывались. Знакомимся со сложными типами данных, учимся работать со срезами и различными методами. Чтобы детям было интересно, кроме узоров с черепашкой создаем картинки из символов ACSII, рисуем смайлики Каомодзи и создаем картинки из символов юникода.
Гусеница с двумя списками.
Картинка из символов юникода со словарем.
Работа с объектами.
Ну и конечно моя любимая игра «Путаница» — простая, но очень веселая!
Платформа trinket.io — отличный помощник в деле знакомства школьников младших классов с языком Python. Но не так давно я обнаружил еще одну шикарную платформу, которая позволяет программировать на Python в мире Minecraft. Это платформа progkids.com созданная отечественными разработчиками. Платформа платная, но недавно авторы платформы разместили на Facebook промокод FREESELFCOURSE который дает две недели доступа бесплатно.
Под эту платформу я тоже разработал кучу уроков codim.online/pythonvm которые позволяют освоить более сложные темы, такие как вложенные циклы и многомерные массивы.
р
Рисуем смайлики с помощью массивов.
Платформа имеет кучу встроенных функций, облегчающих создание построек, позволяет спавнить существ, управлять дронами, строить города,
, копать метро, строить тоннели и бункеры, обкладывать все динамитом и… и делать еще много интересного!
Также можно создавать анимированные постройки, например часы.
Покажите эти платформы детям, я уверен, они смогут сделать много интересных проектов на радость учителям и родителям.