WYKORZYSTANIE JĘZYKA LOGO W EDUKACJI AUTOR: mgr ADAM BARANOWSKI DLACZEGO LOGO PIERWSZE PROCEDURY ELEMENTARNE JAK WCHODZIMY DO LOGO PROCEDURY ZŁOŻONE LOGO JEST JĘZYKIEM ROZSZERZALNYM POJĘCIE REKURENCJI LISTA I OPIS PROCEDUR ELEMENTARNYCH ZALETY LOGO WYJŚCIE Dlaczego Logo? Dzieci.

Download Report

Transcript WYKORZYSTANIE JĘZYKA LOGO W EDUKACJI AUTOR: mgr ADAM BARANOWSKI DLACZEGO LOGO PIERWSZE PROCEDURY ELEMENTARNE JAK WCHODZIMY DO LOGO PROCEDURY ZŁOŻONE LOGO JEST JĘZYKIEM ROZSZERZALNYM POJĘCIE REKURENCJI LISTA I OPIS PROCEDUR ELEMENTARNYCH ZALETY LOGO WYJŚCIE Dlaczego Logo? Dzieci.

WYKORZYSTANIE JĘZYKA LOGO
W EDUKACJI
AUTOR: mgr ADAM BARANOWSKI
DLACZEGO LOGO
PIERWSZE PROCEDURY
ELEMENTARNE
JAK WCHODZIMY DO
LOGO
PROCEDURY ZŁOŻONE
LOGO JEST JĘZYKIEM
ROZSZERZALNYM
POJĘCIE REKURENCJI
LISTA I OPIS PROCEDUR
ELEMENTARNYCH
ZALETY LOGO
WYJŚCIE
Dlaczego Logo?
Dzieci używają Logo z wielu powodów; język ten zachęca je do
dzielenia rozwiązywanych problemów na mniejsze, prostsze części.
Pozwala on dzieciom na matematyczne przekształcanie wzorków i
obrazków, co umożliwia doskonalenie matematycznych umiejętności
bez żmudnego odrabiania słupków. Przede wszystkim jednak Logo daje
dzieciom władzę nad jednym z najwspanialszych wynalazków
człowieka — komputerem. Dorosłym, Logo stwarza możliwość
poznania programowania strukturalnego w sposób mniej onieśmielający
niż w wielu innych zastosowaniach komputerów. Ponieważ większość
błędów daje się dość łatwo poprawić, a małe, proste procedury mogą
dać ciekawe rezultaty, Logo jest językiem nadającym się dla samouków
i można wtedy się nie obawiać śmieszności z powodu popełnienia
błędu. Najważniejszą rzeczą jest zrozumienie konieczności
projektowania rozwiązań skomplikowanych problemów i dzielenia ich
na pod problemy.
W przeciwieństwie do innych języków dostępnych dla
mikrokomputerów, Logo zostało zaprojektowane nie jako narzędzie do
tworzenia oprogramowania, lecz jako środek do nauczania informatyki i
matematyki.
Mimo tego, że działanie Logo opiera się na operacjach na listach
(Logo jest w pewnym sensie dialektem języka sztucznej inteligencji).
Poświęconym w całości tzw.: grafice żółwia – części Logo najbardziej
atrakcyjnej dla początkujących programistów. Język Logo został
zaprojektowany tak, aby mogły go używać dzieci: nie oznacza to jednak,
że jest on dziecinadą. Naprawdę dobre implementacje tego języka
pozwalają użytkownikowi zgłębić podstawy programowania, a także
badać złożone problemy.
Graficzne możliwości Logo są czymś bardzo specjalnym dlatego, że
opierają się nie na bazie współrzędnych kartezjańskich (x,y) jak to się
dzieje w większości języków programowania, lecz na tzw. geometrii
żółwia. Żółwiem nazwano małego robota, przezroczystą plastykową
kopułkę na kółkach, używaną zazwyczaj przez dzieci do rysowania
różnych linii i figur na kawałku papieru leżącym na podłodze.
W zrozumiałym dla nich języku, dzieci wydają żółwiowi proste
instrukcje NAPRZÓD, WSTECZ, LEWO, PRAWO, a robot je wykonuje.
Polecenia POD (podnieś pióro) i OPU (opuść pióro) sterują piórem
zaznaczającym drogę żółwia. W realizacji ekranowej Logo używa się
umownego żółwia, o pozycji na ekranie zaznaczonej stylizowaną
strzałką, którą zazwyczaj można ukryć. Tego ekranowego żółwia steruje
się takimi samymi poleceniami, jak żółwia-robota. Polecenia POD i OPU
nie sterują jednak ustawieniem pióra. Skutek działania poleceń PRAWO i
LEWO wymaga nieco wyobraźni, ale zasada pozostaje taka sama.
Jest wiele implementacji Logo i programów na wyrost
nazwanych Logo. Niektóre z nich są pełnymi implementacjami języka,
zawierającymi narzędzia do przetwarzania list, wiele jest okrojonymi
wersjami zawierającymi jedynie grafikę żółwia. Przy okazji: zakładamy,
że w naszym minimalnym Logo żółw startuje ze środka ekranu i jest
skierowany w prawo (aczkolwiek często jest on na początku zwrócony ku
górze).
Logo jest językiem rozszerzalnym
Język Logo składa się z gotowych procedur elementarnych oraz
procedur definiowanych przez użytkownika. Zdefiniowane procedury
można przechowywać na dysku, a następnie w miarę potrzeb można ich
używać oddzielnie lub w połączeniu z innymi procedurami. Dzięki temu
właśnie Logo jest językiem rozszerzalnym, który łatwo jest dostosować do
konkretnych potrzeb.
W Logo nie istnieje pojęcie programu; nawet bardzo złożone projekty
realizuje się budując strukturę procedur zawierających wywołania innych
procedur. Trudny projekt można rozbić na małe części i każdą z nich pisać
i uruchamiać oddzielnie, przed wcieleniem jej do całości. Oczywiście, jest
możliwe opisanie całego dużego systemu jedną procedurą. Nie jest to
jednak postępowanie ani proste, ani rozsądne.
Procedurę Logo — zarówno elementarną, jak i zdefiniowaną — wywołuje
się podając jej nazwę. Niektóre procedury wymagają podania argumentów;
wpisuje się je po nazwie procedury, oddzielając od niej spacją (odstępem);
na przykład procedura
NAPRZÓD 50
przesuwa żółwia o 50 jednostek do przodu. Jednostkami są tzw. piksle
(punkty) na ekranie o dużej rozdzielczości. Rozmiar takiej jednostki jest
całkowicie umowny, nie ma to jednak większego znaczenia, ponieważ w
Logo długości traktuje się względnie, a nie bezwzględnie.
Lista procedur elementarnych
Procedura
Skrót
Parametry
POKAŻ ŻÓŁWIA
PŻ
—
NAPRZÓD
NP
<liczba>
Żółw naprzód (liczba) kroków
WSTECZ
WS
<liczba>
Żółw wstecz (liczba) kroków
PRAWO
PW
<liczba>
Żółw w prawo <liczba> stopni
LEWO
LW
<liczba>
Żółw w lewo <liczba> stopni
—
—
POD
Opis
Żółw pojawia się na ekranie
Żółw przestaje zostawiać ślad na
ekranie
OPU
POWTÓRZ
—
—
—
<liczba> <lista>
lub
Żółw zaczyna zostawiać ślad na
ekranie
Powtórz czynności z listy lub
procedurę
<liczba procedura> <liczba> razy
OTO
JUŻ
—
<nazwa> <P1>,
Pozwala zdefiniować nową
—
<P2>
—
procedurę (nazwa) o paraKończy definicję procedury
Warunkowe
wywołanie
procedury
JEŚLI <warunek>
Wywołaj (procedura), jeśli
TO <procedura>
(warunek) jest spełniony
Start/Program/Comlogo
Okno/pokaż pamięć
Obiekty/dodaj procedurę
W okienko wpisujemy nazwę procedury
Pierwsze procedury elementarne
W zasadzie wszystkie możliwe do uzyskania żółwiowe rysunki można
stworzyć używając sześciu poleceń — procedur elementarnych NAPRZÓD,
WSTECZ, PRAWO, LEWO, POD, OPU. Większość implementacji Logo
dopuszcza skrócone formy tych poleceń. Oto przykład prostej procedury wg.
której żółw rysuje kwadrat.
Rysunek przedstawia procedurę na rysowanie kwadratu.
Rysunek przedstawia wykonanie procedury o nazwie kwadrat.
Wartość 200 (przekazywaną do poleceń NAPRZÓD) wybrałem tylko,
dlatego, że na ekranie używanego przeze mnie monitora otrzymuję w ten
sposób sensownych rozmiarów kwadrat. Po narysowaniu całego kwadratu,
ostatnie polecenie PRAWO 90 kończy rysowanie, ustawiając żółwia w tej
samej pozycji, w której się znajdował przed rozpoczęciem rysowania.
Zobaczywszy, w jaki sposób tworzy się kwadrat, wiele osób spodziewa
się że, polecenia pozwalające narysować trójkąt równoboczny wyglądają tak:
NAPRZÓD 50, LEWO 60, NAPRZÓD 50, LEWO 60, NAPRZÓD 50,
LEWO 60
Ponieważ przywykli do określania wewnętrznych kątów w wielokącie.
Nasze postępowanie będzie jednak inne, gdyż geometria żółwia jest oparta
na obchodzeniu wokół rysowanych kształtów. Jeśli pójdziesz na spacer
dookoła trójkąta równobocznego wyrysowanego na ziemi, będziesz się
obracał nie o 60 stopni, lecz o 120 stopni. Żółwie — zarówno na ekranie, jak i
na ziemi — zachowują się tak samo.
Wszystkie zdefiniowane przez nas do tej pory procedury mają jedną
wspólną cechę: mogą rysować kształty o stałych, znanych uprzednio
rozmiarach. Procedury elementarne, takie jak WSTECZ i LEWO, przesuwają
lub obracają żółwia o ileś jednostek. Procedurom zdefiniowanym przez
użytkownika również można przekazywać pewne wartości, wpływające na
wynik wykonania procedury. Jeśli chcemy, żeby tak było, pierwszy wiersz
tekstu definiowanej procedury musi zawierać nazwy wszystkich parametrów,
którymi się ta procedura posłuży. A więc procedura z parametrem służąca do
rysowania trójkąta równobocznego o boku np. a wygląda następująco:
Rysunek przedstawia procedurę o nazwie trójkąt.
Rysunek przedstawia wykonanie procedury o nazwie trójkąt.
Rysowanie wielokątów można wykonać za pomocą prostszych i
krótszych procedur. Logo pozwala uniknąć kilkukrotnego wpisywania tej
samej sekwencji. Procedura POWTÓRZ, w odróżnieniu od poznanych już
procedur elementarnych, wymaga podania dwóch argumentów: liczby
powtórzeń i listy powtarzanych czynności. Pokażę to na przykładzie
ośmiokąta foremnego. W tej procedurze (ośmiokąt) wyrażenie :bok oznacza
wartość jeszcze nie znaną, która może ulegać zmianie (a więc zmienną).
Wyraz :bok jest poprzedzony dwukropkiem celem oznaczenia, że jest to
pewna wartość, a nie nazwa procedury. W chwili użycia procedury ośmiokąt
zmiennej :bok trzeba nadać wartość, pisząc np. Ośmiokąt 50. Po takim
zdefiniowaniu naszej procedury interpretator Logo będzie oczekiwał
podawania wartości przy każdym wywołaniu tej procedury, gdyż napisanie
tylko wyrazu ośmiokąt oznacza bowiem “Narysuj ośmiokąt o nieokreślonych
rozmiarach". A takiego polecenia Logo wykonać nie potrafi.
Rysunek przedstawia procedurę o
nazwie ośmiokąt.
Rysunek przedstawia wykonanie procedury o nazwie ośmiokąt.
PROCEDURY ZŁOŻONE
Żółw sam z siebie nie potrafi zbudować lub zdefiniować procedur, może
je tylko wykonywać, z chwilą gdy mu się powie OTO wiesz JUŻ, jak zrobić.
Pokażę to na prostym przykładzie gwiazdy. W procedurze gwiazda wykorzystam
wcześniej napisaną procedurę na rysowanie trójkąta.
Rysunek przedstawia procedurę na o nazwie gwiazda.
Rysunek przedstawia wykonanie procedury o nazwie gwiazda.
Widać więc, że zdefiniowanych procedur można używać tak
samo, jak procedur elementarnych. Oto inny przykład podwójnej
procedury.
Rysunek przedstawia procedurę o nazwie wzorek
Rysunek przedstawia
wykonanie procedury
o nazwie wzorek
Pojęcie rekurencji.
Zrozumienie mechanizmu rekurencji sprawia trudności wielu osobom.
Rekurencja jest jednym ze sposobów powtarzania pewnych czynności w
nieskończoność. Niektóre interpretatory Logo dopuszczają użycie polecenia
powtarzaj, na zawsze i większość implementacji grafiki żółwia zezwala na
użycie rekurencji. Oto poniżej prosty przykład procedury rysującej spiralę w
kształcie kwadratu.
Rysunek przedstawia
procedurę o nazwie spirala.
Rysunek przedstawia wykonanie procedury o nazwie spirala.
Procedura używa zmiennej :bok, której wartość początkową podaje
użytkownik wywołując Procedurę. Do zmiennej :bok procedura dodaje 10, a więc
w kolejnym samo wywołaniu zmienna :bok na nową, większą wartość,
określającą długość rysowanej linii NAPRZÓD. Gdyby nie podano warunku “jeśli
:bok >300 [stop]”, to żółw by wykonywałby tę czynność w nieskończoność, aż
otrzymalibyśmy cały czarny ekran. Warunek “Jeśli”, nakazuje żółwiowi
sprawdzanie pewnego warunku przed wykonaniem kolejnego polecenia. W
odniesieniu do procedury spirala sprawdzanym warunkiem jest :bok<300. Jeżeli
wartość zmiennej :bok jest mniejsza niż 300 jednostek, jest wykonywane
polecenie “spirala :bok+10”. Jeśli natomiast wartość zmiennej :bok jest większa
lub równa 300, są wykonywane polecenia znajdujące się w następnym wierszu
tekstu procedury.
ZALETY LOGO
Język
Logo
zawiera
wiele
mechanizmów
programowania
charakterystycznych dla języków strukturalnych, wysokiego poziomu. Ponieważ
nie jest łatwo napisać procedurę nic nie robiącą, można powiedzieć, że
wszystkie procedury zdefiniowane przez użytkownika coś robią - jeśli nawet nie
służą do tego, do czego służyć powinny. Zasady działania grafiki żółwia są tak
oczywiste, że wyszukiwanie błędów w procedurach graficznych jest zadaniem
prostym. Większość interpretatorów Logo zawiera mechanizmy śledzenia
przebiegu programu, co jeszcze bardziej upraszcza wyszukiwanie błędów.
Problemem napotykanym przez wielu początkujących programistów jest
zaprojektowanie w danym języku czegoś interesującego, a jednocześnie łatwego
w zapisie i dającego natychmiastowe rezultaty. Można realizować dość złożone
pomysły używając dosłownie tylko kilku poleceń Logo, a rozbudowywanie tych
pomysłów jest w tym języku programowania rzeczą naturalną. Opanowanie
struktury Logo prowadzi do lepszego poznania podobnych struktur w innych,
ogólniejszych językach wysokiego poziomu.
Mówi się, że główną zaletą języka Basic jest jego łatwa przyswajalność,
jest to bez wątpienia prawda. Nie jest on jednak tak samo łatwy w użyciu jak
inne, strukturalne języki programowania. Główną zaś zaletą Logo jest łatwość,
z jaką można go nie tylko się nauczyć, lecz także używać. Ponadto jest to
język, który wprowadza użytkownika w świat programowania strukturalnego,
umiejętności, której w sposób naturalny nie można przyswoić sobie korzystając
z Basicu.
Jako środek nauczania matematyki, rozwiązywania zadań, zwłaszcza
przez małe dzieci. Logo jest niezastąpione. Pozwala dzieciom (i, rzecz jasna,
dorosłym) uprawiać prostą matematykę, bez uciążliwych ćwiczeń i wprawek.
DZIĘKUJĘ ZA OBEJRZENIE
PREZENTACJI
WYJŚCIE