Я не одноразово чув від студентів ВУЗів на ІТ спеціальностях, що вони обрали цей напрямок, бо їм подобається працювати з комп’ютером. Та одної лише цікавості до обчислювальної техніки не достатньо, щоб бути програмістом. Як мінімум, необхідно мати хист та вміти писати код. А ще краще – отримувати від цього задоволення. Я ще з дитинства знав, що хочу бути програмістом. І мав можливість переконатись в цьому в школі на заняттях інформатики, коли писав свої перші програми на BASIC. Та далеко не всім так щастить, як мені. В деяких школах інформатика і досі проходить на рівні “сідайте та грайте в ігри” або “що таке електронна пошта та Word”.
Я глибоко переконаний, що первинні уявлення про програмування майбутні ІТ спеціалісти мають отримувати ще в школі. Як інакше можна зробити свідомий вибір професії та працювати за спеціальністю після завершення навчання.
Дізнавшись про заняття з програмування для дітей, я вирішив спробувати себе в ролі наставника. Раніше я не працював з дітьми, і допомагав студентам, що вже мають базові уявлення про програмування. То ж для мене це був подвійний виклик.
Ми з Ксюшею допомагали дітям 3-х, 4-х та 5-х класів познайомитись з захопливим світом програмування. Кожну суботу ми зустрічались у класі інформатики в ФІМЛІ та виконували одне завдання з програми Code Club UA. Code Club UA – це адаптація всесвітньо відомої британської програми Code Club з веселого та інтерактивного практичного знайомства дітей з програмуванням. А що може бути цікавішим, за створення власних ігор? “Ви що, звірі!?” – подумаєте ви, “Створювати ігри це дуже складно! Як ви могли до цього змусити дітей!?”. Так, створювати ірги не проста задача. Та все залежить від складності гри та інструменту, який для цього використати. Дітки створювали простенькі 2D ігри в Scratch – інструменті візуального програмування. І їм це вдавалося!
Чому ви можете навчитись разом зі Scratch
За час занять ми познайомились з більшістю структурних блоків необхідних для створення простих ігор.
Безкінечні цикли
Ми почали з використання безкінечних циклів, щоб навчити кота Фелікса рухатись за вказівником миші. В Scratch дуже просто зробити елементарну анімацію. В кожного спрайта (як от у Фелікса) може буди декілька образів. І тоді анімація – це просто послідовне перемикання образів.
Кіт Фелікс не дурний, щоб бігати за нудним вказівником. Тож ми дали йому мишу Гербера, щоб його існування набуло трохи більше сенсу. До речі, дітям дуже подобалось переробити гру, що б миша бігала за котом 😀

Команди спрайтів виконуються паралельно, кожен спрайт живе своїм власним життям;
Спрайти знають де знаходяться інші спрайти та можуть бути скеровані в їх напрямку;
Scratch надає простий механізм перевірки доторкання двох спрайтів.
Глобальні змінні, умовні оператори та події

Коли таймер добігає до нуля, гра має зупинитись. Для цього ми вперше використали цикл з умовою.

Локальні змінні
Кожний спрайт можна розглядати як об’єкт з ООП. В нього є поведінка і стан, в якому він перебуває. До вже визначених властивостей кожного спрайту відносяться його положення на екрані, розмір та напрям руху. Та інколи нам необхідно додати власні властивості так, щоб у кожного спрайту було своє власне значення. Для цього при створенні змінної можна вказати, що вона буде локальною для цього спрайту. Таку змінну можна порівняти з приватним полем об’єкту з публічним get методом в ООП.

Відправлення повідомлень

Тобто в нас на конкретні умови мають відреагувати одразу два спрайти. Для того, щоб цей процес був узгоджений, використовуються повідомлення. В Scratch повідомлення не має конкретного адресата. Будь-який спрайт може слухати та реагувати на всі зареєстровані в грі повідомлення. Здобич перевіряє, чи потрапила вона на зуби рибині. Якщо так – зникає та відправляє повідомлення про те, що її впіймали (got me). Детальніше на наступному скіншоті інсрукцій.
Спрайт-риба очікує на повідомлення got me. Кожен раз, коли виникає ця подія, нараховується один бал за впійману жертву та запускається анімація клацання зубами.
Враження про перший етап занять
На жаль, не всі мали однаковий інтерес та наполегливість до створення власних ігор. Дівчата сумлінно розбирались з завданнями та старалися виконати їх в повній мірі. А от більшість хлопців після першої ж невдачі втрачали інтерес та перемикались на онлайн ігри в браузері чи на телефоні. Так, в такому віці у всіх вже є телефони з touch screen, та не всім вистачає культури їх використання.
Якщо Ксюша раніше вже працювала з дітьми, до для мене це було вперше. На 15 дітей нас двох ледь-ледь вистачало. Було досить важко встигнути всім приділити достатньо уваги. Проте, мені дуже подобалось допомагати дітям, які хотіли розібратися як виконати складну для них частину завдання.
А на останньому зайнятті нам навіть довелось зустрітись з тонкощами паралельного виконання блоків інструкцій всередині спрайтів. Ми робили гру, в якій гравець керує оленем Рудольфом, що літає по екрану та ловить подарунку, які падають з неба. Чомусь гра не завжди нараховувала бали, коли олень ловив подарунок. Причина була в тому, що блок інструкцій, який перевіряє чи олень піймав подарунок, щоб потім його прибрати з екрану, інколи спрацьовував раніше ніж той, що за тих самих умов нараховує бали. Тож коли діло доходило до нарахування балів, умова перетину спрайтів вже не виконувалась. Виправили це залишивши перевірку лише в одному місці. Тож і у Scratch є свої best practices :).
Загалом, знайомство з Scratch та робота з дітьми принесла багато позитивних емоцій та вражень. Після нового року ми плануємо продовжимо зайняття, на яких вони створюватимуть власних монстрів та складніші ігри з декількома рівнями. Веселощі тільки починаються! Долучайтеся і ви! – дітки будуть раді новим помічникам.
P.S.: Ви зацікавились, але вагаєтесь, бо раніше не мали справу зі Scratch? Нічого страшного! Я теж вперше його побачив перед заняттями – нічого складного, достатньо основ програмування та трохи часу на вивчення його можливостей.






You are not signed in. Sign in to post comments.