Myślenie algorytmamihttp://edukacjamedialna.edu.pl/lekcje/wprowadzenie-w-myslenie-algorytmiczne/liceumMaciej DowgielUrszula DobrowolskaWojciech BudziszPublikacja dofinansowana ze środków Ministra Kultury i Dziedzictwa Narodowegocourse2012/IV/INFORMATYKA/t7Dane i ich formaty - Kompetencje cyfroweinternet2018/LO/informatyka/t1.22018/LO/informatyka/t1.42018/LO/informatyka/t1.5Fundacja Nowoczesna PolskaCreative Commons Uznanie autorstwa - Na tych samych warunkach 3.0http://creativecommons.org/licenses/by-sa/3.0/xml2015-01-12polMyślenie algorytmamiWiedza w pigułceU podstaw pracy komputerów leżą algorytmy. Samo pojęcie brzmi może jak trudny do zrozumienia problem, jednak w rzeczywistości jest ono zaskakująco intuicyjne i blisko związane z naszym codziennym życiem. Najprościej algorytm można przedstawić jako ciąg jasno definiowanych kroków, które musimy wykonać, aby osiągnąć pożądany cel. Również w taki sposób podchodzimy zazwyczaj do zadań, jakie stoją przed nami na co dzień. Zastanawiamy się, w czym tkwi sedno problemu i w jakiej kolejności powinniśmy wykonywać poszczególne czynności, aby go rozwiązać. Przykładami takich „życiowych algorytmów” są przepisy kulinarne — to nic innego jak zapis ciągu kroków, których wykonanie doprowadzi nas do uzyskania określonej potrawy. Tworzenie algorytmu można podzielić na kilka kroków:Zdefiniuj problem. Zastanów się, na czym polega i w jaki sposób można by go było najprościej rozwiązać. Podziel go na mniejsze zadania do wykonania. Kontynuuj tę czynność tak długo, aż uzyskasz szereg bardzo drobnych, szczegółowo opisanych czynności.Określ, jakich narzędzi i metod użyjesz przy wykonywaniu każdego z pomniejszych zadań. Zastanów się nad optymalnymi sposobami działania. W informatyce definiuje się algorytm jako sposób przetworzenia danych wejściowych tak, aby otrzymać określone dane wyjściowe. Aby komputer dostarczył nam pożądany wynik działań, należy podzielić zadanie na szereg bardzo prostych komend. Dotyczą one operacji na danych, które — aby komputer mógł je łatwo analizować — tworzą określone struktury. Ważną ich klasą są struktury hierarchiczne (tworzą je np. pliki podzielone na katalogi). Ułatwiają one uporządkowane przechowywanie danych i ich szybkie wyszukiwanie. Inne struktury danych mogą m.in. opisywać połączenia pomiędzy elementami czy ich właściwości (jak wtedy, gdy ujmują informacje w formie tabeli czy arkusza kalkulacyjnego). Ułożenie komend w ciąg i ujęcie ich w całość daje nam prosty program, dzięki któremu nie musimy powtarzać ciągu dokładnie tych samych, prostych poleceń. Taka automatyzacja rutynowych działań jest jednym z podstawowych zastosowań komputerów — podstawowych narzędzi współczesnych ludzi. Obecnie algorytmy decydują na przykład o tym, czy otrzymamy kredyt w banku (komputer za pomocą algorytmu analizuje dane i określa, czy na pewno wywiążemy się ze zobowiązania), pokazują nam najkrótszą drogę pomiędzy punktami na mapach czy sugerują partnerów na portalach randkowych. Mają zatem wielki wpływ na nasze życie, choć często sobie tego nie uświadamiamy. Pomysł na lekcję: Sprawdzamy, w jaki sposób myślenie algorytmiczne funkcjonuje w codziennym życiu, jaki ma wpływ na nasze postępowanie oraz w jaki sposób działanie komputera zależy od algorytmów, umożliwiając wykonywanie konkretnych operacji.Cele operacyjne
Uczestnicy i uczestniczki:
wiedzą, co to jest algorytm;wiedzą, że myślenie algorytmiczne ma zastosowanie w codziennym życiu i informatyce;wiedzą, że cel można osiągnąć, korzystając z alternatywnych rozwiązań (algorytmów);potrafią wymienić sytuacje z życia, w których przydatne jest myślenie algorytmiczne;potrafią rozwiązać prosty problem z życia codziennego, rozbijając go na mniejsze problemy (zagadnienia);potrafią przetestować działanie algorytmu;rozumieją budowę prostego algorytmu;rozumieją pojęcia: związek relacyjny pomiędzy danymi i hierarchiczna struktura danych;mają świadomość, że używanie algorytmów ułatwia codzienne funkcjonowanie;mają świadomość, że algorytmy kształtują ludzkie zachowania.
Przebieg zajęćCzęść I. Algorytmy codzienności. Zapytaj uczestniczki i uczestników, czy wiedzą, czym jest algorytm. Jeżeli nie wiedzą, przedstaw definicję na podstawie „Wiedzy w pigułce”. Po wspólnym sformułowaniu definicji, zapytaj uczestniczki i uczestników, czy wiedzą, w jakich dziedzinach życia, nauki i wiedzy przydatne jest myślenie algorytmiczne. Zapisz na tablicy skróconą do równania definicję algorytmu: ALGORYTM = PRZEPIS. Po wskazaniu konkretnej dziedziny poproś o zapisanie jej na kartce i przyklejenie w wyznaczonym miejscu na tablicy.
7
rozmowa, burza mózgów
papierowe kartki, flamastry, taśma klejąca, tablica
Wyświetl trzy przepisy na zrobienie kawy [materiał dodatkowy "Różne sposoby na kawę"]. Zwróć uwagę uczestniczek i uczestników, że wszystkie z nich prowadzą do (pozornie) takiego samego rezultatu.Zapytaj, jakie czynniki należy wziąć pod uwagę przy tworzeniu algorytmu kubka kawy. Oczekiwane odpowiedzi:Dokładne sprecyzowanie/zdefiniowanie problemu.Podzielenie problemu na kroki prowadzące do jego rozwiązania.Określenie, jakich narzędzi użyć do rozwiązania każdego z określonych wcześniej kroków (pomniejszych problemów, na które został podzielony zdefiniowany na wstępie problem główny).
6
rozmowa, burza mózgów
projektor, materiał dodatkowy "Różne sposoby na kawę"
Zapytaj, jakie jeszcze czynniki są istotne przy tworzeniu algorytmu: czas, środki ekonomiczne. Poproś o podanie innych przykładów rozwiązań jakiegoś problemu, w których czas i środki odgrywają istotną rolę. Wykorzystaj w tym celu schemat (karta pracy "Algorytmy codzienności"), rozdając uczestnikom wydrukowaną kartę pracy. Zadanie może być wykonywane indywidualnie lub w parach. Przypomnij, że uczestnicy mogą inspirować się dziedzinami z życia, nauki i wiedzy (zapisanymi na kartkach i przyklejonymi do tablicy w pierwszej części zajęć). Uczestnicy i uczestniczki mogą rozbudowywać wykres o rozgałęzienia, pamiętając przy tym, że w przypadku każdego z zagadnień możliwe są tylko dwie odpowiedzi: TAK (1) lub NIE (0). Po wykonaniu zadania poproś, by uczestniczki i uczestnicy przedstawili wyniki pracy.
10
drzewko decyzyjne
karty pracy "Algorytmy codzienności", flamastry
Zapytaj uczestników i uczestniczki, w jakich sferach życia myślenie algorytmiczne nie ma zastosowania. Zwróć uwagę na nieprzewidywalność pewnych czynników wynikającą z indywidualnych zachowań, związanych z emocjami, tworzeniem dzieła sztuki itd.
3
rozmowa
Część II. Algorytmy w informatyce. Przedstaw zasady funkcjonowania komputerów, oparte przede wszystkim na pracy algorytmów. Zwróć uwagę, że działanie algorytmów w informatyce to zawsze przekształcanie danych wejściowych na wyjściowe. Zapoznaj uczestniczki i uczestników z informacjami zawartymi w „Wiedzy w pigułce”. Porównaj działanie komputera wykorzystującego algorytmy do szybkiej, zautomatyzowanej pracy księgowego lub kasjera. Zwróć uwagę, że aplikacje pisane są zawsze w konkretnym języku programowania, np. Java, C++, Delphi, SQL, JavaScript, Python, C#. Opowiedz krótko o najlepiej ci znanym. Zapytaj uczniów, jakie znają zastosowania algorytmów w informatyce. Jeżeli nie potrafią wymienić przykładów, omów krótko te, z których korzystają najczęściej, np. selektywne wyświetlanie informacji na portalu społecznościowym Facebook, wyszukiwarka połączeń autobusowych, pozycjonowanie stron w wyszukiwarkach internetowych, selektywny dobór osób na portalach randkowych.
7
miniwykład z elementami heurezy
Wyświetl materiał dodatkowy "Kto jest kim w <<Grze o tron>>". Przy omówieniu drzewa genealogicznego np. rodu Starków z popularnej serii telewizyjnej „Gra o tron”, stosuj słownictwo charakterystyczne dla opisu hierarchicznej struktury danych i metafory drzewa jako rodziny: korzeń, węzły, krawędzie, liście. Zapytaj uczniów, gdzie w informatyce korzysta się z takiej struktury danych. Jeżeli uczestniczki i uczestnicy nie potrafią podać przykładu, zapisz na tablicy przykład ścieżki dostępu do określonego folderu lub pliku. Np. C:\użytkownik\mojedokumenty\zdjecia\prywatne\2016. Poproś, by uczniowie w tym zapisie wskazali, co jest korzeniem, co rozgałęzieniem, co liśćmi oraz gdzie występują relacje. Podziel uczestników na 6 grup. Każdej z nich daj kartę pracy "Uszeregowanie hierarchiczne". Poproś o (uproszczone) hierarchiczne rozpisanie znanych im struktur: grupa 1. — służba zdrowia, grupa 2. — policja, grupa 3. — szkoła, grupa 4. — uniwersytet, grupa 5. — rodzaje i gatunki filmowe, grupa 6. — rodzaje i gatunki literackie. Podsumuj ćwiczenie, prosząc przedstawiciela lub przedstawicielkę każdej z grup o zaprezentowanie wyników pracy. Poproś, aby w ramach pracy domowej uczestniczki i uczestnicy hierarchicznie opisali ścieżkę dostępu do folderu „Kosz”.
10
praca w grupach, burza mózgów
karty pracy "Uszeregowanie hierarchiczne" (6 sztuk), flamastry, projektor, materiał dodatkowy "Kto jest kim w <<Grze o tron>>"
EwaluacjaCzy po przeprowadzeniu zajęć ich uczestnicy i uczestniczki:• wiedzą, co to jest algorytm;• wiedzą, że myślenie algorytmiczne ma zastosowanie w codziennym życiu i informatyce;• wiedzą, że cel można osiągnąć, korzystając z alternatywnych rozwiązań (algorytmów);• potrafią wymienić sytuacje z życia, w których przydatne jest myślenie algorytmiczne;• potrafią rozwiązać prosty problem z życia codziennego, rozbijając go na mniejsze problemy (zagadnienia);• potrafią zidentyfikować problem oraz stworzyć rozwiązanie problemu w oparciu o swój projekt i dostępne narzędzia informatyczne (programy, aplikacje);• potrafią przetestować działanie algorytmu i ocenić jego skuteczność pod kątem warunków brzegowych;• rozumieją budowę prostego algorytmu;• rozumieją pojęcia: związek relacyjny pomiędzy danymi i hierarchiczna struktura danych;• mają świadomość, że używanie algorytmów ułatwia codzienne funkcjonowanie;• mają świadomość, że algorytmy kształtują ludzkie zachowania Opcje dodatkoweJeżeli udało Ci się zrealizować materiał w krótszym czasie, wyświetl film podsumowujący wiedzę zdobytą w trakcie zajęć. https://www.youtube.com/watch?v=S-ws2W6UbPU MateriałyMateriał dodatkowy "Różne sposoby na kawę"materiał dodatkowy "Kto jest kim w <<Grze o tron>>"Karta pracy "Algorytmy codzienności"Karta pracy "Uszeregowanie hierarchiczne"Zadanie dla uczniaOznacz poniższe zdania jako prawdę lub fałsz.Każdy algorytm można wprowadzić do komputera w dowolnym języku europejskim.Program komputerowy to algorytm zapisany w języku zrozumiałym dla każdego.Hierarchiczny model danych przypomina swoją budową drzewo.Ciąg kroków w algorytmie może być nieskończenie długi.Dzięki algorytmom można dokładnie przewidzieć reakcje emocjonalne człowieka.Algorytmy nie sprawdzają się przy przewidywaniu działania człowieka w afekcie.Rekord bazy danych to pojedynczy wpis w bazie.Stworzono już wszystkie możliwe algorytmy usprawniające pracę komputerów.Słowniczekalgorytmdane wejściowedane wyjściowehierarchiczna struktura danychCzytelniaManovitch Lev, Formy. Logika bazy danych i Formy. Dane i algorytm [w:] Lev Manovitch, Język nowych mediów, tłum. Piotr Cypryański, Warszawa 2006, s. 333–342. Algorytm, hasło w Wikipedii, [dostęp: 24.10.2016], Dostępny w interencie: https://pl.wikipedia.org/wiki/AlgorytmDrzewo, hasło w Wikipedii, [dostęp: 24.10.2016], Dostępny w interencie: https://pl.wikipedia.org/wiki/Drzewo_(informatyka)Struktura danych, hasło w Wikipedii, [dostęp: 24.10.2016], Dostępny w interencie: https://pl.wikipedia.org/wiki/Struktura_danych