piątek, 8 kwietnia 2016

Trudne pojęcia z polskiego na… polski, cz. 1


Każdy z nas staje przed koniecznością rozwiązywania problemów. Robimy to w szkole, w pracy zawodowej, w każdej innej dziedzinie życia, np.:
  • Przechodząc przez ulicę,
  • Gotując kisiel,
  • Wybierając film, który chcemy obejrzeć w kinie,
  • Rozwiązując zadania podczas lekcji w szkole, odrabiając pracę domową,
  • Porządkując biurko,
  • Pisząc i wysyłając e-mail do znajomych.
Krok za krokiem w stronę algorytmu

Rozwiązując problem, zastanawiamy się, co wiemy/umiemy i jaki ma być efekt naszych działań. Następnie wybieramy takie metody i sposoby realizacji zadania, aby jak najlepiej wykorzystać posiadaną wiedzę i umiejętności. Ustalamy kolejność czynności prowadzących do rozwiązania. Taki precyzyjny opis postępowania, prowadzący do rozwiązania określonego zadania, możemy nazwać algorytmem.
Wszystkie aktywności – czy to w życiu, czy w świecie wirtualnym - oparte są na pewnych algorytmach. Umiejętność tworzenia odpowiedniego schematu działań sprzyja uproszczeniu i uporządkowaniu czynności, które prowadzą do określonego celu.

Planując działanie, powinniśmy pamiętać o trzech zasadach:
  1. Każde działanie powinno być opisane skończoną liczbą operacji. Należy wskazać ostatni krok, określający moment osiągnięcia celu.
  2. Każda operacja musi być zrozumiała i wykonalna dla odbiorcy. Ważne jest dostosowanie poleceń do możliwości wykonawcy. Każdy sposób wykonania, o ile prowadzi do celu, jest dobry.
  3. Istotna jest kolejność wykonywania operacji.
Jakkolwiek dość prostym wydaje się tworzenie i przenoszenie na poziom skryptu algorytmów liniowych, mających postać ciągu poleceń wykonywanych w określonej kolejności (sekwencji zdarzeń), to zapis sytuacji, w której wykonanie jakiejś instrukcji jest uzależnione od spełnienia określonego warunku (np. zaistnienia konkretnej sytuacji), sprawia niejednokrotnie sporo problemów. Podobnie rzecz ma się w odniesieniu do tzw. algorytmów iteracyjnych – sekwencji czynności powtarzanych do określonego skutku, określoną ilość razy lub do momentu spełnienia jakiegoś warunku.
Opierając się na wyżej określonych zasadach tworzenia algorytmów, warto dążyć w swoich działaniach do bazowania na przykładach wziętych z życia. Wiele sytuacji, z którymi uczniowie spotykają się na co dzień, można opisać, korzystając z dostępnych poleceń programistycznych. Przeniesienie tych poleceń na język i sytuacje znane dziecku pozwoli na zrozumienie „jak to działa?”, a w konsekwencji na bezpośrednie i prawidłowe stosowanie ich w trakcie tworzenia algorytmu.

CC BY 2.0

Początek i koniec

Jak już było wspomniane - każde działanie musi mieć precyzyjnie określony początek i koniec. Sposobem na uruchomienie aktywności dziecka może być, bez względu na formę, wydanie polecenia wykonania jakiejś czynności. Analogicznie w przypadku programów, trzeba dać komputerowi sygnał do startu. W odróżnieniu od sytuacji życiowych, forma uruchomienia programu powinna być jednoznaczna. Dla przykładu w programie Scratch takim sygnałem jest naciśnięcie zielonej flagi. Oznacza ono, że stworzony projekt staje się aktywny.
Jednak - odwołując się do sytuacji codziennych - fakt, że dziecko obudziło się (zielona flaga), nie oznacza jeszcze, że podejmie natychmiast jakąkolwiek aktywność. Może tak się stać, ale nie musi. Często czas jakiś spędza jeszcze w łóżku, oczekując na bodziec uruchamiający działanie np. głód, polecenie rodziców itp... Podobnie jest w przypadku programów komputerowych. Zielona flaga w Scratch’u nie tylko uruchamia program, ale - w zależności od koncepcji - może zainicjować wykonanie skryptu, skryptów lub po prostu uaktywnić stan czuwania i oczekiwania na polecenie uruchamiające. Zatem należy uważać, aby precyzyjnie rozróżniać uruchomienie programu od uruchomienia skryptu.
Odwołując się do przykładu z obudzeniem się dziecka, podjęcie przez nie aktywności można rozpatrywać dwojako:
  • dziecko obudziło się (zielona flaga uruchamiająca program) i nie podejmuje żadnej aktywności, ponieważ nie został jeszcze stworzony skrypt dla polecenia kiedy kliknięto zieloną flagę. Dziecko czeka więc na uruchomienie skryptu wstawania z łóżka i podejmowania innej aktywności np. na polecenie rodziców: Wstawaj -> umyj się -> ubierz się -> pościel łóżko -> przyjdź na śniadanie itd.
  • dziecko obudziło się i od razu podejmuje działanie - uruchamia się skrypt dla polecenia kiedy kliknięto zieloną flagę: Wstaje -> myje się -> ubiera się -> ścieli łóżko -> zjada śniadanie itd.
Podobnie jest z uruchamianiem skryptów w Scratch’u. Najczęściej tworzone są programy posiadające skrypty uruchamiane poleceniem kiedy kliknięto zieloną flagę.  Uruchamiają się one natychmiast po kliknięciu zielonej flagi. Czasem jednak koncepcja autora programu zmusza go do pominięcia takiego skryptu, uzależniając start aktywności duszków od wykonania innego działania np. naciśnięcia klawisza spacji.
Trzeba tu jednak uczulić uczniów, że podobnie jak warto wyrabiać nawyk wykonywania pewnych czynności na starcie (drugi wariant wstawania), tak warto również, tworząc program, ułożyć skrypt dla polecenia kiedy kliknięto zieloną flagę, zawierający co najmniej zdefiniowane ustawienia wyjściowe programu np.: kostium, kierunek i pozycję duszka, jaką powinien przyjąć na początku programu, wyjściowe tło sceny czy początkową wartość zmiennych. Unika się w ten sposób późniejszych problemów wynikających z ustawień zapamiętanych po zakończeniu programu.
W środowisku Scratch wszystkie bloczki uruchamiające skrypty różnią się od pozostałych tym, że nie można dołączyć do nich od góry żadnych innych elementów. Dzięki temu uczeń szybko rozpoznaje ich funkcjonalność oraz miejsce w zasobach programu (grupa “Zdarzenia” i “Kontrola”). 

Samo uruchomienie programu bez użycia któregokolwiek z tych bloczków nie przynosi żadnego widzialnego efektu - program przechodzi w stan „czuwania". Wykonują się jedynie skrypty uruchomione bloczkiem: kiedy kliknięto zieloną flagę, o ile są stworzone.
cdn.

autorzy: Michał Demski, Mirek Kelniarz, Wiesława Bednarska, Lidia Aparta

Share:

0 komentarze:

Prześlij komentarz