Technologie informacyjne
Informacja – dane o otaczającej nas rzeczywistości
Informatyka – dziedzina wiedzy zajmująca się gromadzeniem, przetwarzaniem i wykorzystaniem informacji. Nauka o przetwarzaniu informacji za pomocą automatycznych środków technicznych.
Komputery – urządzenia, które mogą przetwarzać informacje zgodnie z zadanym zestawem instrukcji
Generacje komputerów:
Zerowa (1939) – przekaźniki elektryczno – magnetyczne, Mark I,
Pierwsza (1946-1958) – lampy elektronowe, ENIAC,
Druga (1959-1964) – tranzystory,
Trzecia (1963-1970) – układy scalone, ODRA 1300
Czwarta (1971 – dziś) – układy scalone o wysokiej skali integracji,
Czwarta Plus – superkomputery,
Piąta i dalsze – technika sztucznej inteligencji, komputery biologiczne, kwantowe.
Budowa komputera:
Dane wejściowe (input) → algorytm → dane wyjściowe (output)
Wykres
Procesor – CPU, układ elektroniczny realizujący przetwarzanie informacji,
Pamięć – przechowywanie informacji, pamięć ROM stałą, RAM operacyjna,
Układ wejścia/wyjścia (I/O) – komunikacja z otoczeniem
Komputery są zdolne do: składania tekstu, wykonywania obliczeń, konstruowania baz danych, budowa modeli,
Komputery nie są w stanie: np. określić wieku osoby ze zdjęcia, przygotować kawy
Zastosowania komputerów:
Kodowanie informacji – sposób reprezentacji informacji
Słowo cyfrowe – dowolny ciąg składający się z symboli 0 i/lub 1
Informacja cyfrowa – informacja przedstawiona w postaci słów cyfrowych
Jednostki informacji: b – bit, B – bajt, 1B = 8b, 1kB =1024B, 1MB = 1024 kB, 1GB = 1024 MB
Dlaczego komputery korzystają z systemu dwójkowego ? ponieważ łatwo modelować stan fizyczny np. płynie prąd lub nie płynie prąd
Systemy pozycyjne – dwójkowy, decymalny, heksadecymalny
Konwersje liczb z systemu decymalnego na dwójkowy i odwrotnie. Np. 20D = 10100B
ile znaków liczbowych mamy odpowiednio w systemach dwójkowym, decymalnym, heksadecymalnym ?2, 10, 16
ASCII – system kodowania znaków
Kodowanie obrazu, dźwięku ? np.: funkcja sinusoidalna może być zapisana za pomocą szeregu Tylora. Np. obrazek czarno biały może być zakodowany że 0 = kolor biały, 1 = kolor czarny. Dźwięk można rozwinąć w szeregi sinusów i za pomocą współczynników zakodować.
Algorytm – metoda umożliwiajaca rozwiązanie problemu w skończonej liczbie kroków. Skanując algorytm do danych wejściowych otrzymuje się dane wyjściowe.
Dane we →algorytm→dane wy
Sposób opisu algorytmu:
Słownie
Za pomocą schematu blokowego
Za pomocą pseudokodu
Za pomocą programu w wybranym języku programowania
Przykłady algorytmów: przepis pieczenia ciasta,
Własności algorytmów: poprawność, skończoność, złożoność, uniwersalność
Program – sposób zapisu
ALGORYTMY
Rozwiązywanie problemów z użyciem komputera:
Zdefiniowanie o opis problemu
Znalezienie rozwiązania
Napisanie algorytmu
Napisanie programu (zakodowanie algorytmu)
Uruchomienie programu
Testowanie programu
Algorytm – definicje
Algorytm – skończony system reguł określających kolejność działań wykonywanych na określonych obiektach (danych) w celu uzyskania rozwiązania problemu.
Algorytm – ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych wytworzy żądanie dane wyjściowe zwane wynikiem działania algorytmu.
Algorytm – przedstawienie sposobu rozwiązania danego problemu
Dane wejściowe (input) → algorytm → dane wyjściowe (output)
Pochodzenie wyrazu: od nazwiska matematyka arabskiego „Al-Khowarizmi” z IX w.
Sposoby przedstawiania algorytmu:
Słownie
Graficznie za pomocą schematów blokowych
Za pomocą pseudokodu
Programu w odpowiednim języku programowania
Właściwości algorytmów:
Poprawność – algorytm musi być poprawny (musi prowadzić do rozwiązania zadania, jeśli nie jest poprawny – nie prowadzi do rozwiązania problemu)
Skończoność – algorytm musi umożliwić rozwiązanie problemu w skończonym czasie
Złożoność – mierzy się czasem wykonania i zajętością pamięci odniesionych do wielkości danych
Uniwersalność - nie powinien być zawężany do wąskiego problemu, nie tylko do rozwiązania prostego równania, powinien być uniwersalny dla szerszych zadań.
Algorytm Euklidesa – znajdowanie największego wspólnego podzielnika 2 liczb.
Dane są dwie liczby naturalne a, b (a>b)
NWD (a,b):
Dopóki (a !=b) wykonaj
Jeżeli (a>b)
a = a – b
Jeżeli (b>a)
b = b – a
wynik = a
NWD (30,21) = NWD (9,21)=NWD(9,12)=NWD(9,3)=NWD(6,3)=NWD(3,3)=3
Algorytm – schemat blokowy
Konwencje dotyczące schematów blokowych
Kółko początek/koniec
Romb – operacja we/wy
Prostokąt – blok wykonawczy
Romb pionowy – blok warunkowy
2 prostokąty 1 w drugim – blok złożony
Algorytm – przykłady
Algorytm rozwiązani arównania liniowego ax+b=0
Jeżeli a<>0 to x=-b/a; wyprowadź x;
W przeciwnym razie Wyprowadź „złe dane”
Koniec
P
Czytaj a, b
N T
a<> 0
x = -b/a
wypisz złe dane wypisz x
K
Obliczyć sumę ciągu n liczb:
A1, a2, a3, … an
Czytaj dane
Suma =0
Dla i =1 Do n Wykonaj
Suma = suma +a
Drukuj Suma;
Koniec
P
Czytaj dane
Suma = 0
I = 1
N T
I<=n
Drukuj: Suma Suma = Suma+a
Schematy blokowe
JĘZYKI PROGRAMOWANIA
Pojęcia podstawowe
Program – sposób zapisu algorytmu w celu jego realizacji przez komputer.
Program składa się ze zbioru instrukcji i struktur danych.
Instrukcja – opis operacji jaka ma być wykonana.
Struktury danych – różne postacie danych, na których są wykonywane operacje.
PROGRAM = ALGORYTM + STRUKTURY DANYCH
Program może być napisany w wybranej notacji. Notacja tak a powinna możliwie najlepiej pasować do problemu. Jeżeli ma on być wykonany na komputerze to musi być zapisany w języku programowania.
Język programowania – język używany do pisania programów realizowanych przez komputer.
Rozróżnia się języki:
Niskiego poziomu – zależność od typu komputera, duża pracochłonność (asembler) - hardware
Wysokiego poziomu – niezależne od typu komputera, wykorzystują wyrażenia języków naturalnych (nazwa funkcji matematycznych) - software
Języki niskiego poziomu
Język maszynowy (0,1)
Język asembler
Języki wysokiego poziomu:
FORTRAN, COBOL, ALGOL, PASCAL, C
MODULA, ADA
BASIC, VISUAL BASIC
SIMULA, SMALLTALK
C++, C#, JAVA
PROLOG
Język maszynowy – jest to język ściśle związany z typem komputera (procesora) i jest różny dla różnych typów komputerów. Instrukcje i dane są zapisywane w postaci ciągów liczb szesnastkowych lub binarnych. Posługiwanie się tym językiem jest bardzo trudne.
Asembler – to język symboliczny, w którym instrukcje mają postać nazwy symboliczne. Jednej instrukcji symbolicznej odpowiada jedna instrukcja maszynowa. Program asemblerowe są bardziej zrozumiałe dla człowieka niż maszynowe. Języki asemblerów także są różne dla różnych typów komputerów, ale mają pewne cechy wspólne
Języki wysokiego poziomu – podstawowe cechy to niezależność od konkretnych typów komputerów, pojedyncze instrukcje opisują złożone czynności, oferują szereg ułatwień w pisaniu programów.
Podział języków wysokiego poziomu:
Języki proceduralne:
FORTRAN
ALGOL
BASIC
PASCAL (starsze wersje)
C
Języki obiektowe:
C++
VISUAL BASIC
JAVA
ADA
PASCAL
SMALLTALK
LISP
Translatory:
PROGRAM W JĘZYKU A → TRANSLATOR → PROGRAM W JĘZYKU B
Translator – to program narzędziowy służący do tłumaczenia programów z jednego języka programowania na inny. W szczególności program, aby był wykonywalny, musi być przetłumaczony na język maszynowy.
Kompilator
PROGRAM ŹRÓDŁOWY → KOMPILATOR → PROGRAM WYNIKOWY
Kompilator – program tłumaczący z języka wysokiego poziomu (źródłowy) na język maszynowy (wynikowy)
Program źródłowy – program w języku wysokiego poziomu, zrozumiałym przez człowieka
Program wynikowy – program w języku maszynowym, wykonywany przez komputer
Interpreter
PROGRAM ŻRÓDŁOWY → INTERPRETER → WYKONYWANIE KOLEJNYCH INSTRUKCJI → PROGRAM ŹRÓDŁOWY
Interpreter – jeżeli w czasie translacji programu jest on jednocześnie wykonywany, to taki translator nazywa się interpreterem
Językiem wejściowym interpretera może być język asembler albo język wysokiego poziomu
PROCES USUCHAMIANIA PROGRAMU
PROGRAM.pas → Kompilacja → PROGRAM.exe
Po skompilowaniu, program wynikowy staje się samodzielnym „bytem” i może być przenoszony na inne komputery i wielokrotnie wykonywany dla różnych danych wejściowych.
Dane w językach programowania
Dane dzielą się na zmienne i stałe.
Ich znaczenie jest takie samo jak w matematyce.
Muszą posiadać nazwę i można im przypisywać wartości.
Nazwa jest ciągiem znaków. Przykłady nazw: x, Y, alfa, wsp_korelacji, wynik23.
Stałe nie zmieniają wartości, którą nadaj się im w jednym miejscu programu.
Zmienne mogą zmieniać wartość w trakcie wykonywania programu.
Zmienne i stałe mogą być różnych typów
SIECI KOMPUTEROWE
Sieć komputerowa – to komputery połączone ze sobą i zdolne do wymiany danych
Serwery – komputery udostępniające zasoby
Klienci – komputery korzystające z zasobów sieci
Dwa podstawowe typy połączeń sieciowych:
Klient – serwer
Klient – klient
Podział Siecie:
Sieci lokalne (ang. LAN – Local Area Networks) – obejmują mały obszar, rzędu kilkuset metrów
Sieci miejskie (ang. Man – Metropolitain Area Networks) – obejmują zasięgiem miasto.
Sieci rozległe (ang. WAN – Wide ) obejmują duży obszar, np. cały kraj. Są połączeniem wielu sieci lokalnych
Topologie LAN
Topologia – sposób połączenia komputerów ze sobą.
Gwiazda
Pierścień
Szyna
Model OSI (Open System Interconnection)
Opracowano wzorcowy model podziału zadania komunikacyjnego na 7 warstw. Każda warstwa realizuje pewne zadanie na rzecz warstwy wyższej i korzysta z usług warstwy niższej
Fizyczna
Liniowa
Sieciowa
Transportowa
Sesji
Prezentacji
Aplikacji
Funkcje poszczególnych warstw:
Warstwa fizyczna – definicja własności fizycznego nośnika; transmisja bitów
Warstwa liniowa – organizowanie bitów w ramki. Nawiązywanie i zamykanie połączeń liniowych
Warstwa sieciowa – budowanie, wysyłanie i odbieranie pakietów, adresacja
Warstwa transportowa – kontrola i sterowanie kolejnością pakietów.
Warstwa sesji – zestawienie połączenia użytkownika z serwerem
Warstwa prezentacji – kodowanie/dekodowanie, kompresja/dekompresja danych
Warstwa aplikacji – sposób korzystania z sieci przez programy użytkowe
Sprzęt sieciowy
Sprzęt bierny
Okablowanie
Sprzęt czynny
Karty sieciowe, modemy
Wzmacniaki
Koncentratory
Przełączniki
Routery
Światłowody
Światłowód – medium transmisyjne utworzone przez czyste szklane włókno kwarcowe, otoczone nieprzeźroczystym płaszczem wokół centralnie położonego rdzenia.
W światłowodzie współczynnik odbicia światła w płaszczu jest mniejszy niż w rdzeniu, co powoduje całkowite wewnętrzne obicie promienia i teoretycznie bezstratne prowadzenie wiązki światła wzdłuż osi rdzenia.
Protokół IP – adresacja komputerów w sieci
Każdy węzeł sieci ma przypisany 32-bitowy (4 bajty) adres.
Adres składa się z dwóch części:
Adresy IP mogą być zapisywane w różny sposób:
Notacja binarna 10011100.0001101.0000011101.101010000
Notacja szesnastkowa 9C.11.10.84
Notacja dziesiętna 156.17.10.132
Zakres adresowy: 0.0.0.0. do 255.255.255.255 – niektóre adresy są niedozwolone lub służą do specjalnych celów.
Internet
Internet – ogólnoświatowa sieć komputerowa logiczni połączona w jednorodną sieć adresową opartą na protokole IP.
Czynnikami, które spowodowały powstanie sieci Internet stały się:
Teoria hipertekstu
Zasada komunikacji pakietowej
TCP/IP i DNS
TCP/IP
Adres IP
DNS
ARPANET 1/2 - powstał jako inicjatywa Departamentu Obrony USA.
HIPERTEKST
Historia Internetu:
Najważniejsze usługi:
Usługi oferowane przez dostawców:
Hosting stron internetowych www lub serwerów internetowy FTP
Pocztę elektroniczną na swoim portalu lub serwerze
Przeglądarka internetowa –
Portal internetowy –
Wortal – portal wertykalny
Strona internetowa – dokument utworzony w którejś z odmian języka SGMI. Pobierany z dysku lokalnego komputera bądź serwera internetowego i interpretowany po stronie użytkownika za pomocą przeglądarki.
Cechą charakterystyczną stron WWW jest hipertekstowość i często multimedialność. Część stron internetowych może zawierać w sobie elementy prezentacji stworzonych za pomocą dodatkowych technologii, część tworzona jest dynamicznie w momencie wysłania przez przeglądarkę zapytania do serwera.