Myślenie komputacyjne kompetencje informatyczne dla każdego UMK Toruń syslo@mat.umk.pl, @ii.uni.wroc.pl http://mmsyslo.pl
Myślenie komputacyjne początki 1. Seymour Papert, Burze mózgów, 1980 2. Jeannette M. Wing praca w Communication of the ACM, 2006 3. ISTE: SIGCT grupa zainteresowań myśleniem komputacyjnym. 4. 2008, ISSEP, Toruń Praca nt. myślenia komputacyjnego w edukacji informatycznej Terminologia: computing = komputyka dr Andrzej Walat ks. prof. Józef Kloch, Myślenie komputerów 2
Myślenie komputacyjne Wykracza poza informatykę Informatyka Informatyka Programowanie Programowanie Coding Programowanie Kodowanie 3
Jedna z motywacji Dlaczego nasi uczniowie wypadli źle (29 miejsce na 32 kraje) w badaniach PISA w zakresie rozwiązywania problemów, programowania urządzeń cyfrowych. Testy: najkrótsze drogi klimatyzator Biletomat programowanie = rozwiązywanie problemów 4
Zaprogramuj swoją przyszłość Programowanie (lata 1940-1950: optymalne projektowanie) programy wojskowe techniczne dowodzenie, logistyka wojenna problemy lokalne/krajowe: transport, zaopatrzenie, produkcja Programowanie: dynamiczne (liceum) matematyczne Przykład: optymalne wznoszenie się samolotu, patrz: Uczniowie wykrywają Zasadę Optymalności Bellmana: na każdym kroku podejmuj najlepszą decyzję w sytuacji wynikającej z poprzednich decyzji 5
Zaprogramuj swoją przyszłość Programowanie (lata 1940-1950: optymalne projektowanie): zaplanuj swoja przyszłość i rób to cały czas z uwzględnieniem wielu aspektów i metod tak, aby Twoja przyszłość była w przyjętym przez Ciebie sensie optymalnym rozwiązaniem Programowanie komputerów w ramach informatyki kształtuje takie umiejętności, jak: logiczne myślenie, kreatywność w poszukiwaniu rozwiązań, myślenie heurystyczne ( na chłopski rozum ), To myślenie poszukiwanie innowacyjnych rozwiązań, komputacyjne algorytmiczne myślenie, posługiwanie się językiem komunikacji z komputerem (programowanie) 6
Język maszyn Język programowania język komunikacji z komputerem o czym rozmawiać z komputerem? Komputer wykonuje tylko programy D.E. Knuth: Każdy program jest zapisem jakiegoś algorytmu Trzeba mieć coś do powiedzenia: znać algorytmy Algorytm przed programowaniem Mówi się często, że człowiek dotąd nie zrozumie czegoś, zanim nie nauczy tego kogoś innego. W rzeczywistości, człowiek nie zrozumie czegoś naprawdę, zanim nie zdoła nauczyć tego komputera 7
Rozwój edukacji informatycznej Kolejne etapy rozwoju edukacji informatycznej: alfabetyzacja komputerowa (lata 80-90 ) podstawy posługiwania się komputerami biegłość w posługiwaniu się technologią (XX/XXI w.) podstawowe pojęcia i idee informatyczne baza dla rozumienia technologii w jej rozwoju zdolności intelektualne w kontekście TI myślenie abstrakcyjne w kontekście przetwarzania informacji XX/XXI w.: technologia informacyjna jako informatyka dla każdego informatyka wypracowała mental tools metody rozumowania myślenie komputacyjne przydatne w rozwiązywaniu problemów rzeczywistych z różnych dziedzin myślenie algorytmiczne kształtowane na gruncie informatyki myślenie komputacyjne efekt tego kształcenia w innych dziedzinach Teraz: informatyka i myślenie komputacyjne dla każdego 8
Myślenie komputacyje Kompetencje (umiejętności) budowane na mocy i ograniczeniach komputerowego przetwarzania informacji w różnych dziedzinach i rozwiązywania rzeczywistych problemów Wśród takich umiejętności są (J. Wing, 2006) redukcja i dekompozycja złożonych problemów tworzenie przybliżonych rozwiązań (aproksymacji), gdy dokładne rozwiązanie nie jest możliwe stosowanie rekurencji, czyli myślenia indukcyjnego (rekurencja = iteracja) tworzenie reprezentacji i modelowania danych, problemów i rozwiązań stosowanie heurystyk 9
Myślenie komputacyjne informatyka dla wszystkich użytkowników komputerów Myślenie komputacyjne towarzyszy procesom rozwiązywania problemów za pomocą komputerów. To podejście do rozwiązywania problemów można scharakteryzować następującymi cechami: problem jest formułowany w postaci umożliwiającej posłużenie się w jego rozwiązaniu komputerem lub innymi urządzeniami; problem polega na logicznej organizacji danych i ich analizie, danymi mogą być teksty, liczby, ilustracje itp. rozwiązanie problemu można otrzymać w wyniku zastosowania podejścia algorytmicznego, ma więc postać ciągu kroków; projektowanie, analiza i komputerowa implementacja (realizacja) możliwych rozwiązań prowadzi do otrzymania najbardziej efektywnego rozwiązania i wykorzystania możliwości i zasobów komputera oraz sieci; nabyte doświadczenie przy rozwiązywaniu jednego problemu może zostać wykorzystane przy rozwiązywaniu innych sytuacjach problemowych. 10
Podstawa programowa dla informatyki Wspólne Cele kształcenia Wymagania ogólne dla wszystkich etapów I. Rozumienie, analizowanie i rozwiazywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji. II. Programowanie i rozwiazywanie 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. III. Posługiwanie się komputerem, urządzeniami cyfrowymi i sieciami komputerowymi, w tym: znajomość zasad działania urządzeń cyfrowych i sieci komputerowych oraz wykonywania obliczeń i programów. IV. Rozwijanie kompetencji społecznych, takich jak: komunikacja i współpraca w grupie w tym w środowiskach wirtualnych, udział w projektach zespołowych oraz organizacja i zarządzanie projektami. V. Przestrzeganie prawa i zasad bezpieczeństwa. Respektowanie prywatności informacji i ochrony danych, netykiety, norm współżycia społecznego, praw własności intelektualnej; ocena i uwzględnienie zagrożeń, związanych z technologią. Spiralna realizacja na kolejnych etapach Spiralny rozwój zasobów Technologia 11
Tok zajęć: problem, pojęcia, algorytm, program Stąd propozycja toku zajęć z elementami programowania: sytuacja problemowa (zamierzona przez nauczyciela) do rozwiązania przez uczniów: gry/aktywności kooperacyjne, łamigłówki z użyciem obiektów, które mają konkretne/realne znaczenie dla uczniów, roboty, problemy z różnych przedmiotów podejście do rozwiązania: heurystyka: efekt: abstrakcja, pojęcia pojawia się: sposób rozwiązania, algorytm algorytm, przepis, rozwiązanie można zaprogramować Komputer, gotowe aplikacje, zasoby sieciowe itp. mogą pojawić się na dowolnym etapie, w dowolnym momencie wynikiem decyzji nauczyciela lub uczniów Nie tylko w 1-3, z najmłodszymi 12
Dwa ważne pojęcia: abstrakcja i heurystyka Abstrakcja J. Wing (CT), Myśleć jak informatyk, znaczy coś więcej niż umieć programować wymaga to posługiwania się abstrakcją na wielu poziomach. Program to twór abstrakcyjny. Z perspektywy konstruktywizmu, poznanie nowych pojęć polega na skonstruowaniu umysłowych obiektów (struktur), abstrakcyjnych, i później manipulowaniu nimi w umyśle Heurystyka (George Polya, Jak to rozwiązać, 1945) Rozumowanie heurystyczne nie jest traktowane jako ostateczne i ścisłe, ale jako prowizoryczne i tylko prawdopodobne, którego celem jest odkrycie rozwiązania danego zadania Heurystykę buduje się na doświadczeniu w rozwiazywaniu zadań i obserwowaniu innych ludzi rozwiązujących zadania Odpowiednie zadanie, uczeń musi chcieć je rozwiązać. 13
Aktywności, inteligencje, myślenie uczniów Zalecane trzy formy aktywności, w uzupełnieniu tekstów: wizualne uczenie się (obiekty graficzne, modele abstrakcyjne i fizyczne, obrazkowe programowanie, roboty) słuchowe uczenie się (rozmowy, dyskusje, grupy i cała klasa, ) kinestetyczne uczenie się (fizyczne aktywności uczniów) Inteligencje wielorakie (H. Gardner) wrażliwości, zdolności, umiejętności: logiczno-matematyczna, językowa, przyrodnicza, muzyczna, przestrzenna, cielesno-kinestetyczna, emocjonalna (interpersonalna, intrapersonalna). Myślenie komputacyjne (mental tools) metody umysłowe, rozumowania, związane z rozwiązywaniem problemów, gdy mamy możliwość i przewidujemy posłużenie się komputerem. Te metody na ogół wywodzące się z informatyki. 14
Roboty, które nas słuchają Pierwsze kroki sortowanie odpadów Schemat blokowy do kierowania robotem Program w Blockly 15 15
1. K-3: Porządkowanie przez 12 lat w szkole, 1 Sytuacja: porozrzucane karty z obrazkami zwierząt, owoców itp. Cel: pogrupujcie według własnego uznania Sytuacja: różne rzeczy, odpady Cel: segregowanie według rodzaju Informatyka, pojęcia: haszowanie, metoda kubełkowa
2. 1-3: Porządkowanie przez 12 lat w szkole, 2 Sytuacja: np. ciąg obrazków zwierząt czworonożnych Cel: ustawcie według wagi ciała Informatyka, pojęcia: porządek, przestawianie, przestawianie sąsiednich obce uczniom, od najlżejszych Metodyka: abstrakcyjne myślenie, odkrywanie własnych sposobów Wsparcie, zabawy Bóbr:
3. 4-6: Porządkowanie przez 12 lat w szkole, 3 Sytuacje: różnorodne Cel: różnorodny kontekst występowania uporządkowania i sposób porządkowania Informatyka: różnorodne konteksty porządkowania i metody dostosowane do kontekstu
4. 6-8 Porządkowanie przez 12 lat w szkole, 4 Sytuacje: organizacja rozgrywek, wybór obiektu naj Cel: znajdź najlepszy/największy/najmniejszy/naj element Informatyka: przeszukiwanie liniowe, turniejowe liczba porównań, pierwsze programy (Pyhon) Wsparcie: kinestetyczna gra, plansza klasowych/szkolnych rozgrywek 5. 6-8 Sytuacje: uporządkowany ciąg Cel: znajdź wybrany element Informatyka: przeszukiwanie binarne, programy (Uwaga: nie taki prosty, można posłużyć się gotowym) Wsparcie: zgadywanie liczby, zadania z Bobra (multum)
Programy gotowe, ale show your work
4. 7-8 Porządkowanie przez 12 lat w szkole, 5 Sytuacja: ciąg liczb Cel: uporządkuj Informatyka: iteracja: najmniejszy na początek, przestawić elementy w złej kolejności, pierwsze algorytmy porządkowania, pierwsze programy sortujące (Python) Wsparcie: programy demo, Godzina Kodowania (programowanie)
Porządkowanie przez 12 lat w szkole, 6 4. LO, LO rozszerzenie Sytuacja: ciąg liczb Cel: uporządkuj Informatyka: elementy komputerowych implementacji: operacja scalania porządkowanie przez scalanie, rekurencja, programowanie Informatyka pytania ogólne, np.: znaczenie porządku łatwo znaleźć szukanie przez podział ciągu zamiast 1000 prób, tylko 10 gra w zgadywanie liczby wśród 1000 porównanie efektywności metod: przez wybór stała liczba działań, bąbelkowa szybka na mało nieuporządkowanym ciągu, porównanie czasów obliczeń
Środowisko w miejscu podręcznika Środowisko kształcenia się jako miejsce: aktywności uczących się na wzór FaceBooka współpracy realizacji projektów indywidualnych i zespołowych miejsce zasobów własnych i obcych (na różnych prawach) rozwoju rośnie z uczącym się od kołyski po grobową deskę (LLL) osobiste archiwum i budowane na nim e-portfolia dla różnych adresatów obszar własny i obszary różnych formalnych (szkoła, uczelnia) i nieformalnych (kursy) form kształcenia itd. itp. Porzućmy ideę podręcznika, XIX/XX wieczną Przyjrzyjmy się, jak pracują uczniowie Przyjrzyjmy się, jak funkcjonuje sieć i jej społeczności Wyobraźmy sobie rozwój sieci i jej społeczności Zaplanujmy środowisko na miarę uczących się i czasów 23
e-podręcznik: 2018 Propozycja środowiska dla zajęć z informatyki: w chmurze będzie rosnąć z uczniem, na początku: 1, 4, 7; później dalsze lata technologia dla technologii uczeń papier 1-3 tylko ci najmłodsi lubią mieć swoje zeszyty, książki, powinni uczyć się pisać e-uczeń pracuje i ma wszystkie zasoby w jednym miejscu w chmurze Tam ma swoje miejsce e-nauczyciel znajduje się tam, gdzie są jego uczniowie Dla nauczyciela: scenariusze zajęć podręcznik informatyki 24
e-podręcznik: Bóbr, Godzina Kodowania 25
e-podręcznik algorytm liniowy Wiele odpowiedzi: dyskusja z uczniami Algorytm liniowy nie musi być w linii A co to jest linia? 26
e-podręcznik porządkowanie (segregowanie) Segregowanie na dywanie: zbierają roboty Pojęcia ( z tyłu głowy ) sortowanie kubełkowe haszowanie 27
e-podręcznik: Sudoku Pojęcia: dekompozycja, rozkład zadania/problemu, kroki praca krokowa 28
e-podręcznik: Sudoku abstrakcja W zeszycie: Sudoku z figurami geometrycznymi Pojęcie: abstrakcja nie ma znaczenia, co układamy, tylko jak mamy ułożyć Każdy program jest abstrakcją sytuacji, którą rozwiązuje, np. te sam program z algorytmem Dijkstry dla wielu sytuacji 29
e-podręcznik program Wiele dobrych rozwiązań 30
Myślenie nie tylko informatyczne Świetny przykład (A.B. Kwiatkowska): próbujemy dopasować jedno do drugiego, porównać zgodność jednego z drugim: n n n n DNA na ile jest ono wspólne dla bliźniąt? DNA czy zawiera pewne fragmenty związane z chorobami dziedzicznymi? W jakim stopniu pokrywają się prace plagiat? W informatyce jest to dopasowanie wzorca informatyka + 31 31
Myślenie rekurencyjne w sytuacjach życiowych Taniec: tańcz; if nie gra muzyka then STOP else zrób krok; tańcz Rekurencja czyli jak zwalić robotę na komputer informatyka + 32 32
Stary problem, inne spojrzenie s(n) liczba sposobów osiągnięcia schodka n Myśl rekurencyjnie! 2 1 0 n 2 n n 1 s(n) = s(n 1) + s(n 2) s(1) = s(2) = 1 2 Profesor S. bierze jeden lub dwa schodki na ile sposobów wyjdzie na piętro n dla n > 2 Króliki? Ależ to nierealistyczna sytuacja, a taki profesor to codzienność! 33
Stary problem, nowe spojrzenie Liczby Fibonacciego w różnych dziedzinach myślenie komputacyjne ale po co liczyć ich wartości? w przyrodzie: szyszki, słonecznik: skąd? Alan Turing w przyrodzie: kształt muszli w przyrodzie: wymiary człowieka w architekturze złota proporcja konstrukcja prostokąta za pomocą liczb Fibonacciego złoty prostokąt Związek liczb Fibonacciego z doskonałością? Ukazały się w Helionie 34
Kojarzenie Znajdź błąd na tej stronie elementarza 35
Nobel za kojarzenie Stabilny układ par, Stabilne małżeństwa temat na zajęcia informatyczne bez komputera Mężczyźni i kobiety z preferencjami zawsze istnieje stabilny układ par. W 1962, David Gale i Lloyd Shapley dowodzą i podają algorytm. W 2012 roku, Lloyd Shapley (2.06.1923 12.03.2016) i Alvin E. Roth otrzymują Nagrodę Nobla w dziedzinie ekonomii za the theory of stable allocations and the practice of market design USA, 2014: Sprzeciw, jak algorytm może decydować o przyjęciu do pracy lekarzy 36
Programowanie: Maszyna RAM programowanie i przekład programu z języka na asembler Można pobrać ze strony: http://mmsyslo.pl/materialy/oprogramowanie 37
Programowanie Maszyny Turinga 38
FL/FC odwrócona klasa, odwrócone kształcenie Założenie: Lepsze wykorzystanie potencjału uczących się w domu i w szkole, również nauczyciela Uwaga: w USA inna kultura uczenia się angażowanie się uczących się Przebieg zajęć: krótkie wprowadzenie do tematu w klasie (5-10 min) poza klasą: uczniowie przeglądają wideo jako zadanie domowe przygotowane przez nauczyciela, zadania do wykonania w domu, dyskusja z innymi uczniami i nauczycielem potrzebne wirtualne środowisko uczenia się w klasie: wyjaśnianie trudniejszych elementów Rezultat: wykład (20%) + praca z uczniami (80%) zamiast 80+20 39
Konkluzje Myślenie komputacyjne: integruje ludzkie myślenie z możliwościami komputerów obok stosowania gotowych narzędzi i informacji kształtuje kreatywność w tworzeniu własnych narzędzi i informacji przygotowuje do wykorzystywania metod i narzędzi komputerowych oraz informatycznych w różnych dziedzinach wzbogaca i poszerza metodologię rozwiązywania problemów z wykorzystaniem komputerów stanowi narzędzie (mental tools) w realizacji metody projektów stosowanej do realizacji podstawy programowej Inne nazwy, inny nacisk: computational learning komputacyjne kształcenie się computational participation zaangażowanie komputacyjne 40 40