| POČETNA STRANICA | SURADNICI | PROJEKTI | NASTAVA |
 
Uvod
Što je uopće računalo?
Računalo je stroj koji, u skladu sa uputama definiranim u programu, izvodi 4 osnovne operacije: unos podataka, obradu, prikaz rezultata i pohranjivanje podataka.
Program je skup instrukcija složenih određenim redoslijedom u skladu sa kojima račulalo izvodi gore navedene operacije sa ciljem izvođenja određenog zadatka.

Unos podataka (input):

Pri unosu podataka, računalo prihvaća podatke predstavljene na način na koje ih računalo može razumijeti. U ovom kontekstu podatak (data) odnosi se na bilo kakav neorganizirani, sirovi materijal, sastavljen od riječi, brojeva, slika ili njihovih kombinacija.

Obrada (processing): Kod obrade, računalo izvodi aritmetičke ili usporedbene (logičke) operacije sa predstavljenim podacima. Te operacije su uistinu jako jednostavne. U biti većina stvari koje mikroprocesor (srce računala) stvarno izvodi temelji se na operaciji zbrajanja ili uspoređivanja dvaju brojeva. Ono što računalo uzdiže na prijestolje je brzina kojom izvodi te informacije (milijune u sekundi). Druga činjenica koja je bila presudna za prodor računarstva bila je upravo pouzdanost u izvođenju obrade. Čak i najjeftinija računala mogu godinama izvoditi nekoliko milijuna operacija u sekundi bez greške uzrokovane funkcioniranjem hardverskih komponenti. (Gotovo sve "pogreške računala" uzrokovane su logikom u programiranju ili pogrešnim podacima kojima ljudi opskrbljavaju računalo).

Izlaz (output): Treća operacija ima za cilj predstaviti rezultate obrade na način razumljiv ljudima. Obrađeni podaci proslijeđuju se kao informacija.

Pohranjivanje (storage): Pri pohranjivanju, računalo sprema rezultate kako bi se mogli kasnije koristiti. Količina podataka koju može spremiti i dobaviti jeftinije računalo mogla bi se usporediti sa enciklopedijom tiskanom u 32 volumena.

Ove 4 operacije jednim imenom zovemo ciklus obrade informacije i to je zapravo "sve" što računalo može i zna raditi.

Što računalo (još) može?
Činjenica je da računalo pretvara podatke u informacije. Računalo ne može, primjerice voziti biciklu, osim ako netko ne napiše program koji oponaša ovu složenu ljudsku aktivnost pomoću jednostavnih, ponovljivih postupaka obrade organiziranih u proceduru napisanu u obliku "korak po korak", koju zovemo algoritam.

Dakle, cilj algoritma je pronaći jedinstveni skup instrukcija koje nam govore kako ćemo riješiti različite varijante problema istog tipa. Nakon što otkrijemo algoritam za riješavanje tog zadatka ne treba nam više razumijevanje nego samo provođenje instrukcija. Iz toga se može zaključiti da je ono što podrazumijevamo pod pojmom inteligencije iskodirano u algoritmu. Ukoliko stroj izvodi algoritam, stroj poprima značajke inteligencije ali samo u mjeri koja je ograničena dosezima algoritma. Zbog svega toga neki autori računarstvo (Computer Science) smatraju znanošću o algoritmima.

S tim u vezi, uvid u širinu spoznaja temeljem kojih je nastalo računarstvo i grana koje su se razvile na tim spoznajama, možemo dobiti razmatranjem samo nekih aspekata koji su općenito utjecali na razvoj algoritma. Primjerice, koncentriramo li se na način na koji algoritmi nastaju-tražimo zapravo odgovor na pitanje kako općenito riješiti bilo koji problem, jer otkriti algoritam za nešto ekvivalentno je pronalasku riješenja. Studije iz ovih područja okoristile su se spoznajama iz psihologije rješavanja ljudskih problema i teorije obrazovanja.
Kada je algoritam otkriven moramo ga predstaviti na način razumljiv stroju-koncepciju algoritma pretvaramo u skup instrukcija, a instrukcije deklariramo jednoznačno (nedvosmisleno). Znanja iz ovog područja preuzeta su od lingvista i gramatičara, pa su tako nastali – programski jezici, koji se temelje na različitim pristupima procesu programiranja objedinjenih pod pojmom koji je u literaturi poznat kao programska paradigma.
Kako se računarska tehnologija primjenjivala na sve više i više složenih problema, spoznalo se da za projektiranje velikih softwerskih sustava treba daleko više od običnog algoritma za izvođenje dane aktivnosti. U tom smislu mora se voditi računa o tome kako pojedine komponente međusobno djeluju, pa su računarci posegnuli za spoznajama iz dobro utemeljenog područja inženjerstva u potrazi za alatima pomoću kojih će doći do riješenja. Tako je nastala grana računarstva poznata pod imenom softwersko inženjerstvo.
Arhitekturu računala možemo definirati kao granu računarstva koja se bavi projektiranjem i konstrukcijom strojeva za izvođenje algoritama. Pri upoznavanju sa arhitekturom nije nam cilj ovladati detaljima iz kojih se vidi kako su organizirane elektroničke komponente od kojih je sastavljeno današnje računalo (otišli bi u područje elektroničkog inženjerstva). Bitno je primijetiti da su nekadašnji kalkulatori na zupčanike ustupili mjesto današnjim elektroničkim i da ovi isto tako mogu pokleknuti pod naletom novih tehnologija (optika?). Cilj je razumjeti zastupljenost tehnologije u današnjim računalima i smjernice daljnjeg razvoja. Idealno bi bilo i arhitekturu predstaviti kao posljedicu znanja o algoritmima, a ne kao rezultat tehnologije. Kako tehnologija napreduje ova naizgled besmislena tvrdnja postaje logički i te kako osnovana. Danas je moguće izgraditi stroj koji dozvoljava da se niz instrukcija u sekvenci kojom predstavljamo algoritam izvede istovremeno ili prema nekom uzorku kojim se naznačava veza između procesorskih jedinica, baš onako kako i naš um predstavlja informaciju - kao veze između određenih neurona.
Konkretno, današnja praksa je pokazala da za razliku od hardvera koji je iznimno pouzdan, kompjutorski program kojim predstavljamo algoritam, predstavlja izvor različitih pogrešaka koje se javljaju pri njegovom izvođenju. Mnogi programi sadrže više milijuna linija. Npr:

