[Перевод] Забудьте про иностранные языки и музыку — учите детей программированию

Дж. Пол Гибсон начал преподавать программирование тинейджерам от досады. Преподаватель информатики в Государственном университете Ирландии, к 1998 году он был по горло сыт невежеством своих студентов. «Я наблюдал 18- и 19-летних, с трудом усваивающих элементарные концепции программирования, которые я освоил в 12 лет, — вспоминает Гибсон, самостоятельно научившийся программировать на Sinclair ZX81. — Я осознал, что до сих пор не видел программирования в школьной программе, и подумал, что, может быть, одна из наших проблем состоит в том, что мы подходим к нему слишком поздно.» Когда молва о курсе Гибсона распространилась, начальные школы в окрестностях Дублина тоже заинтересовались его услугами.

К началу 2000-х Гибсон использовал задачки из области разработки игр для обучения восьми- и девятилетних детей основам Java. Его успех в этой возрастной группе вызвал к жизни вопрос:, а в каком, собственно, возрасте чересчур рано программировать?

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

При помощи небольшого Java-апплета детсадовцы смогли написать программу для игры в крестики-нолики, основываясь на простых правилах, которые дети сформулировали в группе. Пользуясь разноцветными мячиками и ниткой, он научил детей создавать алгоритмы на графах — один из важных компонентов программирования. «Как мы считаем, наша работа демонстрирует, что начинать обучение программированию можно ещё до того, как ученики освоили чтение и письмо, — писал Гибсон (который ныне преподаёт во Франции) в своей статье 2012 года. — Дети в возрасте 5–11 лет обладают такими потенциальными способностями к изучению алгоритмов и вычислений, что было бы позором ждать, пока они не станут подростками, чтобы начать обучать их базовым понятиям.» Однако эта мысль показалась слишком радикальной большинству работников образования. В то время как идея обучения детей и подросткой становится популярной — благодаря усилиям людей вроде Билла Гейтса или звезды баскетбола Криса Боша, — не так много людей верят в то, что детсадовцы могут научиться подчинять компьютеры своей воле.

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

5f23870c9c751d925227dc3603d1a6b5.jpg
Игра на сортировку, разработанная информатиком Дж.Полом Гибсоном для обучения детей концепции алгоритмов.

Но такой пессимизм противоречит не только опыту Гибсона и других учителей-первопроходцев, но и опыту в области языкознания. Обширные исследования показали, что, поскольку молодой мозг легко усваивает языки, лучше всего знакомить детей с иностранными языками так рано, насколько возможно. Именно поэтому многие амбициозные родители сейчас активно продвигают детские сады с интенсивным преподаванием китайского — они хотят предоставить своим детям наилучшие возможности изучить ключевой язык наступающего «азиатского века».

Чего эти родители, видимо, не осознают — это того, что те же самые биологические механизмы, благодаря которым дети могут буквально впитывать китайский язык, вероятно, делают их так же восприимчивыми и к языкам компьютерным. Детсадовцы, конечно, не станут си-плюс-плюсными гуру, но они однозначно могут начать развивать в себе умения, которые в своё время обеспечат им пожизненную способность бегло писать код.

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

Возможно, вы помните черепаху. В начале 1980-х язык программирования Лого со своим знаменитым курсором в виде черепашки, был «фишкой» американской начальной школы. Ожидалось, что, создавая при помощи простых команды Лого замысловатые картинки, дети выработают навыки работы с Apple IIe, которые как раз стали появляться в их комнатах.

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

Произошедшее крушение иллюзий совпало с появлением средств, превративших школьные компьютеры из средств исследования в электронных библиотекарей. «Появились компакт-диски, потом Всемирная паутина — и уже не нужно было учить команды, чтобы общаться с компьютером,» — говорит Ясмин Кафаи, профессор Университета Пенсильвании.

На десятилетия программирование исчезло из начальной школы, даже по мере того, как информатика становилась всё более популярной темой для изучения в колледже. Казалось, появился культурный консенсус: детей надо учить неким «навыкам обращения с компьютером», а программирование — это для взрослых.

Впрочем, в последние пять лет ряд прорывных проектов стали опровергать этот консенсус. Кроме уроков Гибсона про крестики-нолики и теорию графов, есть Scalable Game Design — учебный курс, разработанный университетом Колорадо, в которым детям предлагается разработать свою версию игры Frogger. В школе P.S. 185 Гарлема дети от четырёх лет используют язык Cherp для программирования роботов, выполняющих работу по дому. Подобным занимаются и за океаном: в Эстонии есть инициатива ProgeTiiger, нацеленная на обучение первоклассников основам программирования.

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

