Для чого дітям необхідно вивчати “ПРОГРАМУВАННЯ” та “РОБОТОТЕХНІКУ”

Наука програмування активно займає позиції у школах цілого світу. Для чого її вивчати? Чи кожен повинен вміти програмувати? Які перспективи виникають в результаті вивчення програмування? Як вивчати програмування вже з перших років навчання у школі? На ці та інші питання Ви знайдете відповідь у цій статті.

Виклики, які в даний час постають перед нами в сучасній історії освіти ніколи не були такими потужними. Сучасний світ зростає і так швидко змінюється, що традиційні методи навчання, засновані головним чином на безпосередньому отриманню знань, все більше втрачають свою значимість. В мінливій реальності ми вже не в змозі передбачити, яка інформація знадобиться в майбутньому нашим сучасним студентам. Розвиток цивілізації систематично прогресує, і ніщо не вказує на те, що ця тенденція зміниться у найближчому майбутньому. Заслуговує уваги той факт, що завдяки Інтернету та широкій доступності смартфонів, підручники тепер доступні практично в будь-якому місці на Землі, а запам’ятовування великих обсягів інформації поступово втрачає свій сенс.

Нові часи принесли нові тренди в освіту – вже багато років школи стараються робити наголос на розвиток таких напрямків як креативність, вміння логічно мислити, вирішення завдань та розвиток взаємодії. Це якраз ті напрямки, які не втратять своєї актуальності із плином часу і дозволять комфортно адаптуватись до нового оточення.

Одним із найбільш перспективних інструментів в контексті розвитку вищевказаних напрямків є наука програмування.

Програмування – що це означає?

Програмування, яке також називають кодуванням, має дуже широку сферу застосування.

Програми керують нашими домашніми комп’ютерами, серверами банків та інтернет-порталів, планшетами, мобільними телефонами, пральними машинами, ліфтами (і це далеко неповний перелік). Програмування- це по-суті написання інструкції для комп’ютера. Перші програми були створені безпосередньо за допомогою так званого машинного коду – зрозумілий для процесора набір чисел, які записані двійковій формі (тобто, використовуючи тільки нулі і одиниці). Приклад фрагменту програми, яка додає одиничку до записаних у пам’яті чисел виглядає наступним чином: 0000 0010 0000 0000 0001 0000 0011 0100. Комп’ютер виконав цю програму без проблем, однак для людини, навіть висококваліфікованого фахівця, розшифрувати цей фрагмент коду було досить важко, а подекуди – неможливо.

Для того, щоб програмування було більш ефективним, необхідно було створити мову програмування або набори команд на основі слів (а не чисел) із певним синтаксисом, яку/які можна однозначно перевести у машинний код. З часу перших комп’ютерів, сьогодні вже створено багато більше, ніж 1000) мов програмування, крім того, щороку створюються нові. Не існує ідеальної чи універсальної мови програмування, яка б могла бути застосована до будь-яких обставин, а розвиток технології змушує постійно шукати нові – більш ефективні способи програмування. Незважаючи на свою різноманітність, мови програмування мають багато спільного – це яскраво демонструє інтернет сторінка 99 bottles of beer, показуючи одну і ту ж саму програму, написану на величезній кількості мов програмування.

Навіть дитина може програмувати!

Програмування часто розглядається як сукупність навичок, що притаманні вузьким спеціалістам, які мають великі знання і можливості щоб створити щось з нуля, використовуючи клавіатуру і компілятор. Зазначені фахівці мають справу зі створенням технологій. Для решти нас, програмування сприймається як “чорна магія”, хоча ми щодня є споживачами плодів цієї науки (програм, інтернет-сторінок, мобільних додатків).

Однак, так буде не завжди.

Сьогоднішні реалії вимагають, щоб нові покоління споживачів технологій стали активними користувачами та учасниками їх створення. Завдання виховання у них цих навичок, покладається на нас, і воно не є буденним чи сірим. На щастя, багаторічні дослідження сприяли формуванню численних навчально-методичних посібників для програмування із перших років навчання у школі.

