TECHNOLOGIE INFORMACYJNE
Historia
Nauka ta ma liczyć źródła. Można do nich zaliczyć nie tylko praktyczne idee dotyczące budowy maszyn liczących i przetwarzających dane, lecz również czysto teoretyczne prace matematyczne, dotyczące algorytmów, języków formalnych, rachunku logicznego i symbolicznego brak teorii informacji.
Z historycznego punktu widzenia trudno jest oddzielić od siebie te dwa aspekty informatyki:
Rozwój teorii
Budowa maszyn liczących
Zerowa generacja (Urządzenia analogowe np. suwak, cyfrowe liczydła)
1931 – Budowa arytmometru ósemkowego
Początek projekty 21 komputera na przekaźnikach zbudowanych przez Konrada Zuse,
1936- Alan Turing opisał teoretyczne podstawy procesu obliczenia( maszyna Turinga) twórca teorii automatów. W informatyce automat Turinga jest teoretycznym modelem komputera.
Pierwsza generacja
Komputery na lampach radiowych 1945-59
1945- John Von Neumann opisuje idee maszyny z Princeton, czyli uniwersalnej konstrukcji komputera używanej do dziś.
1946 – powstał ENIAC
Druga generacja
Komputery na tranzystorach 1959-1964
1959- obwód scalony, Jack Kilby, Texas Instruments
Trzecia generacja
Układ scalony wysokiej skali i inteligencji 196570 serii IBM 360
1965- pierwszy mikro komputer (DEP PDP)
1968- powstał Intel
1969- pamięci półprzewodnikowe
Czwarta generacja
1971- układ scalony LSI i VLSI
1971- mikroprocesor stworzony przez Teda Hoffa z firmy Intel
1976- firma Apple i pierwsze udane mikrokomputery
1981- era komputerów osobistych, pierwszy IBM PC
Piąta generacja- sztuczna inteligencja
Szósta generacja- nowe architektury, neuro-komputery, bio-komputery, obliczenia przy pomocy ONA, komputery kwantowe
Najważniejsze daty dla historii rozwoju komputerów w Polsce :
1692- Odra 1002 opracowana w Elwro (Wrocławskie Zakłady Elektroniczne)
1986- początek inwazji komputerów osobistych w Polsce
Informatyka
Informatyka- jest dyscypliną powstałą w połowie lat 60-tych dzięki rozwojowi matematyki i elektroniki.
Największą i najstarszą (założoną w 1947 roku) organizacją skupiającą informatyków jest AMC ang. Association for Computing Machinery ( Stowarzyszenie zajmujące się maszynerią obliczeniową).
Właśnie to stowarzyszenie(ACM) opublikowało w 1968 roku zalecenia dla nowo powstających programów studiów informatycznych dając początek „naukom komputerowym” w USA i „Informatyce” w Europie. ( Kanada: computational science- nauki obliczeniowe)
Algorytmika to fundament informatyki!
Definicja opracowana w 1989 roku przez AMC, mówi:
Informatyka- to systematyczne badanie procesów algorytmicznych, które charakteryzują i przetwarzają informacje, teoria, analiza, projektowanie, badanie efektywności, implementacja i zastosowanie procesów algorytmicznych.
Wyróżnia się w niej dwa działy, dotyczące sprzętu i oprogramowania
Czym zajmuje się informatyka?
Zainteresowania informatyki, jako gałęzi nauki skupiają się wokół rozwiązywania zadań algorytmicznych, czyli takich zadań, dla których można znaleźć jakieś formalne sposoby postępowania, przepisy prowadzące do ich rozwiązania.
Informatyka zajmuje się również:
oceną złożoności obliczeniowej algorytmów oraz ich optymalizacji, poszukiwaniem efektywnych algorytmów oraz testowaniem i dowodzeniem ich poprawności.
Informatyka = informacja + automatyka
Informacja (definicja ogólna) - to taki czynnik, któremu człowiek może przypisać określony sens, znaczenie, aby móc ją wykorzystać do różnych celów.
Informacja (definicja informatyczna) - zbiór danych zebranych w celu ich automatycznego przetwarzania i otrzymywania wyników lub nowych danych.
Teoria automatów skończonych
Teoria automatów skończonych
należy do podstaw informatyki i odpowiada na pytania, jakiego rodzaju problemy można rozwiązać przy pomocy obliczeń, oraz jakie klasy urządzenia są do tego potrzebne.
Algorytm – to najprościej mówiąc sposób rozwiązania jakiegoś zadania. Jest to zestaw poleceń, które można wykonać bez zbytniego zastanawiania się.
Algorytm w matematyce i informatyce jest uporządkowanym zbiorem jednoznacznych i wykonywalnych kroków, określających skończony proces.
Schemat blokowy – jeden z najpopularniejszych form przedstawiania algorytmu. Tworzy się go za pomocą umownych symboli zwanych blokami (operacyjnymi) z zaznaczeniem połączeń i kierunków przepływu informacji.
Blok WE/WY (wejścia/ wyjścia) - jest równoległobokiem, w którym umieszcza się dane lub wynik.
Blok operacyjny (instrukcji) - ma kształt prostokąta, w którym umieszcza się instrukcje.
Blok warunkowy (decyzyjny) –jest rombem, w którym umieszcza się warunek decydujący o dalszej kolejności wykonywanej operacji.
Zmienna –jest symbolem oznaczającym określoną strukturę danych.
Trzeba pamiętać, że o ile zasady dotyczące zmiennych i struktur danych są zawsze aktualne, to ich organizacja i sposób zapisu różni się w poszczególnych językach.
Z blokowego zapisu algorytmów tworzy się tzw. pseudokod
Algorytm w pseudokodzie tworzy się z poszczególnych instrukcji.
Struktury sterujące- związane są z warunkowym wykonaniem określonych instrukcji w algorytmie.
instrukcja warunkowa ( if )
instrukcja wyboru ( case )
instrukcja pętli
pętla for – wykonuje działania dla wskazanego zakresu specjalnej zmiennej sterującej
pętla while (dopóki) wykonuje działania tak długo dopóki warunek jest spełniany
Programowanie
Programowanie- proces projektowania, tworzenia i poprawiania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych.
Generacje języków programowania
Pierwsza generacja- języki maszynowe specyficzne dla każdej maszyny
Druga generacja- języki symboliczne, niskiego poziomu (Assembled). Poszczególnym rozkazom maszynowym odpowiadają symbole. Aby program mógł zostać wykorzystany w komputerze konieczne jest przetłumaczenie na język wewnętrzny procesora.
Trzecia generacja- języki wysokiego poziomu (Fortran Pascal C). Składnia przypomina proste zdania języka naturalnego oraz wyrażenia arytmetyczne.
Czwarta generacja- platformy programistyczne takie jak Delphi, C++ Builder czy też Visual Basic pozwalające na „budowanie” aplikacji z gotowych elementów
Piąta generacja- języki używane do tworzenia programów wykorzystujących tzw. Sztuczną inteligencje A.I. (ang. Artificial Intelligence)
W czym programować?
Kompilacja- tłumaczenie całego programu napisanego w języku wysokiego poziomu na program w języku niższego poziomu lub do kodu maszynowego.
Interpretacja – tłumaczenie kolejno instrukcji języka wysokiego poziomu na instrukcje kodu maszynowego.
Kod maszynowy ( język niskiego poziomu )- postać programu komputerowego przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez procesor ( 010101010101). Sekwencje sygnałów opracowane zostały w postaci rozkazów zrozumiałych dla procesora.
Assembler- najbliższy kodu maszynowego, wymaga śledzenia zawartości rejestrów np. dodawanie dwóch liczb.
Kod pośredni- do uruchomienia go wymagane jest posiadanie interpretera lub maszyny wirtualnej, takie pliki mogą być uruchomiana na różnych systemach (Java, .NET)
Translatory:
Interpretery : Java, HTML, MatLab, Python
Kompilatory: Fortran, Pascal, C, C++
Pascal
Pierwszy komputer opracowany był w 1974 roku, był za darmo rozpowszechniany w środowiskach uniwersalnych.
LIPS, PROWG i języki sztucznej generacji
Prowadzenie dialogu w języku naturalnym, programy diagnostyki medycznej, system algebry symbolicznej.
Języki zorientowano obiektowo
OP rozwija się od 1981, pierwszym językiem OOP był Smallitalk
Klasa jest pewnym wzorcem rzeczy, działania zjawisku, którego dotyczy program
Klasa zawiera różne metody , czyli funkcje i procedury które dają się zastosować do danej klasy
Języki specjalne
MATLAB- interakcyjne środowisko i język programowania obliczeń naukowych i inżynierskich, umożliwiające testowanie algorytmów, symulację, modelowanie, analizę i wizualizacje danych sygnałów, obliczeń- używane do projektowania, testowania i prototypowania w inżynierii. Język wysokiego poziomu MATLAB łączy operacje na macierzach i metody numeryczne z grafiką komputerową
System operacyjny
BIOS- pośrednik komunikacyjny
( ang. Basic Input/Output System – podstawowy system wejścia-wyjścia )
Jest zapisany w pamięci trwałej na ROMie lub EPROMIE.
Zanim zaczniesz swoją prace system operacyjny uruchamia się w BIOS
Co może spowodować uszkodzenie BIOS
Uszkodzenie zasilania podczas aktualizacji BIOS
Niewłaściwe ustawienia OC
Działanie wirusów
Uszkodzenia sprzętu
System operacyjny – jest gospodarzem zarządzającym zasobami komputera, decydujący o możliwościach wykorzystania sprzętu. Dzięki niemu programy działają na różnych konfiguracjach sprzętowych.
Warstwy systemu
Zewnętrzna warstwa systemu (shell) – pełni rolę interakcyjną z użytkownikiem, umożliwia uruchomienie aplikacji, do tej części systemu zalicza się standardowe elementy interfejsu np. okienka dialogowe.
W każdym systemie operacyjnym występują mniej lub bardziej wyodrębnione warstwy spełniające różne funkcje. W ogólnym modelu są to:
Warstwa odpowiedzialna za współprace ze sprzętem
Jądro systemu realizuje jego funkcje
Powłoka stanowiąca interfejs użytkownika.
Maszyna wirtualna – to ogólna nazwa dla programów tworzących środowisko uruchomieniowe dla innych programów.
Przykład:
Katalog udostępniony przez sieć aplikacja widzi tak samo, jak znajdujący się na lokalnym dysku. Aplikacja korzystając z takiego katalogu nie zajmuje się obsługą sieci. Aby mogła się tam dostać , system operacyjny udaje, że jest to katalog na lokalnym dysku i udostępnia do aplikacji.
Emulator- jest to program naśladujący pracę swojego pierwowzoru
Architektury systemów operacyjnych
Klient/ Serwer – aplikacje postrzegane są przez system operacyjny jako klienci dostarczających im swoich usług serwerów. Klienci komunikują się z serwerami po przez jądro systemu. Każdy serwer pracuje w własnej, wydzielonej i chronionej przestrzeni adresowej pamięci operacyjnej, dobrze oddzielony od innych procesów.
Pod względem architektury system operacyjny dzieli się na:
Monolityczny- jedno jądro systemu, tylko w komputerach jednozadaniowych
Warstwowa- o niehierarchicznej strukturze poleceń systemowych, system może już wykonywać w tym samym czasie kilka poleceń
Klient/serwer- o bardzo rozbudowanej strukturze, gdzie systemy operacyjne pełnią nadzór nad poprzednimi systemami zainstalowanymi w poszczególnych komputerach sieci
Pod względem sposobu komunikacji z użytkownikiem rozróżniamy (powłoki):
Systemy tekstowe- komunikujące się za pomocą wykonywanych linii poleceń komend (DOS, CPIM)
Systemy graficzne- komunikujące się za pomocą graficznych okienek i symboli (ikon)
Serwer- maszyny udzielające mocy obliczeniowej swojego procesora, serwujące pliki lub inne usługi np. dostęp do drukarek sieciowych.
Wszystkie aplikacje wykorzystywane przez serwer, a wyniki wyświetlane na ekranie klienta
Serwer dostarcza danych dla aplikacji uruchomionych w komputerze klienta
Wszystkie komputery współpracujące ze sobą jak równy z równym, korzystają wzajemnie ze swoich zasobów.
Najważniejsze cechy, jakie decydują o użyteczności systemu:
Łatwość instalacji i użytkowania systemu
Koegzystencja z innymi systemami
Zgodność sprzętowa tzn. możliwość instalacji na konkretnym komputerze utrudnia czasem brak odpowiednich sterowników do określonych urządzeń
Zarządzanie pamięcią zewnętrzną
Organizowanie dostępu do danych i programów przechowywanych w pamięci zewnętrznej (zasady nazw lików, sposób uporządkowania plików)
Wykonywanie operacji na plikach (kopiowanie, przesuwanie, kasowanie, nadawanie atrybutów itp.)
Zainstalowanie na naszym komputerze kilku systemów operacyjnych
Aby to zrobić musimy:
Utworzyć dla każdego z nich oddzielne partycje na dysku twardym
Posiadać program, który umożliwia uruchomiania systemów z poszczególnych partycji
Boot manager lub Boot loader, stanowią jakby semafor, który daje zielone światło zaraz po uruchomieniu komputera systemowi operacyjnemu, pod którym chcemy pracować.
Bootable Disk- dyskietka systemowa lub dysk systemowy, zwiera informacje wystarczające do inicjacji systemu.
Kodowanie informacji
Przedstawiając liczbę dziesiętną w systemie binarnym bądź heksadecymalnym musimy pamiętać, że w dalszym ciągu jest to ta sama liczba, lecz przedstawiona za pomocą innego zestawu znaków. Możemy, więc mówić o kodzie binarnym lub kodzie heksadecymalnym.
Kod ASCII (ang. American Standard Code for Information Interchange) – powstał w 1956 roku. 7 bitowy kod, 256 znaków alfanumerycznych. Liczby przyporządkowane literom lub innym znakom alfanumerycznym.
Kod UNICODE- komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na świecie. 16 bitowy kod, co daje możliwość zakodowania 216 czyli 65536 znaków.
*liczba 13 w kodzie binarnym – 1101; a w kodzie BCD 0001 0011
Barwa, Monitory, Drukarki
Składanie barw:
Addytywne składanie barw RGB. Model takich barw opisuje dowolny kolor poprzez sumę tych trzech składowych barw podstawowych. Złożenie tych trzech barw, daje barwę białą
Złożenie dwóch podstawowych barw RGB daje jedną barwę podstawową modelu CMY.
Substraktywne składanie barw CMY ( ang. Cyan, Magenta, Yellow)
Dla uzyskanie lepszych efektów do tych kolorów dodaje się czerń.
Za pomocą odpowiednich proporcji czerwonego, zielonego i niebieskiego możliwe jest oddanie całej gamy barw. Wszystkie współczesne technologie wyświetlania bazują na tej zasadzie ( LCD, CRT, plazma, LED)
Balans bieli- problem balansu bieli jest zazwyczaj uważany za defekt czystości kolorów. Faktycznie ma coś wspólnego z kolorami składowymi, a konkretnie jest on wynikiem różnej jasności poszczególnych kolorów.
Zbieżność- oznacza dowolność trzech wiązek elektronów do trafienia w ten sam punkt na ekranie.
75 Hz – minimalna częstotliwość, przy której obraz nie migocze.
Monitor jest tak dobry, jak znajdująca się w nim karta, która steruje wyświetlaczem. Jeśli nie jest ona w stanie sprostać wymaganiom monitora, parametry zostają ograniczone do możliwości karty.
dpi- parametr opisujący drukarki i skanery. Jego miarą jest długość punktów na odległość jednego cala (ok. 2,5cm) im wyższa jest liczba dpi , tym ostrzejszy jest obraz, wyższa jakość barw możliwych od uzyskania i tym lepsza jakość wydruku bądź skanu.
Drukarka igłowa
Drukarka mozaikowa
Drukarka atramentowa
Drukarka laserowa ( Ważnym parametrem jest wielkość pamięci RAM w jaką jest wyposażona i do jakiej można ją rozszerzyć).
Łączenie drukarek z komputerem- dokonuje się najczęściej przez port równoległy typu Centronix, nazywanym wejściem LPT1. Coraz częściej jednak drukarki łączy się przez port USB lub przez port IrDA (zasięg do 2m, kąt pracy 30o)
PAMIĘĆ
Pojemność pamięci- liczba dostępnych jednostek pamięci (wielokrotność bitów jak B-bajt= 8bitów, kB-kilobajt= 1024 B, MB-megabajt= 1024 kB itd.)
Organizacja pamięci- liczba bajtów jaka może być jednocześnie wyprowadzana na zewnątrz lub sposób grupowania jednostek pamięci (np. na dysk liczba bajtów w sektorze: 512B, 1024B itd.)
Czas dostępu- czas potrzebny do lokalizacji bajtów informacji (np. dla dysków magnetycznych jest to czas potrzebny do lokalizacji ścieżki oraz sektora danych na tej ścieżce)
Rodzaje pamięci
Pamięć półprzewodnikowa
Pamięć magnetyczna
Pamięć optyczna
Pamięć magneto-optyczna
Parametry
Pojemność : 8 GB = 64 Mbit
16GB = 128 Mbit
32GB = 256 Mbit
64GB = 512 Mbit
128GB = 1024 Mbit
Czas dostępu [ns]
Pamięć do odczytu – ROM (Read Only Memory) –pamięć zaprogramowana jednokrotnie przez producenta podczas wytwarzania.
Pamięć swobodnego dostępu- RAM ( Random Access Memory )- służy nie tylko do przechowywania danych . Jest określana jako ulotna, ponieważ wraz z odcięciem zasilania od komputera taci się całą jej zawartość. Płyty mieszczą 512 MB do 4 GB RAM (powyżej 4 GB konieczna jest architektura 64 bitowa)
Baza danych
Baza danych- uporządkowany zbiór danych z pewnej dziedziny tematycznej, zorganizowany w sposób umożliwiający ich wyszukanie według zadanych kryteriów.
Program lub zestaw programów nazywany jest
„System zarządzania Bazą Danych” SZBD
„Data Base Management System” DBMS
Popularny program do tworzenia bazy danych Microsoft Access (mini bazę danych można stworzyć w Microsoft Excel)
Bazę danych można powielić według struktury danych, których używają.
Najczęściej spotykane to:
Bazy proste- każda tablica danych jest samodzielnym dokumentem i nie może współpracować z innymi tablicami
Bazy relacji- tablice danych mogą współpracować ze sobą
Rodzaje spotykane:
Bazy obiektowe
Bazy relacyjno- obiektowe
Strumieniowanie bazy danych
Temporalne bazy danych
Podstawowe zadania bazy danych:
Projektowanie rekordów
Edycja danych
Dopisywanie
Poprawianie
Usuwanie rekordów
Sortowanie
Wyszukiwanie i selekcja danych
Tworzenie zapytań
Tworzenie raportów
Projektowanie rekordów:
Nazwa pola
Długość pola
Rodzaj pola
Elementami składowymi każdej bazy danych są poszczególne pola pogrupowane w rekordy.
Pola- to min. Nazwisko , imię, adres, itp.
Rekord- jest to zbiór poszczególnych pól opisujących jeden element danych ( jeden wiersz).
Formularz- okienko dialogowe tworzone na podstawie nagłówków pól danych; wygodny sposób wprowadzenia danych.
Innym narzędziem do przeszukiwania rekordów jest auto filtr, do sortowania rekordów można użyć narzędzia „sortuj”.
Cechy bazy kartotekowej:
Dostęp możliwy tylko z jednego miejsca
Obsługa (wprowadzanie, aktualizacja, selekcja, usuwanie)
Niemożliwy jednoczesny dostęp wielu użytkowników do tych samych danych w bazie.
Typy licencji na oprogramowania
Adware- rodzaj licencji i typ oprogramowania rozpowszechnianego za darmo, które zawiera funkcje wyświetlania reklamy.
Postcardware- rodzaj licencji oprogramowania wywodzącego się od Freeware i Shareware. Używany przez autorów, którzy udostępniają swoje programy za darmo: w zamian za to oczekują, że użytkownik przyśle im kartkę pocztową.
Donationware- jest jednym z typów licencji Otherware. Oprogramowanie na tej licencji może być dowolnie modyfikowane, kopiowane i dystrybuowane pod warunkiem, że licencjobiorca zapłaci autorowi symboliczną kwotę.
Licencje:
Designers – projektanci oprogramowania
Providers- dostarczający usługi lub elementy aplikacji
Site license- licencja do instytucji rozproszonej na większym obszarze, np. politechnika
Run-time license- opłata za użytkowanie fragmentu programu w programie sprzedawanym przez kogoś innego
Free run-time license- najczęściej spotykana, czyli bez dodatkowych opłat
Upgrade- aktualizacja zakupionego wcześniej programu, nowa wersja.
Wersje testowe:
Alfa- testowanie składników
Beta- testowanie całego systemu przez użytkowników, często „final beta” są darmowe, ale niedopracowane
Haker
Haker-jako osoba włamująca się do systemów komputerowych
Haker- jako osoba o wysokich umiejętnościach informatycznych
Cracker
Cracker- osoba, która zakłóca działanie oprogramowania komputera, uzyskuje nieautoryzowany dostęp do jego zasobów lub powoduje awarię systemu.
Cracker- osoba zajmująca się łamaniem zabezpieczeń systemowych
Wyróżnia się dwie główne kategorie działania ckraker’ów
Łamanie zabezpieczeń zamknięte oprogramowania
Łamania zabezpieczeń serwerów
Haker jako osoba o wysokich umiejętnościach informatycznych.