Informacje
Cel
Celem projektu jest pokazanie prostego programu symulującego zachowanie rybek w akwarium napisanego w środowisku Scratch.
Uwaga: nie jest istotne, w którym momencie zakończymy pracę nad projektem. Uczestnicy bardziej zainteresowani lub bieglejsi mogą zrobić więcej. Pozostali nieco mniej. Ważne, żeby pokazać zasadę posługiwania się środowiskiem oraz zainteresować samym programowaniem. Po zajęciach uczestnicy powinni między innymi potrafić sami odszukiwać niezbędne klocki - polecenia języka, by z nich budować swoje programy.
Uwagi do realizacji
w przypadku pracy z wieloma osobami jednocześnie, staramy się pokazywać na dużym ekranie/ tablicy co i dlaczego robimy, a uczestnicy wykonują pracę samodzielnie. Przy pracy indywidualnej z pojedynczymi osobami możemy wykorzystać dwa komputery znajdujące się obok siebie - na jednym pokazujemy, na drugim uczestnik wykonuje zadania. Wszystkie kroki najpierw omawiamy (co i jak trzeba zrobić). Następnie pozwalamy odszukać odpowiednie opcje / klocki, dyskutujemy gdzie je zamieścić i dopiero wszyscy to wykonują. Warto również pozwalać eksperymentować i dochodzić do w łasnych wniosków uczestnikom, a następnie omawiać je i ewentualnie korygować lub pokazywać prostsze rozwiązania. W tle należy przemycać ważne pojęcia dla nauki samego programowania, takie jak pętle czy instrukcje warunkowe.
Wprowadzenie
Pracę zaczynamy od wprowadzenia do środowiska Scretch - opowiadamy na czym polega tworzenie programu, o scenie na której będzie odtwarzany nasz program - np. gra komputerowa, o duszkach, czyli postaciach, którymi możemy sterować poprzez stworzenie dla nich odpowiedniego skryptu by reagowały np. na naciśnięcie klawisza czy myszkę komputera. Zwracamy uwagę na klocki podzielone na różne kategorie oraz obszar skryptów, do którego klocki można przeciągać, łącząc je w program. Zwracamy także uwagę na przyciski uruchamiające i zatrzymujące działanie programu.
Następnie zadajemy pytanie, co się dzieje w akwarium, w którym pływa kilka rybek. Czekamy na odpowiedzi. Możemy je zanotować, a w razie potrzeby nakierować uczestnika (lub uczestników), w taki sposób, by wywiązała się krótka dyskusja i byśmy uzyskali odpowiedzi podobne do niżej zapisanych.
- w środku pływają rybki, sprawiając wrażenie, że robią to dość chaotycznie i bezcelowo,
- w akwarium często są jakieś roślinki,
- jak się zapuka w szybkę - rybki uciekają lub poruszają się w stronę puknięcia (myślą, że jest pora karmienia), • czasem widać pęcherzyki powietrza,
- jak się wrzuci pokarm - płyną w jego stronę.
Maszyna z wprowadzaną przez użytkownika ilością losów
Kiedy uczniowie przygotują ten prosty skrypt prosimy ich, aby zastanowili się w jaki sposób rozbudować kod, aby to użytkownik wprowadzał górną wartość losowanej liczby. Zbieramy przykładowe rozwiązań i prosimy uczniów, aby wykorzystali swoje pomysły. Warto pozwolić im, aby sami poszukali swojego rozwiązania. Warto stworzyć przestrzeń do tego, aby uczniowie prezentowali innym uczniom swoje rozwiązania i zastanawiali się nad tym jak można je udoskonalić. Dopiero kiedy żaden z nich nie znajdzie optymalnego rozwiązania można zapytać w jaki sposób program będzie pobierał od użytkownika górny zakres losowanej liczby. W przypadku korzystania z funkcji „pytania” i „odpowiedzi”, ten drugi klocek może być traktowany jako potrzebna nam zmienna.
Tworzymy maszynę losującą zestaw kilku liczb z określonego zakresu
Skrypt zawiera pola dialogowe z bloków i oraz element losowania z bloku . Wybrany w tej wersji duszek Jay informuje o możliwości wylosowania liczby, następnie zadaje pytanie o zakres liczb i czeka na odpowiedź. Po uzyskaniu odpowiedzi podaje krótki komunikat Losuję.. aby dodać nieco przerwy między podanym zakresem a wylosowaną odpowiedzią. W ostatnim punkcie duszek podaje losowo wybraną liczbę.
"Lotto"
Bazową wersję można rozwinąć o element losowania wielu liczb. Etapy rozwijania skryptu:
- Pytamy dodatkowo o to, ile liczb maszyna ma wylosować.
- Ponieważ o ilości liczb każdorazowo będzie decydował gracz, zamiast tworzyć wiele zmiennych, tworzymy listę Wyniki. ------> Uwaga: (W Bloku Dane wybieramy opcję stwórz listę, zadajemy nazwę (np.: wyniki) oraz oznaczamy ustawienie tylko dla tego duszka. W oknie sceny pojawi się pusta lista, którą możemy ukryć po rozpoczęciu gry, a wyświetlić po wylosowaniu liczb)
- Powtarzamy zadaną liczbę razy (zmienna ile) sekwencję:
- losuj liczbę,
- dodaj do tabeli,
- czekaj (dla stworzenia atmosfery napięcia).
- Liczby mogłyby się powtarzać, więc stosujemy "powtarzaj tak długo aż wylosujesz liczbę, której nie ma na liście" i dopiero wtedy dodajemy do listy.
- Taki program działałby prawidłowo tylko raz, gdyż liczby zapamiętane w pierwszym losowaniu pozostają na liście. W związku z tym po kliknięciu flagi powinniśmy wyczyścić listę (usunąć wszystko).
- Można początkowo ukryć pustą listę i pokazać ją dopiero gdy zaczną pojawiać się wyniki.
Uwaga. Przed pętlą powtarzającą n-razy, należy wylosować liczbę na określonych zasadach, gdyż pominięcie tego bloku może spowodować dodanie liczby spoza zakresu (gdy wcześniej zakres był większy).
Uwaga. Warto w program wbudować zabezpieczenie przed użytkownikami stawiającymi przed programem niemożliwe do wykonanie zadania:
- wylosowania 3 unikalnych liczb spośród 2 (zabezpieczenie to sprawdzenie czy liczba liczb do wylosowania jest mniejsza lub równa od liczby elementów z których losujemy) - w przeciwnym razie program zapętli się i nigdy nie skończy
- wprowadzenia zamiast liczby elementów tekstu lub liczb ujemnych (rozwiązanie to sprawdzenie, czy podana liczba jest większa o zera ORAZ czy wprowadzono liczbę)
Jeśli uczniowie są gotowi mogą przejść do budowy bardziej zaawansowanej maszyny losującej. (patrz scenariusz Maszynka losująca (wersja B).