Дослідження можливостей використання науки програмування в якості інструменту для навчання започаткував математик Сеймур Пейперт у другій половиниі шістдесятих років двадцятого століття. Натхненний піонерською теорією когнітивного розвитку швейцарського психолога та філософа Жана Піаже, Пейперт розробив першу навчальну мову програмування “Logo”, яка слугувала вивченню інформатики та математики. Багато років досліджень померлого у 2016 році вченого, прямо або побічно надихнули майже всі подальші розробки в цій галузі.

Перший проривом став робототехнічний конструктор LEGO Mindstorms. Цей конструктор створено за наслідками співпраці між дослідницькою групою LEGO Group та дослідницькою групою Пейперта на базі MIT Media Lab. Також, вищевказаний конструктор запозичив свою назву із книги Пейперта – “Mindstorms: Children, Computers, and Powerful Ideas”. Під впливом того ж таки Пейперта MIT Media Lab створено відому комп’ютерну програмуScratch”.

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

Комп’ютери змінили і продовжують змінювати світ навколо нас, а програмісти є необхідними все більше і більше. Я сам вивчав Fortran (мова програмування), і я знаю з перших рук, що програмування залякує багатьох з нас, хоча і неповинне. Програмування стає набагато доступнішим для викладачів та студентів, а наша країна потребує багато таких фахівців.

Ренді Вайнгартен

Президент Американської федерації вчителів

Навчальні мови програмування

Навчальні мови програмування у своїй переважній більшості мають графічну або текстово-графічну форми.

У них використовується обмежена кількість інструкцій, які ми обираємо із доступних бібліотек та вкладаємо у логічну послідовність для створення програми.

Переміщення інструкцій відбувається у інтуїтивний для дітей спосіб draganddrop (з англ. перемісти та опусти), а самі інструкції постають у вигляді кольорових кубиків чи блоків, які вирізняються своїми зображеннями чи написами.

Такі форми інструкцій спрощують програмування не тільки через цікавий вигляд, вони також дозволяють уникнути помилок, які часто можна допустити під час програмування у текстовому форматі. В деяких випадках кубики дозволяють уникнути помилок у самому алгоритмі програми (кубики приєднуються тільки тоді, коли таке поєднання має відповідний зміст).

Які переваги навчання науці програмування у школах?

Давайте мислити мовою цифр. За допомогою простих розрахунків можна дійти висновку, що в нашому все більш технологічно орієнтованому світі ринок праці потребуватиме більш кваліфікованих фахівців у сфері IT. Сектор цифрової економіки в даний час зростає найшвидше в світі, зі швидкістю в сім разів вище, ніж в середньому по економіці в цілому. Було б дуже добре, щоб зацікавленість дітей інформаційними технологіями призвела до наявності більшої кількості фахівців у майбутньому. Згідно із положеннями Цифровий програми для Європи, яка затверджена Європейською комісією у 2014 році, вже в 2020 році на європейському ринку може бути відсутнім 900 тисяч фахівців у сфері ІТ.

Слід зазначити, що перевага на ринку праці не обмежується вузькими спеціалістами у сфері IT. Попит на фахівців, які вміють працювати з програмами що дозволяють створювати прості інтернет-сторінки, мобільні додатки та блоги, адмініструвати роботу інтернет-магазинів і т.д.

Наша стратегія полягає в тому, щоб прийняти на роботу як можна більше талановитих інженерів. Станом на сьогодні є досить мало фахівців, які володіють необхідними навичками.

Марк Цукерберг

засновник соціальної мережі Facebook

Вищенаведене стосується також професій, що не пов’язані з технологіями. Згаданий документ Європейської комісії зазначає, що вже зараз 90% всіх вакансій вимагають принаймні елементарних навичок в галузі інформатики. Одночасно, не зважаючи на наявність широкого доступу до технологій, тільки 50% працівників відповідають вищевказаним вимогам. Таким чином, ми стикнулися із серйозною прогалиною в галузі фахівців, які володіють прикладними знаннями інформатики.

Заповнення цієї прогалини є одним із найважливіших завдань сучасної освіти.

Отже, нам доводиться мати справу із проблемою відсутності на ринку праці затребуваних працівників. Вирішення цієї проблеми у найближчі роки є однією з найважливіших завдань сучасної освіти. Спостереження показують, що в більшості навчальних систем ця проблема з’являється протягом перших 12 років навчання відповідному фаху, розроблені протягом цього періоду, не відповідають тим вимогам, які ставлять вищі навчальні заклади та ринок праці.

