Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych Autor artykułu: mgr Jerzy Wałaszek |
©2015 mgr
Jerzy Wałaszek
|
Autor: | mgr Jerzy Wałaszek, nauczyciel dyplomowany |
Przeznaczenie: | klasy II i III liceum ogólnokształcącego |
Zakres przedmiotu: | rozszerzony |
Liczba godzin: | 180 (w klasie II 120, w klasie III 60) |
Podstawa prawna: | Rozporządzenie Ministra Edukacji Narodowej z dnia 6 stycznia 2009 r. w sprawie dopuszczania do użytku szkolnego programów wychowania przedszkolnego, programów nauczania i podręczników oraz cofania dopuszczenia |
Podstawa programowa: | Rozporządzenie Ministra Edukacji Narodowej z dnia 23 grudnia 2008 r. w sprawie podstawy programowej wychowania przedszkolnego oraz kształcenia ogólnego w poszczególnych typach szkół (Dziennik Ustaw 15 stycznia 2009 r. Nr 4, poz. 17). |
W trakcie realizacji programu nauczania uczniowie są oceniani za:
Każdy uczeń otrzymuje w ciągu semestru przynajmniej 10 ocen. Na ich podstawie nauczyciel decyduje o ocenie semestralnej lub końcoworocznej.
Oprócz zeszytu pożądane jest, aby każdy uczeń zaopatrzył się w pamięć pendrive, która posłuży mu do przechowywania materiałów. Komputery w pracowni są używane przez wiele różnych osób i trudno zapewnić bezpieczeństwo przechowywanych na nich danych – zdarzały się przypadki usuwania danych. Pamięć pendrive jest obecnie bardzo tania, a może być wykorzystywana również do gromadzenia danych na innych przedmiotach.
Alternatywą dla pamięci pendrive jest założenie konta pocztowego (np. w gmail.com) i przesyłanie w załącznikach listów utworzonych na lekcji danych.
W ciągu semestru uczeń ma prawo być dwa razy nieprzygotowany do zajęć. Nieprzygotowanie nie zwalnia z obowiązku pracy na lekcji. Nie uwzględnia się nieprzygotowania na zapowiedzianych sprawdzianach i testach oraz na zaliczeniach ocen niedostatecznych. Także pod koniec semestru nieprzygotowania uczniów nie będą respektowane - szczególnie odnosi się to do osobników unikających oceniania w trakcie semestru.
Semestr I |
|
Temat i treść lekcji | L. godz. |
Lekcja 1: Organizacja zajęć w pracowni
komputerowej
|
1 |
Lekcja 2: Wprowadzenie do informatyki
|
1 |
Lekcja 3,4: Kodowanie liczb
|
2 |
Lekcja 5,6: Dwójkowe liczby całkowite bez znaku
i ze znakiem w kodzie U2
|
2 |
Lekcja 7,8: Przykładowa maszyna cyfrowa
|
2 |
Lekcja 9,10,11,12: Programowanie przykładowej
maszyny cyfrowej
|
4 |
Lekcja 13,14: Program zaliczeniowy w asemblerze PMC | 2 |
Lekcja 15,16: Wprowadzenie do języka C++
|
2 |
Lekcja 17,18: Zmienne całkowite w języku C++
|
2 |
Lekcja 19,20: Instrukcja warunkowa if
|
2 |
Lekcja 21,22: Liczby zmiennoprzecinkowe
|
2 |
Lekcja 23,24: Pętla warunkowa
|
2 |
Lekcja 25,26: Pętla iteracyjna for
|
2 |
Lekcja 27,28: Algorytmy
|
2 |
Lekcja 29,30: Algorytm Euklidesa obliczania
największego wspólnego dzielnika
|
2 |
Lekcja 31,32,33,34,: Funkcje
|
4 |
Lekcja 35,36: Rekurencja
|
2 |
Lekcja 37,38: Tablice
|
2 |
Lekcja 39,40: Znajdowanie największego i
najmniejszego elementu tablicy
|
2 |
Lekcja 41,42: Przeszukiwanie liniowe i liniowe z
wartownikiem
|
2 |
Lekcja 43,44: Wyszukiwanie binarne i
interpolacyjne
|
2 |
Lekcja 45,46: Wyszukiwanie k-tego największego
elementu w zbiorze
|
2 |
Lekcja 47,48: Wyszukiwanie najczęstszej
wartości, wyszukiwanie lidera
|
2 |
Lekcja 49,50: Liczby pierwsze
|
2 |
Lekcja 51,52: Rozkład liczby naturalnej na
czynniki pierwsze
|
2 |
Lekcja 53,54,55,56: Znaki i łańcuchy znakowe
|
4 |
Lekcja 57,58,59,60: Liczby pseudolosowe
|
4 |
Powtórzenie i utrwalenie materiału, klasyfikacja semestralna | |
Semestr II |
|
Temat i treść lekcji | L. godz. |
Lekcja 61: Szyfr Cezara
|
1 |
Lekcja 62: Szyfr przestawieniowy
|
1 |
Lekcja 63,64: Szyfr podstawieniowy
|
2 |
Lekcja 65,66: Szyfrowanie niesymetryczne RSA
|
2 |
Lekcja 67,68: Obliczanie pierwiastka, szybkie
obliczanie potęg
|
2 |
Lekcja 69,70: Miejsca zerowe funkcji
|
2 |
Lekcja 71,72: Wzór Herona
|
2 |
Lekcja 73,74: Schemat Hornera
|
2 |
Lekcja 75,76,77,78: Sortowanie
|
4 |
Lekcja 79,80: Sortowanie przez scalanie i
sortowanie szybkie
|
2 |
Lekcja 81,82: Sortowanie stogowe
|
2 |
Lekcja 83,84: Sortowanie kubełkowe i przez
zliczanie
|
2 |
Lekcja 85,86: Algorytmy geometryczne
|
2 |
Lekcje 87,88: Stos i ONP
|
2 |
Lekcje 89,90: Kompresja danych
|
2 |
Lekcje 91,92: Programowanie obiektowe
|
2 |
Lekcja 93,94: Struktury dynamiczne
|
2 |
Lekcja 95,96: Lista jednokierunkowa
|
2 |
Lekcja 97,98: Zastosowania list
|
2 |
Lekcja 99,100: Proste algorytmy na listach
|
2 |
Lekcja 101,102,103,104: Drzewa
|
4 |
Lekcja 105,106,107,108: Grafy
|
4 |
Lekcja 109,110: Metody zachłanne
|
2 |
Lekcja 111,112,113,114: Algorytmy rekurencyjne
|
4 |
Lekcja 115,116: Obliczanie całek oznaczonych
|
2 |
Lekcja 117,118,119,120: Projekt wybranej
aplikacji
|
4 |
Wymagane umiejętności na poszczególne oceny szkolne | ||||
Zasady działania komputera |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Określa następujące po-jęcia: bit, bajt. Zna pojęcie systemu pozycyjne-go. Wymienia części składowe zestawu komputerowego, podaje ich parametry i przeznaczenie. Rozróżnia rodzaje pamięci komputera, określa ich własności i przeznaczenie. Wie, co to jest system operacyjny, i korzysta z jego podstawowych funkcji. Wykonuje podstawowe operacje na plikach i fol-derach. |
Wie, co to jest system binarny, i potrafi dokonać zamiany liczby z systemu dziesiętnego na binarny i odwrotnie. Potrafi sklasyfikować środki (urządzenia) i narzędzia (oprogramowanie) technologii informacyjnej. Wie, jak działa komputer. Wyjaśnia rolę procesora. Rozumie organizację pamięci komputerowych. Potrafi omówić funkcje systemu operacyjnego. Zna zasady ochrony plików. Potrafi nadać podstawowe atrybuty plikom, jak też wyszukać poszczególne pliki. |
Potrafi wykonać działania arytmetyczne na liczbach binarnych (dodawanie i odejmowanie). Zna system szesnastkowy i potrafi wykonać konwersję liczb binarnych na liczby w systemie szesnastkowym i odwrotnie. Analizuje model logiczny komputera. Wie, co to jest kod ASCII. Potrafi wymienić rodzaje aktualnie używanych komputerów. Zna metody wyszukiwania plików. |
Potrafi omówić dokładnie działanie procesora. Potrafi wykonać dowolną konwersję pomiędzy systemem dziesiętnym, dwójkowym i szesnastkowym. Zna sposób zapisu liczby całkowitej i rzeczywistej (zmiennoprzecinkowej). Umie wymienić przynajmniej dwa systemy operacyjne i podać ich najważniejsze funkcje. Zna zaawansowane metody wyszukiwania i odzyskiwania plików. Zna przynajmniej jeden algorytm szyfrowania danych. Potrafi zaszyfrować i odszyfrować prosty tekst. |
Zna operacje logiczne na liczbach binarnych i przesunięcia bitowe. Potrafi zapisać w języku programowania wysokiego poziomu algorytm konwersji liczb z dowolnego systemu pozycyjnego na inny. Wykonuje sprawnie operacje na liczbach zapisanych w różnych systemach pozycyjnych. Potrafi odzyskać utracony plik, stosując zaawansowane metody. Potrafi omówić różne systemy operacyjne, wskazać ich najważniejsze funkcje. Samodzielnie wyszukuje informacje na temat kompresji i szyfrowania danych. Zna kilka sposobów szyfrowania informacji. Potrafi zapisać algorytm szyfrowania w postaci programu. Zna działanie algorytmu kompresji. |
Rozwiązywanie problemów algorytmicznych |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Wie, co to jest algorytm. Określa dane do zadania oraz wyniki. Zna podstawowe zasady graficznego prezentowania algorytmów: podstawowe rodzaje bloków, ich przeznaczenie i sposoby umieszczania w schemacie blokowym. Potrafi narysować (odręcznie) schemat blokowy algorytmu liniowego. |
Wymienia przykłady czynności i działań w życiu codziennym oraz zadań szkolnych, które uważa się za algorytmy. Zna pojęcie specyfikacji zadania. Zna wybrane sposoby prezentacji algorytmów. Przedstawia algorytm w postaci listy kroków. Tworzy schemat blokowy algorytmu z warunkiem prostym i pętlą. Podczas rysowania schematów blokowych potrafi wykorzystać Autokształty z edytora tekstu. Korzysta z programu edukacyjnego do symulacji działania algorytmu skonstruowanego w postaci schematu blokowego. |
Określa zależności między problemem, algorytmem a programem komputerowym. Potrafi odpowiedzieć na pytanie, czy istnieją działania, które nie mają cech algorytmów. Przedstawia dokładną specyfikację dowolnego zadania. Zna znaczenie i działanie instrukcji symbolicznego języka programowania (pseudojęzyka). Potrafi zapisać algorytm z warunkami zagnieżdżonymi i pętlą w wybranej postaci. Potrafi skonstruować algorytm z warunkami zagnieżdżonymi i pętlą za pomocą programu edukacyjnego. |
Zapisuje dowolny algorytm w wybranej przez siebie postaci (notacji), m.in. w pseudojęzyku. Zapisuje algorytmy z pętlą zagnieżdżoną. Potrafi przeprowadzić szczegółową analizę poprawności konstrukcji schematu blokowego. Analizuje działanie algorytmu dla przykładowych danych. Stosuje swobodnie oprogramowanie edukacyjne do graficznej prezentacji i analizy algorytmów. |
Przestrzega zasad zapisu algorytmów w zadanej postaci (notacji). Potrafi trafnie dobrać do algorytmu sposób prezentacji. Stosuje poznane metody prezentacji algorytmów w opisie zadań (problemów) z innych przedmiotów szkolnych oraz różnych dziedzin życia. Potrafi samodzielnie zapoznać się z nowym programem edukacyjnym przeznaczonym do konstrukcji schematów blokowych. Potrafi zaproponować własny pseudojęzyk. |
Techniki algorytmiczne i algorytmy klasyczne |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Określa sytuacje warunkowe. Podaje przykłady zadań, w których występują sytuacje warunkowe. Wie, na czym polega powtarzanie tych samych operacji. Potrafi omówić, na przykładzie, algorytm znajdowania najmniejszego z trzech elementów. |
Potrafi odróżnić algorytm liniowy od algorytmu z warunkami (z rozgałęzieniami). Zna pojęcie iteracji i rozumie pojęcie algorytmu iteracyjnego. Podaje ich przykłady. Wie, od czego zależy liczba powtórzeń. Potrafi omówić algorytm porządkowania elementów (metodą przez wybór) na praktycznym przykładzie, np. wybierając najwyższego ucznia z grupy. Omawia i analizuje wybrane techniki sortowania w postaci gotowych schematów blokowych, skonstruowanych w programie edukacyjnym. |
Analizuje algorytmy, w których występują iteracje. Zna sposoby zakończenia iteracji. Określa kroki iteracji. Potrafi zapisać w wybranej notacji np. algorytm sumowania n liczb, algorytm obliczania silni, znajdowania minimum w ciągu n liczb, algorytm rozwiązywania równania liniowego. Zna iteracyjną postać algorytmu Euklidesa. Zna przynajmniej dwie techniki sortowania, np. bąbelkowe i przez wybór. Określa problemy, w których występuje rekurencja i podaje przykłady „zjawisk rekurencyjnych” – wziętych z życia i zadań szkolnych. Zna rekurencyjną realizację wybranego algorytmu, np. silni, liczb Fibonacciego, NWD. |
Zna metodę „dziel i zwyciężaj” , algorytm generowania liczb Fibonacciego, schemat Hornera. Omawia ich iteracyjną realizację i potrafi przedstawić jeden z nich w wybranej notacji. Zna inne algorytmy sortowania, np. kubełkowe, przez wstawianie. Zna przynajmniej jeden algorytm numeryczny, np. obliczanie wartości pierwiastka kwadratowego. Wskazuje różnicę między rekurencją a iteracją. Zna rekurencyjną realizację wybranych algorytmów, np. silnię i algorytm Euklidesa. Potrafi zamienić algorytm zapisany iteracyjnie na postać rekurencyjną.
|
Rozumie dokładnie technikę rekurencji (znaczenie stosu). Potrafi ocenić, kiedy warto stosować iterację, a kiedy rekurencję. Zna trudniejsze algorytmy, np. wieże Hanoi, problem ośmiu hetmanów. Zna inne techniki sortowania, np. sortowanie przez scalanie ciągów i metodę szybką. Potrafi zapisać je w różnych notacjach (również w języku programowania wysokiego poziomu). Zna inne algorytmy numeryczne, np. wyznaczanie miejsca zerowego funkcji. Korzysta samodzielnie z dodatkowej literatury. |
Analiza algorytmów |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Potrafi zanalizować przebieg algorytmu dla przykładowych danych i ocenić w ten sposób jego poprawność. |
Potrafi ocenić poprawność działania algorytmu i jego zgodność ze specyfikacją. Określa liczbę prostych działań zawartych w algorytmie. |
Rozumie, co to jest złożoność algorytmu i potrafi określić liczbę operacji wykonywanych na elementach zbioru w wybranym algorytmie sortowania. |
Potrafi porównać złożoność różnych algorytmów tego samego zadania dla tych samych danych. Wie, kiedy algorytm jest uniwersalny. |
Ocenia złożoność czasową i pamięciową algorytmu. Zna odpowiednie wzory. |
Zasady programowania w języku C++ |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Zna klasyfikację języków programowania. Zna ogólną budowę programu w języku C++ i najważniejsze elementy języka – słowa kluczowe, instrukcje, wyrażenia, zasady składni. Potrafi zrealizować prosty algorytm liniowy w języku C++; potrafi skompilować i uruchomić gotowy program. |
Zapisuje program w czytelnej postaci – stosuje wcięcia, komentarze. Rozumie pojęcia: implementacja, kompilacja, uruchomienie, testowanie. Rozumie znaczenie i działanie podstawowych instrukcji wybranego języka C++. Rozróżnia i poprawia błędy kompilacji i błędy wykonania. Potrafi zrealizować algorytmy iteracyjne w języku C++. Zna podstawowe zasady poprawnego programowania; testuje tworzone programy; wie, jak uniknąć problemów, takich jak np. zapętlenie się programu. |
Potrafi prezentować złożone algorytmy (z podprogramami) w C++. Zna rekurencyjne realizacje prostych algorytmów. Rozumie i stosuje zasady programowania strukturalnego. Wie, na czym polega różnica pomiędzy przekazywaniem parametrów przez referencję i przez wartość w funkcjach C++. Wie, jakie znaczenie ma zasięg działania zmiennej. Rozumie zasady postępowania przy rozwiązywaniu problemu metodą zstępującą. Zna zasady działania wybranych algorytmów sortowania. |
Wie, jaka jest różnica między językiem wysokiego poziomu a językiem maszynowym; potrafi określić rolę procesora i pamięci operacyjnej w działaniu programów. Potrafi realizować nawet bardzo złożone algorytmy. Potrafi prezentować algorytmy rekurencyjne w postaci programu; potrafi zamienić rozwiązanie iteracyjne algorytmu na rekurencyjne. Zapisuje w postaci programu wybrane algorytmy sortowania. Opracowuje złożony program w kilkuosobowej grupie – umie podzielić zadania, ustalić sposoby przekazywania danych pomiędzy procedurami. |
Ocenia efektywność działania programu. Wie, na czym polega programowanie obiektowe i zdarzeniowe. Potrafi stosować techniki programowania dynamicznego lub programowania obiektowego. Zna i rozumie podobieństwa i różnice w strukturze programu zapisanego w różnych językach programowania – w deklaracji zmiennych i procedur, w składni i zasadach działania poszczególnych procedur. Sprawnie korzysta z dodatkowej, fachowej literatury. |
Dobór struktur danych do rozwiązywanego problemu |
||||
dopuszczający |
dostateczny |
dobry |
bardzo dobry |
celujący |
Wymienia przykłady prostych struktur danych. Potrafi zadeklarować zmienne typu liczbowego (całkowite, zmiennoprzecinkowe) i stosować je w zadaniach. |
Wie, czym jest zmienna w programie i co oznacza przypisanie jej konkretnej wartości. Rozróżnia struktury danych: proste i złożone. Podaje przykłady. Deklaruje typy złożone. |
Potrafi zastosować łańcuchowy i tablicowy typ danych w zadaniach. |
Rozumie, na czym polega dobór struktur danych do algorytmu. Potrafi zastosować strukturalny typ danych. |
Zna dynamiczne struktury danych. Potrafi zastosować zmienne typu wskaźnikowego w zadaniach. Zna struktury listowe, np. stos, kolejkę, listę, drzewo, graf. Potrafi je wykorzystać przy rozwiązywaniu określonych problemów, Rozumie i potrafi zastosować klasy obiektowe języka C++ |
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe