Pętla jest jedną z podstawowych instrukcji wykorzystywanych w programowaniu. Pozwala ona na cykliczne wykonywanie polecenia lub serii poleceń. Wyróżniamy dwa podstawowe typy pętli:

– pętla licznikowa – jak sama nazwa wskazuje wykorzystuje licznik, pętla te wykonuje się określoną ilość razy – wykorzystywana w sytuacji, kiedy dokładnie wiemy, ile razy chcemy powtórzyć daną czynność lub czynności

– pętla warunkowa – wykonuje się dopóty, dopóki nie zostanie spełniony określony warunek

Dzisiaj zajmiemy się pętlami licznikowymi.

Pętla – jak wytłumaczyć to dziecku?

Tłumaczenie dzieciom zagadnień abstrakcyjnych, szczególnie takich, które dla nas są czymś nowym bywa karkołomne, dlatego chcę Ci pokazać mój sposób na tłumaczenie jak działa pętla. Sprawdzone – działa 😉

W komputerach fajne jest to, że są w stanie powtarzać pewne czynności nieskończenie wiele razy i nie nudzą się. Gdybyście np. musieli 100 razy napisać „Nie będę gadał na lekcji” , to po pierwsze zajęłoby Wam to bardzo dużo czasu, a po drugie byłoby bardzo nudne…

Komputery natomiast mogą wykonywać daną czynność setki tysięcy razy i im to się nie nudzi, więc jeśli byście chcieli, żeby komputer napisał to za Was, wystarczyłoby, że napiszecie pętlę oznaczającą – powtórz 100 razy a w niej zawarlibyście polecenie napisz „Nie będę gadał na lekcji”.

Zawsze warto też do tłumaczenia wykorzystać przykład. Poniżej tradycyjnie zaprezentuję po dwa rodzaje zadań dla dzieci z opisywanych przeze mnie grup wiekowych (pamiętajmy, że dzieci rozwijają się różnie i granice wiekowe przeze mnie prezentowane są mocno umowne). Proponuję przynajmniej po jednym z tych zadań wykonać najpierw metodą bez pętli, a dopiero później powiedzieć dziecku:

„Zobacz – cztery razy powtarzałeś: Załaduj klocek na samochodzik, komputer zrozumie, jeżeli powiesz mu: Cztery razy załaduj klocek na samochodzik”

Pamiętaj, że w jednej pętli możemy zamknąć dowolnie wiele poleceń, które powinny zostać wykonane sekwencyjnie. Modyfikuj zatem zadnia tak, żeby dziecko mogło wykorzystywać powtarzanie coraz bardziej rozbudowanych sekwencji kroków.

Refaktoryzacja

Jest to kolejne z podstawowych pojęć w świecie programowania. Ponieważ refaktoryzacja jest bardzo ważna do tworzenia optymalnych i przejrzystych algorytmów, chcę Ci o tym powiedzieć już na samym początku przygody z programowaniem. Polega to na tym, że dokonujemy zmian w naszym algorytmie, które nie wpływają na funkcjonalność naszego algorytmu, ale sprawiają, że jest on bardziej wydajny, lub po prostu bardziej czytelny da nas – ludzi.

Jak stosować refaktoryzację w zabawach w dziećmi?

Jeżeli myślisz sobie teraz:  „No dobrze, ale jak to się ma do naszych zabaw w programowanie?”, spieszę z odpowiedzią. Wyjdzie Wam to zupełnie naturalnie, już przy pierwszej próbie wyjaśnienia dziecku jak działa pętla. Kiedy dziecko powie:

Załaduj klocek na samochodzik.,  Załaduj klocek na samochodzik, tworząc algorytm polegający na załadowaniu dwóch klocków na samochodzik, wykonaj te polecenia przekazane Ci w takiej formie, po czym powiedz: „Świetnie! Zadanie wykonane poprawnie. A teraz spróbujmy powiedzieć to prościej. ” Jeżeli dziecko samo wpadnie na to, że może tu pomóc pętla to super, ale może to się od razu nie wydarzyć. Wówczas to Ty zaproponuj „Może warto wykorzystać do tego pętlę, sprawdźmy, czy zadziała ona w tym przypadku”.

Kiedy już dojdziecie do algorytmu: „Dwa razy: Załaduj klocek na samochodzik.”, możecie się cieszyć z dobrze wykonanego refaktoringu 🙂

Moje podejście do refaktoringu w zabawach w dziećmi?

Ja bawiąc się z moimi dziećmi, kiedy te np. rozwiązują jakieś trudne labirynty, pomimo że wiem, że już doskonale rozumieją do czego wykorzystywana może być pętla, pozwalam im to robić tak, jak im jest wygodnie. Najczęściej jest to sekwencja pojedynczych poleceń, które prowadzą do celu. Kiedy dostaję taki algorytm oczywiście skrzętnie go wykonuję po czym mówię: „Super! Wykonałaś zadanie! Test przeszedł poprawnie! Widzę, że sporo się napisałaś. Może da się to napisać używając mniejszej ilości strzałek?”. I tak przechodzimy do fazy optymalizacji naszego algorytmu. Oczywiście po każdej poprawce wykonujemy ponownie test i sprawdzamy, czy algorytm nadal działa.

