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

Lekcja 2: Myslenie komputacyjne - definiowanie problemow i modeli

Computational thinking, dekompozycja problemow, tworzenie modeli

📋 Podstawa programowa: I.1
abstrakcjadekompozycjamyslenie komputacyjne
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 sposob podejscia do rozwiazywania problemow, ktory mozna zastosowac nie tylko w informatyce, ale w kazdej dziedzinie zycia. Polega na ukladaniu problemow i ich rozwiazan w taki sposob, aby mogly byc efektywnie zrealizowane - rowniez przez komputer.

Myslenie komputacyjne to nie myslenie JAK komputer, ale myslenie W SPOSOB, ktory pozwala komputerowi pomoc nam w rozwiazywaniu problemow.

Cztery filary myslenia komputacyjnego

  1. Dekompozycja - rozbijanie zlozonego problemu na mniejsze, latwiejsze do rozwiazania czesci.

    Przyklad: Budowa aplikacji mobilnej = projektowanie interfejsu + logika dzialania + baza danych + testowanie.

  2. Rozpoznawanie wzorcow - identyfikowanie podobnych cech lub powtarzajacych sie elementow w problemach.

    Przyklad: Kazdy formularz rejestracyjny na stronie internetowej zawiera podobne pola: imie, email, haslo.

  3. Abstrakcja - skupienie sie na najwazniejszych informacjach i pominiecie nieistotnych szczegolow.

    Przyklad: Mapa metra nie pokazuje dokladnego ksztaltu tuneli - pokazuje tylko stacje i polaczenia.

  4. Projektowanie algorytmow - tworzenie krokowej instrukcji rozwiazania problemu.

    Przyklad: Przepis kulinarny to algorytm - sekwencja krokow prowadzaca do gotowego dania.

Etapy rozwiazywania problemow

Zgodnie z podstawa programowa, rozwiazywanie problemow informatycznych przebiega w nastepujacych etapach:

  1. Okreslenie problemu - co dokladnie chcemy rozwiazac? Jakie sa dane wejsciowe i oczekiwane wyniki?
  2. Definicja modeli i pojec - jakie pojecia sa potrzebne? Jaki model matematyczny lub logiczny opisuje problem?
  3. Znalezienie rozwiazania - zaprojektowanie algorytmu, wybor odpowiedniej metody
  4. Zaprogramowanie rozwiazania - zapisanie algorytmu w wybranym jezyku programowania
  5. Testowanie rozwiazania - sprawdzenie, czy program dziala poprawnie dla roznych danych

Modelowanie problemow

Model to uproszczone przedstawienie rzeczywistosci, ktore pozwala zrozumiec i rozwiazac problem. W informatyce czesto tworzymy modele:

  • Model danych - jakie informacje przechowujemy i jak sa ze soba powiazane (np. uczen ma imie, nazwisko, ocene)
  • Model procesow - jak przebiegaja operacje krok po kroku (schemat blokowy, lista krokow)
  • Model matematyczny - opis problemu za pomoca rownan i nierownosci (np. obliczanie pola figury)

Przyklad: Planowanie wycieczki szkolnej

Zobaczmy, jak myslenie komputacyjne pomaga w planowaniu wycieczki:

  • Dekompozycja: transport + noclegi + program zwiedzania + budzet + lista uczestnikow
  • Wzorce: kazda wycieczka wymaga rezerwacji, listy obecnosci, zgod rodzicow
  • Abstrakcja: nie musimy znac koloru autobusu - wazna jest liczba miejsc i koszt
  • Algorytm: 1) Zebierz chcetnych -> 2) Oblicz budzet -> 3) Rezerwuj transport -> 4) Rezerwuj noclegi -> 5) Przygotuj dokumenty
✏️

Zadania

Latwe

Zadanie 1: Dekompozycja - rozloz na czesci

Rozloz nastepujace problemy na mniejsze podproblemy (minimum 4 czesci skladowe):

a) Organizacja turnieju e-sportowego w szkole
b) Stworzenie strony internetowej dla szkolnego kola zainteresowania
c) Przygotowanie prezentacji multimedialnej na konkurs

Pokaz przykladowe rozwiazanie
a) Organizacja turnieju e-sportowego:
   1. Wybor gry i regulamin turnieju
   2. Rejestracja druzyn/uczestnikow
   3. Przygotowanie sprzetu (komputery, siec)
   4. Ustalenie harmonogramu rozgrywek (drabinka)
   5. Prowadzenie turnieju i zapisywanie wynikow
   6. Nagrody i podsumowanie

b) Stworzenie strony internetowej:
   1. Zebranie informacji o kole (cel, czlonkowie)
   2. Zaprojektowanie wygladu strony (makieta)
   3. Napisanie kodu HTML i CSS
   4. Dodanie tresci (teksty, zdjecia)
   5. Testowanie i publikacja

