Propozycja planu wynikowego 
do realizacji informatyki w szkole ponadpodstawowej na poziomie rozszerzonym
na drugie 30 godzin lekcyjnych
opracowana na podstawie materiału edukacyjnego:
Grażyna Koba, Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Materiał edukacyjny. Część 1, 
dostępnego na stronie internetowej ir.migra.pl
Autor: Grażyna Koba
MIGRA 2020
W rozporządzeniu Ministra Edukacji Narodowej z dnia 28 marca 2017 r. w sprawie ramowych planów nauczania dla publicznych szkół dokonano przydziału godzin na poszczególne zajęcia edukacyjne. Na trzecim etapie edukacyjnym informatykę w zakresie rozszerzonym należy realizować w wymiarze łącznie sześciu godzin tygodniowo w cyklu nauczania (łącznie 180 godzin).
W związku z tym, że informatyka rozszerzona może być realizowana w różnych układach, proponuję plany wynikowe z podziałem na 30 godzin, czyli łącznie na 180 godzin (6*30). Poniżej przedstawiam plan wynikowy na drugie 30 lekcji informatyki w zakresie rozszerzonym.
W planie uwzględniono dwa języki programowania wysokiego poziomu: C++ i Python. W każdym języku omawiane są te same zasady programowania. Można zatem omówić je, korzystając z dwóch wybranych środowisk lub z jednego. Niezależnie od wyboru środowiska (lub środowisk) treści z podstawy programowej dotyczące tworzenia programów komputerowych zostaną zrealizowane. Jeśli wybierzemy jeden język, godziny, które pozostaną, należy przydzielić odpowiednio do pozostałych tematów z programowania – według uznania.

