Programowanie w edukacji wczesnoszkolnej

Kilka lat temu obroniłem pracę dyplomową na temat kodowania i programowania w edukacji wczesnoszkolnej. Nie określiłbym siebie jako specjalistę w dziedzinie teorii o programowaniu i kodowaniu. Niemniej jednak jestem zdania, że podstawy teoretyczne w jakimkolwiek zakresie pomagają w realizacji praktyki. W przypadku edukacji jest to o tyle ważne, że chodzi o żywego człowieka i jego rozwój, a nie tak jak w przypadku ścian w moim domu, w których poodchodziła farba - o kawałek materiału. 

Niedługo będzie dziesięć lat od pojawienia się zagadnień z programowania i kodowania w podstawie programowej edukacji wczesnoszkolnej. Już od 2017 roku uczniowie od pierwszej klasy uczą się podstaw programowania. Nie robią tego dlatego, by zostać programistami, ale po to, by lepiej funkcjonować w cyfrowym społeczeństwie, po to, by wykorzystywać aktualnie dostępne możliwości do rozwoju przyszłego społeczeństwa. Nauka programowania wspiera rozwój myślenia, współpracy, rozwiązywania problemów oraz kreatywności. Programowanie jest również świetnym narzędziem do rozwoju kompetencji uczniów we wszystkich obszarach edukacyjnych. Wprowadzenie programowania od najmłodszych lat do szkół opiera się na tezie, według której „umiejętności nabyte podczas programowania są przydatne na zajęciach z innych przedmiotów, jak i później w różnych zawodach, niekoniecznie informatycznych” (Podstawa programowa). Wprowadzenie programowania do szkół nie miało za zadanie nauki uczniów programowania, lecz w głównej mierze dać możliwości do nabycia przez nich umiejętności okołoprogramistycznych.

Dochodzenie do samego programowania to daleka droga dla uczniów. Typowe zajęcia z programowania zazwyczaj odbywają się w Scratchu. Należy określić, że „programowanie to nie tylko pisanie skryptów, lecz także analiza danego problemu, odnalezienie jego rozwiązania w postaci algorytmu, dopasowanie go do możliwości i dopiero wtedy przetłumaczenie na odpowiedni język programowania (kodowanie)” (Janczak 2017, s. 56). Właśnie na tych aspektach opiera się programowanie w klasach 1-3 szkoły podstawowej. Można to zauważyć w jeszcze aktualnie obowiązującej postawie programowej, według której programowanie rozumiane jest jako „cały proces, informatyczne podejście do rozwiązywania problemu: od specyfiki problemu (określenie danych i wyników, a ogólniej – celów rozwiązania problemu), przez znalezienie i opracowanie rozwiązania, do zaprogramowania rozwiązania, przetestowania jego poprawności i ewentualnej korekty przy użyciu odpowiednio dobranej aplikacji lub języka programowania” (podstawa programowa). Programowanie traktowane jest tutaj znacznie szerzej aniżeli tylko napisanie programu.

Kolejnym zagadnieniem, które zostało już wyżej podniesione to kodowanie, rozumiane jako przetłumaczenie pewnej informacji w zrozumiałym dla konkretnego odbiorcy języku. Termin ten jest niezwykle istotny, ponieważ w edukacji jest niejednokrotnie nadużywany. W przypadku kodowania istotnym elementem jest odbiorca oraz przystępność kodowanej informacji. Dostrzegalnymi przykładami kodów w codziennym życiu można między innymi wyszczególnić: metki na ubraniach, kolor koszów na śmieci, znaki drogowe, emotikony. Kod powinien być zrozumiały dla nadawcy oraz odbiorcy, ponieważ tylko wtedy jest on użyteczny. Co nam po kodzie gdy tylko nadawca jest w stanie go zrozumieć. Niestety wielokrotnie taka sytuacja ma miejsce w życiu codziennym, w życiu rodzinnym, czy zawodowym. Gdy dziewczyna będąc z chłopakiem na randce używa ku niemu słów, iż zrobiło się chłodno, czy ona chce przekazać mu informację o aktualnie obowiązujących warunkach pogodowych? Nie wydaje mi się. Kodxowanie jest więc przekształceniem informacji w postaci, którą można zapisać za pomocą wybranych znaków czyli kodu.  