Так, помогая ученикам разработать их первый Frogger, преподаватели Scalable Game Design поощряют их сперва задуматься об элементах игры — лягушонке и смертоносных машинах —, а затем о возможных взаимодействиях между этими элементами. Дети постепенно учатся создавать правила и условия, которые складываются в логичное, функционирующее целое.

62ee2f5b0497ed1219684a8fdae20840.jpg
Игры, созданные младшеклассниками в ходе учебного курса Scalable Game Design. Комментарии от юных программистов: (1) «Цель — добраться до вертолётика.» (2) «Уклоняться от камней и собирать монетки.» (3) «Мы играем за зомби и пытаемся добраться до алмаза. Ходить при помощи кнопок со стрелками. Избегайте призраков, а не то проиграете.»

То, что юные дети могут справиться с такими сложными задачами, не должно быть сюрпризом — с учётом того, что мы знаем об их способностях осваивать языки. Пятилетки значительно превосходят более взрослых детей при изучении инспанского или китайского, потому что более юный мозг лучше (во всяком случае, в теории) приспособлен к формированию «процедурных» воспоминаний — тех, что внедряются в психику настолько глубоко, что вызываются к жизни скорее рефлекторно, нежели усилием воли.

Начинают появляться доказательства того, что по мере взросления мозга его способность к формированию процедурных воспоминаний ослабляется в пользу декларативной памяти, которую мы используем для запоминания фактов. Недостаток последней в том, доступ к ней требует осмысленных усилий — это большой минус, когда вы пытаетесь проспрягать хитрый иностранный глагол «на лету». Гораздо лучше, если все эти спряжения стали для вас естественными, потому что вы выучили их, когда ваша процедурная память работала лучше всего.

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

«Я бы предположил, что те же системы памяти общего назначения, которые лежат в основе изучения языков у детей и взрослых, вероятно, также являются основой обучения языкам программирования,» — говорит Майкл Ульман, директор лаборатории мозга и языка медицинского центра университета Джорджтауна. Ключевым отсчётом в пользу этой точки зрения являются свидетельства из области музыки: великие скрипачи начинали изучать инструмент не в возрасте 20 лет, а будучи трёх- или четырёхлетними — в возрасте, когда процедурная память наиболее восприимчива.

А что есть музыка, если не форма кода — серия абстрактных сигналов, которые должны быть упорядочены особым образом, чтобы доставлять удовольствие человеческому уху?

В идеальном мире детсадовцев следует обучать как программированию, так и иностранному языку. Но если образовательное учреждение будет вынуждено выбирать одно из двух, то можно найти сильные аргументы в пользу программирования. Наиболее очевидный аргумент, конечно же, экономический: спрос на разработчиков программного обеспечения уже сейчас значительно превышает предложение — и, как ожидается, увеличится на 30 процентов к 2020 году — что в два раза выше, чем средний показатель для всех прочих профессий. (Трудно представить себе вариант развития событий, при котором эти вакансии будут превзойдены вакансиями, требующими глубокого знания китайского.)

При этом целью обучения программированию отнюдь не является создание армии быдлокодеров для Facebook и Google.

Подобно тому, как освоенный в юности второй язык, как полагают, позволяет получить когнитивные преимущества в более зрелом возрасте, так и раннее освоение программирования улучшает то, что педагоги называют «вычислительным мышлением» — способность решать задачи при помощи абстрактного мышления. И даже для учеников, которые никогда не займутся программированием всерьёз — чья врождённая страсть лежит в области филологии, а не программирования — способность понимать код имеет ценность.

Как говорит Дуглас Рашкофф, игнорировать программирование — всё равно что полагаться на таксистов вместо того, чтобы учиться водить автомобиль. Через полвека лет наше преимущественное общение будет отнюдь не с китайцами —, а с машинами. Так что давайте учить детей командовать ими —, а не наоборот.

