Autor: Adam Jurkiewicz

Przedmiot: Informatyka

Temat: Algorytm Knutha‑Morrisa‑Pratta w języku Python

Grupa docelowa:

Szkoła ponadpodstawowa, liceum ogólnokształcące, technikum, zakres rozszerzony

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.
Treści nauczania – wymagania szczegółowe
I. Rozumienie, analizowanie i rozwiązywanie problemów.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
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.
Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:
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:
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:
g) metodę haszowania (wyszukiwanie wzorca w tekście),

Kształtowane kompetencje kluczowe:

  • kompetencje cyfrowe;

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

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

Cele operacyjne (językiem ucznia):

  • Przeanalizujesz metodę tworzenia tablicy częściowych dopasowań dla algorytmu KMP.

  • Zaimplementujesz funkcję realizującą wyszukiwanie wzorca w tekście za pomocą algorytmu KMP.

  • Rozwiążesz przykładowe zadania programistyczne z wykorzystaniem algorytmu KMP.

Strategie nauczania:

  • konstruktywizm;

  • konektywizm.

Metody i techniki nauczania:

  • dyskusja;

  • rozmowa nauczająca z wykorzystaniem multimedium i ćwiczeń interaktywnych;

  • ćwiczenia praktyczne.

Formy pracy:

  • praca indywidualna;

  • praca w parach;

  • praca w grupach;

  • praca całego zespołu klasowego.

Środki dydaktyczne:

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

  • zasoby multimedialne zawarte w e‑materiale;

  • tablica interaktywna/tablica, pisak/kreda;

  • oprogramowanie dla języka Python 3 (lub nowszej wersji), w tym PyCharm lub IDLE.

Przebieg lekcji

Przed lekcją:

  1. Przygotowanie do zajęć. Nauczyciel loguje się na platformie i udostępnia e‑materiał: „Algorytm Knutha‑Morrisa‑Pratta w języku Python”. Uczniowie zapoznają się z treściami w sekcji „Przeczytaj”.

Faza wstępna:

  1. Nauczyciel wyświetla temat i cele zajęć zawarte w sekcji „Wprowadzenie”. Następnie wspólnie z uczniami ustala kryteria sukcesu.

Faza realizacyjna:

  1. Praca z tekstem. Jeśli przygotowanie uczniów do lekcji jest niewystarczające, nauczyciel prosi uczniów o zapoznanie się z sekcją „Przeczytaj”.
    Następnie uczniowie wykonują polecenie 1. Chętna lub wybrana osoba przedstawia swoje rozwiązanie i wyjaśnia otrzymany rezultat. Pozostali uczniowie weryfikują poprawność rozwiązania lub przedstawiają alternatywne.

  2. Praca z multimedium. Nauczyciel wyświetla zawartość sekcji „Symulacja interaktywna”, czyta treść problemu 1. Uczniowie indywidualnie wypracowują swoje rozwiązania, a następnie porównują je z przedstawionym w prezentacji.

  3. Ćwiczenie umiejętności. Uczniowie wykonują ćwiczenia nr 1 i 2 z sekcji „Sprawdź się”. Nauczyciel sprawdza poprawność wykonanych zadań, omawiając je wraz z uczniami.

  4. Uczniowie wykonują w parach ćwiczenie 3 z sekcji „Sprawdź się”. Po zakończeniu zadania porównują swoje rozwiązanie z wynikiem innej grupy.

Faza podsumowująca:

  1. Nauczyciel inicjuje dyskusję na temat praktycznego wykorzystania algorytmu KMP.

  2. Nauczyciel wyświetla na tablicy temat lekcji i cele zawarte w sekcji „Wprowadzenie”. W kontekście ich realizacji podsumowuje przebieg zajęć, a także wskazuje mocne i słabe strony pracy uczniów.

Praca domowa:

  1. Uczniowie wykonują polecenie 2 z sekcji „Symulacja interaktywna”.

Materiały pomocnicze:

  • Oficjalna dokumentacja techniczna dla języka Python 3 (lub nowszej wersji).

  • Oficjalna dokumentacja techniczna dla oprogramowania PyCharm lub IDLE.

Wskazówki metodyczne:

  • Nauczyciel może wykorzystać multimedium w sekcji „Symulacja interaktywna” do pracy przed lekcją. Uczniowie zapoznają się z jego treścią i przygotowują do pracy na zajęciach w ten sposób, żeby móc samodzielnie rozwiązać zadania dołączone do e‑materiału „Algorytm Knutha‑Morrisa‑Pratta w języku Python”.