Pomimo tego, że w edukacji wczesnoszkolnej wykorzystuje się głównie terminu kodowanie, to jednak najważniejszymi elementami jest wszystko przed samym kodowaniem czyli: "...analiza danego problemu, odnalezienie jego rozwiązania w postaci algorytmu, dopasowanie go do możliwości... ", a dopiero później samo kodowanie. (podstawa programowa). Razem z uczniami dochodzimy do tego, aby zakodowane informacje były przekazane w jak najbardziej optymalny sposób. Samo kodowanie ma być zwieńczeniem całego procesu rozwoju i ścieżki dochodzenia do rozwiązywania problemu. To właśnie tu chodzi o to układanie strzałek dla robota lub ustalanie kolorów.

Naukę programowania powinno rozpocząć się tak wcześnie, jak to tylko możliwe (Janczak 2013, s. 69). Programowania można uczyć już trzyletnie dzieci. W okresie przedszkolnym dzieci rozwiązują najróżniejsze łamigłówki i układanki. Właśnie przez gry i zabawy, do których nie jest potrzebny komputer dzieci wprowadzane są w świat programowania. I. Micorek wyszczególnia cztery etapy wprowadzania dzieci w świat programowania. Na pierwszym etapie dzieci bawią się w programowanie i kodowanie. Zabawy te opierają się głównie na empirycznych doświadczeniach dzieci. Etap pierwszy wprowadza dzieci do nauki programowania na komputerze. Następny etap koncentruje się na wykonywaniu swoich pierwszych kodów. I. Micorek proponuje, aby dzieci korzystały ze strony internetowej https://code.org/pl. Witryna Code.org jest platformą, na której znajdują się kursy online wprowadzające dzieci w świat programowania. Korzystanie z code.org nie jest konieczne, ponieważ istnieje wiele innych stron oferujących podobną tematykę. Na trzecim etapie dzieci zaczynają korzystać z pierwszego języka programowania. Dla młodszych dzieci jest to ScratchJr, dla starszych Scratch. Praca na tym etapie opiera się na współdziałaniu dziecka z prowadzącym zajęcia. Na ostatnim etapie uczniowie sami pracują w środowisku programistycznym (Micorek 2016, s. 56-58).

Powtórzmy to jeszcze raz: programowanie nie jest zarezerwowane dla osób chcących w przyszłości pracować z komputerem. Czas spędzony na nauce programowania jest rozwijający i niewątpliwie wartościowy. To nie tylko nabywanie umiejętności technicznych, ale również wszechstronny rozwój (Janczak 2013, s. 68). Swoje pierwsze kroki z programowaniem rozumianym bardzo szeroko dzieci zaczynają od algorytmów. Początkowo uczniowie nie są świadomi tworzenia i stosowania algorytmów. Dopiero po pewnym czasie dowiadują się, czym tak w zasadzie jest algorytm (Nowik 2009, s. 23).

"H. Siwek umieszcza umiejętność konstruowania i posługiwania się algorytmami w najwyższym z trzech poziomów myślenia dzieci w procesie kształtowania pojęć" (Pyzara 2014, s. 44). Samo stosowanie algorytmów nie wymaga od ucznia twórczych operacji myślowych. Jest to tylko wykorzystywanie istniejących już sposobów postępowania w celu rozwiązywania jakiegoś problemu. Konstrurowanie algorytmów jest natomiast bardziej złożone z perspektywy ucznia. Tworzenie ścisłych schematów postępowania wymaga myślenia algorytmicznego, czyli kompetencji formułowania rozwiązań w postaci skończonej sekwencji kroków powtarzającej dane wejściowe w wyniki oraz ich realizacji (Sysło 2014, s. 22). Rozwój myślenia algorytmicznego może odbywać się poprzez analizowanie gotowych algorytmów lub przez tworzenie swoich własnych. 

