В останньому майстер-класі з серії "Інформатика в дії" ми працювали з функціями. З точки зору логіки, це така річ, яка вміє щось робити. Інколи, вона все робить самостійно, і нам потрібно її лише задіяти. Інколи, є можливість за допомогою введення в неї деяких параметрів, (чисел, слів, положень перимикачів тощо) керувати самим процесом роботи та отримувати бажаний результат. Наприклад, порівняйте роботу колодязьного насоса (вміє тільки качувати воду з глибини на поверхню, коли його задіють), та пральної машини (має кілька різних режимів роботи, які можна змінювати простим поворотом ручки, або натиском на кілька кнопок).
Як не дивно людина також нагадує автомат в якого багато різних функцій. Одні з них нам надаються від народження, це, наприклад, базові біологічні процеси (дихання, травлення, прямостояння, ходіння, акомодація зору тощо) назвемо їх умовно hard skill, та набуті навички, як то: говоріння, танці, читання, розвязування задач з фізики, водіння авто тощо, назвемо їх умовно soft skill. Кожна людина може стати будь-ким, її треба лише навчити. З віком це зробити стає все важче і важче. Тому на сучасному етапі розвитку цивілізації, цінним стає вміння змінювати свої вміння (так звана, здатність до перенавчання, гнучкість, адаптивність). Це, насправді, і є одним із основних завдань сучасної освіти.
А ось тварини, наприклад, ще гірші у soft skill, хоча мають потужні hard skill. Спробуйте хоч трішки надресирувати кота і все зразу зрозумієте.
І ось на арену виходять комп'ютери. Тут рівних їм немає. В залежності від завантаженого в їх оперативну память програмного забезпечення (яке, в основному, і складається з бібліотек - наборів різноманітних функцій) вони легко перетворюється або в пілота дрона-камікадзе, або в інтелектуальну видавничу систему, або в переглядач веба, або в шахматиста - експерта або... в усе що потрібно нам людям, які більш за все хочуть подрімати, коли хтось працює ;)
Тому функція як поняття та метод повинна займати чільне місце в курсі інформатики. SCRETCH також має інструмент створення користувацьких функцій, тільки він чомусь називається "Ваші блоки".
На п'ятому майстер-класі серії «Інформатика в дії» з темою «А ви так вмієте?», ми розібрали три вправи, що демонструють можливості створення функцій та їх використання.
Перша вправа «Многокутники» є реплікою багатьох дидактичних знахідок з курсу інформатики 5 класу, запропонованого вчителем-методистом Вінницького фізико-математичного ліцею №17, Аллою Порхун. Вона вміло використала цей прийом для навчання функціонального методу та використала для цього графічний модуль мови PYTHON.
Перед слухачами була покроково написана потужна функція, завдяки параметрам якої можна малювати довільні n - кутники заданого радіуса, локалізації та кольору. Як творче завдання, булв продемонстрований варіант програми, що має можливість заповнити отриману фігуру градієнтними заливками. Особливо вражає використання турбо-режиму середовища SCRETCH.
Наступна вправа «Дерево». Вона якнайкраще підходить для формування поняття рекурсії. Саме це поняття близьке до розуміння життєвих циклів мікроорганізмів, тварин, людей і особливо рослин. Наприклад, основним структурним елементом дерева є гілка. Її завдання вирости до певної довжини та розгалужитись. Нова гілка - пагін зробить абсолютно те ж саме. Так будується крона більшості видів деревоподібних рослин.
Написна функція вміє за допомогою руху об'єкта та динамічного використання інструмента «олівець» малювати тіло гілки злегка її загинаючи по спіралі. Після деякого сталого періоду часу в кінцевій позиції об'єкта створюються кілька його клонів, які, далі рухаючись, мають незначні відхилення від напрямку прототипа. Також, всі клони мають деякі «мутаційні» відхилення в інтенсивностях градієнтів витончення та викривлення спіралі. «Мутаційність» забезпечується простими генераторами випадкових чисел. Описана вище «програма життя гілки» знову повторюється кожним із клонів. Ось вам і модель реального дерева.
Як всяка рекурсія, ця також може викликати зациклення і зависання машини. Тому маркером завершення було обрано товщину гілки. Якщо вона доходить до 0, хід виконання копії функції для даного клона припиняється - гілка остаточно «виросла». Також, в даній вправі було наголошено на важливість застосування у рекурсивній функції локальних змінних, бо кожна гілка має свій набір параметрів, що змінюються незалежно.
Третя вправа моделює локально-експансивний метод розмноження фіто-мікроорганізмів. Відомо, що рослини завойовують простір завдяки не безпосередньому руху, а росту на тому місці де було занесене сім'я посередниками (вітром, тваринами, течією річок тощо). В пошуку таких посередників рослини великі винахідники :)
Вправа «Життя» моделює один із таких методів. Об'єкт зі свого місця закидає чотири клони в чотирьох напрямках вверх, вниз, ліворуч та праворуч. Завдання кожного клону-предка таке ж. Що може бути простіше. Але так насправді не буває. Прототип виконавши свою «місію» повинен зникнути, таким чином звільняючи територію для своїх дітей. Також, два клони не можуть ужитися в одному місці, тому один з них, відчувши під собою «родича» повинен зникнути. Така гірка правда SCRETCHа :(
Була продемонстрована коротенька програмка-рекурсія. Колонія плямок жила недовго, десь приблизно 600-800 актів народження було зафіксовано за час її життя. Погана новина для такої колонії полягала ще в тому, що в SCRETCH можливе створення лише 300 клонів.
Але є і гарні новини. Трохи загальмовуючи процес народження випадковою «контрацепцією», вдалось покращити життєву стійкість колонії. Також допомогло збільшення паузи між актами народження. Рекорд - до 20 000 актів народження за час життя. Можливо слухачам, або будь кому, хто візьметься за цю благородну справу, поталанить більше?
Що цікаво, масовий ефект зміни вигляду плямок повторював всі характерні особливості реальних колоній, а саме: мінливість контурів групи, наявність скупчень, що відриваються від основної маси, популяційні хвилі, що рухаються фронтами і т. п. Дуже цікаві спостереження.
Нижче зображено щось подібне. Ці моделі «Життя» були створена на мовах більш низького рівня. Поведінка об'єктів настільки складна, що можна говорити про генетичні закономірності. Навіть існує ціла галузь інформатики кібер-генетика. Відео цих симуляцій заворожує.
В останньому, п'ятому майстер-класі з серії «Інформатика в дії» ми продемонструємо можливості SCRETCH в роботі з функціями. Це значно розширить можливості наших скриптів. Ви побачите, що вміє наш кіт і справді здивуєтесь!.
Приєднуйтесь, буде цікаво!
Покликання на Meet-конференцію. https://meet.google.com/eax-sgdw-kiz
__________________________________________________________________________________
P.S. Дякуємо за Вашу активність. За результатами попередніх занять, всі хто були присутні на он-лайн майстер-класах та/або виконували домашні творчі завдання, отримають сертифікати про підвищення кваліфікації. З питаннями звертатись до консультанта КУ "ЦПРПП ВМР" Мельника Тараса.
Також, для всіх учасників, по завершенню курсу буде проведено останнє бонусне заняття де я продемонструю самі ефектні вправи зі свого авторського доробку. Про час зустрічі буде повідомлено пізніше.
Створено на AVE.cms v3.28. Хостинг LIKT. Дизайн: хххххххххххх. Верстка: Мельник Тарас. Фото: Василь Медяний
ЦП КУ "ЦПРПП ВМР" - Вінниця - 2021
Створено на AVE.cms v3.28
Хостинг LIKT
Дизайн: хххххххххххх
Верстка: Мельник Тарас
Фото: Василь Медяний
ЦП КУ "ЦПРПП ВМР"
Вінниця - 2021