Wykonując poniższe zabawy pamiętaj, że jest coś takiego jak refaktoring i że jest to naturalny krok w procesie tworzenia programów. Pozwól zatem dziecku wykonywać poszczególne zadania najpierw tak, jak jest mu najłatwiej, byle tylko dojść do celu, a optymalizacją zajmijcie się chwilę później, jak już nacieszycie się dobrze rozwiązanym zadaniem. Na początku może się zdarzyć tak, że dziecko nie będzie rozumiało nowej koncepcji (może to być pętla). Pokaż mu wówczas i wytłumacz rozwiązanie je wykorzystujące, ale koniecznie zaznacz, że jego rozwiązanie też jest bardzo dobre. W końcu doprowadziło do rozwiązania problemu.

Dzieci w wieku 2-4

Ciąg dalszy zabawy z klockami

Zacznijmy od dobrze nam już znanej zabawy, polegającej na wrzucaniu klocków do pudełka. Jeżeli jeszcze jej nie znacie zapraszam do zapoznania się z wpisami o wydawaniu jednoznacznych poleceń i tworzeniu własnych algorytmów.

Na początek przygotujmy kilka klocków i pobawmy się dokładnie tak samo jak wtedy, gdy uczyliśmy się tworzyć algorytmy. Czyli dziecko programując Cię powinno powiedzieć:

„Weź klocek. Włóż klocek do pudełka. Weź klocek. Włóż klocek do pudełka.”

Zadbajmy o to, żeby dziecko wszystkie te polecenia wypowiedziały zanim zaczniemy cokolwiek robić. Możemy np. ustalić, że zaczynamy wykonywać polecenia dopiero kiedy dziecko powie „Start”. Wówczas polecenie powinno brzmieć:

„Weź klocek. Włóż klocek do pudełka. Weź klocek. Włóż klocek do pudełka. Start.”

Następnie proponujemy dziecku, żeby zamiast powtarzać dwa razy sekwencję „Weź klocek. Włóż klocek do pudełka.”, powiedziało: „Dwa razy Weź klocek. Włóż klocek do pudełka. Start. ”

Kiedy dziecko już zrozumie nową konstrukcję wymyślaj mu kolejne zadania typu:

„Stwórz algorytm, który pozwoli mi włożyć zielone klocki do pudełka”

„Stwórz algorytm, który pozwoli mi stworzyć wierzę z 4 klocków” itd…

Pamiętaj, żeby w każdym zadaniu sprawdzać, czy pętla nie uprości Waszego rozwiązania.

Zabawa z samochodzikiem, który przewozi klocki

Przygotuj 4 klocki i samochodzik, który będzie te klocki przewoził. Ustalcie z dzieckiem kto jest robotkiem, a kto programistą i jakimi poleceniami się posługujecie. Polecenia proponowane przeze mnie to:

„Załaduj klocek na samochodzik”

„Przewieź ładunek”

„Wyładuj klocek z samochodzika”

W pierwszej wersji cztery razy powtórzcie:  „Załaduj klocek na samochodzik”, następnie powiedzcie „Przewieź ładunek”, po czym cztery razy powtórzcie „Wyładuj klocek z samochodzika”

Następnie wytłumaczcie dziecku, że robotek zrozumie także jak mu powiemy „Cztery razy: Załaduj klocek na samochodzik”, „Przewieź ładunek”, „Cztery razy: Wyładuj klocek z samochodzika”

W ten sposób wykorzystaliście pętlę dla pojedynczego polecenia, czas na pętlę w której umieścimy serię poleceń.

Ustalcie, że samochodzik jednocześnie może przewieźć tylko jeden klocek.

Zacznijcie od tego, że 4 razy powtórzycie sekwencję poleceń:

„Załaduj klocek na samochodzik”

„Przewieź ładunek”

„Wyładuj klocek z samochodzika”

Następnie powiedzcie dziecku, że robotek zrozumie także jeżeli powiemy mu: „Cztery razy wykonaj polecenia:  Załaduj klocek na samochodzik i  Przewieź klocek i Wyładuj klocek z samochodzika ”

Teraz już możecie dać się ponieść fantazji. Wymyślajcie polecenia, założenia i zadania. Sprawdzajcie, czy użycie pętli ułatwia wykonanie wymyślonych przez Was zadań.

 

Dzieci w wieku 4-9

Ciąg dalszy zabawy w programowanie rodziców

Podobnie jak podczas nauki algorytmów, również i teraz dziecko wykorzystuje kartkę i długopis do napisania algorytmu. Dopiero gotowy algorytm dostaje rodzic – robot i krok po kroku go wykonuje. Tym razem postarajcie się do tego zadania wykorzystać pętlę. Refaktorujcie programy tak, żeby zwierały jak najmniejszą liczbę poleceń.

Twórzcie takie zadania, które będą wymagały wykorzystania powtarzających się sekwencji poleceń i jak zwykle dajcie się ponieść fantazji 🙂

 

Labirynty do druku

Tym razem bohaterką labiryntów jest wygłodniała kurka. Pomóżcie jej się najeść. Poleceniami niech będą strzałki i to z nich dziecko ma zbudować algorytm na podstawie którego, rodzic będzie pokonywał labirynt,. Jedno polecenie powoduje, że kurka poruszy się o jedną kratkę. Przygotowałam dla Was 4 labirynty ze szczegółowymi poleceniami.

Do pierwszych trzech labiryntów przygotowałam również przykładowe odpowiedzi, czwarty niech będzie dla Was wyzwaniem.Postarajcie się (Twoje dziecko i Ty) wykonać przy użyciu jak najmniejszej ilości strzałek, a swoim rezultatem podzielcie się w komentarzu do tego posta.