Krzysztof Wilk - metal.agh.edu.plwilk/wyk-zaois/w_is-zao1.pdf · Wprowadzenie do Algorytmów. L....

58
Podstawy Informatyki Podstawy Informatyki Informatyka Stosowana, I rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania [email protected] tel. 12 617 28 89 Konsultacje: piątek, po 15; B-4, pok. 207

Transcript of Krzysztof Wilk - metal.agh.edu.plwilk/wyk-zaois/w_is-zao1.pdf · Wprowadzenie do Algorytmów. L....

Podstawy InformatykiPodstawy Informatyki

Informatyka Stosowana, I rok

Krzysztof Wilk

Katedra Informatyki Stosowanej

i Modelowania

[email protected]

tel. 12 617 28 89

Konsultacje: piątek, po 15; B-4, pok. 207

Podstawy InformatykiPodstawy Informatyki

PROGRAM ZAJĘĆ

Semestr 1:

� Wykłady: 18 godzin, s. 301/302 B-4

� Ćwiczenia laboratoryjne: 18 godzin,s 101 B-4

Z czego się uczyć? Z czego się uczyć?

�Materiały dydaktyczne (wykład + laboratorium).

�Dokumentacja oprogramowania (tzw. HELP).

�Internet (np. http://www.codeguru.com).

�Czasopisma i literatura komputerowa:

�Dawid Harel, Rzecz o istocie informatyki.

�T.H. Cormen, C.E. Leiserson, R.L. Rivest, Wprowadzenie do Algorytmów.

�L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych

�A.V. Aho, J.E. Hopcroft, J.D. Ulman, Projektowanie i analiza algorytmów komputerowych.

Czym jest informatyka? Czym jest informatyka?

Informatyka

(computer science, computing science, information

technology, informatics)

� dziedzina nauki i techniki zajmująca się przetwarzaniem informacji – w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje.

� Termin informatyka zaproponował w 1968 r. RomualdMarczyński w Zakopanem na ogólnopolskiej konferencji poświęconej maszynom matematycznym na wzór fr.informatique i niem. Informatik.

Historia informatyki Historia informatyki

•IV w. p.n.e algorytm Euklidesa (pierwszy niebanalny algorytm),

•IX w. Muhammed ibn Musa al-Kwarizmi - algorytmy dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych,

•1801 Joseph Jacquard — krosno tkackie sterowane dziurkowanymi kartami

•1833 Charles Babbage — maszyna różnicowa, plany maszyny analitycznej,

•20. XX w. Alan Turing, Emil Post, Howard Aitken, John vonNeumann, Kurt Gödel, Alnzo Church, Stephen Kleene, Andriej Markow — teoria algorytmów, teoria obliczeń.

•1940 Claude Shannon — teoria informacji (bit),

•60. XX w. uznanie informatyki za niezależną dyscyplinę akademicką.

Historia komputerów, cz. 1Historia komputerów, cz. 1

440 p.n.e Abacus, Chiny

1623 Wilhelm Schickard sumator do 6 cyfr,

1642 maszyna obliczeniowa (B. Pascal)

1671 kalkulator mechaniczny (G. Leibniz)

1801 karty perforowane w tkalni (J. Jacquard)

1834 maszyna różnicowa (C. Babbage)

1936 taśma perforowana (K. Zuse)

1941 Konrad Zuse — Z3 (600 przekaźników, 513Hz, 64 x 22-bit pamięć),

1943 M.H. Newman i T.H. Flowers — Colossus,

Historia komputerów, cz. 2Historia komputerów, cz. 2

1944 MARK 1 (na przekaźnikach),1946 ENIAC (lampowy),1948 tranzystor,1949 UNIVAC - pierwszy komputer produkowany

seryjnie, 1959 patent na układ scalony (TI),1974 Intel 8080 (pierwszy mikroprocesor),1977 Apple II (pierwszy komputer osobisty)1980 ZX 81 (pierwszy do zabawy)1983 IBM PC XT (początek ery pecetów)

PascalinaPascalina

Maszyna różnicowa Maszyna różnicowa Babbage’aBabbage’a

Cel: Wykorzystanie metody różnic skończonych do obliczaniawartości wybranych funkcji (drukowanie tablic matematycznych)Założenia:Dodawanie liczb 20-cyfrowych (przy 6 różnicach),lub 40-cyfrowych (przy 3 kolejnych różnicach)

Drukowanie wyników – 44cyfry na minutęWymiary maszyny: 2,5x2x1mLiczba elementów mechanizmu: 25 000Koszt prototypu: 17 470 £ (parowóz kosztował wtedy 800 £)

Druga maszyna różnicowaDokładność – 31 cyfrLiczba elementów – 8 000Skonstruowana wg planów Babbage’a w latach 1985-91 przez pracowników Science Museum w Londynie.

ASCC (Automatic Sequence Controlled Calculator) MARK I

Kalkulator mierzył 1.6x2,6x0.6 m, ważył 5 ton i miał 765 299 różnychczęści: 863 km przewodów elektrycznych, 1 000 komutatorów i 3 304 przełączniki dwupozycyjne, 1400 komutatorówi 2 200 przełączników 10-pozycyjnych, 1 210 łożysk tocznych, przyciski, styki krzywkowe, 175 000 połączeń elektrycznych, 3 miliony punktów lutowniczych.Wał główny, napędzany silnikiem 5 KM, biegł poziomo u podstawy maszyny przez całą jej długość. Poszczególne plansze uruchamianebyły za pośrednictwem przekładni zębatych lub łańcuchowych.Wprowadzanie danych następowało bądź za pośrednictwem kart lub taśm perforowanych, bądź za pomocą 60 rejestrów złożonych z 24przełączników dziesiętnych, ustawianych ręcznie przed przystąpieniem do pracy.Wyniki drukowano na kartach lub taśmach perforowanych, bądź na elektrycznych maszynach do pisania.Koszt urządzenia - ok. 1 mln $Obsługa - 10 osób (zastępowała 100 tradycyjnych rachmistrzów)

Generacje komputerów

0 oparte o przekaźniki i elementy mechaniczne (np. Z3),

1 budowane na lampach elektronowych (np. XYZ),

2 budowane na tranzystorach (np. Cray-1),

3 budowane na układach scalonych SSI i MSI (np. Odra 1305),

4 budowane na układach VLSI (np. PC),

5 projekty o niekonwencjonalnych rozwiązaniach,

np. komputer optyczny.

Komputer OdraKomputer Odra

Komputer K-202 (J. Karpiński,1970-73)Komputer K-202 (J. Karpiński,1970-73)

Rzeczpospolita, 21Rzeczpospolita, 21Rzeczpospolita, 21Rzeczpospolita, 21----02020202----2010201020102010ZmarZmarZmarZmarłłłł JacekJacekJacekJacek KarpiKarpiKarpiKarpińńńńskiskiskiskiWe wrocławskim szpitalu zmarł polski inżynier, elektronik i informatyk, twórca pierwszego polskiego mikrokomputera K-202 Jacek Karpiński. Miał 83 lata.

Budowa komputeraBudowa komputera

W teorii W teorii

i w praktycei w praktyce

KOMPUTERSchemat funkcjonalny

KOMPUTERSchemat funkcjonalny

Jednostkacentralna(procesor)

Pamięć

Wejście Wyjście

wejście

wyjście

ProcesorProcesor

� Jednostka arytmetyczna - wykonuje + - * / , a często i bardziej skomplikowane działania (log, sin itp.) oraz działania logiczne (AND, OR, NOT...)

� rejestry - pamiętają liczby do operacji

� zegar

� szyna danych, adresowa

� pamięć cache (szybka podręczna)

PamięćPamięć

� ROM - tylko do odczytu, dane stałe, nie giną po wyłączeniu zasilania, np. BIOS

� RAM - do zapisu i odczytu, podstawowa pamięć komputera, obecnie 1 GB i więcej

� masowa - np. dyski, dyskietki, CD, DVD, taśmy - duże pojemności (do TB), ale wolniejszy dostęp niż RAM

Urządzenia wejściaUrządzenia wejścia

� klawiatura

� mysz

� mikrofon

� joystick

� modem, karta sieciowa

� porty szeregowe, USB itd.

� Pamięci masowe

Urządzenia wyjściaUrządzenia wyjścia

� monitor

� drukarka

� głośniki

� karta sieciowa, modem

� porty szeregowe, USB

� pamięci masowe

System operacyjnySystem operacyjny

� komputer bez programu jest martwy,

� wpisywanie procedur zarządzających sprzętem i pamięcią w każdym programie byłoby skomplikowane,

� programem odpowiadającym za zarządzanie urządzeniami komputera, pamięcią, dyskami i innymi programami jest system operacyjny.

Budowa systemu operacyjnegoBudowa systemu operacyjnego

jądro

powłoka

użyszkodnicy

programy

sprzęt

Składniki systemuSkładniki systemu

� jądro - komunikuje się z komputerem przez sterowniki urządzeń i wykonuje kolejkowanie zadań, obsługę pamięci

� powłoka - stanowi interpreter poleceń systemu (komunikacja z użytkownikiem)

� programy - polecenia systemowe nie zawarte w jądrze, programy narzędziowe, programy użytkowe

Systemy operacyjne:Systemy operacyjne:

� jednozadaniowe (np. DOS)

� wielozadaniowe (np. UNIX)� niewielozadaniowe ;-) (Windows)