Технологія та комп’ютери – суть нашого економічного прогресу. Щоб бути готовими до потреб 21-го століття, а також використовувати майбутні можливості – нам потрібно збільшити кількість студентів, які отримають базові ІТ-навички незалежно від спеціальності, яку вони хочуть здобути.

Тод Парк

Головний державний радник

з питань технологій США

Цифрова грамотність

Переваги науки програмування виходять далеко за рамки кар’єрної підготовки. Естонія розпочала пілотну програму навчання програмуванню з першого класу початкової школи вже в 2012 році. Однак, метою цієї програми є не створення нації комп’ютерних вчених у наступні двадцять років, а навпаки – виховання суспільства, взаємодія якого з технологією, комп’ютерами та інтернетом зробить його розумнішим та більш свідомим.

Ця ідея близька до спостережень Мітча Резніка в медіа-лабораторії MIT: “Сьогодні молоді люди мають значний досвід і та вагомі знання завдяки новим технологіям, але вони є менш творчими та рідше виражають себе використовуючи ці технології. Таке враження, що вони можуть читати, але не писати мовою нових технологій.

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

Освітні переваги та розвиток

Не всі розуміють, що навчання програмуванню приносить користь, яка не має багато спільного безпосередньо із технологіями. Ряд досліджень свідчать про те, що вона позитивно впливає як на пізнавальні можливості так і на соціальні навички учнів. Діти, яких вчили основам інформатики з акцентом на алгоритмічне мислення та логічні конструкції, отримали цілий ряд соціальних та академічних навичок. Очевидний прогрес відзначається в таких сферах, як візуальна пам’ять, пізнавальні навички та мовні навички. Вони також досягнули поліпшення мета-когнітивних здатностей – учні краще знають як навчатись, що пов’язано із розвитком самоконтролю та самоосвіти.

Наука програмування дозволяє дітям виражати себе, впливає на їх творчість та впевненість у собі. Якщо ми хочемо, щоб дівчата взяли ці якості із собою в доросле життя, вони повинні вчасно вивчати програмування.

Сьюзен Войчіці

Старший віце-президент компанії Google

Обчислювальне мислення

Термін “обчислення”, вперше був використаний Сеймуром Пейпертом у 80-х роках минулого століття. За словами Жаннет Вінг, провідного прихильника цієї ідеї, обчислювальне мислення – це процес мислення, в якому проблема та її рішення формулюються зрозуміло, а також, таким чином, щоб ця формула могла бути виконана комп’ютером. У спрощеному варіанті його іноді називають: “думати як айтішник”.

Обчислювальне мислення розвиває цілу низку гнучких навичок, які рідко можуть формуватися в іншому контексті, особливо у школі. Програмування вчить як вирішувати проблеми, декомпозиції (розділяти великі завдання на менші), робити висновки, виправляти помилки. Ці навички корисні як в STEM-освіті, науці та техніці, так і в таких сферах, як соціальні науки та мистецтво.

Розвиток логічного мислення

Обчислювальне мислення безпосередньо пов’язане з розумінням логічних конструкцій. Комп’ютер, який виконує завдання, завжди виконує алгоритм – перелік кроків, які потрібно виконати крок за кроком для досягнення передбачуваного ефекту. Комп’ютерна продуктивність завжди передбачувана – той самий алгоритм, який повторюється на тих самих даних, завжди дасть однакові результати.

Розвиток креативності