MODUŁ C. WOKÓŁ ALGORYTMIKI I PROGRAMOWANIA [55 godz.]	
Temat C4. Stosowanie funkcji w językach C++ i Python 	
Lekcja 31. Programowanie zstępujące i wstępujące oraz funkcje niezwracające wartości	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wymienia i omawia modele programowania.
Wie, na czym polega programowanie strukturalne.
Wyjaśnia, czym różni się programowanie zstępujące od wstępującego.
Definiuje funkcje niezwracające wartości bez parametrów i z parametrami.
Wyjaśnia, czym są parametry funkcji.
Wie, na czym polega wywołanie funkcji u wywołuje funkcje w programach.	Porównuje modele programowania, wskazując różnice. Omawia sposoby definiowania funkcji w językach C++ i/lub Python. Wskazuje podobieństwa i różnice.
Sprawnie definiuje i stosuje funkcje niezwracające wartości bez parametrów i z parametrami w programach.	temat C4 (punkty 1-3, 4.1., 4.2.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1.i 2.; 
zadanie 1.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 1. – TC4_c1_p1.cpp lub TC4_c1_p1.py;
zadanie 1. – TC4_z1.cpp lub TC4_z1.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C4. Stosowanie funkcji w językach C++ i Python	
Lekcja 32. Funkcje zwracające wartości	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wyjaśnia, czym jest funkcja zwracająca wartość. Porównuje do funkcji niezwracającej wartości. Wskazuje różnice.
Definiuje funkcje zwracające wartości bez parametrów i z parametrami oraz stosuje je w programach.	Sprawnie definiuje i stosuje funkcje zwracające wartości bez parametrów i z parametrami w programach.	temat C4 (punkty 4.3., 4.4.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 3. i 4.; 
zadanie 3.
dla zainteresowanych
zadania 7. i 8.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 3. i ćwiczenie 4. – 
C4_c3_p3.cpp lub TC4_c3_p3.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C4. Stosowanie funkcji w językach C++ i Python	
Lekcja 33. Pisanie programów z wykorzystaniem funkcji w językach C++ i Python	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Pisze programy, stosując funkcje.
Definiuje funkcje niezwracające wartości i zwracające wartość bez parametrów i z parametrami oraz stosuje je w programach.	Sprawnie definiuje i stosuje funkcje niezwracające wartości bez parametrów i z parametrami w programach.
Rozwiązuje dodatkowe zadania z konkursów informatycznych.	temat C4 (zadania) z Materiału edukacyjnego. Część 1.;
zadania 2. i 4-6;
dla zainteresowanych
zadania 9. i 10.	praca z materiałem edukacyjnym; zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C5. Więcej na temat stosowania funkcji w językach C++ i Python	
Lekcja 34. Zmienne globalne i lokalne oraz przesłanianie zmiennych globalnych	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wie, co to jest zasięg zmiennej.
Wyjaśnia pojęcia zmienna lokalna i zmienna globalna.
Deklaruje odpowiednio zmienne lokalne i globalne w programach.
Wyjaśnia, na czym polega przesłanianie zmiennych globalnych.	Wie, jakie znaczenie ma zasięg zmiennej.
Potrafi, na przykładzie programu utworzonego według własnego pomysłu, wyjaśnić różnice w stosowaniu zmiennych lokalnych i globalnych, omówić zasięg zmiennych i przesłanianie zmiennych.	temat C5 (punkty 1., 2.1.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1. i 2.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 1. – TC5_c1.cpp lub TC5_c1.py;
ćwiczenie 2. – C5_c2.cpp lub TC5_c2.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C5. Więcej na temat stosowania funkcji w językach C++ i Python	
Lekcja 35. Przesłanianie parametrów funkcji	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wyjaśnia, na czym polega przesłanianie parametrów funkcji.
Modyfikuje programy, stosuje zmienne globalne i lokalne, objaśnia otrzymane wyniki. 	Potrafi, na przykładzie programu utworzonego według własnego pomysłu, wyjaśnić przesłanianie parametrów funkcji.	temat C5 (punkt 2.2.) z materiału edukacyjnego;
ćwiczenie 3.;
zadania 1. i 2. 	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 3. –
TC5_c3.cpp lub TC5_c3.py;
zadanie 1. – TC5_z1.cpp lub TC5_z1.py;
zadanie 2. – 
C5_z2.cpp lub TC5_z2.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C6. Stosowanie tablic w języku C++ i list w języku Python	
Temat 36. Stosowanie tablic w języku C++	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wie, na czym polega dobór danych do algorytmu.
Zna pojęcia: tablica, zmienna indeksowana. 
Deklaruje typ tablicowy w języku C++.
Wczytuje i wyprowadza elementy tablicy. Definiuje odpowiednie funkcje.
Wie, jak odwołać się do elementu tablicy.
Wie, w jaki sposób zadeklarować tablicę dwuwymiarową. Definiuje odpowiednie funkcje.
Potrafi zastosować tablicowy typ danych w programach.	Stosuje w programach tablice jednowymiarowe i dwuwymiarowe, odpowiednio dobierając określoną strukturę danych (tu: rodzaj tablicy) do algorytmu.	temat C6 (punkty 1-4) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1-3	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 1. – TC6_c1.cpp;
ćwiczenie 1. –	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C6. Stosowanie tablic w języku C++ i list w języku Python	
Lekcja 37. Stosowanie list w języku Python	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna pojęcia: lista, zmienna indeksowana. 
Definiuje różne listy w języku Python.
Wczytuje i wyprowadza elementy listy. Definiuje odpowiednie funkcje.
Wie, jak odwołać się do elementu listy.
Potrafi zastosować listę w zadaniach.	Omawia podobieństwa i różnice w definiowaniu tablic w języku C++ i list w języku Python 
Wie, w jaki sposób zdefiniować listę dwuwymiarową. 
Stosuje w programach listy jednowymiarowe i dwuwymiarowe, odpowiednio dobierając określoną strukturę danych (tu: rodzaj listy) do algorytmu.	temat C6 (punkt 5.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 4-6;
dla zainteresowanych
zadanie 4.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 4. – 
C6_c4.py;
ćwiczenie 6. – 
C6_c6.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C6. Stosowanie tablic w języku C++ i list w języku Python	
Lekcja 38. Pisanie programów z wykorzystaniem tablic (C++) i list (Python)	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Tworzy programy, dobierając odpowiednie struktury danych do programu.
Deklaruje tablice i/lub listy jednowymiarowe i dwuwymiarowe. 	Dobiera najlepszy algorytm i odpowiednie struktury danych do rozwiązania postawionego problemu.
Rozwiązuje przykładowe zadania z konkursów i olimpiady informatycznej, w których należy zastosować tablice i/lub listy i funkcje.	temat C6 (zadania) z Materiału edukacyjnego. Część 1.;
zadania 1-3
dla zainteresowanych
zadanie 5.	praca z materiałem edukacyjnym; zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Lekcja 39. Sprawdzian (tematy C4-C6)	
–	–	tematy C4-C6 	sprawdziany dostępne poprzez wyszukiwarkę https://www.migra.pl/pomoce-dla-nauczycieli/
testy elektroniczne w strefie nauczyciela https://nauczyciel.migra.pl/	–	

Temat C7. Stosowanie instrukcji iteracyjnych w językach C++ i Python	
Lekcja 40. Instrukcja while w językach C++ i Python	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna postać i działanie instrukcji iteracyjnej while w językach C++ i/lub Python.
Stosuje instrukcję while w tworzonych programach komputerowych.
Rysuje schemat blokowy algorytmu iteracyjnego.	Potrafi samodzielnie zastosować odpowiedni rodzaj instrukcji pętli w tworzonym programie.
	temat C7 (punkt 1.) z Materiału edukacyjnego. Część 1.;
ćwiczenie 1.;
zadania 1.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 1. – 
TC7_c1_p1.cpp lub TC7_c1_p1.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C7. Stosowanie instrukcji iteracyjnych w językach C++ i Python	
Lekcja 41. Instrukcja for a instrukcja while w języku C++	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Rozumie różnicę pomiędzy instrukcją for a instrukcją while w języku C++.
Modyfikuje programy, zamieniając pętlę for na while i odwrotnie. Ocenia program po zmianie (styl, czytelność).	Potrafi samodzielnie zastosować odpowiedni rodzaj instrukcji pętli w tworzonym programie.	temat C7 (punkt 2.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 2-4	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 3. – 
TC7_c3_p2_for.cpp	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C7. Stosowanie instrukcji iteracyjnych w językach C++ i Python	
Lekcja 42. Instrukcja while a do … while w języku C++	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna postać i działanie instrukcji iteracyjnej do … while w języku C++.
Stosuje instrukcję do … while w tworzonych programach komputerowych.	Potrafi samodzielnie dobrać odpowiednią instrukcję while lub do… while.
Omawia podobieństwa i różnice w działaniu wszystkich omówionych instrukcji pętli w języku C++.
Rozwiązuje trudniejsze zadania.	temat C7 (punkt 3.) z Materiału edukacyjnego. Część 1.;
ćwiczenie 5.
zadania 2. i 3.
dla zainteresowanych
zadanie 9.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C7. Stosowanie instrukcji iteracyjnych w językach C++ i Python	
Lekcja 43. Instrukcja for a instrukcja while w języku Python	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna różne sposoby określania liczby iteracji w języku Python, np. poprzez powtarzanie poleceń zawartych wewnątrz pętli dla konkretnych wartości lub poprzez podanie liczby powtórzeń z zastosowaniem funkcji range().
Rozumie różnicę pomiędzy instrukcją for a instrukcją while w języku Python.
Modyfikuje programy, zamieniając pętlę for na while. Ocenia program po zmianie (styl, czytelność).	Potrafi samodzielnie zastosować odpowiedni rodzaj instrukcji pętli w tworzonym programie.
Omawia podobieństwa i różnice w działaniu wszystkich omówionych instrukcji pętli w języku Python
Rozwiązuje trudniejsze zadania.	temat C7 (punkt 4.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 7-10;
zadanie 2.
dla zainteresowanych
zadanie 9.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 7. – 
TC7_c7_p5.py. 
ćwiczenie 9. – 
TC7_c9_p6_for.py.
ćwiczenie 10. – 
TC7_c10_p7.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C7. Stosowanie instrukcji iteracyjnych w językach C++ i Python	
Lekcja 44. Pisanie programów w językach C++ i Python z wykorzystaniem instrukcji iteracyjnych	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Pisze programy, stosując poznane instrukcje iteracyjne.
Dobiera odpowiednią technikę algorytmiczną i odpowiednie struktury danych do rozwiązywanego problemu.	Sprawnie pisze programy, stosując poznane instrukcje iteracyjne.
Wymyśla samodzielnie problem iteracyjny, formułuje zadanie, pisze jego specyfikację i listę kroków oraz zapisuje w wybranym języku programowania.
	temat C7 (zadania.) z Materiału edukacyjnego. Część 1.;
zadania 5-8;
dla zainteresowanych
zadanie 10.	praca z materiałem edukacyjnym; ćwiczenia, zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C8. Wyszukiwanie elementów – liniowe i przez połowienie	
Lekcja 45. Zastosowanie wyszukiwania liniowego do znajdowania najmniejszego elementu	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wie, na czym polega metoda wyszukiwania liniowego i przez połowienie.
Zna metodę „dziel i zwyciężaj”. 
Omawia algorytm znajdowania elementu najmniejszego. Analizuje listę kroków i rysuje schemat blokowy na jej podstawie.
Zapisuje algorytm znajdowania najmniejszego elementu w postaci programu.
Zapisuje algorytm znajdowania największego elementu w postaci programu.	Podaje przykłady problemów, w których można zastosować wyszukiwanie liniowe lub przez połowienie.	temat C8 (punkt 1. i 2.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1-5	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 2. – TC8_c2_p2.cp lub TC8_c2_p2.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];	

Temat C8. Wyszukiwanie elementów – liniowe i przez połowienie	
Lekcja 46. Algorytm jednoczesnego znajdowania minimum i maksimum	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Potrafi omówić algorytm naiwny i optymalny znajdowania największego i najmniejszego elementu w zbiorze. 
Określa liczbę porównań w algorytmie naiwnym i optymalnym znajdowania największego i najmniejszego elementu w zbiorze. Porównuje otrzymane wyniki.
Pisze listę kroków algorytmu jednoczesnego znajdowania minimum i maksimum z wykorzystaniem metody dziel i zwyciężaj. Zapisuje ten algorytm w postaci programu w języku C++ i/lub Python.
Dobiera odpowiednie struktury danych.	Pisze trudniejsze programy komputerowe, w których wykorzystuje algorytm znajdowania największego i najmniejszego elementu w zbiorze.
Korzystając z dodatkowych źródeł, wyszukuje informacje o zastosowaniu metody „dziel i zwyciężaj”. 
Pisze program według własnego pomysłu pokazujący zastosowanie metody „dziel i zwyciężaj”.	temat C8 (punkt 3.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 6-9;
dla zainteresowanych
zadanie 5.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];
d) jednoczesnego wyszukiwania elementu najmniejszego i największego,	

Temat C8. Wyszukiwanie elementów – liniowe i przez połowienie	
Lekcja 47. Wyszukiwanie elementów – liniowe i przez połowienie - zadania	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zapisuje poznane algorytmy iteracyjne w wybranej notacji. 
Definiuje odpowiednie funkcje, dobiera struktury danych. Dba 
o stosowanie podstawowych zasad programowania.	Potrafi zapisać je w języku programowania trudniejsze algorytmy.
Rozwiązuje dodatkowe zadania z konkursów informatycznych.	temat C8 (zadania) z Materiału edukacyjnego. Część 1.;
zadania 1-4;
dla zainteresowanych
zadanie 6.	praca z materiałem edukacyjnym, zadania;
dodatkowe pliki proponowane do wykonania zadań:
zadanie 3. – TC8_z3.cpp lub TC8_z3.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];
d) jednoczesnego wyszukiwania elementu najmniejszego i największego,	

Temat C9. Iteracyjna realizacja wybranych algorytmów w językach C++ i Python	
Lekcja 48. Schemat Hornera	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Omawia zastosowanie schematu Hornera do obliczania wartości wielomianu.
Wie, jak narysować schemat blokowy tego algorytmu.
Pisze program realizujący algorytm obliczania wartości wielomianu według schematu Hornera. Definiuje odpowiednie funkcje.	Samodzielnie zapoznaje się ze schematem Hornera i zapisuje go w postaci programu, dopierając poprawne struktury danych. 	temat C9 (punkt 1.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1-4	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];
h) obliczania wartości wielomianu za pomocą schematu Hornera,	

Temat C9. Iteracyjna realizacja wybranych algorytmów w językach C++ i Python	
Lekcja 49. Algorytm Euklidesa – wersja z odejmowaniem	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna iteracyjną postać algorytmu Euklidesa – w wersji z odejmowaniem i resztą z dzielenia. 
Potrafi napisać listy kroków algorytmu Euklidesa w obydwu wersjach.
Potrafi narysować schemat blokowy algorytmu Euklidesa w obydwu wersjach. 
Zapisuje algorytm Euklidesa w obydwu wersjach w postaci programu w wybranym języku programowania.	Korzystając z dodatkowych źródeł, omawia przykłady zastosowań algorytmu Euklidesa.	temat C9 (punkty 2. i 3.) z Materiału edukacyjnego. Część 1.;
ćwiczenie 5-7	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];
a) algorytm Euklidesa w wersji iteracyjnej i rekurencyjnej wraz z zastosowaniami,	