System DOSSystem DOS

� na komputery IBM PC

� jednozadaniowy

� bez wielodostępu (tylko z klawiatury)

� system wyszedł z użycia

Systemy MS WindowsSystemy MS Windows

� na komputery IBM PC

� ciągle rozwijane (ale wymagają coraz silniejszych komputerów)

� interfejs graficzny ułatwia pracę

� systemy wielozadaniowe, ale bez wielodostępu chociaż...

� świadczą pewne usługi poprzez sieć

Systemy UNIXSystemy UNIX

� Na wszystkie typy komputerów, od prostych PC do superkomputerów

� systemy od początku wielodostępne i wielozadaniowe

� łatwe w konfiguracji (pliki tekstowe)

� przeznaczone głównie do pracy zdalnej

� jasno określone prawa użytkowników

Wielozadaniowość i wielodostępWielozadaniowość i wielodostęp

� jednozadaniowość - kolejne zadanie wykonywane po zakończeniu poprzedniego

� wielozadaniowość - wykonywanie wielu zadań w „tym samym” czasie.W rzeczywistości zadania są wykonywane kolejno w przydzielonych im przedziałach czasowych (chyba że jest kilka procesorów)

� wielodostęp - w tym samym czasie z jednego komputera korzysta wielu użytkowników

Praca w systemie UNIXPraca w systemie UNIX