Знання основ програмування відкриває нове поле для творчого вираження. З цієї причини належне прикладне програмування дає конкретні результати у розвитку творчості у дітей. Подібно до пензля та полотна, які дозволяють висловлювати свої думки і почуття у вигляді зображення, програмування дозволяє виражати творчість та створення цілого ряду робіт: анімації, ігор, зображень та інтерактивних презентацій. Чудовим прикладом мови програмування для розвитку креативності у дітей є Scratch, основним натхненником якої, були конструктори LEGO (творці Scratch раніше спільно співпрацювали з LEGO під час проектування конструктора LEGO Mindstorms). З кубиками LEGO діти інтуїтивно починають комбінувати елементи, які є в конструкторі, об’єднують і створюють моделі, що надихають їх для подальшої роботи. Творчість у цьому контексті фактично виходить на перший план. Те саме стосується і Scratch. Діти інтуїтивно пов’язують блоки, створюючи прості програми з яких черпають натхнення для створення наступних. Позитивний вплив на розвиток творчості здійснює зв’язок з іншими дитячими інтересами (музика, відео або анімації). Це дозволяє заохочувати до програмування ширшу групу учнів та надає їм додаткові інструменти для вираження своїх ідей.

Коли діти зробили інтерактивні картки до Дня матері, стало очевидно, що вони почали використовувати нові технології. Що це означає? Я маю на увазі, вони змогли почати виражати себе та свої ідеї. Коли людина вільно володіє мовою, вона може створити запис у своєму щоденнику, розповісти жарт або написати лист другу. Те саме стосується і нових технологій. Написавши інтерактивні картки до Дня матері, ці діти ясно показали, що вони володіють новими технологіями.

Мітчел Резнік,

MIT Media Lab

Методика навчання на помилках

Під час створення програми неможливо уникнути помилок. Деякі з них просто засмучують – кожен програміст багато часу проводив, шукаючи відсутні коми. Але є також дуже важлива категорія помилок, які де-факто становлять сам творчий процес. Програми засновані за методом проб та помилок вимагають постійного тестування на кожному етапі. Завдяки цьому помилка у програмуванні є педагогічною цінністю – на відміну від багатьох інших методів навчання – це виклик, а не невдача. Ця ідея була близькою Сеймуру Пейперту, який вважав, що традиційні методи навчання спотворюють помилку як щось погане, демотивуючи певну групу учнів та негативно впливаючи на їхній потенціал. Зокрема, п. Пейперт зазначив:

Ми не повинні питати, чи є щось правильним чи неправильним. Ми повинні питати чи можна це виправити. Якщо цей спосіб перегляду продуктів інтелектуальної власності стане широко поширеним у більш широкому сприйнятті знань та способів їх отримання, наш загальний страх “помилок” може бути зменшений”.

Сучасні методи навчання допомагають використовувати помилку як інструмент. Так, синтаксичні помилки повністю усуваються на графічних мовах (важко говорити про синтаксис у кольоровому блоці), а окремі інструкції об’єднуються в програму лише в тому випадку, якщо послідовності мають зміст.

Розвиток пізнавальних здібностей

Переваги вивчення програмування можна порівняти з перевагами, які отримують люди в результаті вивчення іноземних мов. Наука програмування багато в чому схожа на вивчення нової іноземної мови. У ранньому дитинстві учні більш схильні до вивчення іноземної мови, особливо якщо це системне навчання у відповідності до віку. Дослідження, проведені з метою виявлення можливостей навчання дітей науці програмування показали, що вони, розвиватимуться у такому ж віці. Не менш важливою є форма навчання (у відповідності до віку дитини). Найкращим варіантом в цьому випадку буде навчання в ігровій формі пов’язане з іншими видами розвитку, такими як мистецтво, математика чи читання.

ЯК НАВЧАТИ ПРОГРАМУВАННЮ?

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

Інструменти, адаптовані до віку та навичок учнів

Заохочення дітей до програмування є набагато простішим ніж може здатися. Діти, природньо, беруть на себе такі виклики, коли проекти та теми подаються на правильному рівні складності та пов’язані з іграми. Ринок освіти пропонує безліч інструментів навчання та розвитку, адаптованих до різних рівнів розвитку та просування дітей. Однак, деякі з них чітко виділяються з поміж інших. Саме вони найчастіше рекомендуються експертами.

Ігри

Більшість дітей знають і люблять відеоігри або смартфони, тому, коли ми даємо їм можливість створювати власні ігри, вони сприймають цей виклик із великим хвилюванням. Ми розрізняємо два різних підходи до використання ігор у науці програмування.

Навчальні ігри (з англ. gameplay learning) – процес вчення закладено в контексті гри. Учні, які виконують свої завдання, заробляють очки і переходять на наступний рівень. Ці інструменти використовуються не тільки в науці програмування, але і в інших навчальних предметах. Є безліч додатків, які використовують подібний підхід – Tynker, Alice, CodeCombat та ін

