Algorytmika w podstawie programowej przedmiotu informatyka w gimnazjum i szkole ponadgimnazjalnej...3



Podobne dokumenty
1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

Programowanie i techniki algorytmiczne

Scenariusz lekcji. wymienić najpopularniejsze formaty plików; omówić sposób kodowania znaków drukarskich;

Scenariusz lekcji. potrafi podać formułę obliczającą wartość wielomianu stopnia n w punkcie wg schemat Hornera;

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

Temat 20. Techniki algorytmiczne

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI 2 CELE LEKCJI. 2.1 Wiadomości. 2.2 Umiejętności 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Scenariusz lekcji. wymienić podstawowe typy danych omówione na lekcji; wymienić funkcje konwertujące typy danych, omawiane na lekcji.

Scenariusz lekcji. zdefiniować pojęcia arkusz kalkulacyjny-program i arkusz kalkulacyjnydokument;

Zapisywanie algorytmów w języku programowania

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

napisać konstrukcję instrukcji decyzyjnej If wraz z jej rozwinięciem Else i ElseIf; podać definicję algorytmu z rozgałęzieniami;

1 TEMAT LEKCJI: 2 CELE: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Sposoby przedstawiania algorytmów

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

2. Graficzna prezentacja algorytmów

Scenariusz lekcji. podać definicję metody zachłannej stosowanej w algorytmie; wymienić cechy algorytmów zachłannych;

Scenariusz lekcji. Obliczanie NWD- algorytm Euklidesa.

Roman Mocek Zabrze Opracowanie zbiorcze ze źródeł Scholaris i CKE

Okręgowa Komisja Egzaminacyjna w Krakowie 1

Scenariusz lekcji. opisać zasady programowania strukturalnego; wyjaśnić pojęcia: procedura własna, procedura z parametrem, lista, zmienna;

Algorytmika i programowanie usystematyzowanie wiadomości

Scenariusz lekcji. opisać działanie poczty elektronicznej; opisać podobieństwa i różnice między pocztą elektroniczną i tradycyjną;

Scenariusz lekcji. wymienić podstawowe dynamiczne struktury danych (stos, kolejka, lista, graf, drzewo); opisać sposób dostępu do danych w kolejce;

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE

Temat 5. Programowanie w języku Logo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Scenariusz lekcji. podać definicję liczby pierwszej i naturalnej; opisać sposób szukania liczb pierwszych za pomocą sita Eratostenesa.

1 TEMAT LEKCJI 2 CELE LEKCJI 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE. Scenariusz lekcji. 2.1 Wiadomości. 2.2 Umiejętności.

Scenariusz lekcji. opisać strukturę prezentacji i budowę poszczególnych slajdów; opisać etapy projektowania prezentacji multimedialnej.

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Scenariusz lekcji. wymienić różne sposoby pozyskiwania informacji ze szczególnym uwzględnieniem technologii informatycznej;

podać definicję metody zachłannej stosowaną w algorytmice; wymienić cechy algorytmów zachłannych;

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Scenariusz lekcji. omówić zastosowanie bazy danych; omówić budowę okna programu Biblioteka; omówić budowę bazy danych pola i rekordy;

Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia.

Scenariusz lekcji. wymienić nazwy funkcji logicznych (jeżeli, licz.jeżeli); omówić funkcje, korzystając z informacji zawartych w Pomocy programu;

Scenariusz lekcji. omówić funkcję przycisków kalkulatora kieszonkowego i aplikacji Kalkulator;

1. Zarządzanie informacją w programie Access

Scenariusz lekcji. wymienić podstawowe typy danych omówione na lekcji; zadeklarować zmienną w programie; przypisywać wartości zmiennym i stałym;

Scenariusz lekcji. opisać etapy projektowania i testowania oprogramowania; wymienić zasady tworzenia przejrzystego interfejsu użytkownika;

Algorytmika i pseudoprogramowanie

SCENARIUSZ LEKCJI. Miejsca zerowe funkcji kwadratowej i ich graficzna prezentacja

Dokument komputerowy w edytorze grafiki

Scenariusz lekcji. scharakteryzować elementy bazy danych; opisać sposób zaprojektowania bazy danych;

Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Definicje. Algorytm to:

