Metodyka nauczania InformatykiWykład 5Kurs LOGO
1
Co to jest LOGO?
• Środowisko do nauki programowania• Środowisko do nauki za pomocą komputera• Środowisko do poznania komputera• Środowisko do eksperymentowania za pomocą
komputera• Środowisko edukacyjnej zabawy z komputerem
2
To wszystko dla dzieci (?)
Historia LOGO
• Powstał w MIT 1967 (pierwsza wersja)
• Za twórcę uznaje się Seymoura Paperta
• Miał być narzędziem do uczenia dzieci matematyki za pomocą komputera
3
Seymour Papert
Seymour Papert
• Podstawowe idee Paperta:– Relacja pomiędzy dzieckiem i komputerem powinna być
taka, aby dziecku ułatwić programowanie komputera, nie zaś by komputer programował zachowanie i postępowanie dziecka.
– Wszystkie dzieci w odpowiednich warunkach i w odpowiednim środowisku mogą nauczyć się programować.
– Dzieci ucząc się stosowania komputerów mogą zmienić swój sposób uczenia się wszystkiego innego.
4
Zasada „kół zębatych”
• "Wszystko jest łatwe, jeżeli potrafisz to sprowadzić do swego zbioru modeli. Jeżeli nie możesz tego zrobić, wszystko może okazać się boleśnie trudne".
• Proces uczenia się jest zależny od środowiska w którym dziecko się znajduje– Np. dzieci mieszkające we Francji bardzo łatwo uczą się
języka francuskiego w przeciwieństwie do dzieci w innych krajach.
Seymour Papert, Burze mózgów. Dzieci i komputery
Wydanie I (w języku angielskim) 1980, Wydanie I (w języku polskim) 1996
5
LOGO
• Proceduralny/funkcyjny język programowania (nie ma programu jako osobnego bytu)
• Interakcyjny, domyślny interfejs graficzny• Własne procedury i funkcje zachowują się tak
jak procedury i funkcje wbudowane• Oparty na potocznym języku narodowym!
6
LOGO - implementacje
• LOGOMOCJA– Polska wersja LOGOMOCJA (rozszerzenie
słowackiej wersji Logo Komeniusz o „obiekty”):• obiekty (żółw jest obiektem) • wiele żółwi• edytor postaci
– http://logo.oeiizk.waw.pl– Licencja płatna ale niedroga.
7
LOGO - implementacje
• MSW Logo– Wersja angielska (duńska, niemiecka, …)• geometria 3D• nie ma wersji polskiej• bogata literatura
– http://www.softronix.com– Program (i duża część literatury) bezpłatny
8
LOGO podstawy
• Logo – to po grecku „słowo”• Podstawową strukturą LOGO są słowa (napisy)
oddzielane odstępami• Słowa mogą być:– Liczbami (gdy są napisem interpretowalnym jako liczba)– Procedurami lub funkcjami (wbudowanymi lub
definiowanymi przez użytkownika)– Zmiennymi (mogą mieć wartość)– Napisami (mogą być wartością)
9
Słowa - przykłady
• Liczba– 475 5574.544 –12345.854E10
• Procedura/funkcja– naprzód 50 (forward 50)
• Zmienna– :bok (kontekst: naprzód :dalej)
• Słowo– ”napis (kontekst: pokaż ”napis)
10
Procedury
• Każde słowo, które nie jest liczbą i nie jest poprzedzone operatorem jednoargumentowym słowa (”) lub wartości (:) jest procedurą
• Procedura może otrzymać parametry (kojarzone według ONP – wywołania bez nawiasów)
• Procedura może zwracać wartość (jak funkcja)• Gdy argumentem jest procedura to zostaje ona
wykonana w czasie kojarzenia parametrów
11
Kojarzenie parametrówAA procedura z 3 parametramiCC i DD procedury z 2 parametrami
AA BB CC DD EE FF GG HH
Jest interpretowane tak:
AA(BB,CC(DD(EE,FF),GG),HH)
12
Struktury danych
• Liczby (słowa mające postać liczb)• Napisy (słowa poprzedzone znakiem ”)• Listy – ciąg słów lub list oddzielonych odstępami i
ograniczonych nawiasami kwadratowymi– [ AA BB CC ]– [ naprzód 50 procedura aa bb [ cc dd ] ]– [ ] (lista pusta)
13
Operatory
• Dwuargumentowe (muszą być oddzielone odstępem od operandów, notacja infiksowa)– Arytmetyczne• + (dodawanie), – (odejmowanie)• * (mnożenie), / (dzielenie)
– Porównania• =, <, >• =<, >
14
Nawiasy
• Kwadratowe – listy• Klamrowe – komentarz• Okrągłe – grupowanie argumentów dla procedur
mogących przyjmować różną liczbę argumentów– suma 10 20 30 – daje 30 30 (tylko dwa argumenty)– ( suma 10 20 30 ) – daje 60 (wszystkie trzy liczby są
argumentami procedury suma) • Nawiasy muszą być oddzielone od innych elementów
odstępami
15
Grafika żółwia• Płaszczyzna kartezjańska z ukrytym układem współrzędnych –
punkt (0,0) na środku ekranu• „Żółw” – to pisak, którym można sterować i który zostawia
ślad na płaszczyźnie (albo nie – zależnie od ustawienia) • Płaszczyzna może być
– Nieograniczona (na ekranie tylko fragment – żółw wychodzi za ekran i znika z pola widzenia ale robi co mu się każe)
– Ograniczona (brzegi ekranu są nieprzekraczalne dla żółwia – żółw nie wykonuje poleceń wyjścia poza płaszczyznę ekranu)
– Powierzchnią torusa (żółw wychodzi z jednej strony i pojawia się z drugiej strony)
16
Sterowanie żółwiem
• Względne– Przesuń się do przodu lub do tyłu o pewną liczbę jednostek
od pozycji na której jesteś– Przekręć się w lewo lub prawo o podany kąt od kierunku w
który jesteś zwrócony
• Bezwzględne– Przejdź do punktu o podanych współrzędnych– Skieruj się o dany kąt od kierunku północ (do góry ekranu)
17
Procedury wbudowane
Polska Skrót Angielska Skrót Param. Opis
naprzód
np forward fd x Do przodu o x kroków
wstecz ws back bk x Do tyłu o x kroków
ustalpoz
napoz
setpos --- [ x y ]
Przesuń się do punktu (x,y)
lewo lw left lt x Przekręć się w lewo o x stopni
prawo pw right rt x Przekręć się w prawo o x stopni
skieruj skier setheading
--- x Przekręć się o x stopni od kierunku północ
18
Procedury wbudowane
19
Polska Skrót Angielska Skrót Opis
wróć --- home --- Żółw wraca na swoje miejsce początkowe (0,0) skierowanie w górę
zmaż --- clear --- Usuwa wszystko z rysunku, żółw bez zmian
czyść cs clearscreen
cs Wróć+Zmaż (Home+Clear)
podnieś
pod penup pu Żółw przestaje zostawiać ślad
opuść opu pendown pd Żółw znowu zostawia ślad
ścieranie
ścier
penerase pe Pisak staje się gumką
penpaint ppt Pisak znowu jest pisakiem
Procedury wbudowane
20
Polska Skrót Angielska Skrót Opis
schowajmnie sż hideturtle
ht Chowa żółwia
pokażmnie pż showturtle
st Uwidocznia żółwia
oknożółwia --- window --- Płaszczyzna nieskończona
ustawstylzakresu ”płot
--- fence --- Płaszczyzna ograniczona
sklej --- wrap --- Powierzchnia torusa
widoczny? --- szownp --- Funkcja podająca prawda gdy żółw jest widoczny i fałsz gdy go nie widać
Procedury wbudowane
21
Polska Skrót Angielska Skrót Param. Opis
kierunek
--- heading --- Funkcja: liczba stopni o jaką jest przekręcony żółw w prawo od osi OY (od kierunku północ)
azymut towards --- [ x y ]
Funkcja: kąt o jaki trzeba obrócić żółwia w prawo aby był skierowany na punkt (x,y)
distance --- [ x y ]
Funkcja: liczba kroków żółwia aby osiągnąć punkt (x,y)
poz pos --- Funkcja: lista zawierająca współrzędne aktualnego położenia żółwia
Sterowanie - pętle
• Pętla „FOR”– repeat :ile [ co ] powtórz :ile [ co ]
– Powtarza polecenia zawarte w liście :ile razy– :ile może być funkcją podającą liczbę całkowitą– W liście [ co ] można wykorzystywać funkcję
repcount (numpow) podającą numer kolejny danego powtórzenia
22
Sterowanie - warunki
• Instrukcja warunkowa– if warunek [ co gdy tak ]– ifelse warunek [ co gdy tak ] [ co gdy nie ]– jeśli warunek [ co gdy tak ]– jeżeli warunek [ co gdy tak ] [ co gdy nie ]
• Warunek musi dawać wartość logiczną true lub false (prawda fałsz)
23
Procedury i funkcje
• Definiowanie procedury lub funkcji:– to nazwa parametry formalne treść procedury/funkcji
end
– oto nazwa parametry formalne treść procedury/funkcji
już
24
Procedury i funkcje (cd)
• Parametry procedury/funkcji są zawsze przekazywane przez wartość
• Funkcja musi zawierać w treści procedurę– output wynikktórej parametrem jest to co ma zwrócić funkcjaProcedura ta kończy działanie funkcji
• Procedura może zawierać procedurę – stop stop która zatrzymuje bieżącą procedurę i wraca do miejsca jej wywołania
25
Zmienne lokalne procedury
• Wszystkie zmienne z zasady są globalne, ale można wewnątrz procedury zadeklarować zmienne lokalne, które znikną po zakończeniu procedury
• local ”nazwa ( local ”nazwa1 ”nazwa2 ...)• lokalne ”nazwa ( lokalne ”nazwa1 ”nazwa2... )
26
Zmienne
• Nadawanie wartości zmiennym – make ”nazwa wartość– przypisz ”nazwa wartość
– Gdy zmienna nie istnieje to jest tworzona.– Tak utworzone zmienne są globalne bez względu na
miejsce utworzenia– Gdy zmienna jest to jej wartość zostaje zmieniona– Zmienna nie ma ustalonego typu – przyjmuje każdy rodzaj
danych aktualnie podstawiany
27
Rekurencja
• Wszchobecna!– Zamiast pętli „WHILE” – rekurencja– Zamiast zmiennych pomocniczych – rekurencja– Zamiast powtarzania - rekurencja – Gdy nie bardzo wiadomo jak rozwiązać problem –
rekurencja– Zawsze najpierw rekurencja ...
28
Dynamiczne procedury
• Procedury mogą same definiować procedury/funkcje– define ”nazwa [ [ parametry ] [ treść ] ] – określ ”nazwa [ [ parametry ] [ treść ] ] – Jeżeli już taka procedura lub zmienna istnieje to
wystąpi błąd (są predykaty do sprawdzenia, można redefiniować procedury, nawet wbudowane, można odczytać treść procedury)
29
Komunikacja z użytkownikiem
• Pobieranie danych– readlist rl (czytajlistę cl)• Czyta cały wiersz z klawiatury i przekazuje go jako listę
(w nawiasach kwadratowych). Czeka na Enter– readchar rc (czytajznak cz)• Czyta jeden znak z klawiatury nie czeka na Enter
30
Komunikacja z użytkownikiem
• Wypisywanie na ekranie tekstowym:– print (pisz)• Wypisuje dane jako linię tekstu pomijając nawiasy
oznaczające listy– show (pokaż)• Pokazuje parametry takie jakie są – wraz z nawiasami
oznaczającymi listy
31
Organizowanie danych
• word (słowo)– Wszystkie dane łączy tworząc z nich jedno słowo
• sentence (zdanie)– Tworzy listę zawierającą wszystkie dane ale pomija nawiasy
oznaczające listy
• list (lista)– Tworzy listę zawierającą wszystkie dane, elementami tej
listy mogą być listy będące danymi
32
Obsługa list
33
Polska Skrót Angielska Skrót Param. Opis
pierw --- first --- lista Funkcja: pierwszy element z listy
ost --- last --- lista Funkcja: ostatni element z listy
bezpierw
bp butfirst bf lista Funkcja: lista jak w parametrze ale bez pierwszego elementu
bezost bo butlast bl lista Funkcja: lista jak w parametrze ale bez ostatniego elementu
nap --- firstput fp X lista
Funkcja: lista jak w parametrze ale z elementem x na początku
nak --- lastput lp X lista
Funkcja: lista jak w parametrze ale z elementem x na końcu
puste? --- emptyp --- lista Predykat: prawda jeżeli lista jest pusta
Top Related