Створення ігор (з англ. game design) – створення шляхом програмування та навчання шляхом створення. В цьому випадку діти йдуть на інший бік – вони стають розробниками ігор, програмістами, вони самі можуть створити функціональну гру, що прививає їм справжніх навичок та підвищує їхню самооцінку. Безсумнівно, це найефективніший та надихаючий метод навчання – створюючи еквівалент своїх улюблених ігор, діти відчувають себе чарівникам, що не можливо не переоцінювати. Чудовим простором для простого ігрового програмування є Scratch.

РОБОТОТЕХНІКА

Робототехніка – це ще одна сфера, яка фантастично здатна надихати учнів навчатися програмуванню. Фізично існуючі (бажано самостійні) механізми роблять програмування більш реалістичним для багатьох учнів. Набагато простіше зрозуміти програмний код, коли робот виконує його в фізичному світі поряд з нами.

Сеймур Пейперт вже знав про це, коли писав у 1997 році:

Надання дітям можливості програмувати поведінку транспортних засобів, роботів, динозаврів та інших конструкцій, що самостійно розробляються, створили нову перспективу. Багато з цих дітей, які не були дуже зацікавлені графічним програмуванням, цікавились новим рішенням. У той же час, багато програмних структур, які в старому контексті не були охоплені автоматично, зараз діють як очевидні. Це не означає, що конструкції LEGO краще навчають програмуванню, ніж графіці, але ця різноманітність дала дітям можливість об’єднати більше концепцій.”

На ринку є багато наборів для навчання робототехніці, але видається на те, що LEGO Education LEGO WeDo та LEGO Mindstorms, є найкращими. Їх ефективність, крім іншого, базується на неабиякій дитячій симпатії до цеглинок ЛЕГО, але вони також мають ряд інших переваг. Оснащений датчиками, двигунами та комфортними графічними мовами програмування (Wedo також може бути запрограмований на Scratch!), це чудовий інструмент навчання для дітей від 6 (WeDo) до 99 (Mindstorms).

Розглядаючи робототехніку, варто згадати також про її інші освітні цінності. Працюючи у фізичному світі, роботи навчають фізики та механіки. Будуючи роботів з блоків або елементів діти здобувають правильні рухові навички (моторику). Вибір правильного дизайну, сенсора або теми, також дозволяє використовувати роботів для вивчення біології, хімії, історії та мистецтва. Робототехніка навчає азів великої кількості дисциплін.

ПІДСУМОК

Розвиток технологій і пов’язані з цим зміни в світі призводять до того, що програмування, яке вивчається переважно на позакласних заняттях штурмом вривається у сферу обов’язкових наук, щоб заповнити прогалину фахівців IT поміж випускниками шкіл, яких так потребують у вищих навчальних закладах та на ринку праці. У той же час з’являється все більше сигналів, що програмування має неоціненну роль у розвитку навичок учнів, а саме: логічне мислення, вирішення проблем, творчість і співпраця, тобто тих навичок, які є найбільш цінними. Раннє запровадження науки програмування у школах буде великим викликом для сучасної освіти. Проте, його не потрібно боятися так як проведені дослідження дозволили розробити відповідні інструменти, які дозволяють легко та у привабливий спосіб представити програмування з перших років шкільної освіти. Навчатися програмуванню за допомогою роботів та ігор дітям дуже цікаво, в той же час діти здобувають інструменти та навички, плоди використання яких можна буде збирати впродовж довгих років.

“Незалежно від того, чи Ви бажаєте розкрити секрети всесвіту, або просто досягнути професійного успіху в двадцять першому столітті – знання основ програмування будуть Вам необхідними”.

Стівен Хокінг,

фізик-теоретик, космолог і письменник

витяг із статті перекладено з польської мови

автор статті Алєксандра Зємацка

з оригіналом статті можна ознайомитись:

https://www.robocamp.eu/blog/

P.S. Не зволікайте із можливістю навчати робототехніці та програмуванню власних дітей або створюйте власні осередки для навчання дітей. Більше на www.robocamp.space.