Pull to refresh

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Как говорит Дуглас Рашкофф, игнорировать программирование — всё равно что полагаться на таксистов вместо того, чтобы учиться водить автомобиль. Через полвека наиболее часто общаться мы будем отнюдь не с китайцами — а с машинами. Так что давайте учить детей командовать ими — а не наоборот.
Tags:
Hubs:
Total votes 34: ↑23 and ↓11+12
Comments76

Articles