Nauczanie informatyki na poziomie licealnym reguluje podstawa programowa opublikowana w Dz.U. 2018 poz. 467, z którego cytuję zapis poniżej, wg stanu na dzień 21. kwietnia 2019 r.
Zapisy podstawy programowej będę sukcesywnie uzupełniał o związane z nimi materiały.
Cele kształcenia – wymagania ogólne
I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera oraz innych urządzeń cyfrowych: układanie i programowanie algorytmów, organizowanie, wyszukiwanie i udostępnianie informacji, posługiwanie się aplikacjami komputerowymi.
III. Posługiwanie się komputerem, urządzeniami cyfrowymi i sieciami komputerowymi, w tym: znajomość zasad działania urządzeń cyfrowych i sieci komputerowych oraz wykonywania obliczeń i programów.
IV. Rozwijanie kompetencji społecznych, takich jak: komunikacja i współpraca w grupie, w tym w środowiskach wirtualnych, udział w projektach zespołowych oraz zarządzanie projektami.
V. Przestrzeganie prawa i zasad bezpieczeństwa. Respektowanie prywatności informacji i ochrony danych, praw własności intelektualnej, etykiety w komunikacji i norm współżycia społecznego, ocena zagrożeń związanych z technologią i ich uwzględnienie dla bezpieczeństwa swojego i innych.
Treści nauczania – wymagania szczegółowe
I. Rozumienie, analizowanie i rozwiązywanie problemów.
Zakres podstawowy
Uczeń:
- planuje kolejne kroki rozwiązywania problemu, z uwzględnieniem podstawowych etapów myślenia komputacyjnego (określenie problemu, definicja modeli i pojęć, znalezienie rozwiązania, zaprogramowanie i testowanie rozwiązania).
- stosuje przy rozwiązywaniu problemów z różnych dziedzin algorytmy poznane w szkole podstawowej oraz algorytmy:
- na liczbach: badania pierwszości liczby, zamiany reprezentacji liczb między pozycyjnymi systemami liczbowymi, działań na ułamkach z wykorzystaniem NWD i NWW,
- Sito Eratostenesa (szukanie liczb pierwszych, film 26:38)
- Wyodrębnianie cyfr z liczby – opis algorytmu oraz implementacja w językach: Java, Python, C++
- na tekstach: porównywania tekstów, wyszukiwania wzorca w tekście metodą naiwną, szyfrowania tekstu metodą Cezara i przestawieniową,
- porządkowania ciągu liczb: przez wstawianie i metodą bąbelkową, wydawania reszty najmniejszą liczbą nominałów, obliczania wartości elementów ciągu metodą iteracyjną i rekurencyjną, w tym wartości elementów ciągu Fibonacciego.
- Sortowanie bąbelkowe (11:04) – filmowe objaśnienie algorytmu
- na liczbach: badania pierwszości liczby, zamiany reprezentacji liczb między pozycyjnymi systemami liczbowymi, działań na ułamkach z wykorzystaniem NWD i NWW,
- wyróżnia w problemie podproblemy i charakteryzuje: metodę połowienia, stosuje podejście zachłanne i rekurencję;
- Algorytmy: Obliczanie pierwiastka – metoda połowienia przedziału – film 17:46 min.
- porównuje działanie różnych algorytmów dla wybranego problemu, analizuje algorytmy na podstawie ich gotowych implementacji;
- sprawdza poprawność działania algorytmów dla przykładowych danych.
Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- w zależności od problemu rozwiązuje go, stosując metodę wstępującą lub zstępującą;
- do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
- objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
- ilustruje i wyjaśnia rolę pojęć, obiektów i operacji matematycznych w projektowaniu rozwiązań problemów informatycznych i z innych dziedzin, posługuje się pojęciem logarytmu;
- przedstawia sposoby reprezentowania w komputerze znaków, liczb, wartości logicznych, obrazów, dźwięków, animacji;
- objaśnia sposoby wykonywania przez komputer działań arytmetycznych i operacji logicznych;
- wyjaśnia, jakie może być źródło błędów pojawiających się w obliczeniach komputerowych: błąd zaokrąglenia, błąd przybliżenia;
- dyskutuje na temat roli myślenia komputacyjnego i jego metod, takich jak: abstrakcja, reprezentacja danych, dekompozycja problemu, redukcja, myślenie rekurencyjne, podejście heurystyczne w rozwiązywaniu problemów z różnych dziedzin.
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych.
Zakres podstawowy
Uczeń:
- projektuje i programuje rozwiązania problemów z różnych dziedzin, stosuje przy tym: instrukcje wejścia/wyjścia, wyrażenia arytmetyczne i logiczne, instrukcje warunkowe, instrukcje iteracyjne, funkcje z parametrami i bez parametrów, testuje poprawność programów dla różnych danych; w szczególności programuje algorytmy z punktu I.2);
- Filmy: for (5:20), if (5:14), while (3:42), zmienne (23:09)
- Film: Tablice – wprowadzenie (19:57)
- Film: Obsługa pamięci w C++ (14:47)
- do realizacji rozwiązań problemów prawidłowo dobiera środowiska informatyczne, aplikacje oraz zasoby, wykorzystuje również elementy robotyki;
- przygotowuje opracowania rozwiązań problemów, posługując się wybranymi aplikacjami:
- projektuje modele dwuwymiarowe i trójwymiarowe, tworzy i edytuje projekty w grafice rastrowej i wektorowej, wykorzystuje różne formaty obrazów, przekształca pliki graficzne, uwzględniając wielkość i jakość obrazów,
- Poznaj GIMP-a – artykuł z ćwiczeniami
- Inkscape – wprowadzenie – artykuł z ćwiczeniami
- opracowuje dokumenty o różnorodnej tematyce, w tym informatycznej, i o rozbudowanej strukturze, posługując się przy tym konspektem
dokumentu, dzieli tekst na sekcje i kolumny, tworzy spisy treści, rysunków i tabel, stosuje własne style i szablony, pracuje nad dokumentem w trybie recenzji, definiuje korespondencję seryjną, - gromadzi dane pochodzące z różnych źródeł w tabeli arkusza kalkulacyjnego, korzysta z różnorodnych funkcji arkusza w zależności od rodzaju danych, filtruje dane według kilku kryteriów, dobiera odpowiednie wykresy do zaprezentowania danych, analizuje dane, korzystając z dodatkowych narzędzi, w tym z tabel i wykresów przestawnych,
- wyszukuje informacje, korzystając z bazy danych opartej na co najmniej dwóch tabelach, definiuje relacje, stosuje filtrowanie, formułuje kwerendy, tworzy i modyfikuje formularze, drukuje raporty,
- tworzy rozbudowane prezentacje, w tym z wykorzystaniem technik multimedialnych, ustala parametry pokazu,
- tworzy stronę internetową zgodnie ze standardami, wzbogaconą tabelami, listami, elementami dynamicznymi, posługuje się arkuszem stylów, korzysta z oprogramowania i serwisów przeznaczonych do tworzenia stron; potrafi opublikować własną stronę w internecie;
- projektuje modele dwuwymiarowe i trójwymiarowe, tworzy i edytuje projekty w grafice rastrowej i wektorowej, wykorzystuje różne formaty obrazów, przekształca pliki graficzne, uwzględniając wielkość i jakość obrazów,
- wyszukuje w sieci potrzebne informacje i zasoby, ocenia ich przydatność oraz wykorzystuje w rozwiązywanych problemach.
Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- projektuje i tworzy rozbudowane programy w procesie rozwiązywania problemów, wykorzystuje w programach dobrane do algorytmów struktury danych, w tym struktury dynamiczne i korzysta z dostępnych bibliotek dla tych struktur;
- stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
- sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
- przygotowując opracowania rozwiązań złożonych problemów, posługuje się wybranymi aplikacjami w stopniu zaawansowanym:
- tworzy i edytuje dwuwymiarowe oraz trójwymiarowe wizualizacje i animacje, stosuje właściwe formaty plików graficznych,
- uczestniczy w opracowaniu dokumentacji projektu zespołowego, pracując przy tym w odpowiednim środowisku,
- stosuje zaawansowane funkcje arkusza kalkulacyjnego w zależności od rodzaju danych, definiuje makropolecenia, zna możliwości wbudowanego języka programowania,
- Kurs arkusza Google, wersja tekstowa z ćwiczeniami, ilustrowana filmami
- projektuje i tworzy relacyjną bazę złożoną z wielu tabel oraz sieciową aplikację bazodanową dla danych związanych z rozwiązywanym problemem, formułuje kwerendy, tworzy i modyfikuje formularze oraz raporty, stosuje język SQL do wyszukiwania informacji w bazie i do jej modyfikacji, uwzględnia kwestie integralności danych, bezpieczeństwa i ochrony danych w bazie,
- Zadania maturalne (i nie tylko) z wykorzystaniem Accessa – playlista wielu filmów
- programuje elementy strony internetowej współpracujące z sieciową bazą danych;
- współtworzy otwarte zasoby i aktywności oraz umieszcza je w sieci, m.in. na platformie do e-nauczania.
I + II. Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach oraz algorytmy:
- algorytm Euklidesa w wersji iteracyjnej i rekurencyjnej wraz z zastosowaniami,
- znajdowania określonego elementu w zbiorze: lidera, idola, elementu w zbiorze uporządkowanym metodą binarnego wyszukiwania,
- generowania liczb pierwszych metodą sita Eratostenesa,
- jednoczesnego wyszukiwania elementu najmniejszego i największego,
- sortowania ciągu liczb przez scalanie,
- wyznaczania miejsc zerowych funkcji metodą połowienia,
- Algorytmy: Obliczanie pierwiastka – metoda połowienia przedziału – film 17:46 min.
- obliczania przybliżonej wartości pierwiastka kwadratowego,
- obliczania wartości wielomianu za pomocą schematu Hornera,
- szybkiego potęgowania liczb w wersji iteracyjnej i rekurencyjnej,
- badania położenia punktu względem prostej i przynależności punktu do odcinka,
- rekurencyjnego tworzenia fraktali: zbiór Cantora, drzewo binarne, dywan Sierpińskiego, płatek Kocha;
- wykorzystuje znane sobie algorytmy przy rozwiązywaniu i programowaniu rozwiązań następujących problemów:
- rozkładania liczby na czynniki pierwsze,
- wykonywania działań na liczbach w systemach innych niż dziesiętny,
- znajdowania w ciągu podciągów o różnorodnych własnościach, np. najdłuższego spójnego podciągu niemalejącego, spójnego podciągu o największej sumie,
- zamiany wyrażenia na postać w odwrotnej notacji polskiej i obliczanie jego wartości na podstawie tej postaci,
- badania przecinania się odcinków, przynależności punktu do trójkąta,
- obliczanie przybliżonej wielkości pola obszarów zamkniętych;
- objaśnia, a także porównuje podstawowe metody i techniki algorytmiczne oraz struktury danych, wykorzystując przy tym przykłady problemów i algorytmów, w szczególności:
- wyszukiwanie elementów liniowe i przez połowienie (do znajdowania elementów w zbiorze, sortowania przez wstawianie, przybliżonego rozwiązywania równań, sprawdzania przynależności punktu do wielokąta wypukłego),
- Algorytmy: Obliczanie pierwiastka – metoda połowienia przedziału – film 17:46 min.
- rekurencję (do generowania ciągów liczb, potęgowania, sortowania liczb, generowania fraktali),
- metodę dziel i zwyciężaj (jednoczesne znajdowanie minimum i maksimum, sortowanie przez scalanie i szybkie),
- podejście zachłanne (do wydawania reszty, pakowania plecaka, szukania najkrótszej drogi),
- programowanie dynamiczne (do pakowania plecaka, szukania najdłuższego wspólnego podciągu),
- metodę szyfrowania z kluczem publicznym i jej zastosowanie w podpisie elektronicznym,
- metodę haszowania (wyszukiwanie wzorca w tekście),
- metodę Monte Carlo (obliczanie przybliżonej wartości liczby π, symulacja ruchów Browna),
- struktury dynamiczne: stos, kolejka, lista (do realizacji algorytmu: ONP, symulacji problemu Flawiusza, sortowania leksykograficznego),
- grafy (do przedstawiania abstrakcyjnego modelu sytuacji problemowych).
- wyszukiwanie elementów liniowe i przez połowienie (do znajdowania elementów w zbiorze, sortowania przez wstawianie, przybliżonego rozwiązywania równań, sprawdzania przynależności punktu do wielokąta wypukłego),
III. Posługiwanie się komputerem, urządzeniami cyfrowymi i sieciami komputerowymi
Zakres podstawowy
Uczeń:
- zapoznaje się z możliwościami nowych urządzeń cyfrowych i towarzyszącego im oprogramowania;
- objaśnia funkcje innych niż komputer urządzeń cyfrowych i korzysta z ich możliwości;
- rozwiązuje problemy korzystając z różnych systemów operacyjnych;
- charakteryzuje sieć internet, jej ogólną budowę i usługi, opisuje podstawowe topologie sieci komputerowej, przedstawia i porównuje zasady działania i funkcjonowania sieci komputerowej typu klient-serwer, peer-to-peer, opisuje sposoby identyfikowania komputerów w sieci.
Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- projektuje rozbudowę i zakup nowego zestawu komputerowego oraz oprogramowania;
- dokonuje kompresji informacji, objaśnia różnice między kompresją stratną i bezstratną tekstów, obrazów, dźwięków, filmów;
- opisuje warstwowy model sieci komputerowej oraz model sieci internet, opisuje podstawowe funkcje urządzeń i protokoły stosowane w przepływie informacji i w zarządzaniu siecią;
- konfiguruje przykładową lokalną sieć komputerową oraz bezprzewodowy dostęp do sieci internet;
- wyjaśnia, od czego zależy sprawne funkcjonowanie sieci komputerowej oraz szybki dostęp do jej usług i zasobów (parametry osprzętu sieciowego, szerokość pasma, zabezpieczenia typu ściana ogniowa i programy antywirusowe, możliwości serwera)
IV. Rozwijanie kompetencji społecznych
Zakres podstawowy
Uczeń:
- aktywnie uczestniczy w realizacji projektów informatycznych rozwiązujących problemy z różnych dziedzin, przyjmuje przy tym różne role w zespole realizującym projekt i prezentuje efekty wspólnej pracy;
- podaje przykłady wpływu informatyki i technologii komputerowej na najważniejsze sfery życia osobistego i zawodowego; korzysta z wybranych
e-usług; przedstawia wpływ technologii na dobrobyt społeczeństw i komunikację społeczną; - objaśnia konsekwencje wykluczenia i pozytywne aspekty włączenia cyfrowego; przedstawia korzyści, jakie przynosi informatyka i technologia
komputerowa osobom o specjalnych potrzebach; - bezpiecznie buduje swój wizerunek w przestrzeni medialnej;
- przedstawia trendy w historycznym rozwoju informatyki i technologii oraz ich wpływ na rozwój społeczeństw;
- poszerza i uzupełnia swoją wiedzę korzystając z zasobów udostępnionych na platformach do e-nauczania.
Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- przy realizacji zespołowego projektu programistycznego posługuje się środowiskiem przeznaczonym do współpracy i realizacji projektów zespołowych, w tym środowiskiem w chmurze; współtworzy zasoby udostępniane na platformach do e-nauczania;
- analizuje i charakteryzuje wpływ trendów w historycznym rozwoju pojęć, metod informatyki oraz technologii na możliwości rozwiązywania problemów teoretycznych i praktycznych;
- przygotowuje się do świadomego wyboru kierunku i zakresu dalszego kształcenia, głównie informatycznego, z myślą o przyszłej karierze zawodowej.
V. Przestrzeganie prawa i zasad bezpieczeństwa.
Zakres podstawowy
Uczeń:
- postępuje zgodnie z zasadami netykiety oraz regulacjami prawnymi dotyczącymi: ochrony danych osobowych, ochrony informacji oraz prawa autorskiego i ochrony własności intelektualnej w dostępie do informacji; jest świadomy konsekwencji łamania tych zasad;
- respektuje obowiązujące prawo i normy etyczne dotyczące korzystania i rozpowszechniania oprogramowania komputerowego, aplikacji cudzych i własnych oraz dokumentów elektronicznych;
- stosuje dobre praktyki w zakresie ochrony informacji wrażliwych (np. hasła, pin), danych i bezpieczeństwa systemu operacyjnego, objaśnia rolę szyfrowania informacji;
- opisuje szkody, jakie mogą spowodować działania pirackie w sieci, w odniesieniu do indywidualnych osób, wybranych instytucji i całego społeczeństwa.
Zakres rozszerzony
Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
- objaśnia rolę technik uwierzytelniania, kryptografii i podpisu elektronicznego w ochronie i dostępie do informacji;
- omawia znaczenie algorytmów szyfrowania i składania podpisu elektronicznego.