Scenariusz lekcji. wymienić różnice pomiędzy kryptologią, kryptografią i kryptoanalizą;

Scenariusz lekcji. podać definicję matematyczną grafu; wymienić podstawowe rodzaje grafów;

Scenariusz lekcji. wymienić elementy projektu w ASP.NET; opisać sposoby tworzenia stron ASP.NET; podać przykłady istniejących stron typu.

APL_03_scenariusz_lekcji. Rodzaje kontrolek i ich obsługa w programach. Informatyka. Jadwiga Jezierska. Osiedle Stawki 39/27

Scenariusz lekcji. wymienić podstawowe zasady redakcji tekstu; wymienić elementy budowy dokumentu na podstawie listu oficjalnego;

ALGORYTMY I PROGRAMY

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: Algorytmy z nawrotami 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Scenariusz lekcji. omówić przezroczysty i nieprzezroczysty styl zaznaczania; omówić metody kopiowania, przenoszenia i usuwania fragmentów rysunku;

WYMAGANIA EDUKACYJNE

Z nowym bitem. Informatyka dla gimnazjum. Część II

Scenariusz lekcji. nazwać elementy składowe procedury; wymienić polecenia służące do malowania wnętrza figur;

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Autorski program nauczania

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI 2 CELE LEKCJI. 2.1 Wiadomości. 2.2 Umiejętności 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE

Scenariusz lekcji. opisać podstawowe atrybuty czcionki; scharakteryzować pojęcia indeksu górnego i dolnego; wymienić rodzaje wyrównywania tekstu;

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika

Scenariusz lekcji. wymienić różne sposoby uruchamiania programów; wyjaśnić pojęcie autouruchamiania; omówić metody tworzenia skrótu;

Algorytmy i struktury danych - opis przedmiotu

Plan nauczania informatyki Opracował: mgr Daniel Starego

Scenariusz lekcji. wymienić cechy narzędzia służącego do umieszczania napisów w obszarze rysunku;

Grażyna Koba, Poradnik metodyczny. Informatyka dla gimnazjum Program nauczania wymagania na oceny PRZEDMIOTOWY SYSTEM OCENIANIA KLASA II

Scenariusz lekcji. Scenariusz lekcji. opisać rodzaje zmian, jakie można wykonać na komórkach w Excelu; wskazać jak dane i komórki w Excelu

PROGRAM KOŁA INFORMATYCZNEGO

Scenariusz lekcji. uzasadnić potrzebę przygotowania założeń projektowych bazy danych i określenia celów, do jakich baza danych ma być przeznaczona;

- 1 - Liczba godzin. Nr lekcji. Nr punktu w podręczniku. Zagadnienia do realizacji według podstawy programowej (treści nauczania)

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

PRZEWODNIK PO PRZEDMIOCIE

Scenariusz lekcji. omówić sposoby wstawiania do tekstu obiektów WordArt, ClipArt i rysunków z pliku;

Scenariusz lekcji. wskazać narzędzia służące do formatowania tekstu; opisać przeznaczenie narzędzi do formatowania;

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: Tworzenie prostych skryptów w PHP 2 CELE LEKCJI: 2.1 Wiadomości: 2.

Funkcje i instrukcje języka JavaScript

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

Komputer i urządzenia cyfrowe

Algorytm. Krótka historia algorytmów

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: O czym mówią współczynniki funkcji liniowej? - wykorzystanie arkusza kalkulacyjnego na lekcjach matematyki

Sposoby sprawdzania osiągnięć edukacyjnych uczniów

Scenariusz lekcji z wykorzystaniem monitora interaktywnego

Transkrypt:

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 1

6 Bibliografia...40 2

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 celu 1. 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. 3

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 4

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: 5

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 6

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 7

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 8

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 9

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. 10

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. 11

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 12

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

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. 14

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ę pokazuje i ukrywa siatkę w obszarze roboczym., które 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. 15

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. 16

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

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. 18

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. 19

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. 20

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: Komunikat błędu: ten Element musi mieć wyjście - wyróżniony element powodujący błąd. 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: 21

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 22

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. 1 TEMAT LEKCJI: Poznajemy algorytmy 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicję algorytmu; Scenariusz lekcji 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; 23

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 24

