Komunikacja poprzez Internet

advertisement
Teoretyczne podstawy informatyki
Wykład 1
Wprowadzenie do
teoretycznych podstaw informatyki
[email protected]
http://www.cs.put.poznan.pl/jnawrocki/tpi/
Copyright, 2004 © Jerzy R. Nawrocki
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
Engineering
Science
Mathematics
Trzy filary informatyki
J.Nawrocki, Wprowadzenie do TPI
• 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, Wprowadzenie do TPI
Struktury dyskretne
Graf
nieskierowany
J.Nawrocki, Wprowadzenie do TPI
Klika
Struktury dyskretne
Ojciec
Dzieci
Cykl w grafie
J.Nawrocki, Wprowadzenie do TPI
Drzewo
Struktury dyskretne
Cykl w grafie
Acykliczny graf skierowany
(DAG)
J.Nawrocki, Wprowadzenie do TPI
Podstawy programowania
Język schematów blokowych
Start
R1
SS+1
R2 > 0
Tak
J.Nawrocki, Wprowadzenie do TPI
Nie
Stop
Podstawy programowania
Silnia(n) = n! = 123 .. n
n! = (n-1)!  n
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;
}
J.Nawrocki, Wprowadzenie do TPI
s1
n>1
Nie
Tak
ss*n
nn-1
Wynik  s
Algorytmy i złożoność
112
123
134
132
123
114
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?
J.Nawrocki, Wprowadzenie do TPI
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
2
3
4
5
6
7
8
9
10
11
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
Pamięć wirtualna
Odczyt komórki o
adresie log. 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, Wprowadzenie do TPI
Pamięć wirtualna
Odczyt komórki o
adresie log. ladr:
str = ladr / 3
prz = ladr mod 3
Systemy operacyjne
A
LP
HD
B
?
AllocateLP;
AllocateHD;
AllocateHD;
AllocateLP;
UseHDandLP;
UseHDandLP;
ReleaseHD;
ReleaseLP;
ReleaseLP;
ReleaseHD;
J.Nawrocki, Wprowadzenie do TPI
Systemy operacyjne
A
LP
HD
B
AllocateLP;
AllocateHD;
AllocateHD;
AllocateLP;
UseHDandLP;
UseHDandLP;
ReleaseHD;
ReleaseLP;
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
Języki programowania
Kompilator
.pas
Analizator
J.Nawrocki, Wprowadzenie do TPI
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, Wprowadzenie do TPI
Grafika i wizualizacja
Jak odwzorowywać
na ekranie obiekty
3-wymiarowe w
czasie
rzeczywistym?
J.Nawrocki, Wprowadzenie do TPI
Systemy inteligentne
Politechnika Poznańska
Jak rozpoznawać
obrazy lub
pismo?
J.Nawrocki, Wprowadzenie do TPI
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, Wprowadzenie do TPI
Inżynieria oprogramowania
Syndrom LOOP
Loop
L ate (późno)
Over budget (przekroczony budżet)
O vertime (nadgodziny)
Poor quality (kiepska jakość)
J.Nawrocki, Wprowadzenie do TPI
Inżynieria oprogramowania
Kiedy i za ile?
J.Nawrocki, Wprowadzenie do TPI
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
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, Wprowadzenie do TPI
Obliczenia i metody numeryczne
 a2 + b2
=
+ b*b);
0.0000000000E+00
2
b

1
+
(a/b)
=
begin
a:= 3e-25; b:= 4e-25;
if a > b then
begin
a:= 3e-25; b:= 4e-25;
m:= sqrt(a*a
writeln(m)
end.
a  1 + (b/a)2

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, Wprowadzenie do TPI
Egzamin
Termin ???
5 zadań; od 0 do 10 pkt za zadanie
Od 28 pkt 3.0; od 33 pkt 3.5; od 38 pkt 4.0, ...
Indeks lub legitymacja
Kalkulatory zabronione
J.Nawrocki, Wprowadzenie do TPI
Podsumowanie
Wreszcie!
Struktury dyskretne: grafy
Podstawy progr.: schematy blokowe
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, Wprowadzenie do TPI
Ocena wykładu
1. Wrażenie ogólne? (1 - 6)
2. Zbyt wolno czy zbyt szybko?
3. Czy dowiedziałeś się czegoś ważnego?
4. Co poprawić i jak?
J.Nawrocki, Wprowadzenie do TPI
Download