Свої знають, що інформатика — то не про комп’ютери. Певною мірою можна розвиватися в предметі за допомогою дуже різних інструментів.
З високою вірогідністю нас чекає непроста зима. Військові кажуть про накопичення противником ракет. Повітряні тривоги стають довшими. Що робити в укриттях вчителям з дітьми? Як можна продовжити розвиватися і в таких умовах?
Один із простих інструментів в таких умовах — паперова інформатика. І не лише тому, що комп’ютера в укритті немає. Паперова інформатика — самодостатній освітній інструмент.
І традиційно на «Плетиві» — практичний досвід
В кабінеті інформатики, де я працюю, є окремий стіл для «Паперової інформатики». Звичайно, там бувають чудові гості у вигляді книжки проєкту «Ukraїner», як на світлині. Але головними на столі «Паперової інформатики» є папірці, які можна після уроку або на перерві взяти собі назавжди. На папірцях — цікаві задачі різного типу.
Принцип підбору матеріалів: знайшлося мимоволі щось цікаве, або цілеспрямовано знайдене — друкую на невеликих листочках — і на стіл паперової інформатики. Певну кількість копій. Потім, коли трохи буде розтягнуто зацікавленими учнями — все що залишиться — в папку. А на стіл щось нове.
Таким чином на столі нові завдання, учні їх бачать і забирають з собою. Для самих допитливих — велика папка. Набирають собі завдань з неї. Приємно, коли діти набирають багато завдань і тягнуть додому: собі, батькам, друзям.
Які типи завдань гарно «забираються» учнями? Звичайно, це залежить від багатьох факторів, але можна спробувати схематично окреслити групи завдань та їх цільову аудиторію.
Знайти відмінності
Класичні завдання, коли на двох картинках поряд два схожих зображення і треба знайти відмінності. В інтернеті такого море. Раджу не обирати примітивні, пошукайте завдання, де чимало відмінностей. Такий тип завданя підходить і для молодшої школи.
Переваги: дуже гарно сприймається учнями всіх класів. Мінус: дуже багато доводиться друкувати, діти відмічають відмінності безпосередньо на папірцях.
Веселі задачки
Прості і безпосередні. Які не вимагають занадто багато думати і веселі. Молодші школярі можуть зробити краще за дорослих. Приклад:
Розумні задачі
Прості, але треба подумати. Приклад (зображення тут не просто так, це підказка):
Ще один приклад:
Складні
Як задача про лабіринт. Задача, що потребує терпіння. Кажуть, що таким чином в канадському барі було запропоновано диференціювати тверезих і усяких. Я трохи переробив цей лабіринт, зробив його чорно-білим для всіх принтерів і замінив половину кіл на трикутники. Ось що вийшло:
Ще одна цікава, як на мене, задача. Кажуть, з китайського підручника. Я розумію, що дорослі в більшості своїй не дотиснуть. Але я особисто бачив дітей, що розв’язували цю задачу за півгодини.
Поясню умову. В першому рядку — прибульці. Їх всіх щось об’єднує.
В другому рядку — неприбульці. Тобто, ні у кого з них немає того, що є у прибульців. Якщо ви зрозумієте, що відрізняє прибульців з першого рядка і неприбульців з другого рядка, то в третьому рядку точно зрозумієте, хто прибулець, а хто ні.
Сірникові задачки
Окрема група — сірникові задачі. В інтернеті їх багато, кілька коробок сірників вистачить отримати море задоволення.
Приклад:
Пам’ятаю, як я був вражений експериментом з шістьма сірниками.
Орігамі
Орігамі — ще один цікавий напрям. Можна складати квіти, іграшки. На жабках, складених в техніці орігамі, можна влаштовувати чудові «заскоки» — чия жабка до фінішу доскаче першою.
Ще чудова забава — Flextangles. Разом з шаблонами – кольоровим і творчим. Робиться з одного листа паперу:
Можна ще подивитися цікавого у нас на сайті в розділі «Handmade» і в тематичних пабліках.
Задачі на обговорення
Якось в спільноті вчителів інформатики показав свою задачу:
І отримав дуже цікавий коментар про підтекст. А дійсно, ця задача тягне за собою низку запитань для обговорення з учнями, наприклад:
— Дітей поставили в шеренгу ні їх, ні їх батьків не питаючи. З якого дива? Так можна? В яких випадках?
— Хто буде відповідати, якщо Марія Іванівна помилиться? І що з нею потім робити? Яка у неї відповідальність?
— Чому вирішення проблеми залежить від батьків Хуліганова, які не чують звичайних аргументів? Чому інші батьки не беруться до уваги, а цих слухають? А можна інакше?
— Де верифікація науковим апаратом такого способу пошуку істини?
— Хто ким і як маніпулює в даній історії?
— Чи допустимі такі методи пошуку істини?
— Чи не принижує Марія Іванівна дітей таким алгоритмом пошуку винуватих?
А хто запропонує інший алгоритм пошуку істини? А в межах законодавства?
Таке спілкування принесе користь. Це те саме критичне мислення, про яке пушать в івентних кейсах і розмовляють с дітьми на уроках.
Просте запитання в фіналі
При наявності інтернета, принтера і нелінивого вчителя зібрати свою папку паперової інформатики, погодьтесь, не так і складно.
Ви теж вважаєте, що воно того варто?
Анатолій Анатолійович,
листопад 2023 року
У 1970 році перестали існувати «The Beatles». Через 53 роки, 2 листопада 2023 року «The Beatles» випустив ще одну пісню — «Now And Then».
Джон Леннон, один з чотирьох музикантів гурту був застрелений в 1980 році, але його аудіозапис став основою «Now And Then». Для вирішення проблеми низької якості аудіо було використано штучний інтелект.
Джордж Гаррісон помер в 2001, але у фінальну версію останньої пісні увійшли партії ритм-гітари, що Джордж встиг записати у 1990-х.
Свої партії 83-річний Рінго Старр та 81-річний Пол Маккартні записали заново.
За перші п’ять годин після публікації на YouTube — більше як півтора мільйона прослуховувань.
The Beatles. Now And Then.
ps. На наступний день, 3 листопада вийшов кліп на цю пісню. Неймовірний кліп з 21 мільоном переглядів за перші три дні:
Мрія тих, хто не вміє малювати: я кажу що мені треба людською мовою і мені малювальник все це малює. Було б дуже добре, щоб ми з малювальником хоч якось розуміли один одного. З часом, мабуть, захочеться щоб ще і гарно. Складна задача. Багато хто пробує, небагато хто може похвалитися результатами.
Розглянемо ще одну спробу: сервіс «Творець зображень». Дякую Максиму, що звернув мою увагу на даний сервіс. Ну, подумав я, ще один сервіс. І малює це чудо, мабуть, різноманітні абстракції, в кращому випадку — котиків, схожих на котиків. Але у сервісу «Творець зображень» виявилися дуже амбіційні батьки: компанія OpenAI, що створила платформу для генерації зображень DALL·E 3 та компанія Microsoft, що виклала цей сервіс на свій сайт bing.com Поважна спільнота.
І тоді шо ж воно вміє? Давайте спробуємо. Не знаю, яким художником захоплюєтесь Ви, а я задав сервісу наступний текстовий запит: «Українське сонце в стилі Леоніда Афремова». Пробував питати англійською, а потім з’ясував що сервіс розуміє і українську.
І мені показали такі чудеса:
Вау, сказав я, так це ж неймовірно схоже по стилю на Афремова! І я ніколи не бачив таких картин у Леоніда Аркадійовича, а нових він не напише. То, виходить, що це — генеративне мистецтво платформи DALL·E 3? А чому воно так гарно?!
А якби попросити Ван Гога намалювати українське сонце? Як би воно виглядало, яким би було?
Шановний DALL·E, я не знаю, як ти це зробиш (іноді краще не уявляти), але як би це показав Вінсент?
DALL·E відповідає, що так:
Як до цього відноситись, як це оцінювати? Не знаю, не цікаво. А от чим я хочу наразі зайнятися — знаю…
Чудовий сайт replit.com ми з учнями активно використовуємо як середовище програмування. Можливість збереження власних проєктів, можливість поділитися своїм розв’язком, чудова робота з бібліотеками, інструмент форматування коду — все це відомо і дуже зручно.
Наразі replit.com має в своєму арсеналі безкоштовний штучний інтелект (AI). Можна запостити умову задачі отримати код. AI вже розуміє умови і українською мовою. Просто умови, написані людською мовою, без адаптації.
І це серйозно змінює правила проведення олімпіад і конкурсів. Тепер мало не дозволяти учням користуватися під час олімпіад і конкурсів системами штучного інтелекту, тепер треба жорстко контролювати неможливість використання смартфонів, бо іноді невеличкий шматок коду, легко отриманий учасником від штучного інтелекту може серйозно деформувати принцип справедливості змагань.
Давайте подивимся як працює AI сайту replit.com на прикладі двох задач.
Задача «Різні-різні»
https://www.eolymp.com/uk/problems/5337
Умова:
Задано n чисел. Вияснити, скільки серед них різних.
Вхідні дані
У першому рядку задано кількість чисел n (1 ≤ n ≤ 10^6). У другому рядку задано n чисел, кожне з яких не перевищує 2 ·10^9 за модулем.
Вихідні дані
Виведіть кількість різних чисел серед заданих.
Приклад
Вхідні дані #1:
1
3
Вихідні дані #1:
1
Вхідні дані #2:
5
9 15 22 15 22
Вихідні дані #2:
3
Мій розв’язок:
input()
n = [int(x) for x in input().split()]
print(len(set(n)))
Розв’язок, запропонований AI:
n = int(input())
numbers = list(map(int, input().split()))
unique_numbers = set(numbers)
count = len(unique_numbers)
print(count)
Погодьтесь, зовсім непогано.
Друга задача — «Світлофори»
https://www.eolymp.com/uk/problems/993
Умова:
У підземеллі m тунелів і n перехресть, кожен тунель з'єднує якісь два перехрестя. Мишиний король вирішив поставити по світлофору у кожному тунелі перед кожним перехрестям. Напишіть програму, яка порахує, скільки світлофорів повинно бути встановлено на кожному з перехресть. Перехрестя пронумеровані числами від 1 до n.
Вхідні дані
У першому рядку записано два числа n і m (0 < n ≤ 100, 0 ≤ m ≤ n · (n - 1) / 2). У наступних m рядках записано по два числа i та j (1 ≤ i, j ≤ n), які означають, що перехресткя i та j з'єднані тунелем.
Вихідні дані
Вивести n чисел: k-те число означає кількість світлофорів на k-му перехресті.
Можна вважати, що довільні два перехрестя з'єднані не більше, ніж одним тунелем. Немає тунелів від перехрестя i до нього самого.
(зображеня з сайту eolymp.com)
Приклад
Вхідні дані:
7 10
5 1
3 2
7 1
5 2
7 4
6 5
6 4
7 5
2 1
5 3
Вихідні дані:
3 3 2 2 5 2 3
На сайті eolymp.com задачу по класифікації віднесено до групи «теорія графів». І це певною мірою може злякати учнів. Бо чули про алгоритми Дейкстри, про різні обходи графів і все це не такі вже прості задачі. Але тут задача проста, незважаючи на лякаючу картинку.
З умови нам відома кількість перехресть. Можна створити список на таку саму кількість елементів і заповнити цей список нулями. І коли будемо аналізуватися кожен тунель, то він починається з перехрестя і завершується перехрестям. Відповідно біля перехрестя де починається тунель ставиться один світлофор і біля перехрестя, де завершується тунель ставиться так само один світлофор. Відповідно, при опрацюванні кожного тунелю будемо збільшувати на одиничку значення двох перехресть — перехрестя початку і перехрестя завершення тунелю. Після опрацювання всіх тунелів у нас буде відома кількість світлофорів біля кожного перехрестя.
Це мій давній розв’язок цієї задачі. Чому у мене перехрестя (crossing) названі змінною s – не знаю, вибачайте:
n, m = map(int, input().split())
s = [0 for i in range(n)]
for _ in range(m):
i, j = map(int, input().split())
s[i - 1] += 1
s[j - 1] += 1
print(' '.join(map(str, s)))
А тепер передамо умову цієї задачі AI сайту replit.com
Без адаптації, методом copy-paste:
Ось перший варіант, запропонований AI:
n, m = map(int, input().split())
traffic_lights = [0] * n
for _ in range(m):
i, j = map(int, input().split())
traffic_lights[i-1] += 1
traffic_lights[j-1] += 1
print(" ".join(map(str, traffic_lights)))
Ще один варіант, запропонований AI:
def calculate_traffic_lights(n, m, tunnels):
intersections = [0] * n
for i, j in tunnels:
intersections[i - 1] += 1
intersections[j - 1] += 1
return ' '.join(map(str, intersections))
n, m = map(int, input().split())
tunnels = [list(map(int, input().split())) for _ in range(m)]
calculate_traffic_lights(n, m, tunnels)
print(calculate_traffic_lights(n, m, tunnels))
В останньому рядку я лише додав print, щоб вивести результат. Погодьтесь, все зрозуміло.
Звичайно, наразі не все ідеально на ниві AI. Але учень-програміст вже може достатньо ефективно консультуватися з AI в питаннях саморозвитку. Для вчителя це також цікавий інструмент, якість якого вже дозволяє серйозно його розглядати.
ps. Дякую Захару Зінчуку, який звернув увагу на якість запропонованих AI рішень.
Анатолій Анатолійович
Сайт «Плетиво» запрошує всіх бажаючих анонімно пройти тест на знання круп.
ПРОЙТИ ТЕСТ
Давня історія, але може кому сподобається ідея для колективної роботи.
Купив якось неймовірні і дуже складні пазли відомого німецького виробника на чотири тисячі елементів. Приніс своїм учням-програмістам, запропонував скласти. Умови прості – з мене кабінет, робоче місце, вода, бо в кабінеті дуже спекотно. Учні нікому нічого не зобов’язані. Хочеш – приходиш і працюєш, хочеш – ні. Завжди можна сказати «ну не змогла». В куточку до комп’ютера приєднав колонки – самі собі музику під час роботи вибирайте яку хочете. Позичив непогану камеру зі штативом. Отже – беретеся?
На початку очікувано було «вау, зараз ми тут все і відразу». Звичайно почали оптимізувати, бо програмісти. Почали групувати-сортувати елементи. По кольорам, по іншим критеріям. Рамку швидко склали. Нижня частина відрізняється кольором, її також відносно швидко зібрали. А далі стало важко. Море облич, дуже між собою схожих. Почали запрошувати друзів, щоб допомагали збирати. Все одно важко. Можна не прийти, але ж ти розумієш, що там складно і ти б дуже допоміг, якби приєднався. І вони ходили 20 днів і працювали. Лише зранку, бо спекотно і втомлюєся. Більше за все боялися, щоб не загубити хоча б один елемент з чотирьох тисяч, бо ці елементи по всьому кабінету були розкидані. Щодо музики – вони все самі, але дуже здивувася, коли почув Pink Floyd. Запропонував фінальне відео озвучити саме цією піснею. Розказав їм трохи про концептуальність The Wall. Камера знімала всі 20 днів, після чого шкільний інженер-програміст зібрав все у чотири хвилини відео. Всі учасники цього збору вже закінчили школу, дехто і університет, але пазл живе в кабінеті інформатики, дивуючи гостей.
Як на мене, пазли можуть бути чудовою річчю для колективної роботи, достатньо простим і дієвим інструментом формуванням відповідальності в командній роботі, розвитку комунікативних навичок. Да і музики різної цікавої наслухались, там були і тематичні підбірки. Звичайно, настільки складний пазл може не всім колективам варто пропонувати, і не всім такий підкориться. Але концепція, як на мене, цікава, проста і не дуже дорога у реалізації.
На фото – саме цей пазл авторства аргентинського художника Guillermo Mordillo, у відео – 4 хвилини на тему «Як ми це зробили» ))
(перша частина тут)
Частина 2.
Дана стаття як і більшість статей на «Плетиві» - не візія, не концепція, не філософська мета, а опис цілком практичного власного досвіду.
Ціль даної статті: допомогти початківцям купити і зібрати комплект обладнання (контролер + світлодіодна панель), встановити на комп'ютер програмне забезпечення, відкрити проєкт-шаблон, змінити код-приклад, скомпілювати код, залити все, що вийшло в контролер, порадіти )
Особисто я купую обладнання в Китаї, так зазвичай дешевше. Посилка з Китаю, зазвичай, приходить за три-чотири тижня. Якщо не хочеться чекати, все це є в Україні. Можна довго розписувати тонкощі купівель в Китаї та плутати недосвідчених. Тому дам посилання на готові сторінки на aliexpress, знімаючи з себе відповідальність. Я колись там купував, все було добре. Якщо щось прийде несправне або не прийде взагалі – напишіть мені будь ласка на Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. , позабираю посилання. Я не отримую жодного центу з купівель за цими посиланнями. Вмієте шукати і обирати самі — краще так і зробіть.
Що треба купити?
1. Контролер NodeMCU
Наприклад, тут:
https://www.aliexpress.com/item/32665100123.html
Серед запропонованих пристроїв раджу вибрати таку версію: V3 Nodemcu-CH340
Чіп CH340 служить мостом між мікроконтроллером і USB-портом комп'ютера, що дозволяє завантажити прошивку в плату, а також передавати між собою дані. Ми далі будемо встановлювати драйвер саме для CH340.
Ціна контролера приблизно 70 грн.
2. Світлодіодний модуль MAX7219
Наприклад, тут:
https://www.aliexpress.com/item/32789160918.html
У цього продавця доступні модулі з світлодіодами зеленого і червоного кольору. Мені більше подобається спокійний зелений, а ви можете обрати модуль, який більше подобається вам. Необхідні для підключення проводи йдуть в комплекті.
Ціна приблизно 160 грн.
Все, купувати обладнання більше не треба.
Далі — виконуємо послідовно дану інструкцію і, може, все вийде.
— З’єднуємо контролер і світлодіодну панель згідно схеми проводами з комплекту світлодіодної панелі:
Пін на NodeMCU -> Пін на MAX7219
13 (D7) -> DIN
14 (D5) -> CLK
18 (D8) -> CS
+3,3 В або +5В -> VCC
G (земля) -> GND
— Скачуємо і встановлюємо драйвер для чіпа CH340G, що забезпечує зв’язок контролера з комп’ютером (для Windows).
— Після встановлення драйверу підключаємо NodeMCU до комп’ютера за допомогою кабеля для зарядки телефона з роз’ємом microUSB. Це дуже популярний кабель, сподіваюсь, знайдеться в господарстві, щоб не купувати.
— Після підключення контролера до комп’ютера треба знайти CH340G в списку пристроїв, що Windows визначила для NodeMCU (в прикладі це COM3):
Якщо при підключеному контролері ви бачите, що серед портів з’явився будь-який порт на CH340, то все коректно встановлено. На даному етапі можна відключити контролер від комп’ютера.
— Скачуємо Visual Studio Code з офіційного сайту і встановлюємо.
Для Windows 10 та Windows 11 скачуйте останню версію з сайту. Якщо у вас на комп’ютері встановлено версії Windows нижче 10, вам треба скачати більш стару версії Visual Studio code. Цитата з офіційного сайту: «VS Code will no longer provide product updates or security fixes on old Windows versions. VS Code version 1.70.3 is the last available release for Windows 7 users and version 1.79 will be the last available release for Windows 8 and 8.1 users».
— Запускаємо Visual Studio Code, переходимо в розширення (Extensions), в пошуку починаємо писати PlatformIO IDE, обираємо і встановлюємо розширення (шукайте кнопку Install). Якщо розширення вже встановлено, то ми побачимо, як у мене, Uninstall.
— Скачуємо архів, в якому проєкт-приклад зі всіма необхідними бібліотеками
— Розпаковуємо архів і запам’ятовуємо куди розпакували
— В Visual Studio Code обираємо «File – Open Folder» і обираємо папку, в яку щойно розпакували архів
— Обираємо файл main.cpp з папки src
Це і є скетч. Зверніть увагу на 21 рядок і далі.
Хочете засвітити світлодіод?
Визначаєте його координати і засвічуйте. Центр координат — в лівому верхньому куті. Ось як це просто:
matrix.drawPixel(1, 2, HIGH);
(з міркувань продуктивності пікселі відразу не надсилаються на світлодіодну панель. Змінюється лише внутрішній буфер растрового зображення)
matrix.write();
(відправка внутрішнього буферу растрового зображення на світлодіодну панель)
Хочете виключити цей світлодіод?
matrix.drawPixel(1, 2, LOW);
matrix.write();
Використання комбінації «Visual Studio Code + PlatformIO» зручно тим, що весь проект зберігається в одній папці. Тут і основний скетч і всі необхідні бібліотеки відповідних версій. Якщо перенести цю папку на інший комп’ютер, де встановлено «Visual Studio Code + PlatformIO» то все буде так само працювати.
Нашу програму будемо писати у файлі main.cpp
Програмуємо мовою програмування Arduino C. В інтернеті багато прикладів, можна розібратися з синтаксисом. Visual Studio Code підкаже помилки на етапі компіляції скетча.
Залишилось навчитися це все закидувати у контролер. Для цього треба скомпілювати бінарний файл. Натискаємо на «PlatformIO Bild».
Якщо немає помилок, то в результаті компіляції буде створено бінарний файл. Якщо в скетчі підключаються бібліотеки і в папці проєкту є ці бібліотеки, то все коректно скомпілюється. Дуже зручно. Про успішну компіляцію буде сповіщено чудовим зеленим SUCCESS:
Залишається залити вже скомпільований бінарний файл безпосередньо в контролер.
Для чого необхідно підключити до комп’ютера контролер і натиснути «PlatformIO Upload».
Можна пропустити «PlatformIO Bild» і відразу натискати «PlatformIO Upload», тоді спочатку буде скомпільовано бінарний файл і відразу залито його в контролер.
Це все )
Ось як мигає світлодіод на панелі з прикладу-скетчу.
При роботі в класі, не потрібно багато контролерів і панелей. Учень або група учнів можуть написати скетч і перевірити його на помилки, скомпілювавши бінарний файл. А після того, як звільниться контролер – підключити його до свого комп'ютера, залити в нього бінарний файл і перевірити роботу на реальному пристрої.
З використанням комбінації контролера і світлодіодної панелі можна розбирати цикли (робити усілякі біжучі вогні), крутити тексти (біжучі рядки). Розбирати роботу різних бібліотек. Для тих, хто цікавиться більш глибоко, в контролері NodeMCU є WiFi, тобто можна на контролері підняти вебсервер і керувати контролером по WiFi зі смартфона.
Або нехай контролер щось вимірює і результати роботи кудись відправляє в інтернет, підключившись до шкільного WiFi. Саме так в школі, де я працюю реалізована система моніторингу якості вуличного повітря німецького проєкту «sensor.community». Програмне забезпечення розповсюджується безкоштовно, в самій станції моніторингу, яку ми зібрали, не перший рік працює той самий NodeMCU.
До контролера можна підключати датчики, з контролера можна керувати механізмами управління.
Програмувати можна і на Windows (від версії 7 і далі) і на Лінукс і на MacOS. Visual Studio Code безкоштовна, переважна більшість бібліотек – також.
Кому сподобалось – пробуйте.
Для ознайомлення і старту, сподіваюсь, даної статті і папки-прикладу абсолютно достатньо.
Успіхів!
Анатолій Анатолійович,
липень 2023