c) Prezentacja multimedialna:
   1. Wybor tematu i zebranie materialow
   2. Przygotowanie planu prezentacji (slajdy)
   3. Tworzenie slajdow (tekst, grafika)
   4. Dodanie animacji i przejsc
   5. Proba generalna i korekta
Latwe

Zadanie 2: Rozpoznawanie wzorcow

Znajdz wspolne cechy (wzorce) w nastepujacych grupach:

a) Logowanie do: poczty e-mail, dziennika elektronicznego, mediow spolecznosciowych
b) Sortowanie: ksiazek na polce, plikow w folderze, uczniow wedlug nazwiska
c) Wyszukiwanie: slowa w slowniku, kontaktu w telefonie, towaru w sklepie internetowym

Pokaz przykladowe rozwiazanie
a) Wspolne cechy logowania:
   - Pole na identyfikator (login/email)
   - Pole na haslo
   - Przycisk potwierdzajacy
   - Mozliwosc odzyskania hasla
   - Weryfikacja danych (poprawne/niepoprawne)

b) Wspolne cechy sortowania:
   - Potrzebne kryterium porzadkowania
   - Porownywanie par elementow
   - Zamiana miejscami elementow
   - Powtarzanie az do uporzadkowania

c) Wspolne cechy wyszukiwania:
   - Zbiór elementow do przeszukania
   - Szukany wzorzec/klucz
   - Porownywanie z kolejnymi elementami
   - Wynik: znaleziono lub nie znaleziono
Srednie

Zadanie 3: Abstrakcja - co jest wazne?

Dla kazdego z ponizszych zadan okresl, ktore informacje sa istotne (potrzebne do rozwiazania), a ktore mozna pominac:

a) Obliczenie sredniej ocen ucznia (dane: imie, nazwisko, klasa, oceny, kolor oczu, ulubiony przedmiot)
b) Wyznaczenie najkrotszej trasy z domu do szkoly (dane: nazwy ulic, kolory budynkow, odleglosci, kwiaty w ogrodkach, ograniczenia predkosci)
c) Sprawdzenie, czy slowo jest palindromem (dane: dlugosc slowa, jezyk, litery slowa, autor, czcionka)

Pokaz przykladowe rozwiazanie
a) Srednia ocen:
   ISTOTNE: oceny
   NIEISTOTNE: imie, nazwisko, klasa, kolor oczu,
   ulubiony przedmiot (choc imie/nazwisko przydatne
   do identyfikacji, nie sa potrzebne do obliczenia)

b) Najkrotsza trasa:
   ISTOTNE: nazwy ulic, odleglosci, ograniczenia predkosci
   NIEISTOTNE: kolory budynkow, kwiaty w ogrodkach

c) Palindrom:
   ISTOTNE: litery slowa
   NIEISTOTNE: dlugosc (mozna obliczyc z liter),
   jezyk, autor, czcionka
Trudne

Zadanie 4: Pelne rozwiazanie problemu

Przeprowadz pelna analize problemu: "Jak sprawdzic, czy podane slowo jest palindromem (czyta sie tak samo od przodu i od tylu, np. KAJAK, ANNA)?". Zastosuj wszystkie 4 filary myslenia komputacyjnego i 5 etapow rozwiazywania problemu.

Pokaz przykladowe rozwiazanie
MYSLENIE KOMPUTACYJNE:
1. Dekompozycja:
   - Wczytaj slowo
   - Odwroc slowo
   - Porownaj oryginalne z odwroconym

2. Wzorce: podobne do porownywania dwoch tekstow

3. Abstrakcja: liczy sie kolejnosc liter,
   nie wielkosc liter ani spacje

4. Algorytm: patrz nizej

ETAPY ROZWIAZYWANIA:
1. Problem: Czy dane slowo to palindrom?
   Wejscie: slowo (ciag znakow)
   Wyjscie: TAK lub NIE

2. Model: palindrom to slowo, w ktorym
   i-ta litera od poczatku = i-ta litera od konca

3. Algorytm:
   a) Wczytaj slowo S
   b) Zamien wszystkie litery na male
   c) Ustaw i = 0, j = dlugosc(S) - 1
   d) Dopoki i < j:
      - Jesli S[i] != S[j] -> wypisz "NIE", KONIEC
      - i = i + 1, j = j - 1
   e) Wypisz "TAK"

4. Program (pseudokod powyzej - w przyszlosci Python)

5. Testy:
   "kajak" -> TAK (poprawnie)
   "anna"  -> TAK (poprawnie)
   "dom"   -> NIE (poprawnie)
   ""      -> TAK (pusty = palindrom)
   "a"     -> TAK (jedna litera = palindrom)
🎥

Materialy wideo

Myslenie komputacyjne - co to jest?
Materialy edukacyjne
Computational Thinking - wprowadzenie
Informatyka w szkole
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 1: Wprowadzenie do informatyki Lekcja 3: Pozycyjne systemy liczbowe →