Wprowadzenie do teoretycznych podstaw informatyki (c) Jerzy Nawrocki TPI - Wykł. 1 Teoretyczne podstawy informatyki Wykład 1 Wprowadzenie do teoretycznych podstaw informatyki Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/tpi/ Copyright, 2003 © Jerzy R. Nawrocki Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Co to jest informatyka? Dziedzina wiedzy zajmująca się problemami przetwarzania, przechowywania i przesyłania danych. J.Nawrocki, Wprowadzenie do TPI
Definiowanie informatyki ACM = Association for Computing Machinery IEEE = Institution of Electrical and Electronics Engineers IEEE CS = IEEE Computer Society J.Nawrocki, Wprowadzenie do TPI
Trzy filary informatyki Matematyka Nauki ścisłe (science) Inżynieria Mathematics Engineering Science J.Nawrocki, Wprowadzenie do TPI
Curriculum 2001 - Obszary wiedzy 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, Wprowadzenie do TPI
AL: Algorytmy i złożoność AL3: Fundamentalne algorytmy obliczeniowe AL4: AL5: Obliczalność AL6: Klasy złożoności P i NP. AL7: Teoria automatów . . . AL11: J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Obszary informatyki Algorytmy i złożoność Dany jest zbiór A zawierający n liczb całkowitych dodatnich. Czy można go podzielić na takie dwa zbiory B, C, że suma liczba w zbiorze B jest równa sumie liczb w zbiorze C? 123 132 112 134 114 J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Obszary informatyki Algorytmy i złożoność n=6 Klasy algorytmów: Wielomianowe: p: czas(n) p(n) 123 132 112 134 114 „Wykładnicze”: p: czas(n) p(n) Klasy problemów: Wielomianowe: alg. wielomianowy NP-trudne: „raczej” alg. wielomian. J.Nawrocki, Wprowadzenie do TPI
AR: Architektura i organizacja AR1: Logika i systemy cyfrowe AR2: Maszynowa reprezentacja danych AR3: Organizacja maszyn na poziomie asemblera AR4: Organizacja i architektura pamięci . . . AR9: J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć dyskowa. Jak zbudować z nich pamięć, która byłaby duża i szybka? J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1 J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 7 J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 9 J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 9 J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie log. ladr: str = ladr / 3 prz = ladr mod 3 J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Tablica stron Pamięć wirtualna Odczyt komórki o adresie log. ladr: str = ladr / 3 prz = ladr mod 3 fadr = blok(str) + prz J.Nawrocki, Wprowadzenie do TPI
Architektura i organizacja Tablica stron Pamięć wirtualna Odczyt komórki o adresie log. ladr: str = ladr / 3 prz = ladr mod 3 fadr = blok(str) + prz J.Nawrocki, Wprowadzenie do TPI
OS: Systemy operacyjne OS1: Przegląd systemów operacyjnych OS2: OS3: Współbieżność OS4: OS5: OS6: Zarządzanie urządzeniami . . . OS12: J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Obszary informatyki Systemy operacyjne LP HD B A Jak uniknąć zastoju w systemie? AllocateLP; AllocateHD; UseHDandLP; ReleaseHD; ReleaseLP; J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Obszary informatyki Systemy operacyjne A B LP HD ? AllocateLP; AllocateHD; UseHDandLP; ReleaseHD; ReleaseLP; AllocateHD; AllocateLP; UseHDandLP; ReleaseLP; ReleaseHD; J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Obszary informatyki Systemy operacyjne A B LP HD AllocateLP; AllocateHD; UseHDandLP; ReleaseHD; ReleaseLP; AllocateHD; AllocateLP; UseHDandLP; ReleaseLP; ReleaseHD; J.Nawrocki, Wprowadzenie do TPI
NC: Obliczenia w sieciach . . . NC4: WWW jako przykład obliczeń typu klient-serwer NC5: Budowanie aplikacji WWW NC9: J.Nawrocki, Wprowadzenie do TPI
NC: Obliczenia w sieciach . . . NC4: WWW jako przykład obliczeń typu klient-serwer NC5: Budowanie aplikacji WWW NC9: J.Nawrocki, Wprowadzenie do TPI
PL: Języki programowania PL1: Przegląd języków programowania . . . PL3: Wprowadzenie do translacji języków PL8: Systemy translacji PL11: J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI (c) Jerzy Nawrocki Obszary informatyki TPI - Wykł. 1 Języki programowania Kompilator Analizator Generator .pas .exe J.Nawrocki, Wprowadzenie do TPI Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI (c) Jerzy Nawrocki Obszary informatyki TPI - Wykł. 1 Języki programowania Dany jest ciąg cyfr, nawiasów, znaków +, -, *, /. Czy ten ciąg jest poprawnie zbudowanym wyrażeniem arytmetycznym? 1 + 2 * 3 = 7 1 + * 2 3 = ??? J.Nawrocki, Wprowadzenie do TPI Wprowadzenie do TPI
Komunikacja człowiek-komputer Obszary informatyki Komunikacja człowiek-komputer Jak odwzorowywać na ekranie obiekty 3-wymiarowe w czasie rzeczywistym? J.Nawrocki, Wprowadzenie do TPI
Curriculum 2001 - Obszary wiedzy 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, Wprowadzenie do TPI
Sztuczna inteligencja i robotyka Obszary informatyki Sztuczna inteligencja i robotyka Politechnika Poznańska Politechnika Poznańska Jak rozpoznawać obrazy lub pismo? Politechnika Poznańska Politechnika Poznańska J.Nawrocki, Wprowadzenie do TPI
Zarządzanie informacją Jak manipulować dużą ilością danych? Podaj nazwiska tych, u których dochód na głowę > 11 000 zł J.Nawrocki, Wprowadzenie do TPI
Curriculum 2001 - Obszary wiedzy 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, Wprowadzenie do TPI
Inżynieria oprogramowania Obszary informatyki Inżynieria oprogramowania Kiedy i za ile? Jak oszacować czas i koszt realizacji przedsięwzięcia programistycznego? J.Nawrocki, Wprowadzenie do TPI
Obliczenia numeryczne i symboliczne Obszary informatyki Obliczenia numeryczne i symboliczne 2x = 10 Jak rozwiązać układ równań lub pojedyncze równanie? 3x = 1 x2 = 2 J.Nawrocki, Wprowadzenie do TPI
Obliczenia numeryczne i symboliczne Obszary informatyki Obliczenia numeryczne i symboliczne a2 + b2 = a 1 + (b/a)2 = b 1 + (a/b)2 begin a:= 3e-25; b:= 4e-25; if a > b then m:= a*sqrt(1+ (b/a)*(b/a)) else m:= b*sqrt(1+ (a/b)*(a/b)); writeln(m) end. begin a:= 3e-25; b:= 4e-25; m:= sqrt(a*a + b*b); writeln(m) end. 0.0000000000E+00 5.0000000000E-25 J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Standardy MENiS Teoretyczne podstawy informatyki: Algorytmy. Modele obliczeń, maszyny Turinga, obliczalność. Języki formalne, gramatyki i automaty. Złożoność obliczeniowa, klasy złożoności, NP-zupełność. J.Nawrocki, Wprowadzenie do TPI
J.Nawrocki, Wprowadzenie do TPI Egzamin 21.01 Egzamin próbny (2 x 40 minut) 5 zadań; od 0 do 10 pkt za zadanie Od 26 pkt 3.0; od 31 pkt 3.5; od 36 pkt 4.0, ... Poprawka: (e + p) > 25 pkt Indeks lub legitymacja Kalkulatory zabronione 1 kartka „ściągi” formatu A4 (obie strony) J.Nawrocki, Wprowadzenie do TPI