PORADNIK METODYCZNY DLA NAUCZYCIELI GIMNAZJUM JAK WYKORZYSTAC PAKIET DYDAKTYCZNY DO NAUCZANIA ALGORYTMIKI I PROGRAMOWANIA NA LEKCJI INFROMATYKI W GIMNAZJUM Nauczanie informatyki w szkole gimnazjalnej ma za zadnie wprowadzić ucznia w świat technologii informacyjnej oraz zapoznać go z elementami informatyki między innymi z algorytmiką i elementami programowania. Do nauczania tego bloku bardzo często wykorzystuje się pakiet ELI oraz środowisko Logo Komeniusz lub Lokomocji, pozwalające na wprowadzenie podstaw programowania. Środowisko żółwia ma swoje ogromne zalety edukacyjne - pobudza wyobraźnię, jest zlokalizowane w języku polskim oraz pozwala uczyć programowania w prosty, wydaje się bardzo zrozumiały dla ucznia sposób. Oczywiście można uczyć podstaw algorytmiki, używając innych narzędzi programistycznych. Pragniemy Państwu przybliżyć Pakiet dydaktyczny do nauczania algorytmiki i programowania opracowany dla szkoły ponadgimnazjalnej - jednak jego elementy można śmiało wykorzystać na lekcjach informatyki w gimnazjum. Wsparciem dla nauczycieli szkół gimnazjalnych są także scenariusze zadań i zadania publikowane w Biuletynie Otwartej Szkoły pod adresem www.otwartaszkola.edu.pl. 1. PAKIET DYDAKTYCZNY DO NAUCZANIA ALGORYTMIKI I PROGRAMOWANIA W roku 2004 w Centrum Certyfikacji i Szkoleń Komputerowych DC Edukacja wspólnie z 26 wybranymi nauczycielami z całej Polski podjęło się w ramach programu firmy Microsoft Partnerstwo dla przyszłości utworzenia narzędzia wspomagającego naukę algorytmiki i programowania. Doświadczenie nauczycieli i zastosowanie nowoczesnej technologii przekazu informacji zaowocowało zbiorem narzędzi dla nauczyciela i ucznia, wspomagających trudny proces nauczania algorytmiki i programowania, z wykorzystaniem nowoczesnego narzędzia programistycznego Visual Basic.NET. Pakiet składa się z następujących elementów: - elektroniczny podręcznik dla ucznia zawierający 28 tematów z zakresu programowania w VB.Net oraz algorytmiki, wzbogacony o elementy interaktywne, ilustracje i animacje; - elektroniczny poradnik dla nauczyciela, zawierający podręcznik ucznia, zbiór uwag technicznych i do realizacji programu, komplet wszystkich programów w wersji źródłowej; - zestaw prezentacji do lekcji wykonanych w programie PowerPoint; - zestaw scenariuszy lekcji do wszystkich tematów; - zestaw testów sprawdzających wiedzę uczniów; - plan wynikowy oraz przedmiotowy system oceniania dla tego bloku materiału. Pakiet otrzymał akceptacje Ministerstwa Edukacji Narodowej w zakresie wykorzystania go jako środka dydaktycznego, zalecanego do użytku szkolnego przez Ministra Edukacji Narodowej, numer zalecenia 2053/2006. Docelowo narzędzie to jest przeznaczone dla szkół ponadgninazjalnych do przedmiotu Informatyka, realizowanego w zakresie rozszerzonym. Jednak sposób jego opracowania, przekazu treści oraz układ materiału pozwalają na wykorzystanie tej cennej pomocy także na poziomie gimnazjalnym. Dotychczasowe doświadczenia nauczycieli gimnazjum pracujących z pakietem i wykorzystujących dodatkowe materiały uzupełniające umieszczane w portalu Otwartej Szkoły potwierdzają jego użyteczność i atrakcyjność również na tym poziomie edukacyjnym. W dalszej części poradnika zaprezentujemy Państwu, jakie tematy oraz materiały można wykorzystać na lekcjach w gimnazjum.
2. WYKORZYSTANIE PAKIETU DYDAKTYCZNEGO DO NAUCZANIA ALGORYTMIKI I PROGRAMOWANIA NA LEKCJACH INFORMATYKI W GIMNAZJUM Podstawa programowa dla przedmiotu informatyka w gimnazjum określa następujące treści z zakresu algorytmiki i programowania punkt 3. w bloku 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 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. Poniżej prezentujemy plan wynikowy dla bloku związanego z algorytmiką i programowaniem w gimnazjum. Podczas zajęć wykorzystywany jest pakiet oraz materiały udostępnione w portalu Otwartej Szkoły, pozwalające na podmienienie pewnych zadań czy rozszerzenie lekcji o dodatkowe, atrakcyjne oraz stosunkowo proste zadania na poziomie szkoły gimnazjalnej. W kolumnie uwagi do realizacji zostały opisane treści, które należy czy można pominąć ze względu na ich stopień trudności oraz brak korelacji z innymi przedmiotami (matematyka, fizyka). Znajdują się tam również propozycje zadań spoza pakietu, które można czy należy wykorzystać na lekcji.
2. Wynikowy plan nauczania Informatyka PLAN WYNIKOWY NA ROK SZKOLNY 200... /200... (Plan obejmuje 50 godzin dydaktycznych.) PRZEDMIOT: Informatyka KLASA:... NAUCZYCIEL:... OGÓLNE CELE KSZTAŁCENIA I WYCHOWANIA: Poznanie podstawowych pojęć z zakresu algorytmiki i programowania. Nabycie umiejętności rozwiązywania i opisywania problemów w sposób algorytmiczny. Nabycie umiejętności zapisywania algorytmów w postaci procedur w języku VB.Net. Poznanie zjawiska rekurencji i przykładów jego wykorzystania. Nabycie umiejętności pisania programów w VB z wykorzystaniem podstawowych konstrukcji języka.
Nr lekcji Temat Czas 1 Dziedzictwo Al-Chorezmiego 2 Wprowadzenie do środowiska MS VB.NET 2 h lub 4 h 2 h : podstawowe podać definicję algorytmu; Wymagania programowe wymienić podstawowe symbole graficzne używane w schematach blokowych; podać sposoby prezentowania i zapisu algorytmów za pomocą: opisu słownego, listy kroków, schematów blokowych, pseudokodu; przedstawić proste działania w postaci algorytmu. : podać definicję języka programowania, kompilatora, interpretera; wymienić podstawowe grupy języków programowania; wymienić po dwa przykładowe języki z każdej grupy; podać definicje podstawowych pojęć związanych ze środowiskiem MS VB.NET projekt, rozwiązanie, kontrolka, właściwości kontrolki. otworzyć istniejący projekt (rozwiązanie); uruchomić aplikację z poziomu środowiska; : ponadpodstawowe wymienić i scharakteryzować rodzaje podstawowych technik algorytmicznych: sekwencja, rozgałęzienie, iteracja (pętla); omówić różnicę pomiędzy problemem algorytmicznym a niealgorytmicznym; zapisać algorytm za pomocą poznanych notacji; zapisać podstawowe struktury algorytmiczne: algorytm sekwencyjny, z rozgałęzieniami, iteracje. : zmienić profil użytkownika za pomocą okna My Profile; odszukać folder rozwiązania i uruchomić program za pomocą pliku wykonywalnego; zmienić podstawowe właściwości Text, Name, BackColor formularza; zmienić obiekt startowy (Startup Object) w rozwiązaniu; Uwagi do realizacji (*) Czas poświęcony na ten temat to 2 godziny. Jeśli jest możliwość, można go rozszerzyć do 4, by poświęcić więcej czasu na ćwiczenia dotyczące zapisywania algorytmów w różnych notacjach. Zagadnienia związane z koncepcjami rozwiązywania problemów, generacjami języków programowania oraz drzewem algorytmu można pominąć lub omówić powierzchownie. W lekcji tej można wykorzystać gotowe projekty, które w przyszłości będą wykonywać uczniowie np. jednoręki bandyta, konwerter długości czy temperatur. Zadania te są na poziomie uczniów pierwszej lub drugiej klasy gimnazjum.
utworzyć nowy projekt; zapisać zmiany dokonywane w projekcie; uruchomić system pomocy (Help). 3 Wykorzystanie kontrolek przy tworzeniu interfejsu aplikacji 2 h : wymienić podstawowe rodzaje kontrolek opisanych w e-podręczniku; opisać pojęcie procedury zdarzenia kontrolki. dodać kontrolkę do formularza jednym z poznanych sposobów; zmienić omawiane na lekcji właściwości kontrolki w oknie Properties; uruchomić i przetestować aplikację; zapisać zmiany w projekcie; kompilować projekt do pliku wykonywalnego. : opisać podstawowe właściwości kontrolek wykorzystywane w programach tworzonych na lekcji; utworzyć nową procedurę zdarzenia zawiązaną z kontrolką; dodać kod zmieniający właściwość Text poznanych kontrolek; dodać kod zmieniający właściwość Visible kontrolki PictureBox; dodać kod zamykający aplikację do procedury obsługi zdarzenia kontrolki; : dodać i zastosować kontrolki typu TabControlr oraz MonthCalendar do formularza. pobrać informacje z kontrolki typu TextBox; użyć znaku łączenia do połączenia łańcuchów znaków. 4 Proste algorytmy liniowe z wykorzystaniem zmiennych 2 h : zapisać proste algorytmy kinowe w postaci listy kroków i schematu blokowego; podać definicję zmiennej; podać definicję stałej; wymienić cechy zmiennej; zadeklarować zmienną w programie; zadeklarować stałą w programie; : wymienić podstawowe typy danych omówione na lekcji; wymienić funkcje konwertujące typy danych omawiane na lekcji. stosować poznane funkcje konwertujące typy danych w programie; stosować zmienne w prostych obliczeniach; stosować polecenie InputBox do Lekcja ta może być rozszerzona o dodatkowe 2 godziny, w celu zwiększenia liczby ćwiczeń poświęconych na tworzenie algorytmów liniowych oraz wykorzystaniu zmiennych w programach. Podczas realizacji można pominąć lub zmniejszyć nacisk na funkcje konwertujące.
przypisywać wartości zmiennym i stałym; wprowadzania danych; stosować polecenie MessageBox do wyprowadzania wartości zmiennych. nazywać zmienne zgodnie z poznanymi konwencjami nazewnictwa zmiennych. 5 Algorytmy z rozgałęzieniami 4 h zapisać proste algorytmu z rozgałęzieniami w postaci listy kroków i schematu blokowego; wymienić operatory porównania i arytmetyczne wykorzystywane w VB.NET; wymienić operatory logiczne wykorzystywane w VB.NET; stosować instrukcję decyzyjną If w prostych programach; stosować operatory arytmetyczne w obliczeniach; stosować operatory porównania i operatory logiczne. napisać konstrukcję instrukcji decyzyjnej If wraz z jej rozwinięciem Else i ElseIf. stosować instrukcję decyzyjną If Then Else ElseIf w prostych programach; stosować w swoich projektach kontrolki typu RadioButton; zadeklarować użycie biblioteki Math; stosować instrukcję If do sprawdzania poprawności wprowadzanych danych. W trakcie realizacji tej lekcji pomijamy zadanie z równaniem kwadratowym. Należy zwrócić uwagę na nabycie umiejętności zapisywania i odczytywania algorytmów z rozgałęzieniami w postaci listy kroków i schematu blokowego. Zadania do wykorzystania na tej lekcji to przykłady Jednoręki bandyta, Obrazkowy bandyta, Konwerter długości czy termometr. 6 Wybór drogi działania 2 h podać składnię instrukcji wyboru Select Case; obliczyć resztę z dzielenia, wykorzystując operator Mod; stosować operatory logiczne w wyrażeniach wykorzystywanych w instrukcji warunkowej. podać przykład użycia operatora Mod; podać przykłady zastosowania instrukcji Select Case; zastosować instrukcję wyboru w prostych algorytmach; sprawdzić poprawność wprowadzanych danych za pomocą instrukcji warunkowej. Lekcja ta zawiera długi i dość trudny dla uczniów program obliczania daty Wielkanocy. Można go pominąć, podobnie jak drugi przykład, i wykorzystać instrukcję Select Case w jednym z wcześniej zrealizowanych projektów, np. Konwerter długości czy Termometr, pokazując inny sposób implementacji
algorytmów z rozgałęzieniami. 7 Algorytmy iteracyjne 2 h podać składnię pętli For Next; wyjaśnić pojęcie iteracji; zastosować pętlę For Next do obliczania średniej n liczb; zapisać algorytm iteracyjny obliczania wartości średniej n liczb za pomocą listy kroków. opisać działanie pętli zagnieżdżonej; zapisać algorytm iteracyjny obliczania wartości średniej n liczb za pomocą schematu blokowego; zastosować pętlę For Next do rozwiązywania problemów, gdzie powtarza się czynności; W trakcie tej lekcji możemy pominąć obliczanie silni i tylko na przykładzie średniej pokazać iteracje i pętlę For. Silnię można zadać do domu jako zadanie dodatkowe dla uczniów chętnych. zmieniać wartość skoku licznika pętli; tworzyć pętle zagnieżdżone z wykorzystaniem instrukcji For Next, np. wyświetlanie tabliczki mnożenia od 1 do 10. 8 Powtarzanie nie musi być uciążliwe, czyli pętle warunkowe 4 h podać składnię instrukcji powtarzania warunkowego While End While; podać składnię instrukcji powtarzania warunkowego Do Loop w poznanych na lekcji wariantach; podać znaczenie słów kluczowych Until i While w składni polecenia Do Loop; zapisać algorytm Euklidesa z odejmowaniem w postaci listy kroków i schematu blokowego; zastosować instrukcje powtarzania warunkowego w prostych algorytmach iteracyjnych obliczanie NWD za pomocą metody Euklidesa, logowanie do programu; wymienić różnice między poznanymi postaciami instrukcji powtarzania warunkowego; zastosować odpowiednią postać instrukcji powtarzania warunkowego w zależności od potrzeb; W trakcie tej lekcji można pominąć działanie debugera i skupić się na wykorzystaniu powtarzania warunkowego do rozwiązania problemów algorytmicznych. Oprócz NWD można wykorzystać zadania Palindrom czy Systemy liczbowe do utrwalenia tej konstrukcji pętli i algorytmów iteracyjnych. W przypadku implementacji tylko NWD wystarczą 2 godziny lekcyjne na realizację tego tematu.
stosować operatory logiczne w budowaniu warunków zakończenia pętli. 11 Procedury i funkcje (llekcja11w podręczniku) 2 h podać definicję programowania proceduralnego i strukturalnego; podać definicję procedury typu Sub i Function; wymienić różnice w sposobie działania procedury i funkcji; określić sposób działania poznanych funkcji matematycznych i tekstowych; W trakcie tej lekcji pomijamy zadanie dotyczące pierwiastków równania kwadratowego. wymienić modyfikatory dostępu; wymienić poznane na lekcji funkcje matematyczne i tekstowe; definiować procedury Sub i Function bez parametrów; wywoływać zdefiniowane procedury i funkcje w programie; rozpoznać początek i koniec procedury, funkcji w kodzie programu; stosować procedury i funkcje wbudowane oraz zdefiniowane przez programistę. podać rodzaje zasięgu zmiennej, procedury i funkcji; określić zakres działania zmiennych, procedur i funkcji na podstawie miejsca ich wystąpienia oraz modyfikatora dostępu; dzielić program na procedury i funkcje bezparametrowe; stosować w programie poznane funkcje tekstowe i matematyczne zgodnie z ich przeznaczeniem; wykorzystywać procedury i funkcje jako składniki wcześniej tworzonych algorytmów. 12 Rekurencja i jej zastosowania (Lekcja17 w podręczniku) 2 h podać definicję rekurencji; wymienić przykłady algorytmów rekurencyjnych (liczba Fibonacciego, silnia); podać definicję grafiki fraktalnej; zapisać w postaci listy kroków i schematu blokowego rekurencyjny algorytm obliczania liczby Fibonacciego; prawidłowo definiować warunki zakończenia wymienić niebezpieczeństwa algorytmów rekurencyjnych; wymienić przykłady grafiki fraktalnej opartej na rekurencji; podać przykłady działań i algorytmów, gdzie wykorzystywana jest rekurencja; zapisać w postaci listy kroków iteracyjny algorytm obliczania liczby Fibonacciego. Lekcja poświęcona rekurencji powinna odwoływać się do techniki algorytmicznej,pomijając programowanie. Uczniowie powinni zapoznać się ideą rekursji oraz jej podstawowymi przykładami. Pisanie programów można pominąć, by nie zniechęcić uczniów do programowania.
rekurencji. Przestawiony powyżej plan wynikowy pozwala na zrealizowanie treści zawartych w podstawie programowej. Oczywiste jest, że można go rozbudować o tablice, sortowania czy wyszukiwania, jednak należy wtedy traktować to jako treści nadobowiązkowe. Mamy nadzieję, że zaprezentowany plan wynikowy przybliży pakiet i pozwoli na jego wykorzystanie podczas lekcji informatyki w gimnazjum. Bibliografia [1] Podstawa programowa przedmiotu informatyka w gimnazjum http://eduseek.interklasa.pl/artykuly/artykul/ida/1326/ [2[ www.otwartaszkola.edu.pl [3] www.programuj.edu.pl