Liceum Klasa I 45 minut PP: I.1 | s. 342

Lekcja 2: Myslenie komputacyjne - etapy rozwiazywania problemow informatycznych

Dekompozycja, rozpoznawanie wzorcow, abstrakcja, algorytmika

📋 Podstawa programowa: I.1
algorytmymodelmyslenie komputacyjneproblemrozwiazywanie problemow
00:00
Wprowadzenie
5 min
00:05
Teoria
15 min
00:20
Cwiczenia
15 min
00:35
Podsumowanie
10 min
📚

Teoria

Czym jest myslenie komputacyjne?

Myslenie komputacyjne (ang. Computational Thinking) to zestaw umiejetnosci pozwalajacych rozwiazywac problemy w sposob, ktory moze byc zrozumiany i wykonany przez czlowieka lub komputer. Termin ten spopularyzowal Jeannette Wing z Carnegie Mellon University w 2006 roku.

Uwaga! Myslenie komputacyjne NIE oznacza myslenia jak komputer. To umiejetnosc formowania problemow i ich rozwiazan tak, by mozna bylo je efektywnie rozwiazac - z uzyciem komputera lub bez niego.

Cztery filary myslenia komputacyjnego

Myslenie komputacyjne opiera sie na czterech kluczowych etapach:

1. Okreslenie problemu (dekompozycja)

Dekompozycja to rozbicie zlozonego problemu na mniejsze, latwiejsze do rozwiazania czesci. Zamiast probowac rozwiazac caly problem naraz, dzielimy go na etapy.

Przyklad: Chcesz zorganizowac wyjazd klasowy. Zamiast myslec o wszystkim naraz, dzielisz to na: wybor miejsca, transport, nocleg, wyzywienie, harmonogram, budzet.

2. Definicja modeli i pojec (rozpoznawanie wzorcow)

Rozpoznawanie wzorcow to szukanie podobienstwa miedzy problemami lub ich czesciami. Jesli rozwiazales juz podobny problem, mozesz uzyc tamtego rozwiazania jako wzorca.

Przyklad: Algorytm sortowania kart jest podobny do sortowania ksiazek na polce - w obu przypadkach porownujemy elementy i ustawiamy je w odpowiedniej kolejnosci.

3. Znalezienie rozwiazania (abstrakcja)

Abstrakcja to odrzucenie nieistotnych szczegolow i skupienie sie na tym, co naprawde wazne. Tworzymy uproszczony model problemu.

Przyklad: Mapa metra to abstrakcja - nie pokazuje dokladnych odleglosci ani ksztaltow ulic, ale pokazuje to, co jest wazne: stacje i polaczenia miedzy nimi.

4. Zaprogramowanie i testowanie rozwiazania (algorytmika)

Algorytm to precyzyjny, krokowy opis rozwiazania problemu. Kazdy krok musi byc jednoznaczny i wykonalny. Po zaprogramowaniu algorytmu nalezy go przetestowac - sprawdzic, czy dziala poprawnie dla roznych danych wejsciowych.

Przyklad: Algorytm wyszukiwania slowa w slowniku: otwieramy slownik w polowie, sprawdzamy czy szukane slowo jest przed czy po aktualnej stronie, powtarzamy az znajdziemy.

Myslenie komputacyjne w codziennym zyciu

Myslenie komputacyjne stosujemy codziennie, nawet nie zdajac sobie z tego sprawy:

  • Gotowanie wedlug przepisu - to wykonywanie algorytmu krok po kroku
  • Planowanie trasy - abstrakcja (ignorujemy nieistotne drogi), dekompozycja (dzielimy na etapy)
  • Organizacja szafy - rozpoznawanie wzorcow (grupowanie podobnych ubran), abstrakcja (ignorujemy kolor, skupiamy sie na rodzaju)
  • Diagnozowanie problemu z samochodem - dekompozycja (sprawdzamy kolejne elementy), algorytm (jesli silnik nie odpala - sprawdz akumulator, paliwo, swiecenia...)
  • Gra w szachy - abstrakcja (pozycja figur), rozpoznawanie wzorcow (typowe otwarcia), algorytm (strategia gry)

Pseudokod - jezyk opisu algorytmow

Zanim zapiszemy rozwiazanie w jezyku programowania, warto zapisac je w pseudokodzie - uproszczonym jezyku polaczeniu polskiego i programowania:

ALGORYTM: Czy liczba jest parzysta?
WEJSCIE: liczba n
  1. Oblicz reszta = n mod 2
  2. JESLI reszta == 0
     3. WYPISZ "Liczba jest parzysta"
  4. W PRZECIWNYM RAZIE
     5. WYPISZ "Liczba jest nieparzysta"
KONIEC
✏️

Zadania

Latwe

Zadanie 1: Dekompozycja - organizacja imprezy urodzinowej