Przy tworzeniu algorytmów jedną z podstawowych umiejętności jest zdolność odnajdowania powtarzających się elementów. Dostrzeżenie powtarzających się schematów pozwala uczniowi utworzyć prosty algorytm. Mogą to być krótsze sekwencje kroków, ale również dłuższe. Te dłuższe powinny zostać przez ucznia rozłożone na kilka mniejszych. Ułatwi to ich zapis w postaci algorytmu.

Rozwój myślenia algorytmicznego zależy w głównej mierze od organizacji sytuacji edukacyjnych. To właśnie od osoby prowadzącej lekcje zależy sposób rozwoju nauki tworzenia algorytmu, który powinien być ćwiczony w sposób wielowymiarowy i elastyczny (Kłus-Stańska i A. Kalinowska 2004, s. 47). Odpowiednio prowadzony proces ćwiczenia tworzenia algorytmu przyczynia się do: 
  • rozwoju bardziej precyzyjnego, logicznego myślenia,
  • skrupulatnej analizy problemu (także twierdzeń i definicji), 
  • narzucania konieczności myślenia formalnego, 
  • rozwijania myślenia refleksyjnego,
  • zwiększenia samokontroli,
  • rozwoju umiejętności pracy w zespole (Pyzara 2014, s. 45 - 48).
Przy rozwoju myślenia można pójść o krok dalej. Poszerzeniem myślenia algorytmicznego jest myślenie komputacyjne. Termin myślenia komputacyjnego początkowo oznaczał "użyteczne postawy i umiejętności, jakie każdy, nie tylko informatyk, powinien starać się wykształcić i stosować" (Sysło 2014, s. 22). Pierwotnie termin ten odnosił się do myślenia tak jak informatyk. Współcześnie myślenie komputacyjne jest "myśleniem i wnioskowaniem o rozwiązywaniu problemów metodami wywodzącymi się z informatyki" (Sysło 2014, s. 22). Myślenie komputacyjne można określić jako zbiór praktyk, których źródło znajduje się w informatyce, lecz są one przeznaczone do wykorzystania w różnych dziedzinach działalności człowieka, wychodzących daleko poza informatykę. Rozwój myślenia komputacyjnego może mieć znaczenie dla realizacji treści programowych z innych przedmiotów niż tylko informatyka. Należy podkreślić, że rozwój, a następnie korzystanie z myślenia komputacyjnego kształtuje: 
  • zaufanie i pewność w radzeniu sobie ze złożonymi problemami,
  • nieustępliwość w pracy z trudnymi problemami,
  • tolerancję dla niejednoznaczności i niejasności,
  • zdolność do pracy z problemami otwartymi, dla których nie ma rozwiązań,
  • zdolność do współpracy dla osiągnięcia wspólnego celu (Sysło 2014, s. 26).
Schemat obrazujący myślenie komputacyjne (Sysło 2018, s. 10)

Traktowanie programowania za definicją z podstawy programowej idealnie dotyczy rozwijania myślenia komputacyjnego. Jak uważa M. M. Sysło rozwój umiejętności programowania powinien znaleźć się w kontekście rozwoju myślenia komputacyjnego, a w szczególności: myślenia logicznego, heurystycznego, algorytmicznego, kreatywności oraz poszukiwania innowacyjnych rozwiązań (Sysło 2018, s. 8). Programowanie jako cały proces podejścia do wyznaczonego problemu rozwija kompetencje, które powinny być przydatne nie tylko na różnych przedmiotach w szkole, ale również w funkcjonowaniu poza szkołą. 

