Митч Резник: Давайте учить детей программировать
Программирование не только для компьютерных умников, оно для всех, — утверждает Митч Резник, профессор Media Lab Массачусетского Технологического Института. В своем веселом выступлении со множеством видеопримеров Резник описывает преимущества обучения детей программированию, чтобы они не только умели «читать» с помощью новых технологий, но и создавать их
![](https://ideanomics.ru/wp-content/uploads/2018/05/Mitch-Resnick-1024x768.jpg)
Это был майский субботний полдень, когда я вдруг осознал, что завтра День Матери, а я ничего не приготовил для своей мамы, и я стал размышлять, что же мне ей подарить? Я подумал, почему бы мне не сделать ей интерактивную открытку с поздравлениями с Днем Матери, используя программу Scratch, которую я разрабатывал с моей исследовательской группой в Media Lab MIT. Мы разработали ее, чтобы люди могли легко создавать свои собственные интерактивные истории, игры и анимации, и делиться своими творениями друг с другом. Итак, я решил, что это шанс воспользоваться Scratch для создания интерактивной открытки для мамы.
Прежде чем создать свою собственную открытку ко Дню Матери, я решил взглянуть на сайт Scratch. За последние несколько лет дети по всему миру от 8 лет и старше выкладывали свои работы, и я задумался, догадался ли кто-нибудь создать открытку ко Дню матери среди этих трех миллионов работ. Я набрал в поиске «День Матери», и был удивлен и рад увидеть список из десятков открыток ко Дню Матери, опубликованных на сайте Scratch, многие за последние 24 часа, такими же прокрастинаторами, как и я. Я стал их просматривать.
Я посмотрел одну с котенком в главной роли и ее мамой, и с поздравлениями с Днем Матери для нее. Создательница очень заботливо предлагала повторить просмотр. В другой интерактивной открытке надо было двигать мышкой по буквам «Счастливого Дня Матери», под которыми появлялся стишок, посвященный этому дню. В этой автор рассказывает, как она воспользовалась Google, чтобы узнать, когда празднуется День Матери. И когда она это выяснила, она создала специальное поздравление, чтобы показать, как сильно любит свою маму.
Мне очень понравилось смотреть эти работы и взаимодействовать с ними. Они настолько мне понравились, что вместо того, чтобы создать свое собственное поздравление, я послал маме с десяток ссылок на эти работы. Она отреагировала на них именно так, как я и надеялся. Она ответила мне словами: «Я так горда своим сыном, создавшим программу, которая позволила этим детям сделать открытки для своих мам».
Моя мама была счастлива, поэтому я был счастлив, но, если честно, я был еще счастливее по другому поводу. Я был счастлив, потому что дети пользовались Scratch именно так, как мы и надеялись. То, как они создавали интерактивные открытки с Днем Матери, вы видите, они правда «на ты» с новыми технологиями. Что я под этим подразумеваю? Я имею в виду, что они были способны начать выражать себя и начать выражать свои идеи. Когда вы свободно говорите на языке, это значит, что вы можете сделать запись в ежедневнике или рассказать шутку, написать письмо другу. То же самое с новыми технологиями. Создавая эти интерактивные открытки ко Дню Матери, это дети демонстрировали, что они действительно свободно владеют новыми технологиями.
Может вас это не удивит, потому что довольно часто люди чувствуют, что молодежь что только ни делает с технологиями. Мы все слышали, что молодых людей называют «жителями цифрового мира». Но я довольно скептически отношусь к этому выражению. Я не уверен, что молодых людей стоит считать жителями цифрового мира. Если вы всмотритесь, как же так, что молодые люди проводят большую часть своего времени, пользуясь технологиями, довольно часто вы увидите ситуации сродни этой, или этой, и без сомнения молодые люди легко и свободно ищут информацию, переписываются, отправляют письма и играют. Но это не значит быть «на ты».
У молодых людей есть большой опыт и знания о пользовании новыми технологиями, но намного меньше о создании программ с помощью новых технологий, выражении себя при помощи новых технологий. Почти как если бы они могли читать, но не писать при помощи технологий.
Я очень заинтересован в том, как молодые люди могут овладеть ими и научиться писать при их помощи. Это на самом деле значит, что им надо научиться писать свои собственные программы, то есть программировать.
Постепенно, люди начинают осознавать важность навыков программирования. За последние годы появились сотни новых организаций и сайтов, которые помогают молодым людям научиться программировать. Зайдите в интернет, вы найдете такие школы программирования как Codecademy, мероприятия вроде CoderDojo, сайты Girls Who Code или Black Girls Code. Создается впечатление, что все этим очень увлечены. В начале этого года, как только наступил новый год, мэр Нью-Йорка Майкл Блумберг сделал новогоднее заявление, что он собирается учиться программировать в 2012. Несколько месяцев спустя Эстония приняла решение, что все первоклашки должны учиться программированию. Это послужило толчком для дебатов в Великобритании, всем ли детям надо учиться программированию.
Кому-то из вас, когда вы слышите об идее всем учиться программированию, это может показаться странным. Многие считают, что программированием будет заниматься очень узкое сообщество людей, и они представляют его себе вот так. На самом деле, если бы это выглядело так, то только узкое сообщество людей с высокими математическими способностями и техническим образованием могло бы этим заниматься.
Но программирование не обязательно должно так выглядеть. Позвольте мне показать, как выглядит программирование на Scratch. На сайте Scratch, чтобы написать программу, надо только соединить блоки. В нашем случае, вы берете подвижный блок и переносите его в стек, а стеки блоков контролируют поведение различных героев вашей игры или истории, в нашем случае это большая рыба. После того как программа создана, вы нажимаете на кнопку «поделиться» и делитесь своим проектом с другими людьми, которые могут его использовать и тоже начать работать над ним.
Конечно, игра с большой рыбой не единственная вещь, которую вы можете создать с Scratch. Среди миллионов работ на сайте Scratch вы можете найти все, от анимационных историй до школьных научных проектов, от мыльных опер в стиле аниме до виртуальных строительных моделей, от воссозданий классических видео игр до политических опросов, от учебников по тригонометрии до художественных работ и, да, до интерактивных открыток ко Дню Матери.
Есть столько разных способов выразить себя, используя этот сайт, воплотить свои идеи и поделиться ими с миром. И не просто на экране. Вы можете написать программу, чтобы взаимодействовать с окружающим миром. Вот пример из Гонконга, где несколько детей создали игру и построили свой собственный интерфейс устройства со световым сенсором, который обнаруживает отверстие на доске, и когда они перемещают настоящую пилу, световой сенсор находит отверстие и двигает виртуальную пилу на экране, которая спиливает дерево.
Мы рассмотрим и другие новые способы, соединяющие физический и виртуальный миры, и передающие это миру вокруг нас. Это пример новой версии Scratch, которая появится через несколько месяцев, и снова мы надеемся, что это поможет вам двигаться в новых направлениях. Вот пример. Здесь используется вебкамера. Движением руки я могу лопать шарики или двигать жучка. Это немного похоже на Microsoft Kinect, где вы взаимодействуете с жестами в мире. Но вместо того, чтобы играть в чужие игры, вы можете создавать игры, и если вы видите игру кого-то другого, вы можете просто сказать «посмотреть», и вы можете увидеть стеки блоков, которые ею управляют. Здесь есть блок, который измеряет количество движения на видео, и, если движения много, он заставит шарик лопнуть.
Для передачи информации на Scratch можно использовать микрофон также, как и камеру, . Вот пример работы, использующей микрофон. Я собираюсь дать вам всем поуправлять этой игрой вашими голосами.
Когда дети создают подобные проекты, они учатся программировать, но что более важно, программируя, они учатся. Когда они учатся программировать, это позволяет им изучить множество других вещей, открывает им множество новых возможностей обучения. Полезно провести аналогию с чтением или письмом. Когда вы учитесь читать или писать, это позволяет открыть возможности для изучения стольких вещей. Когда вы учитесь читать, вы потом читаете, чтобы учиться. То же самое с программированием. Если вы учитесь программировать, вы программируете, чтобы учиться. Некоторые вещи, которым вы учитесь, очевидны. Вы изучаете, как работает компьютер. Но это только начало. Когда вы учитесь программировать, появляются возможности для изучения многих других вещей.
Позвольте привести пример. Это еще один проект, я увидел его, когда посещал один из компьютерных клубов. Это центры факультативных занятий, которые мы помогали основать, они позволяют молодым людям из малообеспеченных слоев общества творчески выражать себя при помощи новых технологий. Когда я посетил один из этих клубов пару лет назад, я увидел 13-летнего мальчика, использующего Scratch для создания игры вроде этой, он был очень доволен этой игрой и очень горд ею, но ему хотелось сделать больше. Он хотел набирать очки. Это была игра, в которой большая рыба съедала маленькую рыбку, но ему хотелось вести счет, чтобы каждый раз, когда большая рыба съедала маленькую, очки набирались, и отслеживался ход игры, но он не знал, как это сделать. Я показал ему. В Scratch вы можете создать вещь под названием «переменная». Я назову это счетом. Эта вещь создает вам новые блоки, также создает небольшое табло, на котором отражается счет, каждый раз, когда я нажимаю «изменить счет», прибавляются очки. Я показал это члену этого клуба — назовем его Виктор — и Виктор, увидев этот блок, позволяющий увеличивать счет, уже знал, что делать. Он взял этот блок, поместил его в программу именно на то место, где большая рыба съедала маленькую. Теперь каждый раз, когда большая рыба съедала маленькую рыбку, прибавлялось очко, и счет повышался. Это на самом деле работает. Он увидел это и был так рад, протянул ко мне руки и сказал: «Спасибо, спасибо, спасибо». Мне пришел в голову вопрос, как часто ученики благодарят своих учителей за знания о переменных? Этого не происходит в большинстве классов, но только потому, что в большинстве классов, когда дети изучают переменные, они не знают, для чего они это делают. Для них от нее нет никакого толка. Когда вы изучаете подобные идеи в Scratch, вы можете делать это осознанно и целенаправленно, вы понимаете, для чего вы учите переменные, и мы замечаем, что дети понимают их глубже и воспринимают легче. Виктор, я уверен, изучал переменные в школе, но чего он не делал, так это обращал на них внимания. Сейчас у него есть повод, чтобы их учить. Когда вы учитесь во время программирования, и программируете, чтобы учиться, вы получаете знания в значимом контексте, а это самый лучший способ учить вещи.
Когда дети, такие как Виктор, создают подобные проекты, они учатся таким важным вещам как переменные, и это только начало. Пока Виктор работал над проектом и писал программу, он также учился процессу дизайна, как начать с набросков идеи и воплотить ее в полноценный, функционирующий проект вроде этого. Он учился многим различным принципам дизайна, как экспериментировать с новыми идеями, как брать сложные задачи и разделять их на более простые части, как сотрудничать с другими людьми, как находить и исправлять ошибки, когда что-то не работает, как не падать духом и не опускать руки, когда что-то не ладится. Это важные навыки, не только по отношению к программированию. Они важны для любых видов деятельности.
Кто знает, вырастет ли Виктор программистом или ученым в сфере компьютерных наук? Наверное, вряд ли, но, несмотря ни на что, он сможет найти применение своим навыкам дизайна, которые он получил. Станет ли он маркетологом, механиком или главой сообщества, эти идеи полезны всем. Полезно вернуться к аналогии с языком. Когда вы хорошо читаете и пишете, это не значит, что вы это делаете, чтобы стать профессиональными писателями. Очень немногие становятся профессиональными писателями. Но читать и писать необходимо учиться всем. Также и с программированием. Большинство людей не станут учеными или программистами, но навыки мыслить творчески, рассуждать логически, работать совместно, навыки, которые вы получаете при программировании на Scratch, это те вещи, которые люди используют, чем бы они ни занимались.
Это касается не только работы. Программирование позволяет вам выражать свои мысли и чувства в личной жизни. Позвольте мне закончить еще одним примером. Это произошло после того, как я отправил открытку с Днем Матери своей маме, она решила, что хочет научиться программировать на Scratch. Она создала этот проект к моему дню рождения, и прислала мне поздравительную открытку на Scratch. Она не претендует на приз за дизайн, вы можете быть уверены, что моя 83-летняя мама не собирается становиться профессиональным программистом или ученым. Но работа над этим проектом позволила ей связаться с тем, кто ей важен, позволила продолжать учиться новым вещам, продолжать заниматься творчеством и находить новые способы выражать себя.
Итак мы видим, что Майкл Блумберг учится программированию, все дети Эстонии учатся программированию, даже моя мама учится программированию, вам не кажется, что пришло время и вам подумать о том, чтобы научиться программировать? Если вам хочется попробовать, я призываю вас отправиться на сайт Scratch. Это scratch.mit.edu, попробуйте.
Перевод: Анастасия Гурова
Редактор: Александр Автаев