INFORMATYKA KLUCZ DO ZROZUMIENIA KARIERY DOBROBYTU Maciej M. Sysło Uniwersytet Wrocławski Uniwersytet UMK w Toruniu syslo@ii.uni.wroc.pl http://mmsyslo.pl/ informatyka + 1
Źródło tytułu wykładu W 1971 roku ukazała się książka: Andrzej Targowski Informatyka klucz do dobrobytu wtedy czytelników interesowało głównie, jak osiągnąć dobrobyt dzisiaj wiemy, że droga do dobrobytu wiedzie przez zrozumienie informatyki i obranie odpowiedniej kariery, przykłady: krajowy: Maciej Popowicz Nasza klasa światowy: Mark Zukerberg Facebook światowy: R. Rivest, A. Shamir, L. Adleman RSA Donald E. Knuth The Art of Computer Programming??? wolne miejsce??? czy P = NP informatyka + 2
Plan Różne twarze informatyki Informatyka co to jest? Informatyka a komputery informatyka uniwersytecka a informatyka techniczna kryzys studiów informatycznych przyczyny i działania Czy informatyka ma historię i co z niej wynika Kariery z klasą i z kasą David Huffman Claude Shanonn Maciej Popowicz, Mark Zukerberg, Wyzwania liczby pierwsze P = NP problemy łatwe a problemy trudne problem komiwojażera informatyka + 3
Informatyka co to jest? historia (połowa lat 60. XX w.): informatyka, informatique (Francja, decyzja Parlamentu), Infomatik (Niemcy) Computer Science kraje angielskojęzyczne jedna z definicji: dziedzina wiedzy i działalności zajmująca się algorytmami pierwszy algorytm: Euklides, 300 p.n.e. Dość ograniczone spojrzenie, ale zawiera wszystko: programowanie i języki programowania do zapisywania algorytmów komputer urządzenie, które wykonuje tylko programy, a każdy program to zapis algorytmu komunikacja i sieć algorytmy komunikacyjne, komunikacja algorytmów informatyka + 4
Informatyka co to jest? Obecnie, jako kierunek studiowania w USA, computer science jest jedną z 5 dziedzin tzw. computing komputyki: Computer Engineering sprzęt Information Systems systemy informacyjne Information Technology technologia informacyjna (zastosowania informatyki) Software Engineering produkcja oprogramowania Computer Science studia podstawowe, uniwersyteckie Computing komputyka zastąpiło Computer Science computational thinking w edukacji myślenie komputacyjne informatyka + 5
Myślenie komputacyjne Logo IBM z 1924 r: computational thinking kompetencje budowane na mocy i ograniczeniach komputerowego przetwarzania informacji w różnych dziedzinach. informatyka + 6
Kryzys kształcenia informatycznego Kryzys kształcenia informatycznego w USA (w UK): liczba nowych studentów na informatyce uniwersyteckiej spadła w 2007 o 49% w porównaniu do 2001/2002 liczba absolwentów spadła o 43% między 2003/04 a 2006/07 Eurostat: 5% osób w Polsce (16-74) umie programować, a w UE 9% W Polsce zauważa się podobną tendencję, spowodowaną dodatkowo: niżem (okresowy spadek) powstawaniem kolejnych szkół prywatnych Z drugiej strony rośnie zapotrzebowanie na informatyków, luki zapełniane przez absolwentów z Indii (przenoszenie Doliny Krzemowej do Indii) i Chin. informatyka + 7
Powody kryzysu Powody: uczniowie posmakowali dość technologii informacyjnej i chcą zająć się czymś innym TI jako informatyka dla wszystkich zmniejszony nacisk na przedmiot informatyka w szkołach uczniowie (nie tylko uczniowie) nie odróżniają stosowania (narzędzi informatycznych) od ich studiowania jak to działa i dlaczego? Inicjatywy zaradcze: Polska: stypendia dla studentów na kierunkach zamawianych outreach wyjście naprzeciw do szkół Informatyka + informatyka + 8
Informatyka a komputery Opinie: Informatyka jest w takim sensie nauką o komputerach, jak biologia jest nauką o mikroskopach, a astronomia nauka o teleskopach. [a więc, komputer narzędziem] [Edgar Dijkstra, Algorytm Dijkstry] Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań [Ralf Gomory, IBM] [nacisk na doskonalsze i szybsze algorytmy] Ile i co potrafią dzisiaj komputery np. przewidywanie pogody informatyka + 9
Co to jest computer? 1969: komputer: 1. osoba, która oblicza; 2. urządzenie stosowane do obliczeń Człowiek!!! informatyka + 10
Pierwsze wystąpienie computer? 1892 Firma Rapid Computer w Chicago, wytwarzała urządzenie do liczenia, zwane comptometer 11 informatyka + 11 11
Krótka historia komputerów: Ludzie, idee, maszyny Urządzenia do indywidualnego użytku: od palców u rąk przez IBM PC (chip) gadżety (na chipach) Komputery (mainframe centralne): maszyny różnicowa i maszyna analityczna Ch. Babbage a (XIX w.) po superkomputery (także na chipach) 12 informatyka + 12 12
Urządzenia do indywidualnego użytku 1617 1623 13 informatyka + 13
Do 1972 roku a później 40 mln 1 mld w 2008 Kalkulator wyparł urządzenia, które przyczyniły się do jego powstania!!! informatyka + 14
Co pozostało sprzed 1972 rok, logarytm Logarytm (John Napier, 1614) Ułatwia obliczanie iloczynów i ilorazów suwak logarytmiczny (1632) log a*b = log a + log b zamiast mnożenia wykonujemy dodawanie Spostrzeżenie: logarytm i algorytm to anagramy Suwaki logarytmiczne urządzenia do obliczania iloczynów i funkcji: Skala 30 cm Skala 1,5 m Skala 12 m informatyka + 15
Potęgowanie Chcemy obliczyć: x 123456789123456789123456788912345 algorytmem ze szkolnej matematyki: x n = x*x*x* *x n 1 mnożeń czyli: 12345678912345678912345678912344 mnożeń Ile to potrwa na superkomputerze, który wykonuje 10 15 = 1 000 000 000 000 000 000 operacji na sekundę? potrwa: 3*10 8 lat! informatyka + 16
Co pozostało sprzed 1972 rok, logarytm Logarytm Inne algorytmy dziel i zwyciężaj: przeszukiwanie binarne n liczb złożoność: log n podnoszenie do potęgi algorytm rekurencyjny Algorytm szkolny: x 5 = x*x*x*x*x Algorytm rekurencyjny: Potega (x, n) { x n } if n = 1 then Potega := x else if n parzyste then Potega := Potega (x, n/2)^2 {x n = (x n/2 ) 2 } else Potega := Potega (x, n 1)*x {x n = (x n 1 )x} Liczba kroków związana z liczbą bitów w rozwinięciu n, czyli ok. log n informatyka + 17
Co pozostało sprzed 1972 rok, logarytm Logarytm Potęgowanie konsekwencje Algorytm szkolny: x 5 = x*x*x*x*x 4 mnożenia Algorytm rekurencyjny: Potega (x, n) { x n } ok. 2 logn mnożeń Zastosowania w kryptografii, RSA Podnoszenie dużych liczb do dużych potęg. Mały przykład: 1234567890987654321234567890987654321123456789987654321 1234567890 12345678909876543211234567890987654321123456789098765432112345678901 Jeszcze mniejszy przykład: x 12345678901234567890123456789012345 szkolny algorytm 10 8 lat alg. rek. 200 mnożeń informatyka + 18
Kompresja Morse jej ojcem Kody: ASCII a: 01100001 b: 01100010 d: 01101100 k: 01101011 r: 01110010 Huffman 0 1110 110 1111 10 Praca magisterska,1952 011101001111011001110100 abrakadabra 88 znaków 24 znaki informatyka + 19
Pierwsze ręczne procesory tekstu 1875 informatyka + 20
Pierwsze ręczne procesory tekstu Fonty to pomysł z najstarszych maszyn do pisania Przełom XIX/XX Klawiatura QWERTY Lata 60-80, XX w. Wymienne fonty informatyka + 21
Rozgrzewka Co ci dwaj Panowie, stojący na tle komputera ENIAC, trzymają w rękach? Mysz? Jedną liczbę? Jedną cyfrę? Klawiaturę? Cyfra dziesiętna: 0, 1, zbudowana z 22 lamp!!! informatyka + 22
Komputery duże Charles Babbage, XIX w. II Wojna Światowa H. Hollerith, XIX/XX w. Początki IBM Z4 K. Zuse Colossus Superkomputer 2009 10 15 oper/sek 23 informatyka + 23
Do 2??? roku? Od kiedy??? Współczesna technologia Nowa technologia??? Jaka nowa technologia zostanie stworzona na IBM PC, która wyprze PC? Skąd bierze się różnica między przeszłością i przyszłością? Dlaczego pamiętamy przeszłość, a nie pamiętamy przyszłości? [Stefan W. Hawking, Krótka historia czasu] Współczesny Memex? (V. Bush, 1945) informatyka + 24
Akcenty polskie A. Stern, mechaniczny kalkulator, XIX w. Polish notation J. Łukasiewicz Kalkulator Feliks Feliks Dzierżyński Początki kryptografii komputerowej Arytmetyka ( 2), UMC 1, 10 Z. Pawlak 25 informatyka + 25
Maszyny ogólnego przeznaczenia PL 1. Generacja lampy 2. Generacja tranzystory 3. Generacja układy scalone 2. Generacja tranzystory informatyka + 26
Kariery z przełożeniem na klasę 1. David Huffman (1952) praca magisterska na temat kompresji, idea wzięta od Morse a jeden z najbardziej popularnych algorytmów kompresji 2. Claude Shannon (1935) realizacja algebry Boole a w postaci układów przełączających Najważniejsza praca dyplomowa XX w informatyka + 27
Kariery z przełożeniem także na dużą kasę 1. Steve Jobs i Steve Wozniak, Apple (1983) 2. Bill Gates & comp. Microsoft (1975) 3. Jeff Bezos i Amazon (1994) księgarnia internetowa, a ostatnio Kindle e-czytnik e-książek 4. e-bay, Allegro aukcje internetowe wszystko da się sprzedać 5. Skype 6. Nasz klasa studenci z Uwr., praca mgr. Macieja Popowicza 7. Facebook Mark Zukerberg 8. Twitter 9. informatyka + 28
Wyzwania społecznościowe 1. Szukanie dużych liczb pierwszych liczb Mersenea http://www.mersenne.org/ 50 000/100 000 $ rezydentne oprogramowanie do pobrania ze strony, obliczenia w wolnym czasie komputera 2. Inne obliczenia gridowe (rozproszone na sieci komputerów) rozkłady liczb na czynniki, np. rozkład 139 cyfrowej liczby w ciągu kilku tygodni pracy kilkuset komputerów 3. 27.07.2010: światowy rekord sortowania posortowano 10 15 danych w ciągu 60 sek. 4. Analiza danych z Kosmosu próby znalezienia sygnałów życia, nowych gwiazd, informatyka + 29
Wyzwania 1900 rok: D. Hilbert przedstawia najważniejsze problemy w matematyce. Wynikiem ważne odkrycia: Kurt Gödel (1931) nie wszystko da się udowodnić w matematyce Allan Turinga (1935) nie wszystko da się policzyć na komputerze 2000 rok; Clay Institute, MIT: 7 matematycznych problemów milenijnych, każdy po 1 000 000 $ za rozwiązanie (jeden już rozwiązano 2 lata temu). Wśród nich jeden problem informatyczny: czy P = NP? 6 sierpnia 2010 ukazał się dowód, że ta równość nie zachodzi, ale jest coraz więcej wątpliwości, czy jest poprawny informatyka + 30
Idea P = NP Klasa P problemy, które mają algorytmy o złożoności wielomianowej porządkowanie, NWD, wartość wielomianu, podnoszenie do potęgi, Klasa NP problemy, które mają wielomianowy algorytm sprawdzania, czy rozwiązanie jest poprawne dla tych problemów nie jest znany algorytm o złożoności wielomianowej: istnienie cyklu Hamiltona w grafie, istnienie kolorowania k kolorami, problem komiwojażera (TSP), Konsekwencje P = NP mało prawdopodobne, bo dla tysięcy problemów z NP nie udało się podać algorytmu wielomianowego P NP bezpieczna kryptografia korzyści z tego, że nie wszystko można łatwo policzyć (kod RSA) informatyka + 31
Problemy trudne najkrótsza trasa premiera Problem: Znajdź najkrótszą trasę dla Premiera przez wszystkie miasta wojewódzkie Premier jako komiwojażer Rozwiązanie: Premier zaczyna w Stolicy a inne miasta może odwiedzać w dowolnej kolejności. Tych możliwości jest: 15*14*13*12*11* *2*1 = 15! (15 silnia) W 1990 roku było: 48*47*46* *2*1 = 48! (48 silnia) informatyka + 32
Problemy trudne najkrótsza trasa premiera Wartości funkcji n! Rosną BARDZO SZYBKO Prezydent Stanów Zjednoczonych ma problem ze znalezieniem najkrótszej trasy objazdu Stanów. Na superkomputerze o mocy 1 PFlops ile trwa obliczanie n! 15! = 1307674368000/10 15 sek. = ok. 0.01 sek. 48! = 1,2413915592536072670862289047373*10 61 /10 15 = 3*10 38 lat 25! = 15511210043330985984000000/10 15 sek. = 15511210043 sek. = = 179528 dni = 491 lat informatyka + 33
Problemy trudne najkrótsza trasa premiera Trudno sprawdzić, jak dobre jest to rozwiązanie w stosunku do najlepszego, bo go nie znamy. Zły wybór Algorytmy przybliżone szukania rozwiązań: 1. Metoda zachłanna najbliższy sąsiad mogą być bardzo złe 2. Meta-heurystyki: algorytmy genetyczne krzyżowanie i mutowanie rozwiązań algorytmy mrówkowe modelowanie feromonów informatyka + 34
TSP TSP w USA Światowy TSP przez 1,904,711 miasta. Znaleziono rozwiązanie o długości: 7,516,353,779, które jest tylko o 0.076% dłuższe od optymalnego informatyka + 35