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 +
Źródło tytułu wykładu informatyka + 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 +
Plan informatyka + 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 +
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 +
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 +
Myślenie komputacyjne Logo IBM z 1924 r: computational thinking – kompetencje budowane na mocy i ograniczeniach komputerowego przetwarzania informacji w różnych dziedzinach. informatyka + 7
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 +
Powody kryzysu informatyka + Powody: Inicjatywy zaradcze: 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 +
Informatyka a komputery Opinie: Informatyka jest w takim sensie nauką o komputerach, jak biologia jest nauką o mikroskopach, a astronomia – nauka o teleskopach. [Edgar Dijkstra, Algorytm Dijkstry] [a więc, komputer narzędziem] 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 +
Człowiek !!! Co to jest computer? informatyka + 1969: komputer: 1. osoba, która oblicza; 2. urządzenie stosowane do obliczeń … Człowiek !!! informatyka +
Pierwsze wystąpienie computer? 1892 Firma Rapid Computer w Chicago, wytwarzała urządzenie do liczenia, zwane comptometer informatyka + 12 12
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) informatyka + 13 13
Urządzenia do indywidualnego użytku 1617 1623 informatyka + 14
Do 1972 roku … … a później informatyka + 15 40 mln 1 mld w 2008 Kalkulator wyparł urządzenia, które przyczyniły się do jego powstania!!! informatyka + 15
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 12 m Skala 1,5 m informatyka + 16
Potęgowanie informatyka + 17 Chcemy obliczyć: x123456789123456789123456788912345 algorytmem ze szkolnej matematyki: xn = x*x*x* … *x n – 1 mnożeń czyli: 12345678912345678912345678912344 mnożeń Ile to potrwa na superkomputerze, który wykonuje 1015 = 1 000 000 000 000 000 000 operacji na sekundę? potrwa: 3*108 lat! informatyka + 17
Liczba kroków związana z liczbą bitów w rozwinięciu n, czyli ok. log n 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: x5 = x*x*x*x*x Algorytm rekurencyjny: Potega (x, n) { xn } if n = 1 then Potega := x else if n – parzyste then Potega := Potega (x, n/2)^2 {xn = (xn/2)2} else Potega := Potega (x, n – 1)*x {xn = (xn–1)x} Liczba kroków związana z liczbą bitów w rozwinięciu n, czyli ok. log n informatyka + 18
Morse jej ojcem Kompresja 011101001111011001110100 abrakadabra 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
Co ci dwaj Panowie, stojący na tle komputera ENIAC, trzymają w rękach? 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 informatyka + 23 Charles Babbage, XIX w. H. Hollerith, XIX/XX w. Początki IBM II Wojna Światowa Z4 – K. Zuse Superkomputer 2009 1015 oper/sek Colossus informatyka + 23
Od kiedy??? Do 2??? roku … ? informatyka + Współczesna technologia 24 Nowa technologia ??? Jaka nowa technologia zostanie stworzona na IBM PC, która wyprze PC? Współczesny Memex? (V. Bush, 1945) 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] informatyka + 24
Akcenty polskie informatyka + 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 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ę David Huffman (1952) – praca magisterska na temat kompresji, idea wzięta od Morse’a – jeden z najbardziej popularnych algorytmów kompresji Claude Shannon (1935) – realizacja algebry Boole’a w postaci układów przełączających – Najważniejsza praca dyplomowa XX w informatyka +
Kariery z przełożeniem także na dużą kasę Steve Jobs i Steve Wozniak, Apple (1983) Bill Gates & comp. Microsoft (1975) Jeff Bezos i Amazon (1994) – księgarnia internetowa, a ostatnio Kindle – e-czytnik e-książek e-Bay, Allegro – aukcje internetowe – wszystko da się sprzedać Skype Nasz klasa – studenci z Uwr., praca mgr. Macieja Popowicza Facebook – Mark Zukerberg Twitter … informatyka +
Wyzwania społecznościowe 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 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 27.07.2010: światowy rekord sortowania – posortowano 1015 danych w ciągu 60 sek. Analiza danych z Kosmosu – próby znalezienia sygnałów życia, nowych gwiazd, … informatyka +
Wyzwania informatyka + 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 +
Idea P = NP informatyka + 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 +
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 +
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/1015 sek. = ok. 0.01 sek. 48! = 1,2413915592536072670862289047373*1061/1015 = 3*1038 lat 25! = 15511210043330985984000000/1015 sek. = 15511210043 sek. = = 179528 dni = 491 lat informatyka +
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ń: Metoda zachłanna – najbliższy sąsiad – mogą być bardzo złe Meta-heurystyki: algorytmy genetyczne – krzyżowanie i mutowanie rozwiązań algorytmy mrówkowe – modelowanie feromonów informatyka +
Światowy TSP przez 1,904,711 miasta. 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 +