PROGRAM BROJ LINIJA KODA
Upravljanje zračnim prometom 900,000
Microsoft Office 97 10 miliona
Microsoft Office 98 18 miliona
Microsoft Office 2000 27 miliona


Općenito, svaka linija programa uputa je računalu, npr. da zbroji dva broja ili da ih usporedi. Sa porastom broja linija koda, neizbježno je pojavljivanje i pogrešaka koje ponekad nisu ni uočljive, pa se ni ne uklanjaju. U prosjeku, komercijalni programi sadrže od 14-17 pogrešaka na svakih 1000 linija koda. Najbolji programi kao što je to primjerice NASA-in software za space shutle, računa se da ima samo 1 pogrešku na svakih 1000 linija koda. Kreiranje programa sa tako niskim postotkom greške je jako skupo. Dodavanjem novih linija koda, program postaje složeniji pa raste i vjerojatnost pojavljivanja, detekcije i otklanjanja pogreške. Ta činjenica da svaki program za računalo ima grešaka znači da korištenje bilo kojeg računala povlači za sobom i određeni nivo rizika. "BUG" može iskrsnuti onda kada mu se najmanje nadamo i uzrokovati u najmanju ruku gubitak unesenih podataka ili određenog broj linija koda.

NEKI INTERESANTNI "BUGOVI":
Računalo u Parizu optužilo je 41000 ljudi koji su izbjegli plaćanje parkinga za puno ozbiljniji kriminal kao što je prostitucija, raspačavanje droge i ubojstvo.
Zbog buga u britanskom sustavu bankovnih isplata greškom se je prebacilo, u roku od 1 sata, $2 biliona dolara na račune korisnika
Zbog softverske omaške, Japanski su bankari precijenili određene investicije zbog čega su izgubili $83 miliona.
Mars Polar Lender je zbog softwerske pogreške isključio prerano sustav kočenja, pa je nastala šteta od $139 miliona (prebrojivo) i daljnjim kašnjenjem u razumijevanju našeg planetarnog susjedstva (neprebrojivo).
Menageri štedionice u Los Angelesu koristili su model za prognozu ulaganja s ciljem održivosti mirovinskog fonda. Kako je model bio potkopan nedetektiranom greškom, na kraju je ustanovljen manjak od $1.2 biliona.
U lancu robnih kuća srušio se novi kompjuterizirani sustav za registar kase, baš dan nakon Dana zahvalnosti, kojeg karakterizira najveći shopping utržak, uzrokujući gubitak od 20% uobičajenih prihoda.
Nakon što se dva različita isporučitelja softwarea nisu iskoordinirali svoje izmjene u programu, US zrakoplovstvo izgubilo je $39 miliona na prototipu bespilotne zračne letjelice.


Računarski sustav

Često se u svakodnevnom govoru koristi riječ "računarski sustav" ili samo "sustav" i taj pojam ima šire značenje od pojma računalo. Računarski sustav obuhvaća skup odgovarajućih komponenti projektiranih da zajedno rade usklađeno, a obuhvaća:

HARDWARE – pod tim pojmom podrazumijevamo sve fizičke komponente računala, uključujući samo računalo i pridodane periferne uređaje.
SOFTWARE – Programi koji se izvode na računalu. U širem smislu tim pojmom obuhvaćen je sav pisani materijal kojeg koristimo u radu sa računalom, primjerice upute za instalaciju ili korištenje programa i slično.


Takvo je današnje stanje stvari, kako je to bilo nekad priča "povijesni pregled".