Rozloz problem "organizacja imprezy urodzinowej" na co najmniej 6 mniejszych zadan. Dla kazdego podzadania napisz 2-3 konkretne kroki do wykonania.

Pokaz przykladowe rozwiazanie
Dekompozycja: Organizacja imprezy urodzinowej

1. Lista gosci
   - Okresl ile osob zaprosic
   - Przygotuj zaproszenia
   - Zbierz potwierdzenia

2. Miejsce
   - Wybierz lokalizacje (dom, restauracja, park)
   - Sprawdz dostepnosc terminu
   - Zarezerwuj miejsce

3. Jedzenie i napoje
   - Okresl menu (dieta, alergie gosci)
   - Zrob liste zakupow
   - Zamow lub przygotuj jedzenie

4. Dekoracje
   - Wybierz motyw przewodni
   - Kup balony, serpentyny, obrus
   - Udekoruj miejsce

5. Rozrywka
   - Zaplanuj gry i zabawy
   - Przygotuj muzyke
   - Opcjonalnie: zamow animatora

6. Tort
   - Wybierz smak i rozmiar
   - Zamow lub upiecz
   - Kup swieczki
Latwe

Zadanie 2: Rozpoznawanie wzorcow

Znajdz wzorzec (prawidlowosc) w ponizszych ciagach i podaj kolejny element:
a) 2, 4, 8, 16, 32, ?
b) 1, 1, 2, 3, 5, 8, 13, ?
c) PON, WTO, SRO, CZW, ?
d) A1, B2, C3, D4, ?

Pokaz przykladowe rozwiazanie
a) 64 (kazda liczba to podwojenie poprzedniej: *2)
b) 21 (ciag Fibonacciego: kazda liczba to suma dwoch poprzednich)
c) PIA (dni tygodnia w skrocie)
d) E5 (kolejna litera alfabetu + kolejna cyfra)
Srednie

Zadanie 3: Abstrakcja - instrukcja dla robota

Robot stoi na planszy 5x5 w lewym dolnym rogu (pole 1,1). Musi dojsc do prawego gornego rogu (pole 5,5). Robot rozumie komendy: GORA, DOL, LEWO, PRAWO. Napisz algorytm (ciag komend), ktory doprowadzi robota do celu. Nastepnie zastanow sie: ile jest mozliwych najkrotszych tras? Jakie informacje sa nieistotne (abstrakcja)?

Pokaz przykladowe rozwiazanie
Jedna z mozliwych tras:
PRAWO, PRAWO, PRAWO, PRAWO, GORA, GORA, GORA, GORA

Inna trasa:
GORA, PRAWO, GORA, PRAWO, GORA, PRAWO, GORA, PRAWO

Najkrotsza trasa wymaga dokladnie 4 ruchow PRAWO i 4 ruchow GORA
(lacznie 8 krokow).

Liczba mozliwych najkrotszych tras: C(8,4) = 70

Abstrakcja: Nieistotne sa kolory pol, rozmiar robota,
predkosc poruszania sie - liczy sie tylko pozycja
i dozwolone ruchy.
Trudne

Zadanie 4: Pelny proces myslenia komputacyjnego

Zastosuj wszystkie 4 etapy myslenia komputacyjnego do problemu: "Jak znalezc najkrotsza trase z domu do szkoly?". Opisz: (1) dekompozycje, (2) wzorce, (3) abstrakcje, (4) algorytm w pseudokodzie.

Pokaz przykladowe rozwiazanie
1. DEKOMPOZYCJA:
   - Znajdz punkt startowy (dom) i koncowy (szkola)
   - Okresl mozliwe drogi/trasy
   - Dla kazdej trasy oblicz odleglosc/czas
   - Porownaj trasy i wybierz najlepsza

2. WZORCE:
   - Problem jest podobny do nawigacji GPS
   - Przypomina szukanie drogi w labiryncie
   - Znane algorytmy: Dijkstra, A*

3. ABSTRAKCJA:
   - Nieistotne: kolor budynkow, pogoda, pora dnia
   - Istotne: skrzyzowania, odleglosci miedzy nimi,
     dozwolone kierunki jazdy
   - Model: graf (wezly = skrzyzowania, krawedzie = drogi)

4. ALGORYTM:
   START
   trasy = znajdz_wszystkie_trasy(dom, szkola)
   najlepsza = trasy[0]
   DLA KAZDEJ trasy w trasach:
       JESLI dlugosc(trasa) < dlugosc(najlepsza):
           najlepsza = trasa
   ZWROC najlepsza
   KONIEC
🎥

Materialy wideo

Myslenie komputacyjne - co to jest?
Materialy edukacyjne
Wprowadzenie do informatyki i myslenia algorytmicznego
Pasja informatyki
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 1: Wprowadzenie Lekcja 3: Systemy liczbowe →