No i nawiedził nas wielki wirus koronny - mocą nadaną mu przez naturę zatrzymał czas i uwięził wszystkich w domach. Jak wiadomo dzieci w czasie deszczu wirusa się nudzą. Nie, nie pomaga "nauka" zdalna, a ileż można oglądać w TV te same bajki (i nie chodzi tu o dzieci a raczej rodziców, którzy przecież też przebywają w tych samych pomieszczeniach...) Rutyna oraz brak dodatkowych aktywności robi swoje. A gdyby tak spożytkować ten czas na naukę programowania? Zapraszam na subiektywny przegląd dostępnych możliwości.

Wstęp

Programowanie to dość górnolotne określenie. Spora część osób od razu kojarzy sobie jakieś mniej lub bardziej skomplikowane języki programowania oraz algorytmy, tymczasem wszystko, u podstaw, sprowadza się tak naprawdę do logicznego myślenia, oraz umiejętności przelania myśli na papier (lub inne medium). Tym jest właśnie programowanie dla dzieci — nauka oraz rozwijanie tych umiejętności, które bez względu na przyszły zawód na pewno się w życiu przydadzą.

Primo

Primo - czyli nauka programowania bez ekranu. Wiek od 3 lat.

Primo Pamiętam z czasów kiedy prowadziło pierwszą kampanię na kickstarterze - zafascynował mnie sam pomysł oraz wykonanie. "Zabawka" polega na tym, ze mamy drewnianą tablicę sterujacą, do której wkładamy klocki oznaczające wykonywane akcje (do przodu, w lewo, w prawo, funkcja) w ten sposób tworzymy "program". Po naciśnięciu przycisku, bezprzewodowo sterowany jeżdżący robot wykona "wpisany" program. Producenci zadbali o stosowne badania, kod kolorystyczny, wykonanie z drewna...

Według mnie idealna na rozpoczęcie przygody z "programowaniem", jednocześnie bez uzależniania dziecka od elektroniki.

Niestety, zabawka ma dwie wady:

  • aktualnie podstawowy zestaw kosztuje 200 EUR co po prostu jak na coś, co jest do użytku domowego (na relatywnie krótki okres czasu) jest kwotą zbyt dużą,
  • wysyłka i tak byłaby z Anglii, więc nie wiadomo kiedy paczka by do nas dotarła...

Jako alternatywa polecam ambitnym rodzicom zrobienie własnego klona zabawki ;)

Scottie Go

Nasze rodzime (polskie): Scottie Go - gra planszowo-komputerowa. Wiek od 6 lat+.

Z okazji "koronawirusa" Scottie Go oferuje darmowy dostęp do platformy Dojo - możliwość zarejestrowania konta "nauczyciela" i udostępniania zadań "uczniom". Dla tych, którzy nie posiadają normalnej wersji Scottie'go dostępne są pliki do wydruku klocków.

Scottie to, jak już wyżej napisałem połączenie gry planszowej z aplikacją na systemy iOs/Android.
Aplikacja zawiera zestaw zadań i służy do wykonywania ułożonych przez dziecko programów. Sam program dziecko układa z dołączonych klocków na dowolnym w miarę jasnym podłożu, następnie musi aplikacją zrobić mu zdjęcie.

W zestawie znajduje się 91 zadań podzielonych na 10 modułów o rosnącym poziomie trudności: od prostego przechodzenia w przód i skręcania, przez pętle, po budowanie funkcji. Każdy nowy element programu jest wytłumaczony i zaprezentowany w krótkim samouczku przed modułem. Ułożone programy, o ile wykonają zadanie, oceniane są w 3 stopniowej skali - 3 gwiazdki za najkrótsze możliwe rozwiązanie problemu.

Gra według producenta przeznaczona jest dla dzieci od 6stego roku życia, my z powodzeniem wdrażaliśmy się już od ~5 (przy czym oczywiście potrzebne było wsparcie w czytaniu opisów/klocków). Dzieci samodzielnie czytające spokojnie same dają radę przerabiać materiał (ewentualnie prosząc o pomoc przy trudniejszych programach).

Przy zakupie trzeba wziąć pod uwagę, że otrzymany kod licencyjny jest przypisany do 2 urządzeń/instalacji, a urządzenie musi mieć aparat, żeby mogło rozpoznawać ułożone programy...

Nie do końca jestem pewien jak ta liczba 2 instalacji/urządzeń jest liczona. Moje pytanie z 2017 do autorów dotyczące reinstalacji na "przywróconym do stanu fabrycznego" przez serwis telefonie nie doczekało się odpowiedzi...

Scottie go - przykładowe zadanie

Run Marco

Darmowe Run Marco wiek 6?+.

W środowisku gier planszowych istnieje pojęcie fillera - gry, która jest prostym/łatwym/przyjemnym wypełnieniem pomiędzy rozgrywkami w bardziej zaawansowane pozycje. Do takiej kategorii właśnie pasuje mi Run Marco.

