Computational thinking, dekompozycja problemow, tworzenie modeli
ð Podstawa programowa: I.1Myslenie 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.
Przyklad: Budowa aplikacji mobilnej = projektowanie interfejsu + logika dzialania + baza danych + testowanie.
Przyklad: Kazdy formularz rejestracyjny na stronie internetowej zawiera podobne pola: imie, email, haslo.
Przyklad: Mapa metra nie pokazuje dokladnego ksztaltu tuneli - pokazuje tylko stacje i polaczenia.
Przyklad: Przepis kulinarny to algorytm - sekwencja krokow prowadzaca do gotowego dania.
Zgodnie z podstawa programowa, rozwiazywanie problemow informatycznych przebiega w nastepujacych etapach:
Model to uproszczone przedstawienie rzeczywistosci, ktore pozwala zrozumiec i rozwiazac problem. W informatyce czesto tworzymy modele:
Zobaczmy, jak myslenie komputacyjne pomaga w planowaniu wycieczki:
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
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
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
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
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)
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
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.
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)