Etap Zadanie Przebieg realizacji Uwagi do realizacji Faza przygotowawcza Faza realizacyjna - czynności organizacyjne (5 min) - wprowadzenie do tematu lekcji (5 min) - działania algorytmiczne i niealgorytmiczne (10 min) - cechy algorytmów i ich rodzaje (15min) - sposoby zapisu algorytmów (10 min) - wprowadzenie do programu Generator Algorytmów (10 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ą. - 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. - 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. - 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. - uruchomienie programu Generator Algorytmów; - omówienie interfejsu aplikacji; Generator Algorytmów 25

Faza podsumowując a - utworzenie prostego algorytmu liniowego w Generatorze Algorytmów (20 min) - samodzielne zaprojektowanie algorytmu liniowego z wykorzystaniem Generatora Algorytmów (10 min) - omówienie treści poznanych na lekcjach (5 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. - 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. - 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. 26

8 ZAŁĄCZNIKI 9 CZAS TRWANIA LEKCJI: 2 x 45 minut 10 UWAGI 27

Lekcja 2: Tajemnice Euklidesa. 1 TEMAT LEKCJI: Tajemnice Euklidesa 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: Scenariusz lekcji 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. 28

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 29

Etap Zadanie Przebieg realizacji Uwagi do realizacji Faza przygotowawcza Faza realizacyjna - czynności organizacyjne (5 min) - wprowadzenie do tematu lekcji (5 min) - algorytm Euklidesa z odejmowaniem (15 min) - symulacja działania algorytmu Euklidesa (10 min) - praktyczna implementacja w VB.Net algorytmu Euklidesa z odejmowaniem (15 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ą. - 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. - modyfikacja algorytmu wprowadzenie pseudokodu i formuł, do algorytmu; - uruchomienie algorytmu analiza jego działania i śledzenie wartości zmiennych użytych w algorytmie. - 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; 30

- algorytm Euklidesa z dzieleniem(10 min) - symulacja działania algorytmu Euklidesa (10 min) - praktyczna implementacja w VB.Net algorytmu Euklidesa z odejmowaniem (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. - modyfikacja algorytmu wprowadzenie pseudokodu i formuł do algorytmu; - uruchomienie algorytmu analiza jego działania i śledzenie wartości zmiennych użytych w algorytmie. - 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. 31

8 ZAŁĄCZNIKI 9 CZAS TRWANIA LEKCJI: 2 x 45 minut 10 UWAGI 32

Lekcja 3: Zastosowanie schematu Hornera. 1 TEMAT LEKCJI: Zastosowanie schematu Hornera 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: Scenariusz lekcji 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; 33

program Generator Algorytmów; Visual Studio.Net; projektor multimedialny lub program NetMeeting. 6 PRZEBIEG LEKCJI 34

Etap Zadanie Przebieg realizacji Uwagi do realizacji Faza przygotowawcza Faza realizacyjna - czynności organizacyjne (5 min) - wprowadzenie do tematu lekcji (5 min) - pozycyjne systemy liczbowe (10 min) - wykorzystanie schematu Hornera do konwersji liczby binarnej (10 min) - utworzenie algorytmu konwersji liczby binarnej na dziesiętną (25 min) - utworzenie programu konwertującego liczbę binarną na dziesiętną (20 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ą. - przypomnienie informacji o systemie dziesiętnym; - przypomnienie informacji o systemie binarnym; - konwersja liczby binarnej na dziesiętną. - zapisanie algorytmu Hornera w postaci listy kroków na tablicy; - analiza schematu Hornera pod kątem wykorzystania go do konwersji. - otwarcie programu Generator Algorytmów; - utworzenie procedury wypełniającej tablicę; - utworzenie algorytmu zamieniającego liczbę binarna na dziesiętną z wykorzystaniem wzoru Hornera. - uruchomienie VS.Net; - utworzenie nowego projektu aplikacji konsolowej; - utworzenie aplikacji konwertującej liczbę binarną na dziesiętną z wykorzystaniem schematu Hornera. 35

Faza podsumowując a - analiza efektywności algorytmu opartego na wzorze Hornera (10 min) - omówienie treści poznanych na lekcjach (10 min) - porównanie liczby operacji przy tradycyjnej konwersji oraz opartej na schemacie Hornera. - 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 36

37

38

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. 39

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. 40