Путём проб и ошибок нашим учителям удалось найти способ, как развивать детей дальше, чему учить, чтобы они при этом не потеряли интерес к программированию из-за слишком сложных задач. Так в e-kids стали обучать более сложному языку программирования — Python. В этой статье я собрала полезную информацию от коллег, кто преподает в школе, о том, как детей познакомить c Python.
![](https://habrastorage.org/webt/hs/zx/ln/hszxlnynfrhqhqslnbpgju9ow6s.png)
Scratch — это визуальная среда программирования, здесь не нужно вводить код вручную, можно быстро получить результат, дети могут сразу увидеть, как меняется проект после того, как добавляется новый блок. Со Scratch не нужно тратить время на поиск букв на клавиатуре, это также избавляет от болезненного поиска синтаксических ошибок в проекте.
Но когда ребёнок уже достаточно изучил возможности Scratch, он начинает терять интерес к работе. Задачи начинают повторяться, ничем новым Scratch удивить уже не может — значит, самое время подумать о переходе от Scratch к какому-нибудь языку программирования, где можно приступить к написанию кода.
При выборе языка стоит обратить внимание не только на опыт детей, но и на их возраст. По опыту преподавателей e-kids, минимальный возраст детей для того, чтобы предлагать им писать код, 11-12 лет.
Подготовка к обучению
Почему Python?
У Python несложный синтаксис и большое сообщество. Если у ребенка возникнут сложности с решением, можно легко найти ответ в интернете. А также есть множество внешних источников, задач, ресурсов, которые можно использовать для самостоятельного изучения.
Программы-помощники
Для подготовки уроков или домашних заданий иногда использовались специальные сервисы.
- Code.org — сервис содержит готовые задачи и описание, как их решить. Эти задачи могут быть разделены по категориям по операторам, циклам, функциям и т.д.
- CodeCademy предоставляет возможность написания кода, используя вторую или третью версию языка Python, с задачами в виде интерактивного учебника. Его ребенок может использовать для самообучения.
- Code Combat — очень интересный сервис, он представляет собой RPG игру, где все действия персонажа описываются кодом. Это валидный код на Python, где есть условия, работа с объектами и многое другое. Его удобно использовать, чтобы аккуратно перейти от Scratch к Python в игровой форме.
- Kahoot — этот сервис немного выделятся на фоне остальных, поскольку к Python не имеет никакого отношения, но это очень замечательный сервис, чтобы вспомнить, что было на прошлом занятии. Kahoot можно использовать в начале каждого занятия для того, чтобы дети вспомнили ключевые слова, подходы, технологии, о которых говорили ранее. Он позволяет создавать список вопросов и варианты ответов. К тому же есть мобильное приложение, которое подключается к викторине, поэтому дети могут отвечать с телефонов.
Все они на английском языке, но зато бесплатные.
Книги-помощники
Из всего разнообразия книг учителя e-kids рекомендуют эти:
- Python для детей.Самоучитель по программированию, Бриггс Джейсон.
- Программирование для детей на языке Python, Луи Стоуэлл.
Обе книги написаны понятным для детей языком. Плюс они содержат очень интересные задания.
Console vs Graphics
Все привыкли «Hello, world» обычно вводить в консоль, но когда дети видят консоль, они сразу впадают в уныние.
![](https://habrastorage.org/webt/gb/j0/8y/gbj08yhfihzhhsss4muwo7kjk6c.png)
Поэтому лучше использовать такие библиотеки, как Turtle и Tkinter. Обе входят в стандартный дистрибутив Python и не требуют дополнительной установки. Детям будет проще переходить на Python через эти библиотеки, потому что многие методы повторяют блоки в Scratch.
![](https://habrastorage.org/webt/0r/ng/ji/0rngji5vkiieweh0no87xgyh6pw.png)
Turtle легко кастомизируется: фон можно заменить на картинку комнаты, а черепашку — на другого персонажа.
![](https://habrastorage.org/webt/ea/k4/pv/eak4pvij9_wtqbgtrtveatmdrr0.png)
Библиотека Tkinter, в свою очередь, позволяет писать оконные приложения, она уже содержит много примитивов с переключателями кнопок, выключателями, флагами, меню и т.д. Так, совместив Turtle и Tkinter, уже можно написать простейшую игру.
Как написать игру на Python
Покажу на примере, как проходило знакомство детей с Python на уроках в e-kids.
- Сперва детей знакомили с Code Combat. Здесь персонаж может ходить по карте, собирать кристаллы, уворачиваться от врагов с помощью кода. Это простая игра, но при этом дети уже писали куски кода, и главное, сразу могли видеть, на что это влияет.
- Затем знакомили детей с «черепашкой». Они учили её ходить, писать, рисовали разные фракталы.
- После чего мы попробовали превратить блоки Scratch в код на Python.
Например, Scratch-котик был описан функцией addHero с картинкой, которая передавалась в качестве аргумента к этой функции.
![](https://habrastorage.org/webt/ti/je/oy/tijeoymlvl8gpylvwaunywm248m.png)
В другом блоке дети описали функцию, где в качестве аргумента был наш герой, указали, что он должен говорить, как долго и какого цвета будет надпись.
Таким образом, комбинируя эти блоки, дети уже могли написать игру, похожую на те, которые они разрабатывали на Scratch. Часть блоков уже есть в библиотеке Turtle, какие-то дописывали сами.
Примерно так выглядел код, который писали дети: есть фоновое изображение, герой, фразы, которые он говорит, и мусор, который мог собирать персонаж.
![](https://habrastorage.org/webt/vm/24/ea/vm24eaiem_c_j2nvnmnlg7emmrc.png)
В отдельном блоке у нас была описана логика – персонаж собирает мусор, если он находится близко к мусору, он говорит какую-то фразу. Это очень напоминает то, как описывается логика персонажа в Scratch. Там тоже можно открыть персонажа и добавить какие-то блоки поведения, после чего персонаж оживал.
![](https://habrastorage.org/webt/-3/ox/hc/-3oxhc_9nuiht016jxepcuwnjma.png)
На уроках детям ставятся самые разные задачи, как разработка игры, так и исправление ошибок. Например, можно перемешать блоки, тогда программа перестает работать, и дать детям задание найти, что не так, в каком порядке должны идти блоки.
Путь проб и ошибок
Некоторые вместо Python выбирают JavaScript или Java. На одном из курсов e-kids преподаватели решили попробовать разобрать работу с Flask — фреймворком для создания веб-приложений на языке Python, но эта затея потерпела крушение. Задачи стояли слишком амбициозные: показать, как создавать сайт с блогом, галереей и гостевой книгой. Хоть структура всех этих компонентов и была похожая, казалось бы, дети могли просто поменять что-то в блоге и сделать галерею, например. Но учителя столкнулись с кучей проблем:
- Выяснили, что детям сложно объяснить, что такое фреймворки в принципе. Более того, оказалось, это сложно объяснить даже некоторым взрослым.
- Детям приходилось работать с большим количеством файлов, в итоге они путались, куда что вставлять.
- Высокий входной барьер. Чтобы объяснить, как построить такое веб-приложение, дети должны были знать большое количество технологий, в том числе про работу с базами данных.
Несмотря на то, что средний возраст участников был 14-15 лет, и они уже имели опыт работы с Python, практически половина участников группы потеряла интерес к занятиям по Flask, дети не проявляли активность, просто переписывали то, что им давали и не погружались в тему.
Но нельзя сказать, что это был полный провал, это был полезный опыт.
Вывод
Технологии становятся важной частью нашей жизни. Код – это язык нашего мира, который сочетает в себе математику, логику и алгоритмы и учит новому взгляду на мир.
Программирование учит, как решать большие проблемы, разбивая их на последовательность более мелких, более управляемых проблем. Надеемся, что наши занятия помогают детям решать проблемы более эффективно и мыслить глобально.
Программа e-kids развивается в России, Украине, Беларуси и Казахстане. В 2019 году в России прошли обучение 203 ученика — дети сотрудников. Кроме того, с сентября 2019 мы стали заниматься также с детьми из детских домов и с инвалидностью. Более 80 сотрудников стали волонтерами программы.
Волонтерами сотрудники становятся по разным причинам: у многих из них есть дети, и родители-разработчики хотят показать им ИТ с другой стороны или покрыть пробелы в школьном образовании, а кому-то просто нравится процесс обучения.
3263927
здорово что занимаетесь с детьми! у меня есть богатый опыт обучения детей и взрослых на Flash, если нужно могу поделиться. самая удобная среда — минимум кода максимум результата, возможность рисовать и анимировать векторную графику, очень удобная работа с клипами, язык очень похож на JS — ActionScript
пример того что мы делали —
http://3263927.ru/edu/kolobok/index.htm
vesyolkinaolga Автор
Спасибо, интересно! Передам своим коллегам.