Temat C9. Iteracyjna realizacja wybranych algorytmów w językach C++ i Python	
Lekcja 50. Iteracyjna realizacja wybranych algorytmów w językach C++ i Python - zadania	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Pisze listę kroków schematu Hornera.
Pokazuje zastosowanie schematu Hornera w obliczaniu wartości wielomianu n-tego stopnia.
Rysuje schemat blokowy algorytmu Euklidesa w wersji z resztą z dzielenia.
Wyjaśnia na przykładzie różnicę między wersją algorytmu Euklidesa z odejmowaniem a wersją z resztą z dzielenia.	Korzystając z dodatkowych źródeł, poznaje trudniejsze algorytmy, np. trwałego małżeństwa, problem ośmiu hetmanów, algorytm znajdowania liczb bliźniaczych. Potrafi zapisać je w języku programowania.	temat C9 (zadania) z Materiału edukacyjnego. Część 1.;
zadania 1-4	praca z materiałem edukacyjnym; ćwiczenia, zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
I + II. Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];
a) algorytm Euklidesa w wersji iteracyjnej i rekurencyjnej wraz z zastosowaniami,
h) obliczania wartości wielomianu za pomocą schematu Hornera,	

Temat C10. Elementy analizy algorytmów	
Lekcja 51. Poprawność algorytmów na przykładzie algorytmu obliczania silni	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna i omawia własności algorytmów.
Wie, kiedy algorytm jest poprawny.
Potrafi przeanalizować przebieg algorytmu zapisanego w postaci listy kroków lub w postaci schematu blokowego dla przykładowych danych i ocenić w ten sposób jego poprawność.
Określa liczbę prostych działań zawartych w algorytmie.
Analizuje program wybranego algorytmu (np. obliczania silni) i ocenia jego poprawność.	Potrafi samodzielnie ocenić poprawność wybranych algorytmów.
Potrafi samodzielnie wymyśleć zadanie (problem), napisać specyfikację zadania, listę kroków i program realizujący to zadanie.
Korzysta samodzielnie z dodatkowej literatury fachowej.	temat C10 (punkty 1. i 2.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 1-2;
dla zainteresowanych
zadanie 5.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;	

Temat C10. Elementy analizy algorytmów	
Lekcja 52. Skończoność algorytmów na przykładzie wybranych algorytmów	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wie, kiedy algorytm jest skończony. 
Potrafi przeanalizować przebieg algorytmu zapisanego w postaci listy kroków lub w postaci schematu blokowego dla przykładowych danych i ocenić w ten sposób jego skończoność.
Analizuje program realizujący wybrany algorytm i ocenia jego skończoność. 
Modyfikuje program, aby działał poprawnie.	Potrafi samodzielnie ocenić skończoność wybranych algorytmów.
Potrafi samodzielnie wymyśleć zadanie (problem), napisać specyfikację zadania, listę kroków i program realizujący to zadanie.
Korzysta samodzielnie z dodatkowej literatury fachowej.	temat C10 (punkt 3.) z Materiału edukacyjnego. Część 1.;
ćwiczenia 3. i 4.;
dla zainteresowanych
zadanie 6.	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia, zadania;
dodatkowe pliki proponowane do wykonania ćwiczeń i zadań:
ćwiczenie 4. – 
TC10_c4_p4.cpp lub TC10_c4_p4.py	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;	

Temat C10. Elementy analizy algorytmów	
Lekcja 53. Elementy analizy algorytmów – zadania	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Wie, jak sprawdzić, czy algorytm jest poprawny i skończony. 
Sprawdza poznane własności algorytmów, rozwiązując zadania, m.in. uzasadnia skończoność algorytmu znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych.
Oblicz liczbę operacji porównania w algorytmie wyboru minimum z tablicy zawierającej n losowo uporządkowanych liczb.	Poznane dodatkowe możliwości wybranego języka programowania (np. standardowe funkcje) i stosuje w programach. 
Rozwiązuje przykładowe zadania z olimpiady informatycznej.	temat C10 (zadania) z Materiału edukacyjnego. Część 1.;
zadania 1-4
dla zainteresowanych
zadanie 7.	praca z materiałem edukacyjnym; zadania	I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych. 
1) 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;
2) stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;	