Konta w systemie UNIXKonta w systemie UNIX

� niepowtarzalny identyfikator

użytkownika (login)

� wejście do systemu po podaniu hasła

� użytkownik posiada katalog domowy i

fragment dysku do dyspozycji (często

limitowany)

� użytkownik posiada skrzynkę pocztową (najczęściej o adresie:[email protected] )

� uprawnienia w systemie zależą od przynależności do odpowiedniej grupy

Drzewo katalogówDrzewo katalogów

bin lib mail

usr etc

jkowalsk anowak

zaocz rok102 dokt

stud prac

home

/ (root)

System plikówSystem plików

� W systemie UNIX zarówno dyski jak i wszystkie urządzenia zgrupowane są w jeden duży system plików

� każdy plik interpretowany jest jako strumień bajtów

� „pliki” urządzeń to są programy do sterowania nimi (drivery)

� każdy plik ma przypisane uprawnienia dostępu: dla właściciela, grupy i wszystkich

� Właściciel pliku może dodać lub odjąć uprawnienia dostępu do niego

� prawa dostępu do czytania (r), zapisu, modyfikacji, kasowania (w) oraz do uruchomienia (x) są ustalane oddzielnie dla właściciela (u), grupy (g) i dla innych (o)

� tylko „super użytkownik” (root) ma prawa do wszystkiego, ale takie uprawnienia ma tylko administrator systemu

� Zbiory tworzone są przez użytkownika. Mogą być modyfikowane, kopiowane lub usuwane.

� tekstowe (ASCII),

� zbiory binarne (wykonywalne)

Nazewnictwo zbiorów:

