Scratch – (не) справжня мова програмування?

Автор: Іра Шостак

Scratch – це блокове («drag and drop») середовище програмування для дітей, де діти можуть створювати ігри та анімації, контролювати роботів, приймати вхідні дані через сенсори та багато іншого. Є батьки, які скептично ставляться до того, чи справді у такому привабливому та простому середовищі діти навчаються чогось корисного, а не тільки бавляться.  

Про те, на скільки Scratch  є «справжнім» програмуванням сьогодні  у Studylikeninja аргументи від Трейсі Гарднер, мами, програмістки, блогерки із популярного медіаресурсу TechAge kids.

“Scratch – це крута розвага і навчання водночас, але це ж не «справжнє» програмування, чи не так? Я маю на увазі, перетягування кольорових блоків по екрану, це всього-на-всього для маленьких діток, еге ж? І це не навчає справжнім навичкам програмування.”

Я читала багато подібних коментарів від батьків. Іноді батьки думають, що їхня дитина уже занадто доросла як для Scratch. Інші думають, що це просто коротка сходинка і хочуть якнайшвидше віднайти щось наступне. ІТ професіонали також часто припускають, що Scratch – це просто іграшка і що діти використовують технології просто для гри, навіть коли кодять.

Я ІТ-шник і мама, і я також вчу дітей програмувати. І можу точно вам сказати, що Scratch це таки «справжнє» програмування. Адже він потребує тих самих навичок, що використовують дорослі розробники. Дитина, яка стає експертом у Scratch матиме фантастичну базу перед тим як рухатися до так званих “справжніх” мов програмування.

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

Давайте поглянемо на деякі нерозуміння, які батьки і ІТ професіонали мають щодо Scratch.

Scratch –  всього-на-всього «перетягування блоків» – це не може бути СПРАВЖНЬОЮ мовою програмування

Багато батьків і освітян, що не є експертами у комп’ютерних науках, думають, що блокове програмування не може бути серйозним.  Але в чому річ? Хіба введення тексту є чимось більш особливим, аніж складання послідовності з блоків з написаним текстом на них.

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

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

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

Вічна боротьба «блокове програмування vs набирання тексту»  – повна маячня. З практикою, друкування буде швидшим, ніж перетягування блоків, але концептуально різниці немає. І більшість дітей не можуть набирати текст так швидко як перетягувати блоки. (Так, звісно, вони мають навчитися друкувати швидко, але це вже інша дискусія!)

Якщо 6-тирічна дитина може писати у Scratch – це не може бути реальним програмування

Це правда, багато 6-ти річних, і навіть молодших дітей, можуть створювати класні проекти у Scratch.  Втім існує припущеня, що якщо маленькі діти можуть робити щось у Scratch, то старші будуть дуже швидко досягати меж можливостей роботи у Scratch.

Але це все одно що сказати, що якщо 6-ти  річні діти можуть писати простенькі історії, то вони скоро «переростуть» свою мову.

Scratch не має обмежень, але у ньому можна створювати достатньо складні проекти, які кидають виклик найбільш вмілим діткам і молодшим підліткам (а також багатьом дорослим  !

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

І з тим як діти будуть прогресувати, вони освоюватимуть і будуть використовувати Scratch усе більш глибоко. Як то кажуть, у  Scratch «низька підлога, але висока стеля».

Але ж Scratch навчає лише простому програмуванню, правда?

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

Пройде багато часу до того як більшість дітей опиняться перед обмеженнями у Scratch.

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

Але ж Scratch не має функції Х

Часто ІТ-шники скаржаться, що Scratch не має якоїсь особливої функції, яку вони вважають дуже важливою. Звісно, є якісь прогалини, але я не думаю, що це дуже негативно впливатиме у довгостроковій перспективі.

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

Може б краще їм не витрачати час на ці іграшки і навчитися справжній мові програмування?

Деякі батьки бачать як багато їхні діти витрачають часу, програмуючи проекти у Scratch і задуміються, чи не краще б їм вчити якусь мову програмування, якою користуються в ІТ.

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

Не поспішайте занадто швидко тікати від Scratch

Моя 8-річна дитина почала програмувати на текстових мовах програмування і він не має жодних перепон у цьому, окрім його повільного набирання тексту. Він готовий розуміти концептуальні речі через те, що має досвід у Scratch!

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

Думаю, що наступні кілька років, він все ще пробуватиме інші мови програмування і буде повертатися до Scratch, тому що тут він може креативити і бути продуктивним.

І  – найважливіше – те, що він навчається не просто конкретній мові програмування чи навіть системному мисленню, а те, що може використовувати технології, комп’ютери для того, щоб виражати свої ідеї та вирішувати практичні проблеми.  Це саме те, чим Scratch особливий. Якщо Scratch зможе надихнути дітей бути творцями, а не споживачами технологій (а він може!), то немає різниці, чи справжня це мова програмування чи ні.

Переклад статті від  авторки Tracy Gardner

Оригінал статті тут.

Іра Шостак

Автор в KidIT,
ex-Ninja & ex- SMM Ninja

X