Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałMartine Dumont Został zmieniony 6 lat temu
1
syslo@mat.umk.pl, …@ii.uni.wroc.pl
Programując – najpierw pomyśl komputacyjnie Maciej M. Sysło UMK Toruń
2
Zaprogramuj … swoją przyszłość
Programowanie pojawia się w latach jako: 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 Maciej M. Sysło
3
Zaprogramuj … swoją przyszłość
Programowanie - optymalne projektowanie programy wojskowe – techniczne dowodzenie, logistyka wojenna problemy lokalne/krajowe: transport, zaopatrzenie, produkcja Programowanie: dynamiczne (liceum) matematyczne Uczniowie odkrywają Zasadę Optymalności Bellmana w programowaniu dynamicznym: na każdym kroku podejmuj najlepszą decyzję w sytuacji wynikającej z poprzednich decyzji – to nie ma nic wspólnego z programowaniem komputerów. Przykład: optymalne wznoszenie się samolotu, patrz: Maciej M. Sysło
4
Programowanie to nie jest pisanie programów, ale … show your work, your understanding Maciej M. Sysło Rekurencja w komputerze
5
Programowanie – to także rozumienie programów
Programowanie – to także rozumienie programów PROCEDURE KRUSKAL( N,M :INTEGER; VAR ENDV1,ENDV2,WEIGHT:ARRM; VAR CONNECT :BOOLEAN; VAR TEDGE1,TEDGE2 :ARRN1; VAR TWEIGHT :INTEGER); VAR I,LAST,U,V,R1,R2,ECOUNT,TCOUNT:INTEGER; FATHER :ARRN; PROCEDURE HEAP(FIRST,LAST:INTEGER); VAR J,K,TEMP1,TEMP2,TEMP3:INTEGER; BEGIN J:=FIRST; WHILE J <= TRUNC(LAST/2) DO BEGIN IF (2*J < LAST) AND (WEIGHT[2*J+1] < WEIGHT[2*J]) THEN K:=2*J+1 ELSE K:=2*J; IF WEIGHT[K] < WEIGHT[J] THEN BEGIN TEMP1:=ENDV1[J]; TEMP2:=ENDV2[J]; TEMP3:=WEIGHT[J]; ENDV1[J]:=ENDV1[K]; ENDV2[J]:=ENDV2[K]; Program w języku Pascal z 1983 roku Implementacja algorytmu Kruskala Maciej M. Sysło Rekurencja w komputerze
6
Algorytm przed programowaniem
Programowanie – język, myślenie Granice naszego języka są granicami naszego poznania (świata) [Ludwig Wittgenstein] programowania technologii świata za pomocą technologii [Maciej M. Sysło] S. Papert: Język programowania – język komunikacji z komputerem – ale o czym z nim rozmawiać? Komputer wykonuje tylko programy Każdy program jest zapisem jakiegoś algorytmu Trzeba mieć coś do powiedzenia: znać algorytmy Algorytm przed programowaniem Znajomość języka programowania/kodowania automatycznie nie oznacza znajomości „kultury”, w której posługujemy się nim – automatycznie nie nabywamy umiejętności rozwiazywania problemów, rzeczywistych. Maciej M. Sysło
7
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ą. Technologia Spiralna realizacja na kolejnych etapach Spiralny rozwój zasobów (J. Bruner) 7 Maciej M. Sysło 7
8
Tok zajęć Praca z rzeczywistą sytuacją problemową:
SP: Klasy 1-3 Sytuacja: na podłodze obrazki zwierząt Problem: znajdź najlżejszego ptaka Dane: selekcja/wybór ptaków – kura ptakiem? lata? – abstrakcja Zasada w danych: lata Reprezentacja danych: ptaki w rzędzie, w jakiejś kolejności (lista, ciąg) Dekompozycja: np. na domowe i inne Algorytm: losowy wybór, systematyczny algorytm: przeglądanie liniowe – abstrakcja, bo liczy się tylko waga Modyfikacje: danych – inne zwierzęta, metody: uporządkuj od najlżejszych Komputer, program: projekt w Scratchu, w innym języku – automatyzacja sytuacji wyabstrahowanej – liczby Praca z rzeczywistą sytuacją problemową: zebranie informacji i danych – abstrakcja na niskim poziomie, nie wszystkie dane są potrzebne wykrywanie w danych dla problemu: zasad, wzorców, reguł, teorii analiza danych i reprezentacja danych (jeszcze poza komputerem): lista, tabela, tabele powiązane dekompozycja danych i/lub problemu (na mniejsze znane) projektowanie algorytmu – modelu obliceniowego: podejście ad hoc – heurystyka metody/algorytmy informatyczne: alg. liniowe, pętle, warunki, rekurencja współbieżność, interakcja – zdarzenia automatyzacja rozwiązania – program – abstrakcja sytuacji zewnętrznej symulacja komputerowego/computational modelu problemu testowanie i poprawianie głębsza analiza problemu oraz modyfikowanie, poszerzanie Maciej M. Sysło
9
Myślenie komputacyje, J. Wing, 2006
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 – mental tools – są: abstrakcja wyszukanie i pozostawienie istoty redukcja i dekompozycja złożonych problemów tworzenie reprezentacji i modelowania danych, problemów i rozwiązań stosowanie heurystyk intuicja, pomysły, kreatywność tworzenie przybliżonych rozwiązań (aproksymacji), gdy dokładne rozwiązanie nie jest możliwe stosowanie rekurencji, czyli myślenia indukcyjnego (rekurencja = iteracja) 9 Maciej M. Sysło
10
Computer, computing, computational
Trafne określenie roli i miejsca komputerów, także w edukacji (Mark Prensky, 2012): Mądrością staje się symbioza tego, w czym mózg jest najlepszy, z tym, co komputer potrafi wykonać nawet lepiej Myślenie komputacyjne: poszerzenie możliwości naszego umysłu przy tworzeniu i odkrywaniu mental tools – sposoby, metody myślenia: analityczne, rozwiązywania problemów istota tego, co możemy robić w interakcji z komputerem J. Wing: attitiude and skill set – nastawienie i umiejętności, które każdy może i powinien posiąść i stosować Maciej M. Sysło
11
Myślenie komputacyjne – „informatyka” dla wszystkich użytkowników komputerów
Myślenie komputacyjne towarzyszy procesom rozwiązywania problemów za pomocą komputerów. Operacyjna definicja myślenia komputacyjnego stosowana przy rozwiązywaniu problemów: 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. Wymieniamy tutaj podstawowe kroki w zastosowaniu myślenia komputacyjnego do rozwiązywania problemów z pomocą komputerów. Takie podejście może być stosowane w przypadku każdego problemu, co ilustrujemy w naszym podręczniku. 11 Maciej M. Sysło 11
12
Technologia informacyjna
Myślenie komputacyjne Informatyka Wykracza poza informatykę Programowanie ≠ Informatyka Programowanie Coding Programowanie ≠ Kodowanie Maciej M. Sysło
13
Porządkowanie … przez 12 lat w szkole, 1
Porządkowanie … przez 12 lat w szkole, 1 1. K-3: 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 Informatyczne osiągnięcia uczniów i pojęcia – rozwijane spiralnie Maciej M. Sysło Rekurencja w komputerze
14
Informatyczne osiągnięcia uczniów i pojęcia – rozwijane spiralnie
Informatyczne osiągnięcia uczniów i pojęcia – rozwijane spiralnie Maciej M. Sysło Rekurencja w komputerze
15
Porządkowanie … przez 12 lat w szkole, 2
Porządkowanie … przez 12 lat w szkole, 2 2. 1-3: 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: Maciej M. Sysło Rekurencja w komputerze
16
Porządkowanie … przez 12 lat w szkole, 3
Porządkowanie … przez 12 lat w szkole, 3 3. 4-6: 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 Maciej M. Sysło Rekurencja w komputerze
17
Porządkowanie … przez 12 lat w szkole, 4
Porządkowanie … przez 12 lat w szkole, 4 4. 6-8 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) Maciej M. Sysło Rekurencja w komputerze
18
Porządkowanie … przez 12 lat w szkole, 5
Porządkowanie … przez 12 lat w szkole, 5 4. 7-8 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) Maciej M. Sysło Rekurencja w komputerze
19
Porządkowanie … przez 12 lat w szkole, 6
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ń Maciej M. Sysło Rekurencja w komputerze
20
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 … e-uczeń pracuje i ma wszystkie zasoby w jednym miejscu – w chmurze Tam ma swoje miejsce uczeń papier 1-3 tylko ci najmłodsi lubią mieć swoje zeszyty, książki, powinni uczyć się pisać e-nauczyciel znajduje się tam, gdzie są jego uczniowie Dla nauczyciela: scenariusze zajęć „podręcznik informatyki” 20 Maciej M. Sysło
21
e-podręcznik: Bóbr, Godzina Kodowania
Zarzut: odtwarzanie, brak kreatywności Odpowiedź: na dobry początek, zainicjowanie nauczyciela i uczniów 21 Maciej M. Sysło
22
e-podręcznik – algorytm liniowy
Wiele odpowiedzi: dyskusja z uczniami Algorytm liniowy nie musi być w linii A co to jest linia? 22 Maciej M. Sysło
23
e-podręcznik – porządkowanie (segregowanie)
Segregowanie na dywanie: zbierają roboty Pojęcia („z tyłu głowy”) sortowanie kubełkowe haszowanie 23 Maciej M. Sysło
24
e-podręcznik: Sudoku Pojęcia: dekompozycja, rozkład zadania/problemu,
kroki praca krokowa 24 Maciej M. Sysło
25
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 25 Maciej M. Sysło
26
Wiele dobrych rozwiązań
e-podręcznik – program Wiele dobrych rozwiązań 26 Maciej M. Sysło
27
Myślenie – nie tylko informatyczne
Myślenie – nie tylko informatyczne Świetny przykład (A.B. Kwiatkowska): próbujemy dopasować jedno do drugiego, porównać zgodność jednego z drugim: 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 27 Maciej M. Sysło informatyka + Rekurencja w komputerze
28
Myślenie rekurencyjne – w sytuacjach życiowych
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 28 Maciej M. Sysło informatyka + Rekurencja w komputerze
29
s(n) – liczba sposobów osiągnięcia schodka n
Stary problem, inne spojrzenie s(n) – liczba sposobów osiągnięcia schodka n Myśl rekurencyjnie! n Profesor S. bierze jeden lub dwa schodki – na ile sposobów wyjdzie na piętro n n – 1 n – 2 … s(n) = s(n –1) + s(n – 2) dla n > 2 2 Króliki? Ależ to nierealistyczna sytuacja, a taki profesor to codzienność ! s(1) = 1 1 s(2) = 2 Maciej M. Sysło
30
Stary problem, nowe spojrzenie
Liczby Fibonacciego – w różnych dziedzinach – myślenie komputacyjne 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 Maciej M. Sysło
31
Algorytm Euklidesa – problemy, pojęcia, algorytmy
Algorytm Euklidesa – problemy, pojęcia, algorytmy Tok zajęć 1-3, 4-6: 1. Problem z przelewaniem wody: Czy czerpakami 4l i 9l można napełnić naczynie 6l? A czerpakami 4l i 6l naczynie 15l? Zabawa na otwartym powietrzu – podejmowanie prób a później w klasie – rozwiązanie: wzięliśmy 2*9l i wylaliśmy 3*4, czyli: 9 * 2 – 4 *3 = 6 GREAT! A czy istnieją x i y takie, że: 4 * x + 6 * y = 15? def EuklidRek(m,n): if m > n: return EuklidRek(n,m) else: if m == 0: return n return EuklidRek(n % m,m) Maciej M. Sysło Rekurencja w komputerze
32
logarytm i algorytm to anagramy
Myślenie logarytmiczne logarytm i algorytm to anagramy Generowane liczby są połowione co druga A zatem, dla 10300, algorytm Euklidesa wykonuje ok mnożeń – to chwila, chwilę czekamy na zaszyfrowany mail. Logarytm ukryty w algorytmach: Algorytmiczna definicja logarytmu: ile razy należy podzielić przez dwa liczbę i jej ilorazy, by osiągnąć 1 – można wprowadzić już w gimnazjum! Euklides mógł wynaleźć logarytm 300 lat p.n.e., a zrobił to dopiero John Napier 400 lat temu, w 1614 roku. m < n/2 m > n/2 32 Maciej M. Sysło Rekurencja w komputerze
33
Kojarzenie Znajdź błąd na tej stronie elementarza – świetne ćwiczenie z kojarzenia Maciej M. Sysło
34
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 ( – ) 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 Maciej M. Sysło
35
Programowanie: Maszyna RAM – programowanie i „przekład” programu z języka na asembler Można pobrać ze strony: 35 Maciej M. Sysło TI a Informatyka
36
Programowanie Maszyny Turinga
Programowanie Maszyny Turinga 36 Maciej M. Sysło TI a Informatyka
37
A co po IBM PC/laptopie/tablecie?
Zbuduj własny komputer!!! Na bazie np. brytyjskiego komputera szkolnego BBC micro:bit (dostali laureaci Bobra 2018) Maciej M. Sysło
38
Informatyka to podstawa (dla każdego ucznia)
Podręcznik dla szkół ponadpodstawowych Główne cechy zajęć z tym podręcznikiem: W miejsce lekcji – uczniowie pracują metodą projektów – to faktycznie odwrócone uczenie się, a faktycznie próba zmiany kultury uczenia się. Kształtuje myślenie komputacyjne w każdym projekcie Pojawiają się elementy programowania dla każdego ucznia Przedstawiamy podręcznik, charakteryzujący się następującymi cechami, które wyróżniają go pośród innych podręczników adresowanych do tego samego przedmiotu w szkołach ponadgimnazjalnych. Zajęcia polegają na wykonywaniu przez uczniów projektów – projekty uczniowie wykonywali już w gimnazjum. Tutaj proponujemy jednolity sposób charakteryzacji projektów. We wszystkich działaniach uczniów jest kształtowane myślenie komputacyjne, nawet jeśli oni nie zdają sobie z tego sprawy. W ostatnim rozdziale pojawiają się elementy programowania, w podręczniku w języku Pascal, ale uczniowie i nauczyciel mogą wybrać inny język. WAŻNE. Podręcznik jest cienki, skrojony na 30 godzin zajęć. Zaproponowana metoda pracy umożliwia realizację zapisów podstawy i programu nauczania przy założeniu, ze uczniowie pracują także poza lekcjami, a to umożliwia przyjęta metoda ich pracy, metoda projektów. 38 Maciej M. Sysło 38
39
Informatyka to podstawa
Metoda projektów – każdy projekt jednolicie opisany: Przewodni temat – czego dotyczy projekt Uzasadnienie – dlaczego warto zająć się tym projektem Informatyczne cele – zajęcia są z informatyki, więc każdy projekt ma swoje cele informatyczne Rezultaty – spodziewane rezultaty wykonania projektu, na ogół są to odpowiednie dokumenty i prezentacje z przebiegu realizacji projektu Przebieg projektu – opis kolejnych etapów projektu ze wskazówkami, jak poradzić sobie z niektórymi poleceniami. Brak ćwiczeń i zadań – tylko projekty Charakterystyka każdego projektu składa się z tych samych punktów. WAŻNE W podręczniku nie ma konkretnych ćwiczeń ani zadań, uczniowie pracują tylko nad projektami i oceniana jest ich praca nad projektami oraz rezultaty projektów. Może być także oceniana współpraca w zespole pracującym nad projektem. W serwisie na stronie mmsyslo.pl jest zamieszczony rozkład materiału, w którym obok projektów wypisano zapisy podstawy programowej, których są realizacja. 39 Maciej M. Sysło 39
40
Podręcznik do informatyki dla wszystkich uczniów
Spis treści: Komputerowe środowisko pracy: Windows 7, zaprojektuj własny e-podręcznik Komunikacja i informacje w Internecie: własna strona dla dokumentacji projektu, społeczności sieciowe, ePortfolio Grafika komputerowa: logo i baner na stronę projektu Redagowanie tekstów: polemika z wypowiedzią Umberta Eco na temat książek: Jeśli ktoś myśli, że książki znikną, to się myli. Prezentacje: reprezentacja informacji w komputerze, quiz Dane i ich wizualizacja (w arkuszu): zmiany ludności w Polsce, katalog funkcji Gromadzenie danych w bazach i ich analiza: wyniki sportowe, zjazd absolwentów Proste obliczenia algorytmiczne: reprezentacje, wyniki wyborów LO, klasy 1-3 Sytuacja: teksty drukowane i elektroniczne związane z tematem Problem: znajdź argumenty za i przeciw; przeprowadź dyskusję, spisz ją Dane: selekcja/wybór fragmentów ze źródeł – abstrakcja Zasada w danych: dotyczą książki, w tym Eco Reprezentacja danych: szablon tekstu dyskusji z przeciwnymi argumentami (tabela, format) Dekompozycja: argumenty „za” i „przeciw” Algorytm: metoda postępowania: zorganizowana dyskusja, uporządkowany zapis Modyfikacje: danych – ważny dla konkluzji glos innych osób – uzasadnienie, włączenie Komputer, program: projekt – automatyzacja przebiegu projektu PBL – „programowanie” edytora. Spis treści z podręcznika. Na czerwono wyróżniono terminy informatyczne, projekty zaś dotyczą różnych zastosowań. 40 Maciej M. Sysło
41
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 41 Maciej M. Sysło
42
Dziękuję Państwu za uwagę i proszę nie zapomnieć:
42 Maciej M. Sysło
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.