Nauka programowania już od edukacji wczesnoszkolnej nie ma na celu zrobienia z uczniów programistów. Pomimo tego, że uczniowie mają za zadanie poznać różne języki programowania, to cały proces edukacyjny w kontekście edukacji informatycznej ma skupiać się na rozwoju zdolności logicznego i analitycznego myślenia, jak również na rozwoju kreatywności. Ma rozwijać myślenie komputacyjne. Według E. Stolarczyk nauka programowania jest głównie rozwojem takich obszarów jak: 
  • sposób spostrzegania, myślenia, zdolności obserwacji i wyciągania wniosków,
  • opisywanie zależności zachodzących między zdarzeniami i obiektami,
  • myślenie przyczynowo-skutkowe,
  • kształcenie wyobraźni i fantazji,
  • zdobywanie umiejętności odróżniania rzeczy istotnych od nieistotnych,
  • doskonalenie umiejętności przetwarzania zdobytych wiadomości i twórczego ich modyfikowania poprzez dostrzeganie i rozwiązywanie problemów,
  • rozwijanie myślenia komputacyjnego,
  • rozwój pomysłowości i krytycyzmu,
  • rozbudzanie ciekawości poznawczej, twórczego działania i samodzielności (Stolarczyk 2017, s. 10-11).
Ponadto uczniowie objęci nauką programowania uczą się dostrzegać reguły i zasady pisowni oraz szybciej opanowują umiejętność pisania i czytania (Zioło-Pużuk 2018, s. 23). 

Mogłoby się wydawać, że nauka kodowania i programowania jest niejako niechcianym dodatkiem w procesie edukacji. Czymś w rodzaju wymuszonego dziękuję. Nic bardziej mylnego. Edukacja uczniów wykorzystując narzędzia wywodzące się z informatyki jest niezwykle efektywne. Nam nauczycielom zależy na rozwoju naszych uczniów, na tym, aby każdy nasz wychowanek mógł rozwinąć swoje zdolności pod naszą opieką edukacyjną. Wykorzystujmy zabawy, zagadki, kodowania oraz programowanie do rozwoju naszych podopiecznych. 


Bibliografia: 

  • Janczak D., Nauka programowania, „Dyrektor Szkoły” (2017) nr 1.
  • Janczak D., Czy i po co nauczać małe dzieci programowania?, „Meritum” (2013) nr 2.
  • Klus-Stańska D., Kalinowska A., Rozwijanie myślenia matematycznego młodych uczniów, Warszawa 2004.
  • Pyzara A., Algorytmizacja jako umiejętność matematyczna, w: Informatyka w edukacji. Informatyka dla wszystkich od najmłodszych lat, red. A. B. Kwiatkowska, M. M. Sysło, Toruń 2014.
  • Rozporządzenie Ministra Edukacji Narodowej z dnia 14 lutego 2017 r. w sprawie podstawy programowej
  • Stolarczyk E., Nauka programowania od klasy pierwszej, „Życie Szkoły” (2017) nr 7.
  • Sysło M. M., Myślenie komputacyjne. Nowe spojrzenie na kompetencje informatyczne, w: Informatyka w edukacji. Informatyka dla wszystkich od najmłodszych lat, red. A. B. Kwiatkowska, M. M. Sysło, Toruń 2014.
  • Sysło M. M., Jak myśleć komputacyjnie, w: Informatyka w edukacji. Myśl kompytacyjnie!, red.
  • A. B. Kwiatkowska, M. M. Sysło, Toruń 2018.
  • Zioło-Pużuk K., Programowanie od kołyski, „Wczesna Edukacja” (2018) nr 1.
  • Micorek I., Programowanie – czas start… już w przedszkolu, „Monitor Dyrektora Przedszkola” (2016) nr 75.
  • Nowik J., Kształcenie matematyczne w edukacji wczesnoszkolnej, Opole 2009.

Komentarze