poradnik metodyczny – generator algorytmó · algorytmy, o małym i du żym stopniu zło żono...

40
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 Przykladowe 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 Zalą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 Zalą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 Zalączniki .................................................................................................................... 36 9 Czas trwania lekcji: .................................................................................................... 36 10 Uwagi........................................................................................................................... 36 5 Sposoby sprawdzenia wyników nauczania z wykorzystaniem Generatora Algorytmów ........................................................................................................................ 39

Upload: dinhhuong

Post on 27-Feb-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 2: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

2

6 Bibliografia .................................................................................................................40

Page 3: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 4: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 5: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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:

Page 6: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 7: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 8: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 9: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 10: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 11: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 12: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 13: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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ą;

Page 14: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 15: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 16: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 17: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

17

2. Dodanie bloku wejścia/wyjścia.

Page 18: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 19: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 20: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 21: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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:

Page 22: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 23: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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;

Page 24: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 25: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 26: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 27: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

27

8 ZAŁĄCZNIKI

9 CZAS TRWANIA LEKCJI: 2 x 45 minut

10 UWAGI

Page 28: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 29: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 30: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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;

Page 31: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 32: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

32

8 ZAŁĄCZNIKI

9 CZAS TRWANIA LEKCJI: 2 x 45 minut

10 UWAGI

Page 33: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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;

Page 34: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

34

• program Generator Algorytmów;

• Visual Studio .Net;

• projektor multimedialny lub program NetMeeting.

6 PRZEBIEG LEKCJI

Page 35: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 36: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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

Page 37: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

37

Page 38: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

Poradnik Metodyczny – Generator Algorytmów

38

Page 39: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.

Page 40: Poradnik Metodyczny – Generator Algorytmó · algorytmy, o małym i du żym stopniu zło żono ści. Aplikacja ta umo żliwia te ż zastosowanie podstawowych struktur danych (zmienne

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.