Година коду та обчислювальне мислення

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

Проте саме через те, що світ стає все більш технологічно насиченим, виникає необхідність глибокого розуміння принципів роботи комп’ютерних систем та вміння обирати відповідні засоби для полегшення розв’язування задач та пошуку рішень. Часто відбувається корекція назви предмету: якщо ІКТ зосереджується на тому, як використовувати програмні засоби, то інформатика вивчає побудову цих засобів та принципи їх роботи. Останнім часом все гучніше лунає думка про необхідність повернення вивчення основ алгоритмізації та програмування з метою розвитку так званого обчислювального мислення (computational thinking) — підходу до розв’язання задач, що використовує інформатичні методи. В основі навчання лежить не вивчення комп’ютера, а вивчення того, яким чином використати його можливості для розв’язання тих задач, які постають – це розуміння, як потреб людини, так і перспектив та обмежень обчислювальної техніки. У результаті набуваються не рутинні навички, а фундаментальні уявлення, створюються математичні моделі, які взаємодіють з реальним світом. Дуже важливо, що набуті знання та навички мають практичну застосовність у повсякденному житті, і можуть бути пов’язані з різноманітними сферами: від медицини до мистецтва, від історичних досліджень до космічних польотів.

 

Неурядова організація Code.Org створена у США у 2013 році з метою залучення учнів середніх шкіл до вивчення програмування. Розроблені відео-ролики, інтерактивні уроки та інші матеріали дозволили провести достатньо успішну кампанію, в рамках якої майже 40 мільйонів учасників з усього світу взяли участь у проекті «Година коду». До промоції заходу долучились велика кількість комп’ютерних фірм та відомих людей, котрі своїми зверненнями заохочують учнів до вивчення програмування: про свій досвід написання програм розповіли Біл Гейтс, Марк Цукенберг, Стів Джобс, Ештон Катчер, Шакіра та інші. Фахівці з компаній Google, Microsoft, Facebook, Twitter створили інтерактивні завдання на основі відомих ігор AngryBirds та Plants vs. Zombies. Використання героїв знайомих комп’ютерних ігор в якості виконавців проклало своєрідний місточок між тим, щоб грати в гру та створювати її. 
До ініціативи долучився навіть Президент США Барак Обама, звернення якого розпочало «Годину коду» в грудні 2013 року: «Цього тижня я пишаюся приєднанням до учнів, викладачів, бізнесу та громадських організацій у здійсненні нових кроків з підтримки інформатики у школах Америки та всього світу. Навчання цим навичкам не просто важливе для вашого майбутнього, це важливо для майбутнього вашої країни. Ось чому я прошу вас взяти участь. Не просто купити нову відео-гру, а створити її. Не просто завантажити останній додаток, а допомогти розробити його. Не просто бавитись на телефоні, а запрограмувати його». 

У 2014 році про Годину коду говорить мер Лондона, а глава Ірландії навіть бере участь в акції, створюючи проект з малювання узорів. Цього року поставлено амбіційну мету залучити до акції 100 мільйонів учнів по всьому світу, провівши найбільший освітній захід в історії.

Матеріали проекту «Година коду» та використані прийоми значно відрізняються від тих, що звикло використовуються на уроках інформатики. Вправи спроектовані таким чином, що ознайомлення з основними алгоритмічними конструкціями відбувається у близькому до ігрового режимі протягом 1 години з використанням візуального середовища Blockly. На екрані бачимо сформульоване ігрове завдання, лабіринт із персонажами гри та команди, які вони вміють виконувати. Потрібно правильно зібрати блоки у робочій області та запустити програму. Якщо відповідь неправильна або неефективна, з’явиться відповідна підказка. Всі блоки візуального середовища можна переглянути в режимі коду, який нагадує команди мови Java Script, наприклад:
for (var count = 0; count < 5; count++) {

  moveForward();

}

Кожен учень опрацьовує матеріал та виконує вправи в автономному режимі, роль вчителя зводиться лише до вирішення технічних проблем та супроводу в особливо складних завданнях. Із кожним кроком завдання ускладнюються, і приблизно за першу годину роботи учень знайомиться з такими конструкціями: цикли з параметром, цикли з умовою (передумовою та післяумовою), повне та неповне розгалуження, які складаються у прості програми, метою котрих є проходження лабіринтів різної складності. Розв’язавши останнє завдання, учні формують код, за яким робот (зомбі, птах, марсохід, автомобіль на автоматичному керуванні без водія) зможе знайти дорогу через лінійний лабіринт чи тунель будь-якого розміру.
У подальших завданнях поєднуються вправи з іншими виконавцями (Художник, Фермерка, Пурх, Бджола та інші) та безмашинні вправи, спрямовані на розвиток обчислювального мислення. Ці вправи демонструють зв’язок алгоритмічних понять та конструкцій з повсякденним життям: ідея повторення у контексті приспіву пісні, поняття функцій з параметром в інструкції складання браслету з намистинок, пересилання повідомлень різними способами тощо. У процесі виконання вправ учні заповнюють власні електронні картки досягнень, заробляючи своєрідні трофеї.

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

Розробники наводять кілька рекомендацій з проведення занять на базі їхнього ресурсу. Оскільки при вивченні програмування метою не є набуття практичних навичок роботи з комп’ютером, доцільною є парна та групова форми роботи. Так, учні разом можуть швидше знайти розв’язок задачі, обговорити варіанти рішень, навести аргументи на підтримку або заперечення тої чи іншої ідеї. Важливо, щоб вчитель не пропонував готових відповідей на питання, що виникають, а скеровував учнів до самостійного пошуку. Для цього можна запровадити правило «Спитай сусідів, а тоді вчителя». Це значною мірою суперечить традиційним уявленням про дисципліну в класі, але є надзвичайно корисним прийомом, який заохочує до спільної роботи та взаємодії. Відомо, що найбільшу ефективність має навчання інших, зокрема при вирішенні практичних задач, тож учні, котрі знають відповідь на питання і допомагають однокласникам, ефективно закріплюють свої знання. Коли ж учні самостійно не можуть знайти рішення, бажано, щоб вчитель також не давав прямої відповіді на питання, а скоріш скеровував до її пошуку, пропонував разом дослідити різні варіанти та шляхи розв’язання. Таким чином в учнів формуються навички самостійної роботи та критичного мислення, впевненість у власних знаннях та вміння їх застосовувати.
Успішне проведення заходів «Години коду» дозволило продовжити роботу із розробки нових навчальних матеріалів і влітку 2014 року випущено нові набори інтерактивних вправ, котрі допомагають ознайомитись із основними поняттями програмування. Окрім згаданої програми, на сторінці проекту можна знайти інші ресурси для вивчення програмування у середніх школах, поділені на категорії: уроки для початківців, безмашинні вправи, вивчення мов програмування, програмування для мобільних пристроїв, робототехніка, онлайнові курси університетів тощо. Наведений перелік різноманітних середовищ програмування, придатних для використання з наймолодшими учнями: Scratch, Tynker, Світлячок LightBot, Сімейка Фо тощо.

Низка онлайнових п&#11