Wprowadzenie do zmiennych w programowaniu Opis Rozpoznawanie i analiza wartości zmiennych jest ważną umiejętnością podczas nauki programowania. W trakcie tej lekcji uczniowie nauczą się, jak zmienne mogą być używane w programowania i w jaki sposób ułatwiają nam tworzenie kodów. Cele Rozpoznawanie zmiennych Zrozumienie, że zmienna to wartość, która ulega zmianie. Budowanie kodów z wykorzystaniem zmiennej Wielkość grupy 2-5 uczniów (opcjonalnie zabawy w zespole całej klasy) Klasy docelowe 4-6 szkoły podstawowej Wymagany czas 2 jednostki lekcyjne Co będzie potrzebne: Roboty i akcesoria: Dash, Dot Pomoce dydaktyczne: Tablety Prezentacja "Wprowadzenie do zmiennych" Projektor do wyświetlenia kodów w Blockly lub wydruki tych kodów 2 pudełka dla każdej grupy Przedmioty do użycia jako liczydło, np. szklane kulki, spinacze lub kawałki papieru Załączniki do lekcji (do pobrania): Załącznik 1 zmienne w kodzie 1 Załącznik 2 zmienne w kodzie 2 Załącznik 3 - zmienne w kodzie 3 Podstawa programowa: MATEMATYKA Cele kształcenia wymagania ogólne IV. Rozumowanie i tworzenie strategii. Uczeń prowadzi proste rozumowanie składające się z niewielkiej liczby kroków, ustala kolejność czynności (w tym obliczeń) prowadzących do rozwiązania problemu, potrafi wyciągnąć wnioski z kilku informacji podanych w różnej postaci.
Treści nauczania wymagania szczegółowe: 2. Działania na liczbach naturalnych. Uczeń: 1) dodaje i odejmuje w pamięci liczby naturalne ZAJĘCIA KOMPUTEROWE Cele kształcenia wymagania ogólne IV. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera Treści nauczania wymagania szczegółowe: 1. Bezpieczne posługiwanie się komputerem i jego oprogramowaniem. Uczeń: 2) odczytuje i prawidłowo interpretuje znaczenie komunikatów wysyłanych przez programy; 3) prawidłowo zapisuje i przechowuje wyniki swojej pracy w komputerze i na nośnikach elektronicznych, a następnie korzysta z nich; 5. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera. Uczeń: 1) za pomocą ciągu poleceń tworzy proste motywy lub steruje obiektem na ekranie; 2) uczestniczy w pracy zespołowej, porozumiewa się z innymi osobami podczas realizacji wspólnego projektu, podejmuje decyzje w zakresie swoich zadań i uprawnień. Edycja pilotażowa nowej podstawy komputerowej dla II poziomu edukacyjnego: I. Rozumienie, analizowanie i rozwiązywanie problemów. Uczeń: 1) Tworzy i porządkuje w postaci sekwencji (liniowo) lub drzewa (nieliniowo) informacje, takie jak: obrazki i teksty ilustrujące wybrane sytuacje, opisy rzeczy różnych rodzajów (np. zwierząt, kwiatów), planuje w ten sposób późniejsze ich zakodowanie za pomocą komputera. 2) Formułuje w postaci algorytmów polecenia składające się na: znane uczniom algorytmy z różnych przedmiotów, np. matematyczne: pisemnego dodawania, odejmowania, mnożenia, II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. Uczeń: 1) Projektuje, tworzy i zapisuje w wizualnym języku programowania pomysły historyjek, rozwiązania problemów i proste algorytmy z wykorzystaniem poleceń sekwencyjnych, iteracyjnych i warunkowych oraz zdarzeń jednoczesnych. 2) Testuje na komputerze swoje programy pod względem zgodności z przyjętymi założeniami o efektach ich działania, objaśnia przebieg działania programów.
Przebieg lekcji: Lekcja 1: Wprowadzenie do zmiennych, nauka zastosowania zmiennych w aplikacji (45 min). Lekcja 2: Wykorzystanie zmiennych w aplikacji Blockly, programowanie własnych pomysłów (45 min). LEKCJA 1 Wprowadzenie do zmiennych. Wstęp: wprowadzimy ucznia w pojęcie zmiennej, zaprezentujemy jak można zmieniać zmienną, jakie bloczki są odpowiedzialne za zmienne. Przeprowadzimy sporo ćwiczeń praktycznych, które w łatwy i przyjazny sposób pozwolą się zaznajomić uczniom z tą tematyką. Zadanie dla uczniów: przygotuj różnego koloru piłeczki/ opcjonalnie karteczki postaw przed uczniami pudełko i zacznij wrzucać do niego piłeczki zaczynając od jednego z kolorów, następnie kolejny w trakcje wykonywania czynności zapytaj: Ile piłeczek jest w środku? uczniowie będą podawać różne liczby, zapytaj ich: Ile piłeczek było już w pudełku przed wrzuceniem? na tablicy zanotuj w punkcie pierwszym wartość początkową i objaśnij uczniom, że jest to ilość piłek znajdująca się w pudełku przed rozpoczęciem naszej zabawy zapytaj: Czy wartość początkowa może wynosić 0? i co to oznacza w naszym przypadku (pudełko było puste) wyciągnij raz jeszcze wszystkie piłeczki, pokaż że pudełko jest puste i zapytaj ile wynosi wartość początkowa (spodziewana odpowiedź = 0) ponownie wrzucaj piłeczki i poproś, aby uczniowie liczyli na głos ile piłeczek jest już w pudle zadaj pytanie: Czy ilość piłeczek w pudełku się zmienia? zanotuj na tablicy w punkcie drugim zmienne i wyjaśnij, że teraz są to nasze piłeczki kolejne pytanie skierowane do uczniów: Co może być naszymi zmiennymi? (naprowadź uczniów, że mogą to być dowolne przedmioty, ale również i liczby) wrzuć wszystkie piłki do pudełka i poproś, aby zgadli jaki kolor piłeczki zostanie wyciągnięty jaką mają pewność, że będzie teraz kolor żółty? co musieliby zrobić, aby mieć pewność, że teraz będzie żółty? (naprowadź uczniów, że może dobrym rozwiązaniem byłoby przygotowanie takiej ilości pudełek, ile jest kolorów i wrzucać piłeczki w danym kolorze tylko do jednego pudełka) w punkcie trzecim na tablicy zapisz rodzaje zmiennych, co oznacza, że takich pudełek może być wiele i to będą nasze rodzaje.
Zaprezentujemy teraz uczniom jak to działa w aplikacji Blockly. Przygotuj wcześniej krótki program dla Dasha i Dota. Prezentując ekran tabletu pokazuj, jak zmienna np. pomarańcza ulega zmianie i co się dzieje, jak zmienia swoją wartość. Po takiej prezentacji pokaż uczniom, że nasze pudełka w programie to odpowiednie owoce, np. banany, czereśnie itp. Ilość piłek w naszych pudełkach to wartość liczbowa odpowiadająca w danym momencie konkretnemu owocu. Podkreśl, że może ona ulegać zmianie, tak jak ilość piłek w pudełkach. Po przeprowadzonym wstępie otwórz prezentację "Wprowadzenie do zmiennych". Użyj tej prezentacji jako pomocy w uświadomieniu uczniom czym są zmienne i jak można je wykorzystać. Uczniowie mogą uznać za przydatne podzielenie się na grupy, aby łatwiej było korzystać z tabletów. W ten sposób będą mogli otworzyć i sprawdzić każdy z nowych bloków pojawiających się w prezentacji. Poniżej propozycja opisu poszczególnych slajdów i zwrócenie uwagi na istotne elementy. Slajd 2 - Czym jest zmienna: Podkreśl koncepcję, że zmienna jest rodzajem pojemnika do przechowywania - czymś jak pudełko. Można do niego wkładać i wyciągać z niego różne przedmioty, ale żeby dowiedzieć się, co jest w środku, trzeba je otworzyć i spojrzeć do wnętrza. Zmienna przyjmuje rożne wartości, w naszym przypadku to była różna liczba piłek. Zmiennych w programie może być kilka. tak jak naszych pudełek. Slajd 3 - Dlaczego warto używać zmiennych: Każdy punkt tego slajdu zostanie wyjaśniony bardziej szczegółowo w dalszej części prezentacji. Upewnij się, że uczniowie rozumieją, że ich kod (program) powinien być łatwy do odczytania i edytowania nie tylko przez nich samych, ale również przez
innych uczniów. Inni uczniowie powinni być w stanie spojrzeć na ich kod i zrozumieć to, co próbują zrobić. To jest właśnie to, co robią dobrzy programiści! Można przyrównać uczniom, że rozsypane piłki zajmują więcej miejsca, niż powkładane do pudełka. Slajd 4 - Zmienne w aplikacji Blockly - wartość początkowa i rodzaje zmiennych Ustawianie zmiennej: Pomyśl o tym w ten sposób: Nie wiem, co jest w pudełku. Ktoś powie Ci, że włożył 3 klocki do pudełka. Co znajduje się teraz w pudełku? Nie wiesz! Dlatego zawsze trzeba określić wartość początkową każdej zmiennej używanej w aplikacji "Blockly". Wartość początkowa nie zawsze musi mieć wartość 0. W aplikacji Blockly można ustawić 5 rożnych zmiennych, które odpowiadają różnym rodzajom owoców. Slajd 5, 6 - Zmienne w aplikacji Blockly - ustawianie zmiennych Ustawianie zmiennej: zwróć uwagę uczniów, że są różne możliwości zmiany wartości zmiennej poprzez ustawienie: konkretnej liczby, wartości innej zmiennej (czyli np. kiedy banany = pomarańcze), wartości losowej (czyli rzut kostką) oraz konkretnej reakcji Dasha. Slajd 7, 8 - Zmienne w aplikacji Blockly - zmienianie zmiennej Ilość piłek w naszym pudełku można zmieniać dodając piłkę, odejmując piłkę, mnożąc ilość piłek w pudełku lub dzieląc je; na slajdzie widać wartości po konkretnej zmianie. Slajd 9 - Zmienne w aplikacji Blockly zapętlanie zmiennych Utworzenie pętli ze zmiennymi: Wyraźnie podkreśl, że pętla "Dopóki" (Repeat while) oznacza "Wykonuj czynności określone w pętli, dopóki warunek nie zostanie spełniony." W tym przypadku warunkiem jest "zmienna pomarańcza mniejsza niż 5." Oznacza to, że kod w pętli będzie wykonywany tak długo [dopóki], aż zmienna pomarańcza osiągnie wartość 5. Uruchom program z uczniami, odliczając zmienną i generując sygnał dźwiękowy przy rozpoczęciu każdej pętli. Zapisz liczbę na tablicy dla każdej pętli. Rozwiązanie: sygnał dźwiękowy zabrzmi 5 razy w trakcie realizacji programu: Zmienna pomarańcza równa 0. Dźwięk, zmienna pomarańcza równa 1. Dźwięk, zmienna pomarańcza równa 2. Dźwięk, zmienna pomarańcza równa 3. Dźwięk, zmienna pomarańcza równa 4. Dźwięk, zmienna pomarańcza równa 5. Zmienna pomarańcza nie jest już większa od 5 tylko równa jej. Stop! Porozmawiaj z uczniami o tym, dlaczego zmienna może być przydatna w tej sytuacji.
Co stanie się, jeśli masz wiele pętli powtarzanych 5 razy i nagle chcesz je wszystkie powtórzyć 6 razy? Trzeba by zmienić liczbę we wszystkich tych pętlach. Jeśli zamiast tego użyjesz zmiennej, to wystarczy po prostu zmienić wartość zmiennej w jednym miejscu i zadanie wykonane! To łatwe! Slajdy 10, 11 - Zmienne w aplikacji Blockly na przykładzie Przykład wzorca: Jeżeli używasz tego przykładowego wzorca w charakterze wzorca wprowadzającego, zwróć uwagę uczniów, że ten program jest wzorcem dźwięków i mrugnięć użytym uprzednio. Uruchom program z uczniami, aby utrwalić ich zrozumienie działania pętli. Zapisz wyniki pierwszych kilku pętli na tablicy. Przykładowa tabela: kolejne powtórzenie wartości pomarańczy wartości banana wydawane dźwięki Porozmawiaj z uczniami o tym, jak wykonaliby zadanie bez zmiennych. Program musiałby wyglądać następująco: Oznacza to długie kodowanie. Natomiast dzięki zmiennym program stanie się o wiele krótszy i dużo łatwiejszy do odczytania. Kiedy używasz zmiennych, inna osoba może łatwo zobaczyć, co dzieje się w programie i dokonać zmian w jego strukturze.
Ćwiczenie uzupełniające: 1. Podziel klasę na grupy cztero- lub pięcioosobowe. 2. Rozdaj każdej grupie po dwa pudełka oraz karty pracy z kodami aplikacji "Blockly", a także kilka przedmiotów, które będą służyć do zliczania (np. spinacze, karteczki, piłeczki, nakrętki). 3. Uczniowie będą pracować z otrzymanymi kartami pracy, przy czym: Jeden lub dwóch uczniów w grupie będzie trzymać pudełko oznaczające daną zmienną (pomarańcza, banan, itp.). Jeden z uczniów będzie odczytywać innym kod aplikacji "Blockly". Jeden z uczniów będzie udawać robota Dash i wykonywać kod. Pozostali uczniowie analizują kod programu krok po kroku. 4. Poinstruuj uczniów, aby zamieniali się rolami i kartami pracy. LEKCJA 2 Zadania programistyczne. Kiedy uczniowie rozumieją już, co oznaczają zmienne i jak można je wykorzystać w aplikacji Blockly, zacznijmy kolejne zajęcia od zabawy przypominającej te zasady. W zabawie będzie uczestniczyć cała klasa. Zabawa nr 1. Zadania dla uczniów: wyznacz z klasy osobę, która będzie pierwszą zmienną wyznacz z klasy osobę, która będzie drugą zmienną wyznacz w klasie osobę, która będzie poruszać się jak robot, zgodnie z programem wyświetl kod programu tak, aby cała klasa mogła go analizować wspólnie (dwie propozycje kodów do zabawy są dostępne w załączniku Zabawa nr 1 przykładowe kody) uczniowie stają przy tablicy i oznaczają symbolami swoje zmienne, uczeńrobot jest przed tablicą osoby reprezentujące zmienne mają za zadanie zapisywanie kolejno swoich wartości za każdym razem, gdy ulegnie ona zmianie
Przykład 1 Przykład 2 Uwaga: w przykładzie 2 obrót w prawo nigdy nie będzie wykonywalny, ponieważ nigdy wartość pomarańczy nie będzie większa od wiśni. Pozostawmy to uczniom do odkodowania. Zabawa nr 2. Zadania dla uczniów: Poproś uczniów o zapisanie poniższych kodów w aplikacji i przetestowanie, jaki będzie efekt działania robota. Po sprawdzeniu wszystkich kodów, omów z uczniami, jak działały roboty (jakie czynności wykonywały, ile razy je powtarzały). Na koniec poproś o stworzenie własnego kodu z wykorzystaniem zmiennych i zaprezentowanie pracy robota/robotów na forum klasy. Poniższe przykłady możesz pobrać z załącznika Zabawa nr 2 przykładowe kody.
Kod 1 Kod 2 Dźwięk 1 będzie dowolnym dźwiękiem wgranym przez ucznia. Kod 3