Autor: Zespół Gromar.eu

Przedmiot: informatyka

Temat: Generowanie liczb pseudolosowych w języku Python

Grupa docelowa: III etap edukacyjny, liceum, technikum

Podstawa programowa:

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.
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).
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ą;
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;
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;
3) sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy pisaniu, uruchamianiu i testowaniu programów;

Kompetencje kluczowe:

  • kompetencje w zakresie rozumienia i tworzenia informacji,

  • kompetencje w zakresie wielojęzyczności,

  • kompetencje matematyczne oraz kompetencje w zakresie nauk przyrodniczych, technologii i inżynierii,

  • kompetencje osobiste, społeczne i w zakresie umiejętności uczenia się,

  • kompetencje cyfrowe.

Cele operacyjne:

Uczeń:

  • generuje całkowite i rzeczywiste liczby pseudolosowe;

  • stosuje sposoby, dzięki którym losowania będą powtarzalne;

  • tworzy proste symulacje rzeczywistych losowań.

Strategie nauczania:

  • konstruktywizm.

Metody i techniki nauczania:

  • rozmowa kierowana;

  • analiza kodu;

  • programowanie.

Formy pracy:

  • praca indywidualna;

  • praca w parach;

  • praca w grupach;

  • praca całego zespołu klasowego.

Środki dydaktyczne:

  • komputery z głośnikami i dostępem do internetu, słuchawki;

  • zasoby multimedialne zawarte w e‑materiale;

  • tablica interaktywna/tablica, pisak/kreda.

Przebieg zajęć:

Faza wstępna

  1. Na poprzednich zajęciach grupa uczniów otrzymuje zadanie – stworzenie prezentacji multimedialnej dotyczącej gier losowych i generatorów liczb pseudolosowych.

  2. Nauczyciel podaje temat i cele zajęć oraz wspólnie z uczniami ustala kryteria sukcesu.

  3. Przedstawienie prezentacji przygotowanej przez uczniów i omówienie modułu random. Reszta klasy ocenia pracę kolegów i dyskutuje.

Faza realizacyjna

  1. Wspólne omówienie i zapisanie poszczególnych kroków w procesie losowania liczb rzeczywistych i całkowitych (funkcje seed(), random(), uniform(), randrange()).

  2. Uczniowie wykonują ćwiczenia sprawdzające zdobyte umiejętności.

  3. Praca w czterech grupach – analiza informacji dotyczących funkcji shuffle(), choice(), sample()choices(). Przedstawiciele grup prezentują poszczególne funkcje i ich możliwości, a pozostali uczniowie w razie potrzeby uzupełniają i weryfikują informacje.

  4. Praca z multimedium bazowym (symulacją). Uczniowie dzielą się na zespoły. Każdy z nich stawia hipotezę dotyczącą tego, jak rozkładają się wartości w przypadku różnych losowań z powtórzeniami. Następnie przeprowadzane są symulacje i uczniowie zapisują wnioski. Po zakończeniu pracy przedstawiciele grup prezentują je na forum klasy. W kolejnym kroku uczniowie dyskutują o wnioskach poszczególnych grup, weryfikują je i uzgadniają wspólne stanowisko.

  5. Uczniowie piszą algorytmy (zestaw ćwiczeń), które od razu są sprawdzane. Wspólnie z nauczycielem omawiają swoje rozwiązania.

Faza podsumowująca

  1. Na koniec zajęć nauczyciel prosi uczniów o odpowiedź na pytania o to, czego się nauczyli, co zrozumieli, co ich zaskoczyło, co było dla nich trudne, a co – łatwe.

Dwa ostatnie pytania oceniają trudność omawianego zagadnienia; dzięki nim uczeń dokonuje samooceny swoich wiadomości i umiejętności.

  1. Nauczyciel wskazuje mocne i słabe strony pracy zespołów, udzielając im tym samym informacji zwrotnej.

Materiały pomocnicze:

Dokumentacja dla języka Python 3.

Wskazówki metodyczne opisujące różne zastosowania multimedium:

Nauczyciel może wykorzystać multimedium bazowe (symulację) do zadania z elementami grywalizacji. Uczniowie muszą przygotować symulację dla podanych liczb na czas, rywalizując ze sobą. Nauczyciel nagradza zwycięską drużynę.