Комментарии (23)

  • 18 августа 2016 в 01:16

    +2

    великие скрипачи начинали изучать инструмент не в возрасте 20 лет, а будучи трёх- или четырёхлетними — в возрасте, когда процедурная память наиболее восприимчива. А что есть музыка, если не форма кода

    Вот только абстрактная структура музыки в этом возрасте никого не волнует. У малолетних музыкантов развивают слух и моторику.


    (ну и музыка — не форма кода, раз уж на то пошло)


    В идеальном мире детсадовцев следует обучать как программированию, так и иностранному языку. Но если образовательное учреждение будет вынуждено выбирать одно из двух, то можно найти сильные аргументы в пользу программирования. Наиболее очевидный аргумент, конечно же, экономический: спрос на разработчиков программного обеспечения уже сейчас значительно превышает предложение — и, как ожидается, увеличится на 30 процентов к 2020 году — что в два раза выше, чем средний показатель для всех прочих профессий. (Трудно представить себе вариант развития событий, при котором эти вакансии будут превзойдены вакансиями, требующими глубокого знания китайского.)

    Пока это пишет носитель английского языка, это еще как-то можно понять. Но вот когда это переводят на русский — это становится смешно.


    В заголовке, кстати, написано «забудьте про музыку». А аргументы где?

    • 18 августа 2016 в 02:36 (комментарий был изменён)

      0

      Трудно представить себе вариант развития событий, при котором эти вакансии будут превзойдены вакансиями, требующими глубокого знания китайского.
      когда это переводят на русский — это становится смешно.
      Вы, я так понимаю, пессимист?
      • 18 августа 2016 в 10:52

        +4

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

        • 18 августа 2016 в 11:01

          0

          Да вообще без знания английского достаточно печально. Особенно если учесть что больше половины информации в интернете представлено именно на английском.
          Музыка — да, это кому нравится, а кому и нет.
          • 18 августа 2016 в 11:05

            0

            Музыка — да, это кому нравится, а кому и нет.

            Будем честными, людей, которым не нравится музыка, я не знаю. Я слышал, что есть люди, которые к ней индифферентны, но никогда их не видел.


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


            (естественно, мы рассматриваем тех, кто музыку физиологически способен воспринимать)

  • 18 августа 2016 в 02:29

    0

    Почему бы сразу не учить теории категорий? Коммутативные диаграммы те же графы по сути. Если программирование это профессия будущего, а мозг ребенка это губка, то почему не заполнить это тогда уж основой основ?
  • 18 августа 2016 в 02:32

    +2

    С музыкой согласен, она не виновата, наоборот очень полезна для будущих программистов.
    А на счет программирования в раннем возрасте, спорно и еще раз спорно.
    Сам преподаю, возраст от 6 класса до студентов и считаю что учить надо не программированию, а Алготитмизации, то есть логики, умению рассуждать и строить логические цепочки.
    Для младшего возраста лучше использовать конструкторы (Лего и подобные) и с помощью их осваивать простое программирование.
    Во первых развивается моторика, во вторых пространственное мышление и в третьих наглядно и не скучно.
  • 18 августа 2016 в 06:22

    +1

    У нас класса с 5 или 6 го были основы, в простеньких средах где можно было программировать: экран везде состоял из графического поля и поля ввода команд. Вариации были такие: кенгуру (ползал по экран и оставлял след в виде линии хвостом), потом «кукарача» (таракан толкал буквы по полю) и, вроде, пылесос (примерно тоже самое, только мог затягивать и выплевывать буквы — пример стека). Пакет назывался «роботландия». Вот так мы еще в средней школе познали основы алгоритмизации. Паскаль, вроде, в 8-ом классе начался.
    Скриншоты
    image
    image

  • 18 августа 2016 в 07:17

    +5

    Если у ребенка нет предрасположенности к абстрактному мышлению, хоть обучи миллион раз, не поможет.
    А вот знать английский язык в нашей профессии нужно обязательно, как минимум на уровне чтения документации.
    • 18 августа 2016 в 09:43

      0

      Что за предрасположененность?
  • 18 августа 2016 в 09:03

    +2

    И от программирования может тошнить, даже если это любимое занятие. В этом случае я очень переживаю, что не научился играть ни на одном музыкальном инструменте. Иногда взял бы электрогитару и запилил бы соло через усилок, например, High Way Star или отбарабанить как Мэл Тейлор. Или какой-нибудь фильмец посмотреть на английском без перевода с оригинальной озвучкой, которая при переводе сильно страдает (как простой пример, естественно).
    Если говорить об обучении, то ребёнку нужно просто показать, насколько жизнь может быть интереснее, когда он может самостоятельно добиться своей цели. И как раз всё вместе — музыка, иностранные языки, программирование и куча других способностей именно этому и способствуют.
    • 18 августа 2016 в 11:00

      0

      Если есть музыкальный слух и чувство ритма, научиться можно в любом возрасте, были бы мотивация и свободное время.
      • 18 августа 2016 в 11:05

        0

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

        • 18 августа 2016 в 11:33

          0

          Может быть есть с рождения, но если окружение ребенка (родители, воспитатели) игнорирует это направление развития, музыкальный слух в итоге отупится до невосприятия ничего сложнее «унца-унца» и попсовых квадратов, и скормить хотя бы тех же Muse человеку будет уже сильно сложней.
          • 18 августа 2016 в 11:41

            0

            скормить хотя бы тех же Muse человеку будет уже сильно сложней.

            А вот это вопрос уже «научиться».


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

  • 18 августа 2016 в 09:17

    +2

    Полностью согласен с теми, кто делает замечание, что для англоговорящего человека статья актуальна, а для русскоговорящего — нет.
    Программирование — это «вечно изменяющееся море», где едва ли не каждый день появляется что-то новое, а что-то старое уходит в никуда. Все новые статьи — на английском, ждать пока их переведут (и переведут ли вообще) можно очень долго, нужно уметь читать и слушать английский язык, ещё лучше — самому говорить на нём.
    Учить ребёнка программировать, скажем на C# (я немного утрирую, но думаю понятно о чём я говорю), значит, что придётся его переучивать на что-то новое через несколько лет (например Python, вновь набирающий популярность на волне нейронных сетей). Вроде у Азимова был хороший рассказ про обучение детей в будущем, когда обучение было простой загрузкой программы управления конкретным прибором в память, новый прибор — новое обучение.
    • 18 августа 2016 в 09:24

      +2

      Повесть «Профессия». А Вы помните, как она заканчивается?
      • 18 августа 2016 в 09:45

        0

        Спасибо, не смог найти в поисковике, к сожалению.

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

  • 18 августа 2016 в 09:24

    0

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

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

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

    • 18 августа 2016 в 11:26

      0

      Не соглашусь. Я с 5 лет читал, в 8 уже немного знал английский, с тех же 8 лет мог писать простые программы под советский ПК, тот, что в виде клавиатуры был. Меня учили музыке, на рояле. Учили рисовать. Учили дизайну. И так по списку. В девятом классе я написал программу автоматизации и учета для фотостудии, которая там 10 лет потом проработала. В десятом классе сделал первый сайт заказчику. Кажется, должен был быть успешным… А вот нет, вышла каша в голове, лебедь, рак и щука, которые тянут и так очень ограниченное свободное время на себя. Навыков у меня море разных, но ничего хорошо сделать не могу в силу того, что все знания очень поверхностны. И социальные навыки пострадали, увлечения съедали время, сидел дома вместо общения с окружающими, в итоге с общением, мягко скажем, не очень — в обществе веду себя как робот, которого правилам научили, но зачем они, робот так и не понял.
      И вижу кучу обратных примеров, когда, например, одноклассник-двоечник, к восьмому классу не умевший пельменей сварить, где-то нашел радиостанцию. Заразился радиосвязью, полез в физику. Сейчас дошли слухи, что он пишет докторскую на тему дальней космической связи.
      Комплекс знаний, как я думаю, можно развивать только в одном направлении: спорт, искусство, техника, управление, но мешать их смерти подобно. Философы с широченным кругозором не нужны в наше время как не нужны и мастера на все руки, их время ушло, теперь нужны грамотные узкие специалисты.
      • 18 августа 2016 в 11:30

        0

        Может, причины отказа от всестороннего развития чисто экономические? Приходится заниматься тем, за что заплатят. Заниматься этим надо весь световой день, то есть на всё остальное тупо нет времени и сил. А это приводит общество к повсеместному профессиональному кретинизму, когда программисты рассуждают об образовании детей и несут какую-то дичь.
      • 18 августа 2016 в 11:37

        0

        > А вот нет, вышла каша в голове, лебедь, рак и щука, которые тянут и так очень ограниченное свободное время на себя.
        У меня было примерно то же самое, пока не понял, что дело в недостатке дисциплины, а не в избытке способностей.
  • 18 августа 2016 в 09:51

    0

    Вот, например, проект Информатика21 ставит своей целью обучение программированию НЕпрограммистов и вообще всех детей http://www.inr.ac.ru/~info21/

© Habrahabr.ru