Wprowadzenie do informatyki Wykład 3 Informatyka jako dziedzina wiedzy [email protected] http://www.cs.put.poznan.pl/jnawrocki/wsb-wdi/ Copyright, 2004 © Jerzy R. Nawrocki Co to jest informatyka? Dziedzina wiedzy zajmująca się problemami • przetwarzania, • przechowywania i • przesyłania danych. J.Nawrocki, Informatyka jako dziedzina Definiowanie informatyki ACM = Association for Computing Machinery IEEE = Institution of Electrical and Electronics Engineers IEEE CS = IEEE Computer Society J.Nawrocki, Informatyka jako dziedzina Engineering Science Mathematics Trzy filary informatyki J.Nawrocki, Informatyka jako dziedzina • Matematyka • Nauki ścisłe (science) • Inżynieria Curriculum 2001 - Obszary wiedzy 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Struktury dyskretne (43) Podstawy programowania (38) Algorytmy i złożoność (31) Architektura i organizacja (36) Systemy operacyjne (18) Obliczenia w sieciach (15) Języki programowania (21) Komunikacja człowiek-komputer (8) Grafika i wizualizacja (3) Systemy inteligentne (10) Zarządzanie informacją (10) Społeczne aspekty informatyki (16) Inżynieria oprogramowania (31) Obliczenia i metody numeryczne (0) J.Nawrocki, Informatyka jako dziedzina Struktury dyskretne Graf nieskierowany J.Nawrocki, Informatyka jako dziedzina Klika Struktury dyskretne Ojciec Cykl w grafie J.Nawrocki, Informatyka jako dziedzina Dzieci Drzewo Struktury dyskretne Cykl w grafie Acykliczny graf skierowany (DAG) J.Nawrocki, Informatyka jako dziedzina Podstawy programowania Silnia(n) = n! = 123 .. n n! = (n-1)! n s1 Silnia(0) = 1 Silnia(1) = 1 Silnia(2) = 2 Silnia(3) = 6 Silnia(4) = 24 Silnia(5) = 120 int Silnia (int n) { int s = 1; while (n > 1) { s = s * n; n = n – 1;} return s; } n>1 Nie Tak ss*n nn-1 J.Nawrocki, Informatyka jako dziedzina Wynik s Algorytmy i złożoność n=6 112 123 134 132 123 114 Klasy algorytmów: Wielomianowe: p: czas(n) p(n) 1600 1400 1200 1000 800 600 400 200 0 5 J.Nawrocki, Informatyka jako dziedzina 10 15 20 25 30 35 40 Algorytmy i złożoność n=6 112 123 134 132 123 114 Klasy algorytmów: „Wykładnicze”: p: czas(n) p(n) 2500 2000 1500 1000 500 0 1 J.Nawrocki, Informatyka jako dziedzina 2 3 4 5 6 7 8 9 10 11 Algorytmy i złożoność n=6 112 123 134 132 123 114 Klasy algorytmów: „Wykładnicze”: p: czas(n) p(n) 2500 2000 1500 1000 500 0 1 2 3 4 5 6 7 8 9 10 11 k n0 nn0 2n > nk J.Nawrocki, Informatyka jako dziedzina Algorytmy i złożoność n=6 Klasy algorytmów: Wielomianowe: p: czas(n) p(n) 112 123 134 132 123 114 „Wykładnicze”: p: czas(n) p(n) Klasy problemów: Wielomianowe: alg. wielomianowy NP-trudne: najpraw. alg. wielomian. J.Nawrocki, Informatyka jako dziedzina Architektura i organizacja 0 1 2 3 4 5 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 10 21 Jest mała i szybka 32 pamięć operacyjna i 333 duża lecz wolna 444 pamięć dyskowa. 555 43 Jak zbudować z nich pamięć, która byłaby 54 65 duża i szybka? 111 222 333 J.Nawrocki, Informatyka jako dziedzina Architektura i organizacja 0 1 2 3 4 5 10 21 32 43 54 65 0 1 2 3 4 5 6 7 8 9 10 11 10 21 32 333 444 555 43 54 65 111 222 333 J.Nawrocki, Informatyka jako dziedzina Pamięć wirtualna Odczyt komórki o adresie 7 Architektura i organizacja 0 1 2 3 4 5 111 222 333 43 54 65 0 1 2 3 4 5 6 7 8 9 10 11 10 21 32 333 444 555 43 54 65 111 222 333 J.Nawrocki, Informatyka jako dziedzina Pamięć wirtualna Odczyt komórki o adresie 9 Architektura i organizacja 0 1 2 3 4 5 111 222 333 43 54 65 str 0 1 2 3 Tablica stron blok jest 0 0 0 0 3 1 0 1 fadr = blok(str) + prz 0 1 2 3 4 5 6 7 8 9 10 11 10 21 32 333 444 555 43 54 65 111 222 333 J.Nawrocki, Informatyka jako dziedzina Pamięć wirtualna Odczyt komórki o adresie logicz. ladr: str = ladr / 3 prz = ladr mod 3 Architektura i organizacja 0 1 2 3 4 5 111 222 333 43 54 65 Tablica stron str blok 0 -1 1 -1 2 3 3 0 fadr = blok(str) + prz 0 1 2 3 4 5 6 7 8 9 10 11 10 21 32 333 444 555 43 54 65 111 222 333 J.Nawrocki, Informatyka jako dziedzina Pamięć wirtualna Odczyt komórki o adresie logicz. ladr: str = ladr / 3 prz = ladr mod 3 Systemy operacyjne A LP HD B AllocateLP; AllocateHD; UseHDandLP; ReleaseHD; ReleaseLP; J.Nawrocki, Informatyka jako dziedzina Jak uniknąć zastoju w systemie? Systemy operacyjne A LP HD B AllocateLP; AllocateHD; AllocateHD; AllocateLP; UseHDandLP; UseHDandLP; ReleaseHD; ReleaseLP; ReleaseLP; ReleaseHD; J.Nawrocki, Informatyka jako dziedzina Ale proste! Systemy operacyjne A LP HD B ? AllocateLP; AllocateHD; AllocateHD; AllocateLP; UseHDandLP; UseHDandLP; ReleaseHD; ReleaseLP; ReleaseLP; ReleaseHD; J.Nawrocki, Informatyka jako dziedzina Systemy operacyjne A LP HD B AllocateLP; AllocateHD; AllocateHD; AllocateLP; UseHDandLP; UseHDandLP; ReleaseHD; ReleaseLP; ReleaseLP; ReleaseHD; J.Nawrocki, Informatyka jako dziedzina NC: Obliczenia w sieciach ... NC4: WWW jako przykład obliczeń typu klient-serwer NC5: Budowanie aplikacji WWW ... NC9: J.Nawrocki, Informatyka jako dziedzina Języki programowania Kompilator .pas Analizator J.Nawrocki, Informatyka jako dziedzina Generator .exe Języki programowania 1+2*3 =7 1+*23 = ??? Dany jest ciąg cyfr, nawiasów, znaków +, -, *, /. Czy ten ciąg jest poprawnie zbudowanym wyrażeniem arytmetycznym? J.Nawrocki, Informatyka jako dziedzina Grafika i wizualizacja Jak odwzorowywać na ekranie obiekty 3-wymiarowe w czasie rzeczywistym? J.Nawrocki, Informatyka jako dziedzina Systemy inteligentne Politechnika Poznańska Jak rozpoznawać obrazy lub pismo? J.Nawrocki, Informatyka jako dziedzina Zarządzanie informacją Pesel #Głów 70010112345 4 56062877777 3 Pesel 70010112345 56062877777 Dochód 48000 33000 Imię Jan Ewa Jak manipulować Nazwisko dużą ilością Klinton danych? Busz Podaj nazwiska tych, u których dochód na głowę > 11 000 zł J.Nawrocki, Informatyka jako dziedzina Inżynieria oprogramowania Syndrom LOOP Loop L ate (późno) Over budget (przekroczony budżet) O vertime (nadgodziny) Poor quality (kiepska jakość) J.Nawrocki, Informatyka jako dziedzina Inżynieria oprogramowania Kiedy i za ile? J.Nawrocki, Informatyka jako dziedzina Co za miesiąc? Inżynieria oprogramowania Opowieści użytkownika Data: 6.11.01 Typ: Nowa: X Naprawa:__ Rozbudowa:__ Numer opowieści: 23 OPOWIEŚĆ: Dla każdego konta oblicz saldo dodając wszystkie wpłaty i odejmując wszystkie wypłaty. Rozmiar: J.Nawrocki, Informatyka jako dziedzina Inżynieria oprogramowania Plan wydania: Gra planistyczna 2 tyg= 24 h/osobę 90h, małe Pisze opowieści Dla opowieści szac. pracochłon. i ryzyko. Ponadto dostępny czas J.Nawrocki, Informatyka jako dziedzina Dzieli opowieść Inżynieria oprogramowania Plan wydania: Gra planistyczna 9 godz Opowieści są OK. Pracochł., ryzyko dostępny czas 2 tyg * 2 osoby= 48 h J.Nawrocki, Informatyka jako dziedzina Wybiera zakres Obliczenia i metody numeryczne 2x = 10 3x = 1 Jak rozwiązać układ równań lub pojedyncze równanie? x2 = 2 J.Nawrocki, Informatyka jako dziedzina Obliczenia i metody numeryczne a2 + b2 = begin a:= 3e-25; b:= 4e-25; m:= sqrt(a*a writeln(m) end. + b*b); a 1 + (b/a)2 2 b 1 + (a/b) = begin a:= 3e-25; b:= 4e-25; if a > b then m:= a*sqrt(1+ else (b/a)*(b/a)) m:= b*sqrt(1+ writeln(m) end. (a/b)*(a/b)); 5.0000000000E-25 J.Nawrocki, Informatyka jako dziedzina Podsumowanie Wreszcie! Struktury dyskretne: grafy Algorytmy i złożoność: podział zbioru Architektura: pamięć wirtualna Systemy operacyjne: problem zastoju Języki progr: kompilator i wyr. arytm. Systemy inteligentne: rozpozn. pisma Zarządzanie informacją: bazy danych Inżynieria oprogr.: gra planistyczna Metody numeryczne: sqrt(a*a+b*b) J.Nawrocki, Informatyka jako dziedzina