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

Дж. Пол Гібсон почав викладати програмування тінейджерам від досади. Викладач інформатики в Державному університеті Ірландії, до 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.

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

Як говорить Дуглас Рашкофф, ігнорувати програмування — все одно що покладатися на таксистів замість того, щоб вчитися водити автомобіль. Через півстоліття років наше переважне спілкування буде аж ніяк не з китайцями — а з машинами. Так що давайте вчити дітей командувати ними — а не навпаки.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.