nazwa.rozszerzenie (Np. list1.txt, prog3.for)

nazwa - dowolny ciąg znaków,

rozszerzenie - dowolny ciąg znaków

Rozszerzenia specjalne (zwyczajowo):

� nazwa.f - zbiór źródłowy programu w języku FORTRAN,

� nazwa.p - zbiór źródłowy programu w języku Pascal,

� nazwa.c - zbiór źródłowy programu w języku C

� nazwa.cpp - zbiór źródłowy programu w języku C++....

Polecenia w systemie UNIXPolecenia w systemie UNIX

Przykład:

ls -al /var ↵komenda opcje parametry Enter

Podstawowe komendy będą pokazane na ćwiczeniach

Komendy Unixa

� komendy pisane są małymi literami

� login: identyfikator (pierwsza litera imienia + 7 liter nazwiska) Np.: jkowalsk (Janusz Kowalski),

anowak (Andrzej Nowak)

� password: hasło (hasło składa się z minimum 5 znaków: liter, cyfr, znaków specjalnych)

� E-mail address: [email protected]

� Prompt:

3\%{sendzimir\} /home/stud/zaocz/anowak\>

� logout

Komendy Unixa

� passwd - zmiana hasłaold (login) passworddwukrotnie new password

� w - informacja o aktualnie pracujących w sieci� write adresat - pisanie tekstu na ekranie adresata

� talk adresat - “rozmowa” z adresatem z wykorzystaniem klawiatury i ekranu monitora

� man komenda - pomoc na temat komendy

� ps - informacja o aktualnie wykonywanych zadaniach� ps -f pełna informacja o aktualnie wykonywanych

zadaniach

� W celu przerwania procesu należy:� 1. “zalogować” się na innym komputerze� 2. wykonać komendę:

� ps -f

� 3. wykonać komendę:

� kill -9 125

UID PID TTY TIME COMMAND kowal 37 tty01 0:34 -csh nowak 125 tty02 2:28 vi prog.f janusz 328 tty03 1:52 mail

Komendy UNIXa, cd:

ls - listowanie zawartości katalogu (listing),

mkdir nazwa_katalogu - utworzenie katalogu nazwa_katalogu (make directory)

Np. mkdir programy

rmdir nazwa_katalogu - usunięcie katalogu nazwa_katalogu,

Np. rmdir listy

cd nazwa_katalogu - zmiana katalogu roboczego na katalog nazwa_katalogu,

Np. cd programy

cd programy/matem/geometria

cd .. - przejście do katalogu powyżej katalogu roboczego,

� Każdy użytkownik należy do grupy użytkowników (np. stud, rok1,....)

� Każdy zbiór posiada atrybuty (właściciel, grupa, inni)� prawa do pliku można zobaczyć po wydaniu komendy:ls -al np.drwxr-xr-x 11 root 512 Jun 18 13:42 ./

drwxr-xr-x 23 root 512 May 31 08:16 ../

drwxrwxrwx 10 root 512 Jun 18 13:40 common/

drwx------ 2 root 8192 Feb 18 2000 lost+found/

drwxr-xr-x 14 root 512 Jan 18 2002 prac/

-rw-r--r-- 1 root 2097120 Oct 18 15:06 quotas

drwxr-xr-x 33 root 512 Oct 7 10:08 stud/

d|rwx|rwx|r-x il. dow. właściciel wielkość data nazwa_zbioru

d - katalogw - prawo pisania do zbiorur - prawo czytania zbioru x - prawo wykonywania zbioru

Zmiana praw:

chmod a[go]+[-]x[rw] nazwa_zbiorua - wszyscy (all)g - grupa (group)o - inni (others)- [+] - odbieranie (nadawanie) uprawnień

pwd - nazwa katalogu roboczego

cp zbiór1 zbiór2 - kopiowanie jednego zbioru na drugi zbiór,Np. cp prog_1.for prog_2.for

rm nazwa_zbioru - usunięcie zbioru nazwa_zbioru Np. rm list3.txt

mv nazwa1 nazwa2 - zmiana nazwy zbioru nazwa1 na nazwa2,Np. mv zadanie.doc problem.doc

rmdir nazwa_katalogu - usunięcie katalogu nazwa_katalogu,