Lekcja 54. Powtórzenie i utrwalenie materiału (tematy C4-C10)	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
–	–	tematy C4-C10
	praca z materiałem edukacyjnym;
analiza przykładów i gotowych rozwiązań oraz wykonanie nierozwiązanych ćwiczeń i/lub zadań	–	

Lekcja 55. Sprawdzian (tematy C4-C10)	
–	–	tematy C4-C10	sprawdziany dostępne poprzez wyszukiwarkę https://www.migra.pl/pomoce-dla-nauczycieli/
testy elektroniczne w strefie nauczyciela https://nauczyciel.migra.pl/	–	

MODUŁ D. WOKÓŁ INTERNETU I PROJEKTÓW [5 godz.]	
Temat D1. Realizacja projektów zespołowych, w tym praca w chmurze	
Lekcja 56. Realizacja projektów zespołowych, w tym praca w chmurze	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Zna etapy przygotowania projektu grupowego.
Wie, czym jest chmura.
Zna możliwości wynikające z korzystania z chmury, m.in. potrafi udostępnić pliki, linki do folderu; umożliwić współdzielenie danego folderu.
Potrafi korzystać z oprogramowania dostępnego w chmurze, m.in. tworzy dokumenty w edytorze tekstu i umieszcza w chmurze. Współdzieli je z innymi współużytkownikami.	Przy realizacji zespołowego projektu programistycznego sprawnie posługuje się środowiskiem przeznaczonym do współpracy i realizacji projektów zespołowych, w tym środowiskiem w chmurze. 	temat D1 z Materiału edukacyjnego. Część 1.;
ćwiczenia 1-3	wprowadzenie, pokaz z wykorzystaniem projektora; praca z materiałem edukacyjnym; ćwiczenia	IV. Rozwijanie kompetencji społecznych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) 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;
2) 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;	

