Есть ли жизнь после Scratch, или как познакомить ребёнка с Python

    У нас в EPAM работает школа программирования для детей сотрудников — e-kids. В школе волонтёры-сотрудники учат детей работать со Scratch — визуальной средой программирования, созданной специально для обучения детей и подростков. Но всегда рано или поздно наступает момент, когда Scratch уже становится детям не интересен.

    Путём проб и ошибок нашим учителям удалось найти способ, как развивать детей дальше, чему учить, чтобы они при этом не потеряли интерес к программированию из-за слишком сложных задач. Так в e-kids стали обучать более сложному языку программирования — Python. В этой статье я собрала полезную информацию от коллег, кто преподает в школе, о том, как детей познакомить c Python.



    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, Луи Стоуэлл.

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

    Нужна или не нужна интегрированная среда разработки (Integrated Development Environment, IDE)?
    IDE облегчает жизнь, она подсвечивает синтаксис, исправляет ошибки и автоматически дополняет ключевые слова, плюс помогает в подготовке окружения, которое не будет мешать установленному Python. Можно, например, использовать PyCharm 2018.2.4 (Community Edition) — это бесплатная IDE.

    Console vs Graphics


    Все привыкли «Hello, world» обычно вводить в консоль, но когда дети видят консоль, они сразу впадают в уныние.



    Поэтому лучше использовать такие библиотеки, как Turtle и Tkinter. Обе входят в стандартный дистрибутив Python и не требуют дополнительной установки. Детям будет проще переходить на Python через эти библиотеки, потому что многие методы повторяют блоки в Scratch.



    Turtle легко кастомизируется: фон можно заменить на картинку комнаты, а черепашку — на другого персонажа.



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

    Как написать игру на Python


    Покажу на примере, как проходило знакомство детей с Python на уроках в e-kids.

    1. Сперва детей знакомили с Code Combat. Здесь персонаж может ходить по карте, собирать кристаллы, уворачиваться от врагов с помощью кода. Это простая игра, но при этом дети уже писали куски кода, и главное, сразу могли видеть, на что это влияет.
    2. Затем знакомили детей с «черепашкой». Они учили её ходить, писать, рисовали разные фракталы.
    3. После чего мы попробовали превратить блоки Scratch в код на Python.

    Например, Scratch-котик был описан функцией addHero с картинкой, которая передавалась в качестве аргумента к этой функции.



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

    Таким образом, комбинируя эти блоки, дети уже могли написать игру, похожую на те, которые они разрабатывали на Scratch. Часть блоков уже есть в библиотеке Turtle, какие-то дописывали сами.

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



    В отдельном блоке у нас была описана логика – персонаж собирает мусор, если он находится близко к мусору, он говорит какую-то фразу. Это очень напоминает то, как описывается логика персонажа в Scratch. Там тоже можно открыть персонажа и добавить какие-то блоки поведения, после чего персонаж оживал.



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

    Путь проб и ошибок


    Некоторые вместо Python выбирают JavaScript или Java. На одном из курсов e-kids преподаватели решили попробовать разобрать работу с Flask — фреймворком для создания веб-приложений на языке Python, но эта затея потерпела крушение. Задачи стояли слишком амбициозные: показать, как создавать сайт с блогом, галереей и гостевой книгой. Хоть структура всех этих компонентов и была похожая, казалось бы, дети могли просто поменять что-то в блоге и сделать галерею, например. Но учителя столкнулись с кучей проблем:

    • Выяснили, что детям сложно объяснить, что такое фреймворки в принципе. Более того, оказалось, это сложно объяснить даже некоторым взрослым.
    • Детям приходилось работать с большим количеством файлов, в итоге они путались, куда что вставлять.
    • Высокий входной барьер. Чтобы объяснить, как построить такое веб-приложение, дети должны были знать большое количество технологий, в том числе про работу с базами данных.


    Несмотря на то, что средний возраст участников был 14-15 лет, и они уже имели опыт работы с Python, практически половина участников группы потеряла интерес к занятиям по Flask, дети не проявляли активность, просто переписывали то, что им давали и не погружались в тему.
    Но нельзя сказать, что это был полный провал, это был полезный опыт.

    Вывод


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

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

    Программа e-kids развивается в России, Украине, Беларуси и Казахстане. В 2019 году в России прошли обучение 203 ученика — дети сотрудников. Кроме того, с сентября 2019 мы стали заниматься также с детьми из детских домов и с инвалидностью. Более 80 сотрудников стали волонтерами программы.

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

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

    А как вы считаете, со скольки лет можно погружать ребёнка в ИТ-среду?

    • 35,9%Чем раньше — тем лучше.28
    • 64,1%Когда сам захочет, если захочет.50
    • 0,0%Свой вариант в комментариях.0
    EPAM
    Компания для карьерного и профессионального роста

    Комментарии 22

      0
      здорово что занимаетесь с детьми! у меня есть богатый опыт обучения детей и взрослых на Flash, если нужно могу поделиться. самая удобная среда — минимум кода максимум результата, возможность рисовать и анимировать векторную графику, очень удобная работа с клипами, язык очень похож на JS — ActionScript
      пример того что мы делали —
      http://3263927.ru/edu/kolobok/index.htm
        0
        Спасибо, интересно! Передам своим коллегам.
        0
        А можно как-нибудь посмотреть на вашу программу обучения по скретчу?
        Тоже учу ребенка, но пока это не слишком организовано.
          0
          Я уточню у коллег, есть ли ещё какие-то внешние материалы, которыми можно поделиться, в том числе готовой программой обучения.
            0
            Спасибо.
              0
              Присоединюсь к просьбе. У ребенка повышенный интерес к программированию и многое схватывает лучше меня. Но системы нет, разрозненные книжки и задания по скретч, который он явно перерос.
              0
              Посмотрите плиз мою программу
                0
                Вы имеете в виду книгу «Scratch для юных программистов»?
                Кстати, а она в магазинах в бумажном виде продается?
                Распечатать, конечно, можно, но она у меня любит красивые книги, думаю, так в нее лучше пойдет.
                  0
                  Однако, я имел ввиду мои онлайн курсы на платформе codim.online, но почему-то ссылка не прикрепилась.
                    0
                    да, нашел, спасибо. Книгу на озоне тоже нашел.
              –4
              В Украине!
                0
                Спасибо, исправила :)
                  0
                  Это у Вас, на Украине, так говорят)
                    0
                    До кармы обидчивые однако)
                  +3
                  На Украине. Это правильный литературный вариант. Не надо вводить людей в заблуждение. Все же, раз общаемся на русском языке то и нормы русскоя языка надо применять все как положено, а не выборочно.
                    +4
                    Коллеги, предлагаю оставить это обсуждение филологам и лингвистам. Статья всё же не об этом. ;)
                    –2
                    Это просто должно быть здесь.
                    ebanoe.it/2019/09/26/epam-ekids
                      0

                      Вот это болото. Тут есть кто-нибудь, кто добровольно готов окунуться в такое сообщество?

                        0
                        Вот и узнаем!
                          +1
                          этот сайт для выгоревших матросов с галер
                        0
                        В школе волонтёры-сотрудники учат детей работать
                        есть ли какие-нибудь тесты, позволяющие отсеивать тех, кому программирование явно не подходит, но сам ребенок не может сопротивляться настойчивости родителей?
                          0
                          Специального тестирования перед курсами мы не проводим, скорее, стараемся вовлечь в среду программирования любого ребенка, идём от его интересов, геймифицируем задания. Наша концепция — программирование в той или иной форме — подходит всем и не ограничивается только написанием кода — есть тестирование, дизайн, геймдев, робототехника и т.д.

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

                        Самое читаемое