Gra uruchamiana jest w przeglądarce i polega na układaniu z elementów blokowych programów, które potem są wykonywane przez tytułowego Marco albo Zofię (Sophia). Podobnie jak w Scottie Go mamy 3 moduły, w każdym po kilkadziesiąt zadań - kolejne zadania "odblokowywane" są po wykonaniu wcześniejszych, tak samo są samouczki (chociaż nie tak rozbudowane) i podobnie jak w Scottie programy oceniane są 3 stopniową skalą gwiazdek. Poziom zadań w mojej ocenie jest jednak niższy niż w Scottiem, za to dzieci w wieku szkolnym powinny dać radę same przejść większość poziomów.

Marco zapisuje aktualny stan w local storage przeglądarki, jeśli więc chcecie dać dziecku swój firmowy komputer do gry, to pamiętajcie, że tylko na tym samym komputerze będą jego osiągnięcia. Na innym zacznie od nowa...

Run Marco - przykładowe zadanie

bbc:microbit

microbit - sprzęt i oprogramowanie, wiek 7+

microbit jest normalną płytką rozwojową zaprojektowaną, by uczyć elektroniki/programowania w szkołach w Wielkiej Brytanii. Nie dość, że przystępny cenowo (~100pln za tzw zestaw rozszerzony zawierający microbit'a, koszyk na baterie i kabel USB), z dużymi możliwościami (akcelerometr, magnetometr, Bluetooth, wyświetlacz LED 5 x 5, dwa przyciski..), to jeszcze można go programować zarówno blokowo (MakeCode, Scratch jak i zupełnie zwykłymi językami programowania (micropython, C, rust)....

Do tego na sieci jest cała masa materiałów zawierających lekcje/projekty etc, a w projektach można wykorzystywać ciągle rosnącą ilość płytek rozszerzających... Ktoś w tej Anglii ma łeb na karku.

MakeCode

My, póki co, męczymy Microsoftowe MakeCode - (darmowa) aplikacja uruchamia się w przeglądarce i umożliwia budowanie zestawu poleceń blokowych (a także elementów javascript) programów dla microbit. Aplikacja dysponuje samouczkami, które - przynajmniej na razie są po angielsku - za to same elementy blokowe są już przetłumaczone. Podobnie ma się sprawa z opisami lekcji/przykładami projektów - opis po angielsku, fragmenty programów w naszym języku.

MakeCode teoretycznie nie potrzebuje nawet fizycznego microbita do pracy - ma wbudowany emulator, na którym na bieżąco odpalają się pisane przez dziecko programy (działa też potrząsanie/obracanie/wydawanie dźwięków). Trzeba jednak przyznać, że nic nie zastąpi widoku i radości dziecka, które obserwuje swój własny program działający na prawdziwnym urządzeniu :)

Wgrywanie programu z MakeCode na urządzenie jest również ultraproste: podpięty przez USB microbit pokazuje się w systemie jako dysk USB. Po zapisaniu programu otrzymujemy do ściągnięcia plik *.hex, który po prostu wgrywamy na dysk microbit - płytka się sama uruchomi i zacznie wykonywać program.

Microbit - program - licznik

Pomimo całej prostoty MakeCode "lekcje" z microbita się same nie zrobią (na pewno nie na początku przygody). Potrzeba kogoś, kto zrobi wprowadzenie do tematu (np. nowy element blokowy), pokaże przykład, może zada jakieś proste zadanie do rozwiązania - i dopiero wtedy dzieci same uwolnią swoją kreatywność.

Kilka przykładów na start:

  1. Element wyświetlający obrazki - zadanie: zrób pokaz "slajdów" składających się z różnych obrazków
  2. Element wyświetlający tekst - zadanie: wyświetlaj swój tekst
  3. Obsługa akceleromentru, zadania:
    • zrób, żeby pomimo obracania microbita strzałka zawsze pokazywała w górę
    • zrób, żeby po przechyleniu wyświetlała się strzałka pokazująca kierunek przechylenia
    • zrób, żeby pokazywał się obrazek informujący jak mocno potrząsnąłeś microbitem
    • sprawdź czy działa rozpoznawanie upadku swobodnego (puszczaliśmy microbita na poduszki)
  4. Element przycisku, zadanie: pokaż różne obrazki w zależności od tego, który przycisk został wciśnięty
  5. Element zmiennej, zadanie: licznik wciśnięć przycisków

Microbit - uruchomiony licznik

Naukę na pewno będziemy kontynuować, tym bardziej, że "bloczki" pozwalają na zaprogramowanie praktycznie każdego elementu microbita.

Linki do materiałów:

Posłowie

Wszystko powyżej to moje subiektywne spojrzenie na kwestię nauki programowania dzieci. Oczywiście stron/narzędzi do nauki programowania jest dużo więcej, z ważniejszych:

  • wspomniany wcześniej Scratch, czyli inne środowisko do programów blokowych
  • dla zakochanych w Minecraft MakeCode Minecraft
  • (raczej dla bardziej zaawansowanych) ESP8266 - czyli inna ciekawa płytka rozwojowa, oraz środowisko blokowe do jej programowania
  • lista z bloga CyberSkill), którą nawiasem mówiąc dopiero przed chwilką znalazłem :)