Temat D2. Zadania projektowe	
Lekcja 57. Zadania projektowe – przygotowanie projektu 1	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Współpracuje w grupie, 
wykonując projekt na temat projektowania zakupu nowego zestawu komputerowego oraz oprogramowania dla ucznia szkoły ponadpodstawowej.
Wykonuje polecenia koordynatora grupy.
Przygotowuje wybrane zadanie szczegółowe zgodnie z etapami przygotowania projektu. Gromadzi materiały i inne pomoce, opracowuje dokumentację projektu, wykorzystując m.in. możliwości pracy w chmurze.
Udostępnia pliki, linki do folderu.
Wyszukuje informacje na e-platformach do e-nauczania.	Potrafi pełnić funkcję koordynatora grupy.
Koordynuje wykonywanie zadań szczegółowych na poszczególnych etapach. Zarządza folderami (współdzieleniem) i pracą nad dokumentami. 
W miarę możliwości współtworzy zasoby udostępniane na platformach do e-nauczania.	temat D2 (punkt 1.) z Materiału edukacyjnego. Część 1.;
zadanie 1.	praca zespołowa;
praca z materiałem edukacyjnym i dodatkowymi źródłami informacji	II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
4) przygotowując opracowania rozwiązań złożonych problemów, posługuje się wybranymi aplikacjami w stopniu zaawansowanym: 
b) uczestniczy w opracowaniu dokumentacji projektu zespołowego, pracując przy tym w odpowiednim środowisku,
IV. Rozwijanie kompetencji społecznych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) 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;
2) 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;	

Temat D2. Zadania projektowe	
Lekcja 58. Zadania projektowe – prezentacja projektu 1.	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Prezentuje wykonane zadanie projektowe wykorzystaniem projektora innych przygotowanych pomocy lub materiałów. Inicjuje dyskusje.	Ustala sposób prezentacji projektu i wyznacza osobę (osoby) do prezentacji.
Uzupełnia wypowiedzi kolegów o dodatkowe informacje.	temat D2 (punkt 1.) z Materiału edukacyjnego. Część 1.;
zadanie 1.	pokaz z wykorzystaniem projektora i innych przygotowanych pomocy lub materiałów (np. części komputera, plansz); dyskusja	IV. Rozwijanie kompetencji społecznych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) 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;
2) 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;	

Temat D2. Zadania projektowe	
Lekcja 59. Zadania projektowe – przygotowanie projektu 2.	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Współpracuje w grupie, 
wykonując projekt na temat wpływu trendów w historycznym rozwoju pojęć i metod informatyki oraz technologii na możliwości rozwoju grafiki komputerowej.
Wykonuje polecenia koordynatora grupy.
Przygotowuje wybrane zadanie szczegółowe zgodnie z etapami przygotowania projektu. Gromadzi materiały i inne pomoce, opracowuje dokumentację projektu, wykorzystując m.in. możliwości pracy w chmurze. Udostępnia pliki, linki do folderu.
Przygotowuje prezentację projektu
Wyszukuje informacje na e-platformach do e-nauczania.	Potrafi pełnić funkcję koordynatora grupy.
Koordynuje wykonywanie zadań szczegółowych na poszczególnych etapach. Zarządza folderami (współdzieleniem) i pracą nad dokumentami. 
W miarę możliwości współtworzy zasoby udostępniane na platformach do e-nauczania.	temat D2 (punkt 2.) z Materiału edukacyjnego. Część 1.;
zadanie 2.	praca zespołowa;
praca z materiałem edukacyjnym i dodatkowymi źródłami informacji 	II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
4) przygotowując opracowania rozwiązań złożonych problemów, posługuje się wybranymi aplikacjami w stopniu zaawansowanym: 
b) uczestniczy w opracowaniu dokumentacji projektu zespołowego, pracując przy tym w odpowiednim środowisku,
IV. Rozwijanie kompetencji społecznych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) 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;
2) 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;	

Temat D2. Zadania projektowe	
Lekcja 60. Zadania projektowe – prezentacja projektu 2.	
Wiedza i umiejętności	Treści, ćwiczenia i zadania z materiału edukacyjnego	Formy pracy, 
pomoce dydaktyczne	Podstawa programowa	
podstawowe	rozszerzające				
Prezentuje wykonane zadanie projektowe wykorzystaniem projektora innych przygotowanych pomocy lub materiałów. Inicjuje dyskusje.	Ustala sposób prezentacji projektu i wyznacza osobę (osoby) do prezentacji.
Uzupełnia wypowiedzi kolegów o dodatkowe informacje.	temat D2 (punkt 2.) z Materiału edukacyjnego. Część 1.;
zadanie 2.	pokaz z wykorzystaniem projektora i innych przygotowanych pomocy lub materiałów (m.in. grafik, obrazów, plansz); dyskusja	IV. Rozwijanie kompetencji społecznych
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1) 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;
2) 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;	

Podstawa programowa
W rozporządzeniu Ministra Edukacji Narodowej z dnia 30 stycznia 2018 r. w sprawie podstawy programowej kształcenia ogólnego dla liceum ogólnokształcącego, technikum oraz branżowej szkoły II stopnia określono m.in. podstawę programową do informatyki dla szkół ponadpodstawowych (dla zakresu podstawowego łącznie z zakresem rozszerzonym), w tym dla liceum i technikum. 
Przedstawiamy program nauczania do realizacji informatyki na poziomie podstawowym dla klas I-III opracowany zgodnie z podstawą programową określoną w w/w rozporządzeniu dla szkół ponadpodstawowych.
Cele kształcenia (wymagania ogólne) są wspólne dla wszystkich klas. 

