Moduł II - programowanie
Cześć!
W tym wpisie zaproponuję Wam parę ćwiczeń nauki programowania, wykorzystujących aplikacje komputerów Kano. Aplikacje te są dostępne niezależnie od posiadanego zestawu. Część z nich potrzebuje dostępu do Internetu.
Dlaczego warto uczyć programowania?
W dzisiejszych czasach programowanie to tzw. trzeci język, którego warto uczyć się obok ojczystego i obcego. Jest to język, który służy do komunikacji z urządzeniami technicznymi oraz z coraz to bardziej rozwijającym się światem cyfrowym. Zadaniem ćwiczeń związanych z programowaniem jest nie tylko wykształcenie przyszłych programistów ale także rozwój logicznego i kreatywnego myślenia u wszystkich. Od września 2017 roku programowanie (elementy) jest stałym elementem kształcenia już od pierwszej klasy podstawowej. Prowadząc zajęcia w klasach wczesnoszkolnych nie bójmy się tematyki programowania oraz używania nowych technologii, nawet jeżeli sami nie czujemy się odpowiednio silni z tej tematyki. Jest na prawdę wiele pomocy edukacyjnych, które można wykorzystać do nauki programowania. Komputery Kano można śmiało potraktować jako jedną z nich.
Przygotowanie przestrzeni edukacyjnej
Na szkolnej gazetce proponuję zamieścić informacje na temat darmowych gier uczących programowania dostępnych w Internecie. Nie mając na celu zysków producentów, warto też umieścić plakaty związane z takimi "zabawkami" jak Lego mindstorms czy komputery Kano. Może to zainspirować dzieci, by np. w liście do Św. Mikołaja zamieściły właśnie te pozycje, a dzięki temu uczyły się programowania poprzez zabawę. Dla starszych grup, można także zamieścić informację o konkretnych językach programowania (JavaScript, python) oraz zamieścić informacje o darmowych kursach programowania tych języków dostępnych w Internecie (znajdziecie ich naprawdę wiele). Jeżeli mamy do dyspozycji budżet, to proponuję zakupić parę zestawów Gravity Maze i rozłożyć je w stworzonym kąciku edukacyjnym. Gravity Maze jest to manuala gra, gdzie naszym zadaniem jest zbudowanie zadanego labiryntu tak by wrzucona do niego kulka dotarła od wskazanego punktu początkowego do punktu końcowego. Moim zdaniem jest to super gra, która rozwija myślenie logiczne a przy okazji sprawia mnóstwo frajdy. Poniższej zamieszczam film opisujący działanie Gravity Maze.
Dyskusja - czym jest programowanie?
Zanim przejdziemy do konkretnych ćwiczeń proponuję podjąć z dziećmi dyskusje na temat programowania. Gdzie możemy się spotkać z programowaniem? Co jest wynikiem programowania? Większość urządzeń, aplikacji, programów jakie znamy, działają tylko dlatego, że ktoś je wcześniej zaprogramował. Robot, telefon, gra, samochód a nawet pralka czy zmywarka.
Przed rozpoczęciem ćwiczeń praktycznych - dodatkowa wskazówka. Programowanie to umiejętność, którą nabywa się głównie przez praktykę. Jeżeli uczeń potrzebuje naszej pomocy, to starajmy się nie przejmować od niego klawiatury czy też myszki. Posłużmy radą, a w ostateczności wskażmy element palcem na ekranie, ale nigdy nie wykonujmy ćwiczenia, czy też nie wprowadzajmy danej komendy zamiast dziecka. Wiadomo, często jesteśmy ograniczeni czasem i w odpowiedniej chwili chcielibyśmy przejść do kolejnego ćwiczenia, ale robiąc coś za uczniów, nawet tłumacząc im przy tym sposób rozwiązania, zabieramy im na prawdę wiele. Niech dzieci się trochę pomęczą, niech mają później satysfakcję z samodzielnie napisanego programu. To na prawdę dużo bardziej zaprocentuje, niż przeprowadzone na szybko kolejne ćwiczenie.
Ćwiczenie - Make Art
Make Art - aplikacja do tworzenia figur czy bardziej złożonych rysunków przy użyciu kodu. Aplikacja uczy programowania na zasadzie rozwiązywania kolejnych zadań (zaczynając od napisania programu który rysuje tylko koło, kończąc na bardziej skomplikowanych rysunkach). W przypadku starszych grup można przejść od razu od zbioru zadań z poziomu Medium. Jako nauczyciele możemy też sami zaproponować rysunek, który dzieci mają stworzyć, jednak wtedy aplikacja nie będzie podsuwała uczniom ewentualnych podpowiedzi. Ja proponuję by dzieci najpierw rozwiązały zadania z kategorii Basic, a na pozostałą część lekcji można polecić dzieciom stworzenie własnego rysunku z zadanej tematyki. Dzięki temu dzieci będą mogły się także popisać kreatywnością przy wymyślaniu swojego rysunku.
Standardowo, aplikacja jest dostępna tylko w języku angielskim, dlatego warto na tablicy wyjaśnić dzieciom znaczenie kilku komend (co sprowadza się w zasadzie do przetłumaczenia słówka z angielskiego na polski):
type - polecenie dla dziecka, by wpisało daną komendę używając klawiatury i zatwierdzając enterem.
background - polecenie stworzenia tła, gdzie jako parametr podajemy kolor (też w języku angielskim, np. blue).
color - polecenie zmiany/zadania koloru, gdzie jako parametr podajemy właśnie żądany kolor. Instrukcje rysujące wykonane po tej komendzie będą rysowały elementy w zadanym kolorze.
circle - komenda rysująca koło. Parametrem tej komendy jest promień koła. Np. wpisując circle 150 aplikacja wyrysuje nam koło o promieniu 150.
square - komenda rysująca kwadrat. Parametrem jest długość boku.
rectangle - polecenie narysowania prostokątu. Pierwszym parametrem jest jego szerokość, drugim wysokość. Przykład komendy - rectangle 150 200
move - przeniesienie kursora rysunku w inną część obrazu. Pole gdzie rysowana jest nasza grafika jest polem o rozmiarze 500x500, gdzie środkiem tego pola jest punkt o współrzędnych 250x250. Wpisując move 100 100 przeniesiemy kursor bliżej górnego lewego wierzchołka pola. I wtedy ten punkt będzie środkiem naszego rysowanego koła czy też kwadratu.
Poniżej zamieszczam film z oficjalnego kanału Kano, opisujący dokładniej jak działa aplikacja Make Art. W tym filmie znajdziecie także opis innych komend, które można użyć podczas tworzenia rysunku.
Ćwiczenie - Programowanie świateł i kolorów z Kano Code
Kolejnym proponowanym ćwiczeniem jest wykorzystanie aplikacji Kano Code w celu zaprogramowania pola zbudowanego z diod LED. Jeżeli mamy możliwość to warto doposażyć nasze zestawy Kano w panel diod Pixel Kit. Ćwiczenie dzięki temu na pewno będzie bardziej interesujące, ponieważ uczniowie będą widzieć efekty działania ich programu w postaci rzeczywiście świecących diod LED. Poniżej zamieszczam link do strony Kano opisującej panel Pixel Kit.
https://kano.me/row/store/products/pixel-kit
Jeżeli nie mamy dostępnych paneli Pixel Kit, aplikacja umożliwia podgląd działania programu w graficznej formie symulującej działanie panelu Pixel Kit.
Kano Code jest to aplikacja, gdzie tworzymy program przy pomocy graficznych bloków funkcyjnych. Najczęściej do takich bloków podpinamy inne elementy graficzne będące parametrami tego bloku funkcyjnego. Na poniższej grafice widzimy przykład bloku funkcyjnego, który zapala światła. Do tego bloku należy podpiąć dwa parametry. Pierwszy wskazuje którą diodę mamy zapalić (albo podajemy współrzędne x i y panelu świetlnego, albo podpinamy parametr all lights, dzięki któremu zapalimy za jednym razem wszystkie diody panelu). Drugi parametr odpowiada za kolor (możemy podpiąć dowolny kolor - random color, albo podpiąć konkretny kolor używając grafiki koloru, lub parametrów RGB). RGB pozwala zapisać nam kolor przy pomocy trzech współrzędnych. Każdy kolor traktowany jest jako mieszanka kolorów czerwonego, zielonego i niebieskiego. Jak też widać na poniższej grafice, parametrem nie musi być konkretna wartość - możemy w miejsce parametru podpiąć np. funkcję matematyczną wyliczającą wartość parametru lub funkcję losową.
Warto wyróżnić jeszcze dwa innego rodzaju bloki funkcyjne, które będą często używane przez uczniów podczas tego ćwiczenia. Bloku When app starts będziemy używać jako bazy każdego naszego programu. Blok ten ma formę klamry i wszystko co zamieścimy w tej "klamrze" będzie wykonane od razu po uruchomieniu stworzonego programu. Blok Every pełni rodzaj pętli programistycznej. Wszystko co umieścimy wewnątrz tego bloku (jak widzicie poniżej, też on tworzy klamrę) będzie wykonywane w kółko z zadaną częstotliwością (w przykładzie poniżej - co sekundę).
Zamieszczam także przykład zastosowania powyżej przedstawionych bloków. Poniższy program będzie co sekundę zmieniał kolor wszystkich diod LED na losowy.
Na początku zajęć proponuję pozwolić uczniom oswoić się z aplikacją i przetestować bloki funkcyjne na własną rękę. Następnie można przygotować konkretne zadania do wykonania. Moje propozycje:
1. Stwórz program zapalający diody w rogach panelu na wybrany kolor.
2. Stwórz program działający tak, że cały panel będzie migał w różnych odcieniach zielonego.
3. Stwórz program działający tak, że każda z diod panelu będzie niezależnie migać w różnych odcieniach zielonego.
4. Stwórz dowolną animację.
Powyższe zadania są tylko przykładowymi. Można ich wymyśleć na prawdę sporo o różnym poziomie trudności. Przykładowo starsze grupy można wprowadzić w tematykę zmiennych i zapronować następujące zadanie - Napisz program, który co sekundę będzie kolejno zapalał diody (najpierw diody z pierwszego rzędu, potem z drugiego, itd.). Takie zadanie można rozwiązać używając zmiennych wenątrz pętli, które z każdą sekundą będą inkrementowane.
Poniżej zamieszczam film z oficjalnego kanału Kano z krótkim opisem działania aplikacji.
Korzyści edukacyjne z powyższych ćwiczeń
Kończąc kolejny wpis chciałam wymienić jakie korzyści płyną z powyższych ćwiczeń:
- nauka programowania poprzez praktyczne zadania,
- rozwijanie kreatywności,
- rozwijanie logicznego myślenia.
Dodatkowo wspomnę, że nauka programowania z aplikacjami Kano to jest tak na prawdę nauka przez zabawę. Jeżeli odpowiednio przygotujemy zajęcia, mogą one być niezwykle interesujące dla grupy, co na pewno zwiększy zaangażowanie uczniów w realizację ćwiczeń.
W kolejnych wpisach wspomnę na pewno o innych aplikacjach Kano. Do "usłyszenia" już wkrótce. Standardowo, dzielcie się w komentarzach uwagami na temat proponowanych ćwiczeń oraz Waszymi pomysłami!