Методичний коментар до теми Алгоритми та програми. Анімації та узори
Тема Алгоритми та програми охоплює не менше 40% навчального часу, відповідно за цією модельною навчальною програмою. Це підкреслює ключову роль навичок, які здобуваються у цьому розділі. В 5 класі пропонуємо працювати із блоковим середовищем програмування, наприклад Scratch https://scratch.mit.edu/projects/editor/ , mBlock https://ide.mblock.cc/ чи інші. Можна скористатись навчальними траєкторіями бібліотеки Code.Org https://code.org/, як цілісно, так і для виконання окремих розділів чи рівнів.
Розпочинається тема з актуалізації попередніх знань та вмінь учнів, адже у початковій школі вже відбувалось ознайомлення з поняттям алгоритму, базовими алгоритмічними конструкціями, а також робота в блоковому середовищі програмування.
Пропонуємо на одному з перших занять роботу з так званими "паперовими схемами" (paper circuits), які передбачають використання LED-лампочок, мідної стрічки (можна замінити фольгою, або навіть лініями, що намальовані олівцем - але тоді лампочка горітиме значно тьмяніше), і батарейки для створення простої схеми. Опис алгоритму роботи є у презентації. Оскільки схема передбачає двосторонній друк - гарна нагода попрактикувати знання про налаштування друку. Проте, звичайно, можна виконувати будь-який інший доступний алгоритм.
Далі говоримо про різних виконавців алгоритмів, та різні системи команд, які вони здатні виконувати. Практична частина - укладання алгоритму приготування, наприклад, піци. Крім роботи в онлайновому ігровому середовищі варто обговорити можливості сучасних роботів у контексті приготування їжі, переглянути запропоновані відео, поміркувати про особливості подання рецептів для них. Можна спробувати укласти алгоритм приготування нескладної страви (класика - бутерброд). Приклад проведення діяльності - на останньому слайді презентації (відео з легендарного курсу CS50, який щиро раджу переглянути повністю на платформі Prometheus https://courses.prometheus.org.ua/courses/course-v1:Prometheus+CS50+2019_T1/about).
Серед запропонованих вправ - порівняння різних способів подання алгоритмів, приклади алгоритмів у різних сферах життя, інтуїтивно вводяться елементи блок-схем та інших форматів подання алгоритмів.
Надалі переходимо до роботи в середовищі Scratch (або іншому аналогічному). Варто запитати учнів про те, які проекти їм було б цікаво реалізувати і спробувати їх включити в наступні заняття. Важливо демонструвати практичне застосування програмн у різних сферах життя: наприклад, використання аграрних роботів чи роботів-кухарів, відповідно до тематики проєктів, які запропоновано у презентаціях.
Дуже важливо не зводити роботу в середовищі Scratch до відтворення наданих фрагментів коду. Учні повинні мати можливість експериментувати, досліджувати можливості блоків, пробувати реалізовувати власні задуми та ідеї. Наведені блоки коду є лише підказками, до яких можна звернутись в разі потреби.
Доцільно, щоб учні зберігали свої роботи в облікових записах сайту Scratch, зокрема для того, щоб мати можливість доопрацювати проєкти вдома, чи просто пізніше, а також - поділитись своїми роботами з іншими. Для реєстрації облікового запису потрібна електронна скринька (шкільна або батьківська).
Одним із способів обліку та збору учнівських робіт є сервіс https://www.itchcode.com/wizard/create - тут можна створити заготовку, додати покрокові інструкції і поділитись лінком зі своїми учнями. Кожен учень, вказавши своє ім'я та прізвище, отримує унікальний код, за яким може продовжити роботу над проєктом пізніше. Вчитель отримує доступ до всіх виконаних проєктів, бачить статистику, проте тут немає механізму зворотного зв'язку та оцінювання.
Надзвичайно важливим етапом роботи над програмним проєктом є його відлагодження , пошук та виправлення помилок. Потрібно орієнтувати учнів на конструктивне ставлення до помилок. Можна розпочати "змагання" з найцікавішої помилки - впродовж вивчення теми колекціонувати їх, а в кінці - поділитись і проаналізувати на майбутнє.
Оскільки на етапі роботи в середовищі Scratch учні вже володіють поняттям кута - то при використанні його у проєктах (поворот на х градусів, поворот в напрямку х тощо), важливо звертати увагу на практичну застосовність цієї математичної концепції. Складним питанням узгодження програм з математики та інформатики залишається координатна площина. Пропонуємо почати звертати увагу учнів на координати об'єктів (в області властивостей спрайтів). Для практичної реалізації запропонованих проєктів можна не вводити цього поняття безпосередньо, і натомість користуватись блоками датчиків. Так, замість перевірки розташування у певних координатах, можна розмістити додатковий спрайт і перевіряти торкання до нього. Так само й переміщення до певних координат можна замінити переміщенням до певного спрайту.
Розширюємо знайомство з графічним редактором Scratch, зокрема інструментами відображення та повороту (вони згодом будуть практикуватись в останній темі - комп'ютерної графіки.
Частина 2
Друга частина теми присвячена опануванню руху за алгоритмами, зокрема на основі блоків малювання. Цей підхід дозволяє набути додаткових практичних навичок створення програмних проєктів, які матимуть візуальний результат, а також можуть трансформуватись далі для робототехнічних пристроїв (до яких прикріплюється олівець чи ручка і залишає по собі слід).
Так, спочатку відбувається знайомство з основними командами побудов (для середовища Scratch 3 їх треба додатково підключити з розширень) і експерименти з написання простих літер чи цифр.
Далі вводяться команди ковзання до координат - тут доцільно провести змістові зв'язки з математикою, а також попереднім досвідом учнів. Зручно, що у середовищі Scratch координати розташування кожного спрайту можна переглядати у режимі реального часу, тобто можна ознайомитись з поняттям координатної площини через експерименти та спостереження.
Далі закріплюємо поняття циклу, створюючи фігури квадрата, трикутника чи іншого правильного опуклого багатокутника. Можна познайомитись з поняттям вкладеного циклу, хоча на цьому етапі він не є основним фокусом вивчення. Це ж стосується поняття змінної, з яким можна почати знайомство, але докладніша робота зі змінними відбуватиметься вже наступного року.
Натомість, за можливості, варто повторити побудови за допомогою 3D-ручки чи принтера, а також - за допомогою робототехнічного пристрою, якому задати той же алгоритм руху, що й для спрайтів у Scratch. Варто звернути увагу, що побудови на папері будуть менш точні, ніж результати на екрані. Можливо навіть доведеться вносити зміни в проєкт для точніших результатів малювання, тобто врахувати реальні умови виконання проєкту.
Говорячи про моделювання, можна розглянути проєкт з моделювання руху на перехресті. Реалізація може відрізнятись за рівнем складності, але важливо наголосити на самому понятті моделювання у цьому процесі.
За наявності відповідних пристроїв, можна реалізувати проєкт з платою MakeyMakey (наприклад, керування автомобілем на тому ж перехресті), або інтегрувати веб-камеру (ще одне розширення Scratch), яка може фіксувати колір з навколишнього середовища (як датчик) чи рух, який відбувається загалом чи безпосередньо на спрайті. Якщо ж пристроїв з цими можливостями немає, можна створити модель перехрестя на підлозі/дошці і створити алгоритм проїзду до певного об'єкта (виконати цей алгоритм може інший учень чи група учнів).
Впродовж роботи з темою Алгоритми та програми учні, зазвичай, стикаються з великою кількістю помилок. Ц ене повинно стати тягарем, який знижує мотивацію до подальшого навчання. Навпаки, помилка - це можливість покращити роботу проєкту. Тому дуже корисно "святкувати" помилки, збирати їх скарбничку, ділитись "глюками" і "багами", а також, звичайно, способами їх виправлення. Корисною може бути збірка порад про стратегії долання труднощів.
Можна поговорити про винаходи, які трапились внаслідок помилок, а також про корисні звички, які допоможуть долати навчальні ями (неминучі в будь-якому навчанні). За прикладом наведених на слайдах плакатів можна підготувати власні поради щодо мотивації мислення зростання. А також - спробувати створити проєкт у Scratch, який відображатиме тематику, цікаву для конкретного учня чи учениці (хобі, улюблені страви, музика тощо).