Autorka: Paulina Wierzbińska

Przedmiot: Informatyka

Temat: Wprowadzenie do teorii grafów w języku C++

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:
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ść;
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:
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:
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:
j) grafy (do przedstawiania abstrakcyjnego modelu sytuacji problemowych).

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):

  • Zapoznasz się z przykładową implementacją klasy grafu w języku C++.

  • Zaimplementujesz klasę grafu, zawierającą wszystkie potrzebne dane na temat wierzchołków, krawędzi i incydencji.

  • Rozwiążesz problemy związane z sąsiedztwem wierzchołków grafów.

Strategie nauczania:

  • konstruktywizm;

  • konektywizm;

  • behawioryzm.

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 C++, w tym kompilator GCC/G++ 4.5 (lub nowszej wersji) i Code::Blocks 16.01 (lub nowszej wersji), Orwell Dev‑C++ 5.11 (lub nowszej wersji) lub Microsoft Visual Studio.

Przebieg lekcji

Przed lekcją:

  1. Uczniowie przygotowują prezentacje dotyczące problemów grafowych.

  2. Przygotowanie do zajęć. Nauczyciel loguje się na platformie i udostępnia e‑materiał: „Wprowadzenie do teorii grafów w języku C++”. Uczniowie zapoznają się z treściami w sekcji „Przeczytaj”.

Faza wstępna:

  1. Uczniowie odpowiadają na pytanie o to, w jakich sytuacjach może mieć zastosowanie graf.

  2. Przedstawienie tematu zajęć oraz wspólne z uczniami ustalenie kryteriów sukcesu.

  3. Rozpoznanie wiedzy uczniów. Uczniowie tworzą pytania dotyczące tematu zajęć, na które odpowiedzą w trakcie lekcji.

Faza realizacyjna:

  1. Praca z tekstem. Nauczyciel ocenia, na podstawie informacji na platformie, stan przygotowania uczniów do zajęć. Jeżeli jest ono niewystarczające, prosi wybraną osobę o przedstawienie najważniejszych informacji z sekcji „Przeczytaj”.

  2. Praca z multimedium. Nauczyciel wyświetla zawartość sekcji „Film samouczek”. Uczniowie indywidualnie zapoznają się z treścią znajdującej się tam prezentacji multimedialnej. W zależności od poziomu grupy, nauczyciel może klasie zaproponować zapoznanie się również z filmem.

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

  4. Nauczyciel dzieli uczniów na grupy czteroosobowe. Uczniowie wykonują ćwiczenia nr 6–8 z sekcji „Sprawdź się”, a następnie porównują swoje odpowiedzi z inną grupą.

Faza podsumowująca:

  1. 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.

  2. Na koniec zajęć nauczyciel prosi uczniów o rozwinięcie zdania: „Na dzisiejszych zajęciach nauczyłam/łem się jak…”.

Praca domowa:

  1. Uczniowie wykonują ćwiczenia 9–10 z sekcji „Sprawdź się”.

Materiały pomocnicze:

  • Oficjalna dokumentacja techniczna dla języka C++.

  • Oficjalna dokumentacja techniczna dla kompilatora GCC/G++ 4.5 (lub nowszej wersji).

  • Oficjalna dokumentacja techniczna dla oprogramowania Code::Blocks 16.01 (lub nowszej wersji), Orwell Dev‑C++ 5.11 (lub nowszej wersji) lub Microsoft Visual Studio.

  • Robin J. Wilson, Wprowadzenie do teorii grafów, PWN, Warszawa 2007.

Wskazówki metodyczne:

  • „Film samouczek” wprowadza nowe wiadomości i jest przeznaczony dla osób zainteresowanych teorią grafów – dotyczy zaawansowanych sposobów reprezentacji grafów. Można go wykorzystać w ramach kółkach zainteresowań jako podstawę do napisania programu, który pobierałby od ucznia informacje na temat dwóch grafów, a następnie weryfikował, czy są to grafy izomorficzne.