Praca zdalnaPraca zdalna

� Użytkownicy najczęściej pracują w systemie poprzez sieć komputerową

� do połączenia służą odpowiednie urządzenia (terminale) lub programy na komputery PC

� najczęściej stosowane oprogramowanie totelnet (nieszyfrowany) i ssh (szyfrowany)

� do aplikacji graficznych najczęściej służą programy Xwindows

Sieć komputerowa (Internet)

laboratorium B-4

B-1

UCI

Cyfronet

laboratoria B-5

B-6

Poczta komputerowa (E-mail)� You have mail

� Adres E-mail: [email protected]

� mail - komenda poczty komputerowej (informuje, czy jest jakiś list),

No mail for ....... (gdy nie ma listu)

Gdy jest list:

1.From pkowal Wed Oct 10 .... Pozdrowienia

2. From jurek Thu Oct 11 .... Co słychać

� Czytanie listów:

� mail -> prompt &

p - wyświetlenie listu na ekranie

d [n] - usunięcie listu [n]

s [nazwa_pliku] - zapisanie listu jako nazwa_pliku

2 - skok do listu o numerze 2

r - odpowiedź na list

q - wyjście z poczty

x - wyjście z poczty bez dokonania zmian

� mail adresat - wysyłanie listu do adresata

Subject: Nagłówek listu

�Treść listu (bla, bla, bla ......).

�Zakończenie pisania listu - przejście do nowej linii i wpisanie kropki

� ? - pomoc - wyświetla wszystkie komendy poczty

� Programy do obsługi poczty (Unix):

� pine, elm

Programy pocztowe w Windows(outlook, netscape, mozilla...)

Programy pocztowe w Windows(outlook, netscape, mozilla...)

� Do działania potrzebny jest serwer poczty przychodzącej i serwer poczty wychodzącej.

� Program pocztowy transferuje zawartość skrzynki pocztowej użytkownika (po autoryzacji) z serwera na lokalny PC. Po przeczytaniu, poczta na serwerze powinna być skasowana!

� Program pocztowy transmituje napisany list do wskazanego serwera. Ten wysyła pocztę dalej. Nie każdy serwer wyśle naszą pocztę – zabezpieczenia antyspamowe.

Programy usługowe systemu UNIX...

� telnet nazwa komputera (zdalnego) do którego chcemy się przełączyć (zalogować),

login:

password:

� ssh – połączenie szyfrowane

ftpftp� ftp nazwa komputera (zdalnego) do którego chcemy

przesłać lub z którego chcemy skopiować zbiór

login:

password:

� ftp> dir - listowanie zawartości zbiorów na zdalnym komputerze

� cd nazwa katalogu - zmiana katalogu na zdalnym komputerze

� ascii - przesylanie zbiorow ASCII

� binary - przesylanie zbiorow binarnych

� get nazwa zbioru - pobranie zbioru ze zdalnego komputera

� put nazwa zbioru - przesłanie zbioru do zdalnego komputera

� mget (mput) * - pobranie (przesłanie) wszystkich zbiorów z danego katalogu. System pyta o każdy zbiór.

� bye - wyjście z ftp

WinSCPWinSCP

Programy do pracy zdalnejProgramy do pracy zdalnej

telnet� dostępny w pakietach do

obsługi sieci tcp/ip oraz w Windows (od 95)

� transmisja nie szyfrowana (możliwość podsłuchu)

� w zabezpieczonych sieciach i serwerach jest wyłączony

� telnet w Windows źle obsługuje niektóre funkcje terminala

ssh� cała transmisja szyfrowana

� jedyny sposób połączenia przy zabezpieczonych komputerach

� przenosi w „tunelu” trans-misję innych protokołów, np. mail, X11, ftp.

� klienty i serwery ssh w wersji darmowej są dostępne dla Windows (np. putty) i Unix (openssh)

puttyputty

Programy graficzneProgramy graficzne

� praca w systemie klient - serwer

� obliczenia na serwerze, wyświetlane na terminalu zdalnym

� terminal to albo specjalne urządzenie, albo program na PC, zazwyczaj płatny

� najczęściej używany jest znormalizo-wany system programów o nazwie X11