PODSTAWA PROGRAMOWA KSZTAŁCENIA OGÓLNEGO 
DLA CZTEROLETNIEGO LICEUM OGÓLNOKSZTAŁCĄCEGO I PIĘCIOLETNIEGO TECHNIKUM
INFORMATYKA
ZAKRES PODSTAWOWY I ROZSZERZONY
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ń: 
1)	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).
2)	stosuje przy rozwiązywaniu problemów z różnych dziedzin algorytmy poznane w szkole podstawowej oraz algorytmy: 
a)	na liczbach: badania pierwszości liczby, zamiany reprezentacji liczb między pozycyjnymi systemami liczbowymi, działań na ułamkach z wykorzystaniem NWD i NWW,
b)	na tekstach: porównywania tekstów, wyszukiwania wzorca w tekście metodą naiwną, szyfrowania tekstu metodą Cezara i przestawieniową,
c)	porządkowania ciągu liczb: przez wstawianie i metodą bąbelkową,
d)	wydawania reszty najmniejszą liczbą nominałów,
e)	obliczania wartości elementów ciągu metodą iteracyjną i rekurencyjną, w tym wartości elementów ciągu Fibonacciego.
3)	wyróżnia w problemie podproblemy i charakteryzuje: metodę połowienia, stosuje podejście zachłanne i rekurencję;
4)	porównuje działanie różnych algorytmów dla wybranego problemu, analizuje algorytmy na podstawie ich gotowych implementacji;
5)	sprawdza poprawność działania algorytmów dla przykładowych danych.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto: 
1)	w zależności od problemu rozwiązuje go, stosując metodę wstępującą lub zstępującą;
2)	do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;
3)	objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;
4)	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;
5)	przedstawia sposoby reprezentowania w komputerze znaków, liczb, wartości logicznych, obrazów, dźwięków, animacji;
6)	objaśnia sposoby wykonywania przez komputer działań arytmetycznych i operacji logicznych;
7)	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;
8)	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ń: 
1)	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);
2)	do realizacji rozwiązań problemów prawidłowo dobiera środowiska informatyczne, aplikacje oraz zasoby, wykorzystuje również elementy robotyki;
3)	przygotowuje opracowania rozwiązań problemów, posługując się wybranymi aplikacjami: 
a)	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,
b)	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ą,
c)	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,
d)	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,
e)	tworzy rozbudowane prezentacje, w tym z wykorzystaniem technik multimedialnych, ustala parametry pokazu,
f)	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;
4)	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: 
1)	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;
2)	stosuje zasady programowania strukturalnego i obiektowego w rozwiązywaniu problemów;
3)	sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;
4)	przygotowując opracowania rozwiązań złożonych problemów, posługuje się wybranymi aplikacjami w stopniu zaawansowanym: 
a)	tworzy i edytuje dwuwymiarowe oraz trójwymiarowe wizualizacje i animacje, stosuje właściwe formaty plików graficznych,
b)	uczestniczy w opracowaniu dokumentacji projektu zespołowego, pracując przy tym w odpowiednim środowisku,
c)	stosuje zaawansowane funkcje arkusza kalkulacyjnego w zależności od rodzaju danych, definiuje makropolecenia, zna możliwości wbudowanego języka programowania,
d)	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,
e)	programuje elementy strony internetowej współpracujące z sieciową bazą danych;
5)	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: 
1)	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: 
a)	algorytm Euklidesa w wersji iteracyjnej i rekurencyjnej wraz z zastosowaniami,
b)	znajdowania określonego elementu w zbiorze: lidera, idola, elementu w zbiorze uporządkowanym metodą binarnego wyszukiwania,
c)	generowania liczb pierwszych metodą sita Eratostenesa,
d)	jednoczesnego wyszukiwania elementu najmniejszego i największego,
e)	sortowania ciągu liczb przez scalanie,
f)	wyznaczania miejsc zerowych funkcji metodą połowienia,
g)	obliczania przybliżonej wartości pierwiastka kwadratowego,
h)	obliczania wartości wielomianu za pomocą schematu Hornera,
i)	szybkiego potęgowania liczb w wersji iteracyjnej i rekurencyjnej,
j)	badania położenia punktu względem prostej i przynależności punktu do odcinka,
k)	rekurencyjnego tworzenia fraktali: zbiór Cantora, drzewo binarne, dywan Sierpińskiego, płatek Kocha;
2)	wykorzystuje znane sobie algorytmy przy rozwiązywaniu i programowaniu rozwiązań następujących problemów: 
a)	rozkładania liczby na czynniki pierwsze,
b)	wykonywania działań na liczbach w systemach innych niż dziesiętny,
c)	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,
d)	zamiany wyrażenia na postać w odwrotnej notacji polskiej i obliczanie jego wartości na podstawie tej postaci,
e)	badania przecinania się odcinków, przynależności punktu do trójkąta,
f)	obliczanie przybliżonej wielkości pola obszarów zamkniętych;
3)	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: 
a)	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),
b)	rekurencję (do generowania ciągów liczb, potęgowania, sortowania liczb, generowania fraktali),
c)	metodę dziel i zwyciężaj (jednoczesne znajdowanie minimum i maksimum, sortowanie przez scalanie i szybkie),
d)	podejście zachłanne (do wydawania reszty, pakowania plecaka, szukania najkrótszej drogi),
e)	programowanie dynamiczne (do pakowania plecaka, szukania najdłuższego wspólnego podciągu),
f)	metodę szyfrowania z kluczem publicznym i jej zastosowanie w podpisie elektronicznym,
g)	metodę haszowania (wyszukiwanie wzorca w tekście),
h)	metodę Monte Carlo (obliczanie przybliżonej wartości liczby π, symulacja ruchów Browna),
i)	struktury dynamiczne: stos, kolejka, lista (do realizacji algorytmu: ONP, symulacji problemu Flawiusza, sortowania leksykograficznego),
j)	grafy (do przedstawiania abstrakcyjnego modelu sytuacji problemowych).
III. Posługiwanie się komputerem, urządzeniami cyfrowymi i sieciami komputerowymi. 
Zakres podstawowy. Uczeń: 
1)	zapoznaje się z możliwościami nowych urządzeń cyfrowych i towarzyszącego im oprogramowania;
2)	objaśnia funkcje innych niż komputer urządzeń cyfrowych i korzysta z ich możliwości;
3)	rozwiązuje problemy korzystając z różnych systemów operacyjnych;
4)	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: 
1)	projektuje rozbudowę i zakup nowego zestawu komputerowego oraz oprogramowania;
2)	dokonuje kompresji informacji, objaśnia różnice między kompresją stratną i bezstratną tekstów, obrazów, dźwięków, filmów;
3)	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ą;
4)	konfiguruje przykładową lokalną sieć komputerową oraz bezprzewodowy dostęp do sieci internet;
5)	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ń: 
1)	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;
2)	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ą;
3)	objaśnia konsekwencje wykluczenia i pozytywne aspekty włączenia cyfrowego; przedstawia korzyści, jakie przynosi informatyka i technologia komputerowa osobom o specjalnych potrzebach;
4)	bezpiecznie buduje swój wizerunek w przestrzeni medialnej;
5)	przedstawia trendy w historycznym rozwoju informatyki i technologii oraz ich wpływ na rozwój społeczeństw;
6)	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: 
1)	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;
2)	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;
3)	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ń: 
1)	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;
2)	respektuje obowiązujące prawo i normy etyczne dotyczące korzystania i rozpowszechniania oprogramowania komputerowego, aplikacji cudzych i własnych oraz dokumentów elektronicznych;
3)	stosuje dobre praktyki w zakresie ochrony informacji wrażliwych (np. hasła, pin), danych i bezpieczeństwa systemu operacyjnego, objaśnia rolę szyfrowania informacji;
4)	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: 
1)	objaśnia rolę technik uwierzytelniania, kryptografii i podpisu elektronicznego w ochronie i dostępie do informacji;
2)	omawia znaczenie algorytmów szyfrowania i składania podpisu elektronicznego.
Warunki i sposób realizacji 
Cele kształcenia informatycznego - wymagania ogólne - są takie same dla wszystkich etapów edukacyjnych i dla wszystkich typów szkół. Ich interpretacja jest zapisana w postaci wymagań szczegółowych. Treści podstawy programowej z informatyki mają charakter przyrostowy, sugerując w ten sposób spiralny rozwój wiedzy, umiejętności i kompetencji uczniów przez wszystkie lata nauki szkolnej. 
Na nową podstawę informatyki w szkole ponadpodstawowej należy patrzeć w powiązaniu ze zmianami, jakie nastąpiły w nauczaniu informatyki w szkole podstawowej. Wprowadzenie rozwiązywania problemów z pomocą komputerów i programowania od najmłodszych lat znacznie wydłużyło okres poznawania tych zagadnień, a przez to umożliwiło stopniowe i uporządkowane kształtowanie myślenia algorytmicznego/komputacyjnego. Wspólne wymagania ogólne i spiralny układ wymagań szczegółowych podstawy na przestrzeni wszystkich etapów edukacyjnych stworzyły możliwość ciągłego utrwalania wcześniej kształtowanych umiejętności i przemyślanego rozszerzania ich o nowe, odpowiednio do naturalnego rozwoju ucznia. Stopniowe wprowadzanie uczniów w świat informatyki i jej zastosowań w różnych przedmiotach i dziedzinach życia kładzie solidne podwaliny pod umiejętności rozwiązywania w szkole ponadpodstawowej zagadnień trudniejszych. Zwiększa to u uczniów zaciekawienie przedmiotem i przygotowanie do rozwiązywania różnorodnych problemów ze świadomym wykorzystaniem metod mających swoje korzenie w informatyce. Wybór przez uczniów dalszej drogi i poziomu kształcenia informatycznego w szkole ponadpodstawowej będzie bardziej świadomy niż do tej pory. Już w szkole podstawowej uczniowie poznają algorytmy szukania minimum, maksimum, elementu w zbiorze uporządkowanym i nieuporządkowanym, proste metody sortowania (zliczanie, wybieranie). Uczą się programować, w tym także sterować robotem. Dzięki temu, zarówno w kształceniu w zakresie podstawowym, jak i rozszerzonym, łatwiej będzie realizować zagadnienia informatyczne do tej pory uznawane za trudne. 
Najważniejszym celem kształcenia informatycznego uczniów jest rozwój umiejętności myślenia komputacyjnego, skupionego na kreatywnym rozwiązywaniu problemów z różnych dziedzin ze świadomym wykorzystaniem przy tym metod i narzędzi wywodzących się z informatyki, w tym programowania. Takie podejście jest kontynuowane w liceum ogólnokształcącym i technikum zarówno w zakresie podstawowym, jak i rozszerzonym. 
W liceum ogólnokształcącym i technikum podstawa programowa dla zakresu podstawowego obowiązuje wszystkich uczniów. Zagadnienia algorytmiczne wyszczególnione w podstawie są dobrane świadomie, wiążą się bowiem z problemami z innych przedmiotów, na przykład z matematyki, jak i dotyczą problemów związanych z funkcjonowaniem w społeczeństwie cyfrowym. Wiele pojęć i metod matematycznych jest integralną częścią informatyki, związki matematyki z informatyką są naturalne. Rozważane algorytmy nawiązują między innymi do efektywnych poszukiwań w internecie, porządkowania informacji, działań antyplagiatowych oraz zachowania bezpieczeństwa informacji, na przykład przez jej szyfrowanie. Programując rozwiązania problemów, uczeń stosuje odpowiednie metody i nadaje rozwiązaniom wymiar praktyczny, łącząc aspekty programistyczne z elementami sterowania rzeczywistymi obiektami, np. robotami. 
Rozwiązywanie problemów leży również u podstaw pracy z aplikacjami użytkowymi. Projektując grafikę, opracowując dokumenty, analizując dane i wyszukując informacje uczeń poznaje możliwości gotowych aplikacji i ich przydatne funkcje. W podstawie pojawia się projektowanie trójwymiarowe, wspomagające kształcenie wyobraźni przestrzennej, niezbędnej w wielu dziedzinach życia, między innymi w medycynie, budownictwie i projektowaniu różnorodnych elementów. 
Uczeń kończący kształcenie informatyczne w zakresie podstawowym powinien sprawnie posługiwać się współczesnymi urządzeniami cyfrowymi, sieciami oraz systemami operacyjnymi zarządzającymi ich pracą. Instalacja nowej wersji sytemu czy oprogramowania powinna być wykonywana przez niego świadomie, przy zachowaniu bezpieczeństwa danych i poszanowaniu własności intelektualnej. Podczas korzystania z serwisów społecznościowych, e-usług, platform do e-nauczania, zasobów otwartych i wszelkich zasobów umieszczonych również w chmurze, uczeń powinien przestrzegać ogólnie przyjętych zasad netykiety, jak i bezpieczeństwa w przestrzeni cyfrowej. 
W kształceniu informatycznym w zakresie rozszerzonym treści nauczania są znacząco rozszerzane. Poza traktowaniem programowania jako aktywności rozwijającej kreatywność i innowacyjność uczniów w każdej dziedzinie życia, nauka algorytmiki i programowania odgrywa ważną rolę w przygotowaniu do wyboru kariery zawodowej związanej z informatyką. Bazuje ona na solidnych podstawach informatyki, która ma swoje teorie, metody i techniki oraz praktykę. 
W dziale II Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych występuje zakres rozszerzony I+II, w którym połączono umiejętności uczniów z działów I i II, obejmujące jednoczesne projektowanie rozwiązań problemów i ich programowanie. W tym dziale wyróżniono trzy punkty. Punkt 1 jest wykazem problemów i algorytmów ich rozwiązywania, które uczeń powinien poznać na zajęciach. W punkcie 2 zawarto problemy, które uczeń powinien umieć rozwiązać, stosując algorytmy z punktu 1 lub ich niewielkie modyfikacje. Rozwiązania problemów z punktów 1 i 2 uczeń powinien umieć zapisać za pomocą schematu blokowego, listy kroków lub pseudokodu oraz zaimplementować w wybranym języku programowania. Punkt 3 jest zwieńczeniem myślenia algorytmicznego i komputacyjnego, dotyczy metod i technik algorytmicznych oraz struktur danych, które w naturalny sposób mogą być wyabstrahowane z metod rozwiązywania problemów i ich komputerowych realizacji, będących przedmiotem w punktach 1 i 2. Wymienione w punkcie 3 trudniejsze, nowe problemy i algorytmy powinny być przynajmniej omówione na zajęciach, a działanie algorytmów zilustrowane na przykładach lub w odpowiednich aplikacjach. Zagadnienia poruszane w tym punkcie stanowią dobry materiał do przygotowania prezentacji i wygłoszenia referatu przez uczniów indywidualnie lub zespołowo. W grupach bardziej zaawansowanych zaleca się zaprogramowanie tych algorytmów. 
Umiejętności wykorzystywania aplikacji użytkowych do rozwiązywania problemów są doskonalone m.in. w zespołowej pracy nad rozbudowaną dokumentacją i prezentacją z użyciem aplikacji w chmurze czy przy prowadzeniu obliczeń w arkuszu kalkulacyjnym wzbogaconym programami wytworzonymi w wbudowanym języku programowania. Pojawiają się bazy danych osadzone w sieci, a przy tworzeniu stron WWW programowane są elementy strony internetowej połączone z danymi z takiej bazy. 
Zarówno w zakresie podstawowym, jak i rozszerzonym zaleca się realizowanie treści informatycznych w formie projektów, tematycznie uwzględniających różnorodne zainteresowania uczniów, także z innych dziedzin. Uczniowie powinni mieć możliwość korzystania z komputerów w zależności od potrzeb wynikających z charakteru zajęć oraz realizowanych tematów i celów. 
Podczas zajęć z informatyki uczeń ma do swojej dyspozycji osobny komputer z dostępem do internetu i aplikacji użytkowych zapewniających realizację zagadnień podstawy programowej. Zaleca się wspomaganie zajęć informatycznych pracą na platformie do e-nauczania, na której nauczyciel może umieszczać swoje materiały elektroniczne do zajęć - uczniowie oraz nauczyciel powinni na tej platformie mieć swoje indywidualne miejsce. Takie podejście sprzyja rozwojowi dodatkowych kompetencji. Uczniowie poznają możliwości platform do e-nauczania, a w ogólności - także do pracy w domu, uczą się sposobów korzystania z ich zasobów, a na poziomie zaawansowanym - sami kreują ich zawartość taką, jak dokumenty, quizy, wiki, fora, zadania. Ponadto uczniowie, którzy z różnych przyczyn nie będą obecni na zajęciach, mogą na podstawie materiałów nauczyciela na bieżąco, samodzielnie przygotowywać się do lekcji i przesyłać zadania domowe. Praca na platformie istotnie porządkuje proces uczenia się: uczy systematyczności i punktualności. 
Praca w środowisku wirtualnej chmury może być wykorzystana do polepszenia efektów kształcenia informatycznego oraz zwiększenia zaangażowania uczniów poprzez ich lepsze przygotowanie się do zajęć (kształcenie wyprzedzające) i wykonywanie przez nich zadań poza regularnymi lekcjami i zajęciami w szkole (odwrócone kształcenie). 
Pracownie komputerowe powinny być wyposażone w sposób zapewniający możliwość realizacji wymagań określonych w podstawie programowej.