poradnik metodyczny – generator algorytmó · algorytmy, o małym i du żym stopniu zło żono...
TRANSCRIPT
Poradnik Metodyczny – Generator Algorytmów
1
1 Algorytmika w podstawie programowej przedmiotu informatyka w gimnazjum i
szkole ponadgimnazjalnej ....................................................................................................3 1.1 Podstawa programowa a algorytmika w gimnazjum ................................................3
1.2 Podstawa programowa a algorytmika w szkole ponadgimnazjalnej .........................5
1.3 Sposoby prezentacji algorytmów.............................................................................7
2 Sposoby nauczania algorytmów - teoria czy praktyka................................................9
3 Generator Algorytmów jako uniwersalne narzędzie do projektowania i analizy
algorytmów .........................................................................................................................14
4 Przykładowe lekcje z wykorzystaniem Generatora Algorytmów .............................23 Lekcja 1: Poznajemy algorytmy. ...................................................................................23
1 Temat lekcji: ...............................................................................................................23
2 Cele lekcji:...................................................................................................................23 2.1 Wiadomości: .........................................................................................................23
2.2 Umiejętności:........................................................................................................23
3 Metody nauczania.......................................................................................................24
4 Środki dydaktyczne ....................................................................................................24
5 Uwarunkowania techniczne .......................................................................................24
6 Przebieg lekcji.............................................................................................................24
7 Bibliografia .................................................................................................................26
8 Załączniki....................................................................................................................27
9 Czas trwania lekcji: ....................................................................................................27
10 Uwagi...........................................................................................................................27 Lekcja 2: Tajemnice Euklidesa. ....................................................................................28
1 Temat lekcji: ...............................................................................................................28
2 Cele lekcji:...................................................................................................................28 2.1 Wiadomości: .........................................................................................................28
2.2 Umiejętności:........................................................................................................28
3 Metody nauczania.......................................................................................................28
4 Środki dydaktyczne ....................................................................................................28
5 Uwarunkowania techniczne .......................................................................................29
6 Przebieg lekcji.............................................................................................................29
7 Bibliografia .................................................................................................................31
8 Załączniki....................................................................................................................32
9 Czas trwania lekcji: ....................................................................................................32
10 Uwagi...........................................................................................................................32 Lekcja 3: Zastosowanie schematu Hornera....................................................................33
1 Temat lekcji: ...............................................................................................................33
2 Cele lekcji:...................................................................................................................33 2.1 Wiadomości: .........................................................................................................33
2.2 Umiejętności:........................................................................................................33
3 Metody nauczania.......................................................................................................33
4 Środki dydaktyczne ....................................................................................................33
5 Uwarunkowania techniczne .......................................................................................33
6 Przebieg lekcji.............................................................................................................34
7 Bibliografia .................................................................................................................36
8 Załączniki....................................................................................................................36
9 Czas trwania lekcji: ....................................................................................................36
10 Uwagi...........................................................................................................................36
5 Sposoby sprawdzenia wyników nauczania z wykorzystaniem Generatora
Algorytmów ........................................................................................................................39
Poradnik Metodyczny – Generator Algorytmów
2
6 Bibliografia .................................................................................................................40
Poradnik Metodyczny – Generator Algorytmów
3
1 ALGORYTMIKA W PODSTAWIE PROGRAMOWEJ PRZEDMIOTU INFORMATYKA W GIMNAZJUM I SZKOLE
PONADGIMNAZJALNEJ
Pojęcie algorytmu najczęściej jest kojarzone z informatyką. Prawdopodobnie
większość pytanych osób wskazałaby właśnie ten przedmiot jako jego źródło lub wskazała
komputer, jako narzędzie z nim związane. Definicja algorytmu, z którą możemy się spotkać,
zazwyczaj wygląda następująco:
Algorytm opisuje krok po kroku rozwiązanie jakiegoś problemu lub osiągnięcie
wyznaczonego celu1.
Prawdopodobnie najpopularniejszym algorytmem jest algorytm Euklidesa, służący do
obliczenia NWD. W czasach, gdy jeszcze nie było nawet pomysłu na komputery, znany był
już algorytm. Różnica około 2000 lat pomiędzy czasami, w których żył Euklides
a powstaniem pierwszych komputerów świadczy o szerokim zakresie znaczeniowym tego
słowa. Starożytni budowniczowie, tworząc 7 cudów świata, musieli określić sposób realizacji
tak ambitnego i trudnego przedsięwzięcia. Powstanie wielu podobnych piramid oznacza, że
ich twórcy posiadali własny algorytm budowania takich budowli. Jak widać, pojęcie
algorytmu obejmuje szerszy obszar rzeczywistości niż informatyka, natomiast sam algorytm
bardzo często wykorzystujemy w naszym życiu codziennym, nawet nie zdając sobie z tego
sprawy. Dlatego też, pomimo że z pojęciem algorytm często po raz pierwszy mamy do
czynienia na lekcjach informatyki, powinniśmy, próbując go zdefiniować, odwołać się do
innych przykładów, pochodzących z innych sfer życia.
Oczywiście, inaczej rzecz się ma z pojęciem „algorytmika”. Słowo to rozpropagował David
Harel w cyklu swoich wywiadów radiowych „Rzecz o istocie informatyki Algorytmika”,
które później były także wielokrotnie publikowane w postaci książkowej. Te bardzo ciekawe
materiały dotyczą koncepcji i idei informatyki, rozwoju rewolucji komputerowej w oparciu o
algorytmy i naukę o nich, czyli algorytmikę. Algorytmika jest już ściśle powiązana
z informatyką i matematyką, a same komputery zmieniły naszą cywilizację z cywilizacji
przemysłowej, industrialnej na cywilizację informacyjną. Stąd też algorytm jest dziś głównie
kojarzony z komputerami i informatyką. Elementy algorytmiki w szkole możemy przede
wszystkim odnaleźć w podstawie programowej do przedmiotu informatyka, lecz same
algorytmy pojawiają się na innych przedmiotach, takich jak np. matematyka, fizyka czy
technika.
1.1 Podstawa programowa a algorytmika w gimnazjum
Podstawa programowa o przedmiotu informatyka na III etapie kształcenia, czyli w
gimnazjum, w bloku treści zawiera następujące sformułowanie:
Treści: Rozwiązywanie problemów w postaci algorytmicznej. Algorytmy wokół nas, przykłady
algorytmów rozwiązywania problemów praktycznych i szkolnych. Ścisłe formułowanie
1 M. M. Sysło, Algorytmy, algorytmika i algorytmiczne myślenie w szkole „Informatyka w szkole XVII”,
Mielec 2001.
Poradnik Metodyczny – Generator Algorytmów
4
sytuacji problemowych. Opisywanie algorytmów w języku potocznym. Zapisywanie
algorytmów w postaci procedur, które może wykonać komputer. Przykłady algorytmów
rekurencyjnych. Rozwiązywanie umiarkowanie złożonych zadań metodą zstępującą. Przykłady testowania i oceny algorytmów.
Jako osiągnięcia zostały podane: Rozwiązywanie umiarkowanie złożonych problemów przez stosowanie poznanych metod
algorytmicznych.
Jak interpretować te zapisy? Oczywiście pewna interpretacja jest już zawarta
w programie nauczania, który wybraliśmy na tym poziomie kształcenia. Jednak wiele
wskazówek co do realizacji tego trudnego bloku materiału, czasem pomijanego czy
traktowanego po macoszemu, można znaleźć w artykule M.M. Sysły zatytułowanym
„W labiryncie alagorytmów”2.
Ważnym aspektem nauczania algorytmiki jest nauczanie problemowe. Lekcja
z algorytmami nie powinna być odtwórczym poznaniem pewnych schematów rozwiązywania
problemów, lecz uczeń powinien wykorzystać swoje „moce twórcze i intelektualne” do
rozwiązania problemu. Dobre przygotowanie sytuacji problemowych, powinno kształcić
u uczniów umiejętności rozwiązywania ich w sposób algorytmiczny, czyli przemyślany
i oparty na pewnym, stworzonym wcześniej schemacie rozwiązania danego problemu. Można
powiedzieć, że ucząc algorytmiki jednocześnie uczymy rozwiązywania problemów
i tworzymy u ucznia pewien archetyp sposobu postępowania przy problemach o podobnym
sposobie rozwiązania. Odpowiedni dobór sytuacji problemowej i algorytmu stanowi
o powodzeniu lekcji lub jego braku, który najczęściej się objawia zniechęceniem uczniów do
tematów związanych z algorytmami. Zaciekawienie i entuzjazm w wykonywaniu zadań
świadczy o tym, że lekcja była dobrze przygotowana i przemyślana. Poparciem tego jest
znana mi opinia ucznia jednego z liceów szczecińskich, notabene obecnie już absolwenta
prawa, który wspominał lekcje z algorytmiki w następujący sposób: ”Dla mnie to było
ciekawe, takie zagadki, które trzeba było rozwiązać; najgorsze było to, że trzeba było używać
różnych kloców do opisania tego; co mi się czasem myliło”. Pomijając pewną nonszalancję
w przytoczonej wypowiedzi (chodzi o schematy blokowe), świadczy ona, że lekcje
z algortmiki były ciekawe i dobrze zrozumiane przez z ucznia.
Skąd brać przykłady algorytmów rozwiązywania problemów praktycznych
i szkolnych. Na pewno muszą być one oparte na zbiorze pewnych algorytmów, które
uznajemy za klasyczne, lecz należy szukać ich praktycznym odzwierciedleniu w sytuacjach
życia codziennego. Ciekawe przykłady można znaleźć w przywołanym już wcześniej artykule
„W labiryncie algorytmów”.
Ważnym elementem podczas lekcji z algorytmiki jest ścisłe formułowanie sytuacji
problemowych. Uczeń powinien nauczyć się precyzyjnie opisać sytuacje problemową,
ponieważ przenosi się to potem na dobre określenie specyfikacji algorytmu.
Dużo wątpliwości czy pytań budzi w podstawie programowej wpis ”Zapisywanie
algorytmów w postaci procedur, które może wykonać komputer”. Wiąże się to z brakiem
zapisu o nauce programowania za pomocą któregoś z języków programowania. Profesor
M.M. Sysło w swoim artykule dotyczącym informatyki w gimnazjum wskazuje tu wiele
możliwości rozwiązania tego problemu. Podaje on, że pojecie „procedury dla komputera”
można rozumieć bardzo szeroko. Mogą to być, oprócz często wykorzystywanego w
gimnazjum języka Logo, programy wykonujące algorytmy i pozwalające na zmianę
2 M.M. Sysło, W labiryncie algorytmów, Informatyka w szkole, Lublin 1998
Poradnik Metodyczny – Generator Algorytmów
5
parametrów przez uczniów, by badać ich wpływ na otrzymane wyniki. Mogą to też być
aplikacje pozwalające na tworzenie algorytmów, bez znajomości konkretnego języka
programowania. Przykładem takiego programu jest Generator Algorytmów, pozwalający
tworzyć nie tylko schematy blokowe, lecz także za pomocą kilku prostych poleceń uzupełniać
schematy o możliwość ich wykonywania, obserwacji przebiegu oraz analizy wyników.
Narzędzia takie, jeśli pozwalają na poznanie podstawowych konstrukcji algorytmicznych
(pętla, rozgałęzienia, podprogram, rekurencja) umożliwiają realizację kolejnego punktu
podstawy programowej: „Podstawowe struktury języków opisu algorytmów”. Aplikacja
Generator Algorytmów umożliwia tworzenie wszystkich wymienionych konstrukcji
algorytmicznych, dzięki czemu można w ciekawy i wizualny sposób realizować różne
algorytmy, o małym i dużym stopniu złożoności. Aplikacja ta umożliwia też zastosowanie
podstawowych struktur danych (zmienne tekstowe, liczbowe, tablice) umożliwiających
implementację, wykonanie i analizę działania algorytmów.
„Testowanie i ocena algorytmów” jest kolejnym elementem podstawy programowej. Uczeń
powinien zrozumieć, że są problemy, w których przypadku komputer pomimo wielkiej mocy
obliczeniowej może mieć kłopoty z znalezieniem rozwiązania (np. problem komiwojażera),
czy też powinien porównać szybkość działania przykładowych algorytmów. Program
Generator Algorytmów daje możliwość obserwacji wartości zmiennych czy śledzenia
wykonywania poszczególnych bloków czy instrukcji zapisanych w algorytmie. Umożliwia to
nie tylko analizę działania, lecz także śledzenie działania i wyszukiwanie błędów w
algorytmie.
Nauczanie algorytmiki na poziomie gimnazjum jest ważne i konieczne. Wymaga ono
przemyślanego doboru przykładów, by uczniowie zobaczyli praktyczne zastosowanie tej
dziedziny nauki. Innym, jeszcze ważniejszym aspektem tego bloku jest dalszy system
nauczania informatyki. Dla większości uczniów będzie to jedyne spotkanie z algorytmami na
poziomie kształcenia 3 i 4 czyli w gimnazjum i szkole ponadgimnazjalnej. W szkole
ponadgimnazjalnej przedmiot informatyka, jest realizowany tylko w wybranych klasach,
natomiast gro uczniów spotyka się z przedmiotem technologia informacyjna, gdzie
algorytmika nie jest nauczana (aczkolwiek używamy jej przy rozwiązywaniu różnych sytuacji
problemowych; jednak nie jest to sformalizowane).
1.2 Podstawa programowa a algorytmika w szkole ponadgimnazjalnej
Algorytmika w szkole ponadgimnazjalnej pojawia się w podstawie programowej przedmiotu
informatyka. Aktualna jeszcze podstawa zawiera następujący zapis:
Treści:
Algorytmika i programowanie: 1. metodyczna analiza i modelowanie umiarkowanie złożonych problemów i procesów
z różnych dziedzin,
2. przegląd algorytmów klasycznych,
3. wybrane techniki projektowania algorytmów i struktur danych: programowanie
strukturalne, zstępujące, abstrakcja danych, metoda kolejnych uściśleń, 4. elementy analizy algorytmów,
5. indywidualna i zespołowa realizacja projektów programistycznych w wybranym
języku wysokiego poziomu.
Osiągnięcia:
Poradnik Metodyczny – Generator Algorytmów
6
Formułowanie sytuacji problemowej, jej modelowanie i rozwiązywanie z użyciem metod
informatycznych.
Od roku 2009 przedmiot ten będzie można zdawać podczas egzaminu maturalnego na
poziomie podstawowym i rozszerzonym. Proponowane zmiany w podstawie wyglądają
następująco:
Poziom podstawowy
Treści:
Algorytmika i programowanie: 1. analiza i modelowanie prostych sytuacji problemowych z różnych dziedzin,
2. podstawowe algorytmy i ich wykorzystanie,
3. podstawowe techniki projektowania i realizacji algorytmów oraz struktur danych:
programowanie strukturalne i modularne, programowanie zstępujące, metoda
kolejnych uściśleń, 4. podstawowe własności algorytmów: zgodność ze specyfikacją, skończoność działania,
złożoność obliczeniowa, efektywność, 5. tworzenie programów w wybranym języku programowania wysokiego poziomu,
6. realizacja niewielkich projektów programistycznych.
Osiągnięcia: Formułowanie sytuacji problemowej, jej modelowanie i projektowanie jej rozwiązania
z użyciem technologii informacyjnej oraz metod informatyki.
Ocenianie wybranych własności uzyskanych rozwiązań. Dokumentowanie rozwiązań.
Poziom rozszerzony:
Treści:
Algorytmika i programowanie: 1. analiza i modelowanie umiarkowanie złożonych sytuacji problemowych z różnych
dziedzin,
2. bardziej zaawansowane algorytmy i ich wykorzystanie,
3. zaawansowane techniki projektowania i realizacji algorytmów,
4. elementy analizy algorytmów: uzasadnienie poprawności, określanie złożoności
obliczeniowej (czasowej) i pamięciowej, badanie efektywności ich komputerowych
realizacji,
5. indywidualna i zespołowa realizacja projektów programistycznych.
Osiągnięcia: Formułowanie sytuacji problemowej, jej modelowanie oraz projektowanie jej rozwiązania
z użyciem technologii informacyjnej i bardziej zaawansowanych technik algorytmicznych.
Ocenianie poprawności i badanie efektywności rozwiązań. Dokumentowanie rozwiązań.
Jak widać, niezależnie od poziomu zdawania algorytmy i algorytmika są ważnym
elementem egzaminu maturalnego. Okazuje się, że najczęściej jest to element, który sprawia
uczniom największe trudności. Analizując zapisy w podstawie, pojawia się pytanie o listę
algorytmów klasycznych. Profesor M.M. Sysło, jeden z twórców polskiej informatyki w
szkole, w swoim artykule „Algorytmy, algorytmika i algorytmiczne myślenie w szkole”
wskazuje, jak interpretować ten zapis.
Autor informuje, iż raczej nie pojawi się oficjalna lista klasycznych algorytmów do
matury, choć, jak podaje, udało się ją kiedyś stworzyć. Założeniem twórców egzaminu
Poradnik Metodyczny – Generator Algorytmów
7
maturalnego z informatyki jest nabycie umiejętności rozwiązywania sytuacji problemowych.
Oczekuje się od ucznia umiejętności rozwiązania problemu w sposób informatyczny
i jednocześnie jak najbardziej efektywny. Jakich więc algorytmów uczyć? Tu należy
analizować informator maturalny i standardy wymagań egzaminacyjnych. Jest to szczególnie
ważne przy możliwości zdawania matury na dwóch poziomach, gdzie nauczyciel powinien
umieć rozdzielić zakres wiedzy z poziomu podstawowego i rozszerzonego.
Generalnie należy pamiętać, by algorytmika była nauczana problemowo. Nabycie
umiejętności prawidłowego odczytania sytuacji problemowej, zdefiniowania problemu,
oczekiwanego rozwiązania pozwalają znaleźć rozwiązanie. Przykładów braku takiej
umiejętności dostarczają często uczniowie, którzy „z marszu” chcą przystąpić do olimpiady
informatycznej, bo, mówiąc językiem potocznym, „piszą sobie jakieś programy”. Zdarza się,
że po otrzymaniu zadań nie są w stanie nawet dobrze zrozumieć problemu podanego do
rozwiązania. Oczywiście, zadania olimpijskie są trudne i mają swoją specyfikę, jednak braki
w zakresie podstaw algorytmiki skutkują niemożnością ich zrozumienia.
Nauczanie algorytmiki na poziomie szkoły ponadgimnazjalnej jest już poparte
nabyciem znajomości języka programowania, wysokiego poziomu. Pojawia się tu pytanie –
razem czy osobno? Więcej informacji na ten temat w dalszej części poradnika.
Podsumowując – algorytmika jest ważnym elementem nauczania w szkole
ponadgimnazjalnej. Uczeń nie tylko powinien nabyć umiejętność rozwiązania problemu
w postaci algorytmu, ale następnie przenieść to na wybrany język programowania.
1.3 Sposoby prezentacji algorytmów
Poznawanie algorytmów i algorytmiki wiąże się ze sposobem jego opisu. Jak wiemy,
istnieje kilka sformalizowanych notacji algorytmów:
- opis słowny,
- lista kroków,
- schemat blokowy,
- pseudokod,
- drzewo algorytmu.
Oczywiście, można by rozpocząć dyskusję nad zaletami i wadami każdego z nich, postarajmy
się jednak tylko krótko je scharakteryzować, pod kątem czytelności czy możliwości
wizualizacji. Wizualizacja algorytmu jest ważnym elementem w procesie nauczania.
Algorymika a szczególnie programowanie charakteryzują się pewną abstrakcją, stąd też
osoby, które nie potrafią sobie wyobrazić, np. zmiennej przechowującej dane w pamięci
komputera, często bardzo trudno przyswajają sobie algorytmy i programowanie. Problem
zazwyczaj nie leży w możliwościach intelektualnych ucznia, lecz w podświadomości
i psychologii. Wielu uczniów stykając się po raz pierwszy z algorytmami, nie potrafi sobie ich
wyobrazić, czyli po prostu zrozumieć ich działania. Zniechęceni pierwszymi krokami
niechętnie i z uprzedzeniem podchodzą do następnych zagadnień, które, co gorsza, są coraz
trudniejsze. Problem ten można częściowo rozwiązać poprzez odpowiednie dobranie sposobu
reprezentacji algorytmów oraz narzędzia wspomagające ich nauczanie. Jednym z nich jest
Generator Algorytmów.
Zazwyczaj dla uczniów najprostszy jest opis słowny. Jest to naturalna konsekwencja
umiejętności wypowiedzi nabytej na lekcjach języka polskiego. Wiadomo jednak, że ten
sposób opisu algorytmu jest mało precyzyjny. Rozwinięciem opisu słownego jest notacja
w postaci listy kroków. Ten sposób zapisu algorytmów jest czytelny i dość przystępny, jeśli
chodzi o zrozumienie algorytmu. Problemem najczęściej spotykanym przy analizie takich
Poradnik Metodyczny – Generator Algorytmów
8
algorytmów jest jego przełożenie na język programowania lub analiza działania algorytmu
w kontekście obserwacji jego kolejnych kroków.
Optymalnym zapisem do tworzenia i analizy wydaje się schemat blokowy. Algorytm
zapisany w tej notacji bardzo łatwo przenieść na dowolny język programowania.
Zastosowanie w schemacie ustandaryzowanych elementów ułatwia jego tworzenie i zwiększa
czytelność zapisanego w ten sposób rozwiązania problemu. Stwierdzenie to nie jest niczym
nowym. Od wielu lat programy pozwalające na tworzenie i analizę algorytmów są oparte na
jego zapisie w postaci schematu blokowego. Programy tego typu np. Generator Algorytmów
pozwalają na różne sposoby wykorzystania tej notacji. Pierwszy z nich to rysowanie
schematów blokowych z wykorzystaniem ustandaryzowanych elementów. Przypomina to
najprostszy zestaw klocków Lego, gdzie tworzymy układankę naszego algorytmu. Program
Generator Algorytmów pozwala w prosty sposób tworzyć schematy, wykorzystując
systemową technikę „ciągnij i upuść”. Wszystkie narysowane można skalować oraz
sprawdzać ich poprawność po kątem poprawności połączeń (tzn. czy elementy mają
połączenia ze wszystkimi wejściami i wyjściami). Aspekt możliwości prostego rysowania
schematów to pierwsza z zalet Generatora Algorytmów.
Jednak dla nowoczesnego narzędzia dydaktycznego to mało, bo przecież można to także
zrobić na przykład w programie MS Visio.
Wspomaganie dydaktyki to nie tylko pomoc w rysowaniu, to przede wszystkim
analiza i symulacja pewnych działań, czyli w naszym przypadku algorytmów. W programie
Generator Algorytmów jest wbudowany prosty pseudojęzyk programowania, umożliwiający
wprowadzenie poleceń, które zostaną wykonane podczas symulacji działania algorytmu.
W trybie Uruchom Generator Algorytmów pozwala on obserwować 3 elementy: kod
Poradnik Metodyczny – Generator Algorytmów
9
wprowadzony do elementów schematu blokowego, wartości zmiennych oraz wartości
wprowadzane i wyprowadzane z konsoli, czyli wartości wejściowe i wyjściowe.
Oczywiście podczas wykonywania algorytmu, który można uruchomić w trybie
automatycznym, blokowym lub polecenie po poleceniu, program podświetla, które elementy
algorytmu są aktualnie wykonywane. Rozwiązanie takie pozwala wprowadzać algorytmy
w dowolnym momencie nauczania informatyki – samodzielnie bez nauki języka
programowania oraz w połączeniu z programowaniem, jako przygotowanie do napisania
programu.
Pozostałe dwa sposoby zapisu algorytmów można wykorzystać w nauczaniu, nie dają
one jednak takich możliwości wizualnych.
Podsumowując – największe możliwości kształtowania umiejętności czytania,
projektowania i tworzenia algorytmów daje schemat blokowy. Prostota zapisu, podział na
elementarne działania oraz możliwość zastosowania narzędzi do wizualizacji oraz symulacji
działania utworzonych schematów pozwala wzbogacić warsztat pracy nauczyciela o bardzo
ciekawe i użyteczne narzędzie jakim jest Generator Algorytmów.
2 SPOSOBY NAUCZANIA ALGORYTMÓW - TEORIA CZY
PRAKTYKA
Nauczanie algorytmiki ciągle budzi wiele pytań – jak uczyć? Osobno algorytmów,
osobno programowania czy może łącząc jedno z drugim. Odpowiedź na to pytanie na pewno
Poradnik Metodyczny – Generator Algorytmów
10
jest trudna, jednak można skorzystać z pewnych wskazówek, by wypracować swój własny
sposób nauczania algorytmiki.
Podstawa programowa w gimnazjum nie wskazuje nauki języka programowania.
Oczywiście, pojawia się tam opisany wcześniej zapis Zapisywanie algorytmów w postaci
procedur, które może wykonać komputer. Jak już wcześniej zostało napisane, interpretacja
profesora M. M. Sysły pozwala na wykorzystanie programów pozwalających na symulację
działania stworzonych algorytmów. Program Generator Algorytmów spełnia takie założenia.
Nie tylko pozwala tworzyć schematy blokowe, lecz także daje możliwość symulacji ich
działania przy zastosowaniu prostego pseudokodu, umożliwiającego opisanie wykonywanych
w nim działań. Aplikacja pozwala nie tylko na tworzenie wszystkich podstawowych struktur
algorytmicznych, lecz także daje możliwość tworzenia i symulacji działania procedur.
Na ilustracji widać schemat blokowy wyszukiwania liniowego. Wypełnienie tablicy
jest realizowane w osobnej procedurze, która zdefiniowana na drugiej karcie, co widać na
rysunku poniżej.
Poradnik Metodyczny – Generator Algorytmów
11
Wprowadzenie podprogramów do Generatora Algorytmów z jednej strony umożliwia
realizację ciekawych i zaawansowanych algorytmów, z drugiej daje świetne możliwości do
wykorzystania generatora w gimnazjum, jako środka wspomagającego nauczanie.
Oczywiście, w trakcie nauczania można uczniom zaproponować elementy programowania,
np. za pomocą języka Logo. Jednak symulacje na pewno dają czytelniejszy obraz
zastosowania i projektowania algorytmów; z małymi wyjątkami. W przypadku rekurencji, do
uczniów bardzo przemawia grafika rekurencyjna, którą stosunkowo łatwo można wykonać
w Logo. Najlepszym rozwiązaniem wydaje się (w miarę możliwości czasowych)
wprowadzenie algorytmów z wykorzystaniem aplikacji do ich wizualnego projektowania
i analizy, natomiast jeśli są możliwości czasowe, utrwalanie i rozszerzanie wiedzy
i umiejętności za pomocą języka programowania, np. Logo, który od lat ma swoich
wielbicieli i ustaloną pozycję w nauczaniu gimnazjalnym. Jeśli chodzi o języki
programowania, doświadczenie autora z VB.Net w gimnazjum wskazują, że to też może być
bardzo atrakcyjny sposób nauki podstaw algorytmiki i programowania.
Inaczej przedstawia się sytuacja w szkole ponadgimnazjalnej. Uczeń oprócz
umiejętności projektowania i sprawdzania algorytmów powinien umieć je zaimplementować
w wybranym języku programowania. Powoduje to dyskusje, czy najpierw uczyć tylko
algorytmiki a potem programowania , czy łączyć i przekazywać wiedzę z tych dziedzin
łącznie. Odpowiedź wydaje się prosta – skoro program w wybranym języku programowania
jest wynikiem realizacji określonego algorytmu, to należy łączyć te dwa elementy. Z pozoru
wydaje się to logiczne, jednak należy pamiętać, że uczeń reaguje wtedy na zwiększoną liczbę
bodźców związanych z poznawaniem nowego materiału. Dla uczniów słabszych może to być
związane z kłopotami w opanowaniu i korelacji otrzymanej wiedzy. Przeciwieństwo tych
działań, czyli tylko algorytmika, jest trudnym wyzwaniem dla uczniów, którzy momentami
nie widzą praktycznego zastosowania czy możliwości realizacji poznanych algorytmów.
Poradnik Metodyczny – Generator Algorytmów
12
Zastosowanie nowoczesnych narzędzi dydaktycznych, takich jak Generator
Algorytmów, daje możliwość pokazania, że algorytmy stają się już zagadnieniem, bardziej
praktycznym i zrozumiałym. Naturalną konsekwencją wydaje się tu połączenie tych dwóch
idei i opracowanie systemu pośredniego. Podczas tworzenia i symulacji algorytmów
wykorzystujemy narzędzia wizualne jak Generator Algorytmów. Jednak nie uczymy
o algorytmach tylko osobno, bez programowania. Rozsądnym rozwiązaniem wydaje się na
początku wprowadzenie Generatora Algorytmów i prostych algorytmów, np. liniowych
i iteracyjnych, w celu oswojenia uczniów z pojęciami algorytmiki i środowiskiem programu.
Następnie rozpoczynamy naukę programowania, wprowadzając uczniów do środowiska
programistycznego i opierając się na poznanych algorytmach i generatorze. W kolejnym
etapie nauczania można połączyć tworzenie i testowanie algorytmów za pomocą opisanej
wcześniej aplikacji, po czym praktycznie implementować je w wybranym przez nauczyciela
środowisku programistycznym.
Wykorzystanie nowoczesnej aplikacji wizualnej, wspomagającej projektowanie,
testowanie i analizowanie algorytmów daje nowe możliwości w zakresie nauczania.
Tradycyjne wykorzystanie foliogramów, rzutnika, projektora multimedialnego wymagało od
uczniów odtwórczej uwagi, czyli jedynie słuchania i obserwowania bez uczestniczenia
w procesie twórczym. Oczywiście, od dłuższego czasu na rynku aplikacji edukacyjnych
istnieją programy wspomagające naukę algorytmiki, jednak Generator Algorytmów jest nową,
dostosowaną do nowoczesnych trendów pedagogiki aplikacją, wspierającą nauczanie
informatyki w zakresie gimnazjum i szkoły ponadgimnazjalnej. Możemy tutaj wyróżnić dwa
sposoby jego wykorzystania.
Jak widać na rysunku powyżej, uczeń tworzy algorytm i może go opisać w czytelny
sposób, podobnie jak za pomocą opisu słownego czy listy kroków.
Jednocześnie w każdym z bloków schematu blokowego można zawrzeć instrukcje
z pseudokodu, zastosowane w generatorze, zbliżające algorytm do postaci programu oraz
jednocześnie umożliwiające jego uruchomienie i symulację działania. Dodatkowo,
projektując algorytm, deklarujemy zmienne, w prosty i intuicyjny sposób. Kształcimy w ten
Poradnik Metodyczny – Generator Algorytmów
13
sposób nawyk planowania i deklaracji zmiennych w programie. Prosta i czytelna forma
deklaracji, nie wiąże ucznia z żadnym z języków programowania, czyli kształtujemy
umiejętność deklaracji zmiennych, bez ukierunkowania jej tylko w stronę jednego języka
programowania.
Warto jeszcze przytoczyć profesora M.M. Sysłę, który w artykule „Algorytmy,
algorytmika i algorytmiczne myślenie w szkole” podaje następujące wnioski odnośnie
nauczania algorytmów w gimnazjum i szkole ponadgimnazjalnej:
• Algorytm powinien pojawiać się jako takie rozwiązanie problemu, które ma
podstawowe cechy „algorytmu informatycznego”, a więc jego docelowa postać może
być przekazana komputerowi do wykonania; przepis kulinarny niech nadal nazywa się
przepisem, sposób uzyskania połączenia telefonicznego za pomocą aparatu
analogowego (czyli klasycznego telefonu) niech będzie instrukcją, podobnie obsługa
każdego urządzenia, a planowanie wycieczki i ubieranie się to procesy decyzyjne.
• Przynajmniej kilka przykładów algorytmów powinno być wykonanych na lekcjach za
pomocą komputera (wśród treści podstawy programowej dla informatyki do
gimnazjum występuje sformułowanie: Zapisywanie algorytmów w postaci procedur,
które może wykonać komputer); w gimnazjum mogą temu służyć realizacje
(implementacje) algorytmów, np. w języku Logo lub w programie ELI, które
przygotuje nauczyciel lub zdolniejsi uczniowie, a w liceum – uczniowie sami
programują algorytmy dla komputerów; oczywiście na zajęciach z technologii
informacyjnej w liceum nie ma miejsca na jawne mówienie o algorytmach, chociaż
będą one cały czas wykonywane przez uczniów w postaci programów, które stosują;
Poradnik Metodyczny – Generator Algorytmów
14
• Powinno znaleźć się również miejsce na przedstawienie algorytmów w innej postaci
komputerowej, niż tylko jako zapisanych w języku programowania, np. jako realizacji
w arkuszu kalkulacyjnym.
• Wynika z tego również, jaka powinna być rola nauki programowania w szkole – ma to
być nauka języka komunikacji człowieka z komputerem, służąca przedstawianiu
komputerowi algorytmów do wykonania; podobnie więc jak w przypadku innych
programów (np. użytkowych), zakres zajęć z programowania powinien być
dostosowany do omawianych algorytmów – nie ma potrzeby wprowadzania sztucznie
konstrukcji języka, które nie będą potrzebne uczniom w opisie algorytmów dla
komputera.3
3 GENERATOR ALGORYTMÓW JAKO UNIWERSALNE
NARZĘDZIE DO PROJEKTOWANIA
I ANALIZY ALGORYTMÓW
Program Generator Algorytmów jest narzędziem wspomagającym nauczanie
algorytmiki zarówno w gimnazjum, jak i w szkole ponadgimnazjalnej.
3 M. M. Sysło, Algorytmy, algorytmika i algorytmiczne myślenie w szkole,, „Informatyka w szkole XVII”,
Mielec 2001.
Poradnik Metodyczny – Generator Algorytmów
15
Interfejs aplikacji składa się z trzech głównych elementów: paska menu, paska
narzędziowego oraz panelu zadań.
Pasek narzędziowy umożliwia tworzenie algorytmów i uruchamianie ich symulacji.
W programie mamy 4 tryby pracy:
Tryb Projektowania - w trybie tym wykonuje się większość operacji związanych
z projektowaniem algorytmu.
Tryb Łączenia - w trybie tym wykonuje się połączenia pomiędzy rozmieszczonymi
blokami.
Tryb Skalowania - umożliwia zmianę rozmiaru wybranego bloku.
Uruchom - przechodzi do trybu analizy przygotowanego algorytmu (analizowane mogą
być wyłącznie algorytmy opisane odpowiednimi instrukcjami).
Dodatkowo aplikacja udostępnia narzędzie do Sprawdź - umożliwiające weryfikację
poprawności budowy algorytmu (sprawdza, czy poszczególne bloki posiadają
wejście/wyjście, czy jest początek i koniec algorytmu) oraz Włącz/Wyłącz siatkę , które
pokazuje i ukrywa siatkę w obszarze roboczym.
Panel zadań umożliwia wybór etapu projektowania algorytmu. Składa się z 5 kart,
umożliwiających tworzenie i opisanie algorytmu.
Karta Elementy zawiera elementy algorytmów, które można umieścić w schemacie
blokowym. Wstawienie nowego bloku do algorytmu polega na przeciągnięciu go w obszar
projektowania algorytmu.
Karta Właściwości pozwala wprowadzać opisy oraz instrukcje kodu do wybranego elementu
schematu blokowego.
Karta Zmienne służy do deklaracji zmiennych wykorzystanych w algorytmie.
Karta Metryczka pozwala na dodanie dodatkowych informacji opisujących algorytm, takich
jak: nazwa; wersja; autor; instytucja; kontakt; data utworzenia oraz data modyfikacji.
Karta Procedury daje możliwość dodawania procedur do algorytmu.
Menu Plik zawiera polecenia umożliwiające zapis, odczyt oraz wymianę algorytmów
pomiędzy komputerami.
Poradnik Metodyczny – Generator Algorytmów
16
Nowy Projekt – utworzenie nowego pustego projektu algorytmu.
Otwórz projekt – otwarcie zapisanego na dysku projektu algorytmu.
Usuń projekt – usunięcie istniejącego projektu, zapisanego na dysku.
Zapisz – zapisanie nowego projektu na dysku.
Zapisz jako – zapisanie prometu na dysku pod zmienioną nazwą.
Importuj algorytm – odczytanie wyeksportowanego algorytmu w postaci paczki.
Importuj procedurę – odczytanie procedury wyeksportowanej do paczki.
Eksportuj algorytm – wyeksportowanie całego algorytmu do pliku, w którym można
przenieść go na inny komputer.
Eksportuj procedurę – wyeksportowanie procedury do pliku, w którym można przenieść ją
na inny komputer.
Drukuj - drukowanie algorytmu.
Tworzenie schematów blokowych
Pierwszym sposobem wykorzystania aplikacji jest tworzenie schematów blokowych.
W tym trybie pracy możemy utworzyć schemat, bez możliwości symulacji jego działania.
Wykorzystujemy tutaj tryb projektowania i łączenia elementów oraz kartę Właściwości do
opisania elementów schematu. Przykładowe etapy projektowania prostego algorytmu
rozwiązania równania liniowego mogą wyglądać następująco:
1. Utworzenie nowego projektu i dodanie bloku granicznego Start.
Poradnik Metodyczny – Generator Algorytmów
17
2. Dodanie bloku wejścia/wyjścia.
Poradnik Metodyczny – Generator Algorytmów
18
3. Opisanie dodanego bloku za pomocą karty Właściwości. Opis jest umieszczony tylko
w polu |Opis elementu
4. Dodanie i opisanie pozostałych elementów algorytmu.
Poradnik Metodyczny – Generator Algorytmów
19
5. Przejście w tryb łączenia, by połączyć wstawione elementy schematu blokowego.
Zapisany w ten sposób algorytm nie daje możliwości symulacji jego działania. Chcąc
wzbogacić go o ten ważny element, umożliwiający obserwację jego działania, należy
wprowadzić pseudokod pozwalający na wprowadzenie danych, wyprowadzenie wyników
i wykonanie obliczeń. Zanim jednak wprowadzimy kod, zadeklarujemy zmienne, potrzebne
w algorytmie. Na karcie Zmienne otwieramy okno dialogowe o tej samej nazwie i dodajemy
zmienne potrzebne w naszym algorytmie.
Poradnik Metodyczny – Generator Algorytmów
20
W kolejnym kroku przechodzimy do karty Właściwości i w polu Formuła elementu
podajemy polecenia, które mają być wykonane w algorytmie. Pełen zakres poleceń
i operatorów znajduje się w pomocy programu.
Po wpisaniu wszystkich poleceń możemy sprawdzić poprawność budowy algorytmu.
Poradnik Metodyczny – Generator Algorytmów
21
Moduł sprawdzania poprawności algorytmu informuje o błędach w jego budowie, np.
braku połączeń pomiędzy blokami. Przykładowy opis błędu może wyglądać następująco:
- wyróżniony element powodujący błąd.
Komunikat błędu:
ten Element musi mieć wyjście
Tak przygotowany algorytm można sprawdzić: czy jest skonstruowany poprawnie i wykonać,
analizując jego kod, wartości zmiennych czy wartości wyświetlone w oknie konsoli. W trybie
wykonywania algorytmu widoczny jest Panel analizy.
Widoczne są na nim 3 karty:
- Kod – wyświetlane na niej są instrukcje zawarte w aktualnie wybranym bloku. Jeśli
w bloku znajduje się kilka instrukcji, dodatkowy znacznik wskazuje instrukcję wykonywaną
w danej chwili.
- Zmienne – wyświetlane są na niej wartości wszystkich zmiennych użytych
w algorytmie.
- Konsola – wyświetla wszystkie wartości wprowadzone do algorytmu oraz dane
zwrócone przez algorytm.
W panelu analizy znajdują się trzy przyciski, umożliwiające wybór sposobu
wykonywania algorytmu:
- Kolejna instrukcja – klinięcie przycisku oznacza wykonanie pojedynczej, kolejnej
instrukcji w algorytmie.
- Kolejny blok – klinięcie przycisku oznacza wykonanie pojedynczego, kolejnego bloku
w algorytmie.
- Wykonaj – automatyczne wykonanie całego algorytmu.
Przyciski sterujące wykonaniem algorytmu pozwalają na wybór optymalnego sposobu
tej czynności, by można było analizować działanie algorytmu, wykonywanie instrukcji
i zmianę wartości zmiennych. Przykładowe wykonanie algorytmu dla analizy wartości
zmiennych może wyglądać następująco:
Poradnik Metodyczny – Generator Algorytmów
22
Dla przykładu podnoszenia do potęgi liczby a, analiza wartości zmiennych po
zakończeniu wykonywania algorytmu będzie wyglądać następująco:
Trybem wykonywania pozwalającym na dokładne śledzenie etapów wykonywania
algorytmów jest wykonywanie instrukcja po instrukcji. Więcej informacji dotyczących
Poradnik Metodyczny – Generator Algorytmów
23
poleceń specjalnych, operatorów czy sposobu tworzenia formuł za pomocą okna dialogowego
Formuły można znaleźć w pomocy programu.
4 PRZYKŁADOWE LEKCJE Z WYKORZYSTANIEM GENERATORA ALGORYTMÓW
Zastosowanie Generatora Algorytmów na lekcji może być różne, począwszy od
tematów wprowadzających do algorytmiki, aż do analizy i realizacji algorytmów z zadań
maturalnych. Przykładowe scenariusze 3 lekcji mają ułatwić wykorzystanie tej ciekawej
i nowoczesnej aplikacji w pracy dydaktycznej. Jedna z zaproponowanych lekcji jest
przeznaczona do gimnazjum, dwie pozostałe są adresowane do szkoły ponadgimnazjalnej.
Dodatkowo załączamy gotowy algorytm do lekcji związanej z wykorzystaniem schematu
Hornera w konwersji liczby binarnej na dziesiętną.
Lekcja 1: Poznajemy algorytmy.
Scenariusz lekcji Scenariusz lekcji Scenariusz lekcji Scenariusz lekcji
1 TEMAT LEKCJI: Poznajemy algorytmy
2 CELE LEKCJI:
2.1 Wiadomości:
Uczeń potrafi:
• podać definicję algorytmu;
• podać proste przykłady algorytmów z życia codziennego;
• wymienić cechy algorytmu;
• wymienić sposoby notacji algorytmów;
• wymienić podstawowe elementy schematu blokowego;
• wymienić podstawowe elementy interfejsu programu Generator Algorytmów;
• opisać zastosowanie Generatora Algorytmów.
2.2 Umiejętności:
Uczeń potrafi:
• utworzyć prosty algorytm liniowy w programie Generator Algorytmów;
• utworzyć nowy projekt algorytmu w programie Generator Algorytmów;
• otworzyć istniejący projekt w Generatorze algorytmów;
• sprawdzać poprawność utworzonego schematu blokowego;
Poradnik Metodyczny – Generator Algorytmów
24
• eksportować i importować algorytmy.
3 METODY NAUCZANIA • pogadanka;
• pokaz;
• ćwiczenie.
4 ŚRODKI DYDAKTYCZNE • komputery w sieci lokalnej;
• aplikacja Generator Algorytmów.
5 UWARUNKOWANIA TECHNICZNE • lokalna sieć komputerowa, składająca się ze stanowisk uczniowskich;
• program Generator Algorytmów;
• projektor multimedialny lub program NetMeeting.
6 PRZEBIEG LEKCJI
Poradnik Metodyczny – Generator Algorytmów
25
Etap Zadanie Przebieg realizacji Uwagi do realizacji
- czynności organizacyjne (5 min)
Faza przygotowawcza
- wprowadzenie do tematu lekcji (5 min)
- pogadanka na temat algorytmów – ustalenie, czy uczniowie zetknęli się już z tym pojęciem;
- podanie tematu lekcji;
- przedstawienie zagadnień, które zostaną omówione na lekcji, zaciekawienie uczniów jej treścią.
- działania algorytmiczne i niealgorytmiczne (10 min)
- omówienie trybu postępowania przy przechodzeniu przez ulicę;
- zapisanie opisanych kroków postępowania;
- wprowadzenie pojęcia algorytmu;
- podanie przykładów działań algorytmicznych, podanie przykładu działań niealgorytmicznych.
- cechy algorytmów i ich rodzaje (15min)
- rozmowa na temat ”Jaki powinien być algorytm”;
- wyszczególnienie i zapisanie przez uczniów cech algorytmu;
- analiza dwóch przykładowych algorytmów – obliczania pola trójkąta oraz miejsca zerowego funkcji liniowej, zauważenie możliwości rozgałęzienia w drugim algorytmie;
- opis podstawowych rodzajów algorytmów - liniowe, z rozgałęzieniami, iteracyjne wraz z przykładami.
- sposoby zapisu algorytmów (10 min)
- opisanie przykładowego algorytmu, np. obliczania pola trójkąta;
- poznanie sposobów notacji algorytmów (prezentacja przykładowego algorytmu w różnych notacjach – opis słowny, lista kroków, schemat blokowy);
- porównanie poznanych notacji, pod kątem ich czytelności.
Faza realizacyjna
- wprowadzenie do programu Generator Algorytmów (10 min)
- uruchomienie programu Generator Algorytmów;
- omówienie interfejsu aplikacji;
Generator Algorytmów
Poradnik Metodyczny – Generator Algorytmów
26
- utworzenie prostego algorytmu liniowego w Generatorze Algorytmów (20 min)
- zapisanie na tablicy w postaci listy kroków algorytmu obliczania miejsca zerowego funkcji liniowej (wybieramy wersję algorytmu bez rozgałęzień);
- ustalenie, jakie elementy schematu blokowego zostaną użyte w programie;
- omówienie trybu projektowania – wstawienie elementów schematu blokowego i ich opisanie;
- omówienie trybu łączenia – połączenie wstawionych elementów i kontrola poprawności algorytmu;
- wyeksportowanie utworzonych algorytmów.
- samodzielne zaprojektowanie algorytmu liniowego z wykorzystaniem Generatora Algorytmów (10 min)
- omówienie pracy do wykonania - zaprojektowanie i utworzenia algorytmu obliczania pola koła;
- wykonanie algorytmu przez uczniów;
- wyeksportowanie algorytmu do folderu wskazanego przez nauczyciela w celu sprawdzenia i ocenienia go.
Faza
podsumowując
a
- omówienie treści poznanych na lekcjach (5 min)
- przypomnienie poznanych właściwości algorytmów;
- przypomnienie poznanych notacji algorytmów;
- przypomnienie wykonanych na lekcji algorytmów.
7 BIBLIOGRAFIA [1] Gurbiel E., Hardt-Olejniczak G., Kołczyk E., Krupicka H., Sysło M. M., Informatyka. Podręcznik dla ucznia gimnazjum, WSiP S. A.. Warszawa 2000.
[2] Bremer A., Sławik M., Poznajemy informatykę. Podręcznik dla gimnazjum, Wyd. Videograf 2000.
Poradnik Metodyczny – Generator Algorytmów
27
8 ZAŁĄCZNIKI
9 CZAS TRWANIA LEKCJI: 2 x 45 minut
10 UWAGI
Poradnik Metodyczny – Generator Algorytmów
28
Lekcja 2: Tajemnice Euklidesa.
Scenariusz lekcji Scenariusz lekcji Scenariusz lekcji Scenariusz lekcji
1 TEMAT LEKCJI: Tajemnice Euklidesa
2 CELE LEKCJI:
2.1 Wiadomości:
Uczeń potrafi:
• podać zastosowanie algorytmu Euklidesa;
• wymienić dwa warianty algorytmu Euklidesa do obliczania NWD;
• wymienić dodatkowe zastosowania algorytmu Euklidesa;
• wymienić różnice pomiędzy algorytmem Euklidesa z dzieleniem a odejmowaniem.
2.2 Umiejętności:
Uczeń potrafi:
• utworzyć prosty algorytm iteracyjny w programie Generator Algorytmów;
• tworzyć algorytmy w sposób opisowy w Generatorze Algorytmów;
• tworzyć algorytmy umożliwiające ich symulację w Generatorze Algorytmów;
• posługiwać się pseudokodem, operatorami w Generatorze Algorytmów;
• wykonywać, śledzić i analizować algorytm wykonany w Generatorze Algorytmów;
• wykorzystać instrukcję iteracji warunkowej Do...Loop w programie;
• implementować poznane algorytmy w VB .Net
3 METODY NAUCZANIA • pogadanka;
• pokaz;
• ćwiczenie.
4 ŚRODKI DYDAKTYCZNE • komputery w sieci lokalnej;
• zainstalowane środowisko programistyczne Visual Studio .Net;
• aplikacja Generator Algorytmów.
Poradnik Metodyczny – Generator Algorytmów
29
5 UWARUNKOWANIA TECHNICZNE • lokalna sieć komputerowa, składająca się ze stanowisk uczniowskich;
• program Generator Algorytmów;
• Visual Studio .Net;
• projektor multimedialny lub program NetMeeting.
6 PRZEBIEG LEKCJI
Poradnik Metodyczny – Generator Algorytmów
30
Etap Zadanie Przebieg realizacji Uwagi do realizacji
- czynności organizacyjne (5 min)
Faza
przygotowawcza
- wprowadzenie do tematu lekcji (5 min)
- przypomnienie pojęcia iteracji oraz instrukcji powtarzania warunkowego;
- podanie tematu lekcji;
- przedstawienie zagadnień, które zostaną omówione na lekcji, zaciekawienie uczniów jej treścią.
- algorytm Euklidesa
z odejmowaniem (15 min)
- przypomnienie co to jest NWD;
- omówienie algorytmu Euklidesa z odejmowaniem i zapisanie go na tablicy w postaci listy kroków;
- uruchomienie Generatora Algorytmów i otwarcie nowego projektu;
- uczniowie samodzielnie tworzą algorytm opisowy Euklidesa z odejmowaniem;
- sprawdzenie poprawności algorytmów wykonanych przez uczniów.
- symulacja działania algorytmu Euklidesa (10 min)
- modyfikacja algorytmu – wprowadzenie pseudokodu i formuł, do algorytmu;
- uruchomienie algorytmu – analiza jego działania i śledzenie wartości zmiennych użytych w algorytmie.
Faza realizacyjna
- praktyczna implementacja w VB .Net algorytmu Euklidesa z odejmowaniem (15 min)
- otwarcie nowego projektu aplikacji Windows Euklides z odejmowaniem w VB .Net;
- utworzenie interfejsu użytkownika;
- analiza algorytmu – jak przełożyć zapisany algorytm na język VB .Net;
- implementacja procedury obliczającej NWD;
- sprawdzenie poprawności działania programu;
Poradnik Metodyczny – Generator Algorytmów
31
- algorytm Euklidesa
z dzieleniem(10 min)
- omówienie algorytmu Euklidesa z dzieleniem i zapisanie go na tablicy w postaci listy kroków;
- otwarcie nowego projektu w Generatorze Algorytmów;
- uczniowie samodzielnie tworzą algorytm opisowy Euklidesa z dzieleniem;
- sprawdzenie poprawności algorytmów wykonanych przez uczniów.
- symulacja działania algorytmu Euklidesa (10 min)
- modyfikacja algorytmu – wprowadzenie pseudokodu i formuł do algorytmu;
- uruchomienie algorytmu – analiza jego działania i śledzenie wartości zmiennych użytych w algorytmie.
- praktyczna implementacja w VB .Net algorytmu Euklidesa z odejmowaniem (10 min)
- analiza algorytmu – jak przełożyć zapisany algorytm na język VB .Net;
- modyfikacja procedury obliczającej NWD w istniejącym projekcie – dodanie kodu obliczającego NWD metodą z odejmowaniem;
- sprawdzenie poprawności działania programu.
Faza
podsumowując
a
- omówienie treści poznanych na lekcjach (10 min)
- podanie przykładowych zastosowań algorytmu Euklidesa;
- pogadanka na temat „Czy symulacja działania algorytmu ułatwia jego zrozumienie”.
7 BIBLIOGRAFIA [1] E. Gurbiel, G. Hardt-Olejniczak, E. Kołczyk, H. Krupicka, M. Sysło, Informatyka cz. 1, WsiP, Warszawa 2002.
[2] G. Koba, Informatyka cz. 1, Migra, Wrocław 2003.
[3] I. Bujnowski, Z. Talaga, Informatyka t. 1, WSZPWN, Warszawa 2003.
Poradnik Metodyczny – Generator Algorytmów
32
8 ZAŁĄCZNIKI
9 CZAS TRWANIA LEKCJI: 2 x 45 minut
10 UWAGI
Poradnik Metodyczny – Generator Algorytmów
33
Lekcja 3: Zastosowanie schematu Hornera.
Scenariusz leScenariusz leScenariusz leScenariusz lekcji kcji kcji kcji
1 TEMAT LEKCJI: Zastosowanie schematu Hornera
2 CELE LEKCJI:
2.1 Wiadomości:
Uczeń potrafi:
• opisać działanie schematu Hornera;
• opisać reprezentacje liczb w systemie binarnym oraz sposób ich zamiany na liczby dziesiętne;
• opisać zastosowanie schematu Hornera do konwersji liczb binarnych na dziesiętne.
2.2 Umiejętności:
Uczeń potrafi:
• utworzyć schemat blokowy algorytmu dokonującego konwersji z liczby binarnej na dziesiętną z wykorzystaniem schematu Hornera;
• utworzyć algorytm konwersji liczby binarnej na dziesiętną, z wykorzystaniem pseudokodu i formuł do analizy działania algorytmu;
• napisać program konwertujący liczbę binarną na dziesiętną z wykorzystaniem schematu Hornera;
• oszacować liczbę iteracji przy zastosowaniu tradycyjnego sposobu konwersji oraz z wykorzystaniem schematu Hornera;
• analizować utworzony algorytm oraz jego działanie.
3 METODY NAUCZANIA • pogadanka;
• pokaz;
• ćwiczenie.
4 ŚRODKI DYDAKTYCZNE • komputery w sieci lokalnej;
• zainstalowane środowisko programistyczne Visual Studio .Net;
• aplikacja Generator Algorytmów.
5 UWARUNKOWANIA TECHNICZNE • lokalna sieć komputerowa składająca się ze stanowisk uczniowskich;
Poradnik Metodyczny – Generator Algorytmów
34
• program Generator Algorytmów;
• Visual Studio .Net;
• projektor multimedialny lub program NetMeeting.
6 PRZEBIEG LEKCJI
Poradnik Metodyczny – Generator Algorytmów
35
Etap Zadanie Przebieg realizacji Uwagi do realizacji
- czynności organizacyjne (5 min)
Faza przygotowawcza
- wprowadzenie do tematu lekcji (5 min)
- przypomnienie pojęcia schematu Hornera;
- przypomnienie sposobu oszacowania liczby operacji podczas obliczeń z wykorzystaniem schematu Hornera;
- podanie tematu lekcji;
- przedstawienie zagadnień, które zostaną omówione na lekcji, zaciekawienie uczniów jej treścią.
- pozycyjne systemy liczbowe (10 min)
- przypomnienie informacji o systemie dziesiętnym;
- przypomnienie informacji o systemie binarnym;
- konwersja liczby binarnej na dziesiętną.
- wykorzystanie schematu Hornera do konwersji liczby binarnej (10 min)
- zapisanie algorytmu Hornera w postaci listy kroków na tablicy;
- analiza schematu Hornera pod kątem wykorzystania go do konwersji.
- utworzenie algorytmu konwersji liczby binarnej na dziesiętną (25 min)
- otwarcie programu Generator Algorytmów;
- utworzenie procedury wypełniającej tablicę;
- utworzenie algorytmu zamieniającego liczbę binarna na dziesiętną z wykorzystaniem wzoru Hornera.
Faza realizacyjna
- utworzenie programu konwertującego liczbę binarną na dziesiętną (20 min)
- uruchomienie VS .Net;
- utworzenie nowego projektu aplikacji konsolowej;
- utworzenie aplikacji konwertującej liczbę binarną na dziesiętną z wykorzystaniem schematu Hornera.
Poradnik Metodyczny – Generator Algorytmów
36
- analiza efektywności algorytmu opartego na wzorze Hornera (10 min)
- porównanie liczby operacji przy tradycyjnej konwersji oraz opartej na schemacie Hornera.
Faza
podsumowując
a
- omówienie treści poznanych na lekcjach (10 min)
- przypomnienie wzoru Hornera;
- analiza poznanego algorytmu pod kątem konwersji z dowolnego systemu liczbowego na dziesiętny.
7 BIBLIOGRAFIA [1] E. Gurbiel, G. Hardt-Olejniczak, E. Kołczyk, H. Krupicka, M. Sysło, Informatyka cz. 1, WsiP, Warszawa 2002.
[2] G. Koba, Informatyka cz. 1, Migra, Wrocław 2003.
[3] I. Bujnowski, Z. Talaga, Informatyka t. 1, WSZPWN, Warszawa 2003.
[4] M. M. Sysło, Algorytmy, WSiP, Warszawa 1997.
8 ZAŁĄCZNIKI Algorytm konwersji liczby binarnej na dziesiętną dla aplikacji Generator Algorytmów
9 CZAS TRWANIA LEKCJI: 2 x 45 minut
10 UWAGI
Poradnik Metodyczny – Generator Algorytmów
37
Poradnik Metodyczny – Generator Algorytmów
38
Poradnik Metodyczny – Generator Algorytmów
39
Przedstawione powyżej przykładowe scenariusze pokazują, w jaki sposób można
wykorzystać Generator Algorytmów na lekcjach oraz łączyć nauczanie algorytmiki
z nauczaniem programowania.
5 SPOSOBY SPRAWDZENIA WYNIKÓW NAUCZANIA Z WYKORZYSTANIEM GENERATORA ALGORYTMÓW
Sprawdzenie wyników nauczania jest bardzo ważnym elementem procesu
dydaktycznego. Zazwyczaj jest postrzegane przez uczniów jako sposób na zwiększenie ilości
nauki, rzadziej jako narzędzie mające wskazywać luki w opanowanym materiale. Program
Generator Algorytmów umożliwia ewaluację lekcji czy bloku materiału. Przykładowe
sposoby jego wykorzystania zostały opisane poniżej.
Uczniowie samodzielnie tworzą algorytmy w postaci opisowej – najprostszy sposób
wykorzystania aplikacji. Polecenie Eksportuj algorytm pozwala przenieść algorytm na inny
komputer posiadający zainstalowany Generator Algorytmów.
Uczniowie samodzielnie tworzą algorytmy i sprawdzają ich działanie. Ten sposób
sprawdzania wiedzy pozwala na praktyczną weryfikację umiejętności uczniów. Podczas
realizacji zdania należy wykazać się nie tylko pamięciowym opanowaniem schematu, lecz
także umiejętnością deklarowania zmiennych czy, w bardziej zaawansowanej wersji, nawet
tworzeniem podprogramów, czyli procedur.
Uczniowie uzupełniają przygotowany dla nich algorytm. Zadanie to może być realizowane
na różnym stopniu trudności, od najprostszego, czyli wstawienia jednego czy dwóch
brakujących elementów schematu blokowego, do uzupełniania całej procedury lub większego
fragmentu algorytmu. Przykład zaprezentowany poniżej polega na uzupełnieniu schematu
algorytmu o blok obliczający wartość wielomianu za pomocą schematu Hornera, gdzie jest
już gotowa procedura wypełniająca tablicę współczynnikami. Przykładowe zadanie jest
dołączone do poradnika.
Poradnik Metodyczny – Generator Algorytmów
40
Uczniowie dokonują analizy wartości zmiennych w programie, oszacowując w ten sposób efektywność i pracochłonność badanego algorytmu. Metodę tę, możemy nazwać
laboratorium algorytmicznym, ponieważ przypomina badania przeprowadzane na
laboratoriach przedmiotowych.
Przedstawione powyżej metody wskazują na możliwości zastosowania Generatora
Algorytmów. Duża funkcjonalność i elastyczność tej aplikacji pozwala na różne, ciekawe
i efektywne możliwości jej wykorzystywania w procesie dydaktycznym.
6 Bibliografia [1] M. M. Sysło, Algorytmy, algorytmika i algorytmiczne myślenie w szkole, Informatyka
w szkole XVII, Mielec 2001.
[2] M.M. Sysło, W labiryncie algorytmów, Informatyka w szkole, Lublin 1998.
[3] M. M. Sysło, Algorytmy, WSiP, Warszawa 1997.
[4] David Harel, Rzecz o istocie informatyki Algorytmika, WNT, Warszawa 2001.