„Robot na planszy” – program w Pythonie
Scenariusz zajęć realizowanych zgodnie z metodologią STEM w oparciu o zasoby Zintegrowanej Platformy Edukacyjnej, opracowany w ramach rządowego programu wspierania organów prowadzących szkoły i placówki w rozwijaniu umiejętności cyfrowych dzieci i młodzieży na lata 2025‑2029 – „Cyfrowy Uczeń” (Dz.U.2025.1254)
Informacje ogólne
Imię i nazwisko autora: Roman Frąckowiak
Przedmiot wiodący:
informatyka
Filary metodologii STEM realizowane w ramach zajęć:
(S) przedmioty przyrodnicze
fizyka
(T) technologie
informatyka
(E) inżynieria
(M) matematyka
Etap edukacyjny:
III etap - szkoła ponadpodstawowa
liceum ogólnokształcące
technikum
szkoła branżowa
Pracownia STEM wspierana przez scenariusz:
P1: Projektowanie i prototypowanie
Czas potrzebny na realizację zajęć:
135 minut (3 godziny lekcyjne)
Sugerowany sposób organizacji czasu:
zajęcia realizowane w całości w sposób ciągły
Krótki opis zajęć
Lekcja wprowadza uczniów w podstawy programowania w języku Python. Uczniowie poznają podstawowe typy zmiennych i operatory, a następnie wykorzystują je w prostych instrukcjach warunkowych. W dalszej części tworzą jednowymiarowe tablice oraz stosują pętle warunkowe i iteracyjne do przetwarzania danych. Zajęcia mają formę krótkich mini wykładów i zadań praktycznych. Uczniowie kończą lekcję z umiejętnością zapisu programów analizujących dane i podejmowania decyzji na podstawie wyników. Utworzony program wykorzystują do zaprogramowania robota.
Tytuły i odnośniki do e‑materiałów z ZPE, w oparciu o które przygotowane są zajęcia
Cele lekcji oraz realizowane punkty podstawy programowej
Cel ogólny zajęć:
Celem lekcji jest wprowadzenie uczniów w podstawy programowania w języku Python oraz rozwijanie umiejętności tworzenia programów wykorzystujących zmienne, instrukcje warunkowe, tablice i pętle do analizy danych, podejmowania decyzji i sterowania działaniem robota.
Cele operacyjne w sferze kognitywnej zgodnie ze zrewidowaną taksonomią Blooma
Z zakresu pamiętania informacji
(przywoływanie istotnych informacji).
Uczeń:
omawia podstawowe typy zmiennych w języku Python (int, float, str, bool, list);
podaje przykłady operatorów arytmetycznych, relacyjnych i logicznych;
rozpoznaje zapis instrukcji warunkowej if / elif / else;
stosuje pętle while i for;
określa, czym jest tablica (lista) i do czego służy w programowaniu.
Z zakresu rozumienia informacji
(wyjaśnienie istotnych informacji).
Uczeń:
wyjaśnia, jak działają operatory w Pythonie i czym różni się operator przypisania od porównania;
opisuje sposób działania instrukcji warunkowej oraz jej rolę w podejmowaniu decyzji przez program;
tłumaczy, jak działają pętle iteracyjne i warunkowe oraz kiedy warto je stosować;
interpretuje fragmenty kodu zawierające operatory logiczne, warunki i pętle;
uzasadnia, w jaki sposób Python przetwarza elementy listy w pętli.
Z zakresu zastosowania informacji
(rozwiązywanie problemów o zamkniętej strukturze, o jednoznacznym rozwiązaniu).
Uczeń:
zapisuje proste instrukcje warunkowe pozwalające podjąć decyzję na podstawie danych wejściowych;
tworzy program wykorzystujący pętlę for lub while do przetwarzania listy wartości;
stosuje operatory logiczne w warunkach, aby zbudować bardziej złożone instrukcje;
korzysta z funkcji range() podczas iteracji;
wykorzystuje składnię listy oraz metody list (append, count, copy) zgodnie z ich przeznaczeniem.
Z zakresu analizowania, oceniania i tworzenia informacji
(rozwiązywanie problemów o otwartej strukturze, tworzenie własnych rozwiązań zadanych problemów, ocena dotycząca wartości idei lub materiałów).
Uczeń:
analizuje kod zawierający pętle i instrukcje warunkowe, wskazuje błędy i proponuje poprawny zapis;
porównuje działanie różnych typów pętli i dobiera odpowiednią strukturę do danego problemu;
modyfikuje przykładowy kod tak, aby rozszerzyć jego funkcjonalność (np. filtrowanie liczb, sumowanie, przetwarzanie tekstu);
projektuje własny program rozwiązujący zadanie z podanymi warunkami (np. sumowanie zakresu, pobieranie danych aż do warunku zakończenia);
ocenia poprawność działania programu na podstawie wyników i testów.
Sposób realizacji zaplanowanych celów przez nauczyciela
Metody i formy pracy:
dyskusja;
pogadanka z wykorzystaniem przykładów kodu oraz ćwiczeń interaktywnych;
praca indywidualna przy rozwiązywaniu zadań w Pythonie;
praca w parach nad krótkimi algorytmami;
praca w grupach przy analizie kodu i tworzeniu rozwiązań;
praca całego zespołu klasowego przy omawianiu wspólnych wniosków.
Realizowane punkty podstawy programowej kształcenia ogólnego dla danego przedmiotu
Przygotowanie do zajęć
Przygotowanie nauczyciela
Nauczyciel przygotowuje:
komputery z dostępem do Internetu;
zasoby multimedialne zawarte w e‑materiale;
tablicę interaktywną/tablicę, pisak/kredę;
środowisko programistyczne IDLE lub PyCharm Community – zainstalowane na komputerach uczniów;
interpreter Python 3.x (zalecane 3.10 lub nowszy);
prezentację lub krótkie wprowadzenie dotyczące: typów zmiennych, operatorów, instrukcji warunkowych, list oraz pętli;
przykładowe kody źródłowe do demonstracji (proste fragmenty kodu z e‑materiałów ZPE);
krótkie zadania praktyczne przygotowane w formie kart pracy lub plików .py (opcjonalnie Quiz/Google Forms);
przygotowane linki do dodatkowych filmów, ćwiczeń lub interaktywnych symulacji;
sprawdzenie działania środowiska (uruchamianie programu, wprowadzanie danych, działanie konsoli).
Co zrobić, aby zajęcia były dostępne dla wszystkich uczniów?
1. Dostosowanie przestrzeni i sprzętu
zapewnienie ergonomicznych stanowisk pracy (wysokość krzeseł, ustawienie monitorów);
umożliwienie pracy na urządzeniach mobilnych lub większych monitorach dla uczniów z wadami wzroku;
możliwość korzystania z klawiatur alternatywnych, ekranowych lub trackballi;
używanie oprogramowania powiększającego lub udźwiękawiającego ekran;
pracy dla uczniów z trudnościami w koncentracji.
2. Dostosowanie treści i sposobu pracy
materiały dydaktyczne w kilku formach: tekst, grafika, audio, wideo;
zwiększony kontrast, duża czcionka, czytelne kolory w prezentacjach i kodzie;
instrukcje krok po kroku, najlepiej z przykładami;
dzielenie zadań na mniejsze etapy;
umożliwienie pracy w tempie dostosowanym do możliwości ucznia.
3. Zróżnicowanie metod nauczania
nauczanie multisensoryczne: kod + diagramy blokowe + wizualizacja działania programu;
praca w parach lub małych grupach;
możliwość wyboru formy wykonania zadania (kod, pseudokod, schemat blokowy, prezentacja).
4. Indywidualizacja i dostosowania
różny stopień trudności zadań (dodatkowe wyzwania dla uczniów zdolnych, uproszczone operacje dla uczniów z trudnościami);
dodatkowy czas dla uczniów wymagających wydłużenia pracy;
gotowe fragmenty kodu do uzupełnienia dla uczniów o niższych kompetencjach.
5. Wsparcie komunikacyjne
używanie prostego, jasnego języka;
wspieranie poleceń ikonami i grafikami;
potwierdzanie zrozumienia na każdym etapie.
6. Współpraca specjalistów
konsultacja z pedagogiem specjalnym lub psychologiem;
zapewnienie asystenta nauczyciela, jeśli uczeń tego wymaga.
7. Tworzenie atmosfery akceptacji
promowanie współpracy, wzajemnej pomocy;
ocenianie nie tylko efektu, ale też procesu i zaangażowania.
8. Technologie wspierające
wykorzystanie aplikacji edukacyjnych pomagających w nauce Pythona.
Przygotowanie uczniów
1. Zapoznanie się z materiałami teoretycznymi
Uczniowie są proszeni o:
przeczytanie odpowiedniego wprowadzenia wskazanego przez nauczyciela ( wykaz dostępny w zakładce „Tytuły i odnośniki do e‑materiałów z ZPE”); celem zidentyfikowania: czym jest zmienna i typ danych, czym są operatory arytmetyczne i logiczne, instrukcja warunkowa if, pętle while i for.
2. Wykonanie zadania wstępnego
Przed lekcją uczniowie mogą zostać poproszeni o:
rozwiązanie quizu online z podstaw Pythona;
zapisanie przykładowego algorytmu w postaci listy kroków, programu (np. „jak sprawdzić, czy liczba jest parzysta?”);
zapisanie w zeszycie kilku obserwacji po obejrzeniu materiałów filmowych;
przygotowanie algorytmu w języku naturalnym lub schematu blokowego (np. „Wypisz liczby od 1 do 10”).
3. Przygotowanie materiałów praktycznych
Uczniowie mogą przynieść:
słuchawki (jeśli planowane są ćwiczenia multimedialne),
pendrive z wcześniejszymi projektami,
notatki i materiały z poprzednich zajęć,
własny laptop z zainstalowanym środowiskiem Python (opcjonalnie).
4. Przygotowanie techniczne
Uczniowie:
upewniają się, że konto ucznia działa w PyCharm EDU (jeśli dotyczy);
mogą zainstalować interpreter Python oraz środowisko PyCharm Community
sprawdzić działanie programu (print(), input(), podstawowe operacje).
5. Nastawienie do pracy i bezpieczeństwa
Przed lekcją warto przypomnieć uczniom:
zasady bezpiecznej pracy przy komputerze,
konieczność niepobierania plików z nieznanych źródeł oraz nieudostępniania loginów i haseł, dbania o porządek w miejscu pracy (kable, urządzenia) oraz wylogowywania się po zakończeniu pracy.
Kluczowe zasady bezpieczeństwa podczas zajęć
1. Bezpieczeństwo pracy przy komputerze
Zagrożenia:
zmęczenie wzroku, bóle kręgosłupa wynikające z niewłaściwej postawy;
potknięcia lub upadki spowodowane przewodami podłączonymi do komputerów;
przypadkowa utrata danych (przerwanie zasilania, wyłączenie urządzenia, usunięcie pliku);
przeciążenie sprzętu wynikające z niewłaściwego użytkowania.
Jak unikać:
siedzieć prosto, z monitorem ustawionym na wysokości oczu;
utrzymywać porządek przy stanowisku pracy i nie dotykać kabli bez zgody nauczyciela;
zapisywać pracę regularnie (Ctrl+S) i korzystać z bezpiecznych nośników danych;
nie instalować żadnych programów bez zgody nauczyciela;
korzystać wyłącznie z wyznaczonych kont uczniowskich.
2. Cyberbezpieczeństwo i higiena cyfrowa
Zagrożenia:
przypadkowe pobranie złośliwego oprogramowania;
otwarcie podejrzanych linków lub załączników;
udostępnienie danych osobowych w niewłaściwym miejscu;
logowanie się na nieznanych kontach lub komputerach;
utrata dostępu do konta (hasło, login).
Jak unikać:
korzystać wyłącznie z narzędzi i stron zatwierdzonych przez nauczyciela;
nigdy nie pobierać plików z przypadkowych stron internetowych;
nie udostępniać loginów, haseł i danych osobowych innym osobom;
wylogowywać się po zakończeniu pracy na komputerze szkolnym;
nie otwierać podejrzanych e‑maili, linków ani załączników;
tworzyć silne hasła i chronić je przed innymi.
3. Bezpieczeństwo pracy zespołowej
Zagrożenia:
konflikty wynikające z niezrozumienia zadań;
niekontrolowane działania jednego ucznia mogące zagrozić pracy grupy (np. przypadkowe usunięcie pliku wspólnego projektu);
brak komunikacji podczas podziału zadań.
Jak unikać:
jasno dzielić obowiązki w grupie (np. projektant, programista, tester);
konsultować zmiany w kodzie z zespołem przed ich wprowadzeniem;
korzystać z ustalonego repozytorium lub folderu współdzielonego;
okazywać wzajemny szacunek i aktywnie słuchać się nawzajem.
4. Bezpieczeństwo korzystania z oprogramowania i zasobów online
Zagrożenia:
uruchamianie nieznanego kodu pobranego z Internetu;
nadpisanie ważnych plików projektu;
utrata danych w wyniku błędów w repozytorium;
przeciążenie komputera przez błędnie napisany kod (pętle nieskończone).
Jak unikać:
uruchamiać tylko kod pochodzący z zaufanego źródła;
testować kod etapami – po każdej zmianie;
podczas zajęć informować nauczyciela o pętli nieskończonej lub problemie w programie;
tworzyć kopie zapasowe projektów.
5. Zachowanie porządku i organizacja stanowiska
Zagrożenia:
potknięcia spowodowane kablami oraz akcesoriami komputerowymi;
uszkodzenia sprzętu wynikające z niewłaściwego obchodzenia się (np. ciągnięcie za przewody);
zniszczenie dokumentacji lub notatek.
Jak unikać:
utrzymywać czyste i uporządkowane biurko;
odkładać słuchawki i inne akcesoria do wyznaczonych miejsc;
sprawdzać po zajęciach, czy nic nie zostało w porcie USB, na podłodze lub pod biurkiem;
nie jeść i nie pić przy komputerze.
6. Bezpieczeństwo psychiczne i atmosfera pracy
Zagrożenia:
stres wynikający z konieczności programowania pod presją czasu;
obawa przed popełnieniem błędu;
niekonstruktywna krytyka ze strony rówieśników.
Jak unikać:
podkreślanie, że błędy w kodzie są naturalnym elementem nauki programowania;
zachęcanie do zadawania pytań;
wspieranie współpracy zamiast rywalizacji;
ocenianie procesu, a nie tylko finalnego wyniku.
Przebieg zajęć
Faza wprowadzająca
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
2min | Przywitanie i wprowadzenie tematu: Krótkie przedstawienie zagadnienia lekcji: czym jest Python, dlaczego jest jednym z najpopularniejszych języków programowania i jak wykorzystuje się go w analizie danych, tworzeniu aplikacji, automatyzacji i sztucznej inteligencji. | Słuchają wprowadzenia, podają przykłady miejsc, w których spotkali dowolny typ programowania. | Odwołaj się do przykładów znanych uczniom. |
3 min | Zaciekawienie uczniów: | Obserwują prezentację, próbują wskazać, co powoduje konkretne działanie w programie. | Wybierz krótki przykład, który demonstruje programowanie. |
5 min | Stworzenie sytuacji problemowej: Postawienie uczniom pytania: | Zgłaszają swoje przypuszczenia, opowiadają o wcześniejszych doświadczeniach (Scratch, inne języki, roboty edukacyjne). | Unikaj wykładu — zadawaj pytania naprowadzające. |
5 min | Przedstawia cele lekcji: | Przy pomocy nauczyciela formują cele lekcji. | Formułuj cele w języku efektów: |
5 min | Wyjaśnienie zasad pracy i oczekiwań: | Akceptują zasady, pytają w przypadku wątpliwości. | Podkreśl, że błędy są naturalne i stanowią część procesów obliczeniowych. |
Faza realizacyjna
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
10min | Wprowadzenie do środowiska programistycznego | • Tworzą swój pierwszy projekt. | • Uczniowie często klikają „Run” w złym miejscu → pokaż różnicę między „Run file” a „Run project”. |
10min | Podstawowe i złożone typy zmiennych Wprowadza typy: • Pokazuje fragment z e‑materiału o zmiennych. | • Tworzą w zmienne różnych typów. | • Zastosuj krótkie pytania: „Co się stanie, jeśli spróbujemy przypisać do zmiennej typu string wartość np. 5?” |
10min | Operatory arytmetyczne, relacji i logiczne Demonstruje działanie operatorów: | Wykonują zadanie: | • Zapytaj: „Dlaczego = i == to różne operatory?” |
10min | Instrukcja warunkowa if, elif, else • Wyjaśnia składnię | Rozwiązują mini‑zadanie: Program „Sprawdź wiek”: | • Podkreśl konieczność wcięć – najczęstszy błąd. |
10min | Tablica jednowymiarowa i operacje na listach | Tworzą listę 5 imion i wykonują polecenia:
| • Przypomnij, że indeksy zaczynają się od 0. |
10min | Pętla while + else | Piszą własny program odliczający od 10 do 1. | • Uczniowie często tworzą pętle nieskończone → podkreśl konieczność zmiany zmiennej. |
10min | Pętla for i zmienna wewnętrzna • Pokazuje składnię i funkcję | • Tworzą program wypisujący: | • Podkreśl, że zmienna wewnętrzna zmienia się automatycznie. |
10 min | Działanie praktyczne: Zadanie: Na postawie zdobytych wiadomości skonstruuj robota poruszającego się po planszy i zaprogramuj go w taki sposób, aby rozpoczynał poruszanie się z wyznaczonego miejsca i dotarł do innego miejsca na planszy, a po drodze omijał przeszkody. Robot ma wykonywać polecenia zapisane w tablicy (liście), korzysta ze zmiennych, operatorów i pętli. | Podział na grupy. Wyznaczenie lidera grupy. Przydział zadań zgodnie z wytycznymi projektu.
Zadania - buduje stabilnego robota jeżdżącego, montuje: 2 silniki, czujnik odległości, koła, dba o właściwe rozmieszczenie elementów, przygotowuje trasę testową. Kompetencje rozwijane: myślenie techniczne, projektowanie konstrukcji, analiza stabilności i tarcia. Elementy fizyki - wpływ masy robota na ruch, tarcie, stabilność konstrukcji.
Zadania: napisanie programu sterującego robotem, wykorzystanie czujnika odległości, pomiar czasu przejazdu, wyświetlenie wyników.
Zadania: sprawdza poprawność działania robota, mierzy rzeczywistą drogę i czas, porównuje wyniki z obliczeniami, zapisuje błędy, proponuje poprawki. | Do rozwiązania zadania, najlepiej wykorzystać metodę projektu. Klasę dzielimy na 2 - 4 grupy w zależności od ilości posiadanych robotów. W celu usprawnienia pracy część uczniów wykonuje montaż robota, druga część pisze program, a trzecia część wykonuje projekt planszy w aplikacji typu CAD, a następnie drukuje na drukarce 3D lub na ploterze.. Ostatnim etapem będzie testowanie robota. |
20 min | Nauczyciel jako ekspert, nadzoruje pracę, służy radą jak wykonać poszczególne elementy zadania, czuwa nad bezpieczeństwem. | Waszym zadaniem jest zaprojektowanie, zbudowanie i zaprogramowanie robota ratunkowego z wykorzystaniem zestawu LEGO Education SPIKE Prime oraz języka Python. Robot powinien samodzielnie przejechać wyznaczoną trasę, zatrzymać się przed przeszkodą i obliczyć swoją średnią prędkość na podstawie zmierzonego czasu przejazdu oraz długości trasy. W czasie pracy podzielcie się na role: inżyniera odpowiedzialnego za budowę robota, programisty tworzącego kod sterujący oraz testera sprawdzającego poprawność działania i zapisującego wyniki prób. Podczas realizacji projektu wykorzystacie wiedzę z informatyki dotyczącą programowania i algorytmów oraz z fizyki dotyczącą ruchu, drogi, czasu i prędkości. Na końcu zajęć zaprezentujcie działanie robota oraz omówcie napotkane problemy i sposoby ich rozwiązania. Zespoły:
| Zwrócić uwagę na bezpieczeństwo w czasie pracy. Uczniowie pracują w grupach, każdy uczeń w grupie wykonuje inne zadanie i dlatego ważnym elementem jest nadzór. |
5min | Nauczyciel sprawdza poprawność wykonania zadania. | Testowanie działania robota zgodnie z założeniami początkowymi. | Należy zwrócić uwagę, aby wydrukowane elementy były estetyczne, program posiadał krótki przejrzysty kod. |
Faza podsumowująca
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
5min | Wyświetla zadanie: | Prezentacja wyników Liderzy grup przy pomocy członków zespołu przedstawiają efekt wykonanej pracy. Pokazują swoje układy, opowiadają jak działa ich program. Odpowiadają na pytania, wymieniają nowe umiejętności. Uczestniczą w krótkiej refleksji: „Dziś nauczyłem/am się…, ale muszę jeszcze popracować nad…”. | Zapisz na tablicy kilka kluczowych pojęć, które uczniowie poznali. Zachęć do pomysłów na kolejne lekcje (np. alarm, sygnalizator ruchu). |
5min | Podsumowanie zajęć • Podkreśla, co udało się osiągnąć. | • Uczniowie podają odpowiedzi, wskazują miejsca wykorzystania Ewaluacja - szybka karta Uczniowie zapisują:
| Robot - urządzenia do zbierania naczyń w restauracji. Robot policjant itp. Do ewaluacji można wykorzystać metodę Autoewaluacji, wówczas uczniowie odpowiadają na pytania:
|
Po zajęciach
Propozycja działań dla uczniów, które mają na celu integrację i utrwalenie zdobytej wiedzy
Przygotowanie programu w Pythonie w celu utrwalenia wiedzy i umiejętności zdobytych na lekcji.
Napisz program : Zaprogramuj robota który będzie podejmował decyzję
Uczniowie w kilkuosobowych zespołach projektują prosty program w języku Python, który na podstawie danych (np. z czujnika lub zestawu przykładowych danych) podejmuje decyzje dotyczące działania robota. Zadanie integruje wiedzę o zmiennych, instrukcjach warunkowych, tablicach i pętlach.
Uczniowie otrzymują przykładowy program sterujący robotem. Ich zadaniem jest zrozumienie jego działania, opisanie roli poszczególnych elementów kodu oraz wprowadzenie modyfikacji (np. zmiana warunków działania, dodanie nowej decyzji).
Bibliografia i załączniki
Szczegółowy wykaz elementów e‑materiałów z ZPE wykorzystanych do opracowania scenariusza
Tytuł e‑materiału | Odnośnik | Element e‑materiału |
|---|---|---|
Wstęp do programowania w języka Python | Zasady pisania kodu | |
Wstęp do programowania w języka Python | Edytor | |
Podstawowe typy zmiennych w języku Python | Tablica ze zmiennymi stosowanymi w Pythonie | |
Podstawowe typy zmiennych w języku Python | Tablica ze zmiennymi złożonymi | |
Operatory w języku Python | Tablica z przykładowymi operatorami matematycznymi | |
Operatory w języku Python | Tablica z przykładowymi operatorami relacji | |
Operatory w języku Python | Tablica z przykładowymi operatorami logicznymi | |
Operatory w języku Python | Tablica z standardowymi modułami | |
Instrukcja warunkowa w języku Python | E‑materiał dotyczący instrukcji warunkowych z przykładem |
Inne niezbędne środki i pomoce dydaktyczne
Drukarka 3D;
Zestaw długopisów 3D do prototypowania;
Programowalne zestawy do nauki programowania;
Programowalne kontrolery wraz z zestawem czujników.
Źródła literaturowe
https://www.python.org/
https://www.arduio.cc/