Računarstvo

»Računalstvo« preusmjerava ovamo. Za druga značenja pogledajte Računalstvo (razdvojba).

Računalstvo ili računarstvo (računarska znanost ili znanost o računalima) se bavi proučavanjem teoretskih osnova informacije i računanja, te njihovim implementacijama i primjenama u računalnim sustavima.[1][2][3] Računarstvo ima mnoga potpolja; neki naglašavaju računanje i specifične rezultate (kao što je računalna grafika), dok drugi naglašavaju svojstva računskih problema, (kao što je računska teorija složenosti). Treći se sredotoče na izazove u ostvarenju računanja. Na primjer, teorija programskih jezika proučava pristupe u opisu računanja, dok računalno programiranje primjenjuje specifične programske jezike za rješavanje specifičnih računskih problema s rješenjima. Daljnje potpolje, interakcija čovjeka i računala, se fokusira na izazove u činjenju računala i računanja korisnima, koristivima i univerzalno pristupačnima svim ljudima.

Povijest

[uredi | uredi kôd]

Povijest računalstva predatira mnogo godina invenciju suvremenog digitalnog računala. Strojevi za računanje specifičnih zadataka poput abakusa su postojali još od davnina. Wilhelm Schickard je izgradio prvi mehanički kalkulator 1623.[4] Charles Babbage je dizajnirao diferencijalni stroj u viktorijansko doba,[5] a oko 1900. je tvrtka IBM prodavala strojeve s bušenim karticama

.[6] Međutim, svi ovi strojevi su bili ograničeni na obavljanje jednog zadatka ili, u najboljem slučaju, nekog podskupa svih mogućih zadataka.

Tijekom 1940-ih, kako su bili razvijani noviji i moćniji strojevi za računanje, naziv računalo se počeo odnositi na strojeve, radije nego na njihove ljudske prethodnike. Kad je postalo jasno da računala mogu biti korištena za više od pukih matematičkih računanja, polje računarstva se proširilo i na proučavanje računanja u općem smislu. Računarstvo se etabliralo kao zasebna akademska disciplina 1960-ih, stvaranjem prvih odsjeka i studija računarstva.[7] Budući da su praktična računala postala dostupna, mnoge primjene računarstva su postale zasebna istaknuta područja proučavanja.

Veći uspjesi

[uredi | uredi kôd]
Njemačka vojska je koristila stroj Enigmu za vrijeme Drugog svjetskog rata za komunikaciju za koju su vjerovali da će ostati tajna. Dekriptiranje Enigme u velikim razmjerima u Bletchley parku je bio važan faktor u pobjedi Saveznika u 2. svjetskom ratu.[8]

Unatoč svojoj relativno kratkoj povijesti kao formalna akademska disciplina, računarstvo je načinilo mnogo fundamentalnih doprinosa znanosti i društvu, između kojih su:

Primjene unutar računarstva
Primjene izvan računarstva

Odnosi s drugim disciplinama

[uredi | uredi kôd]

Unatoč svome imenu, većina računarstva ne uključuje bavljenje samim računalima. Ustvari, istaknuti računalni znanstvenik Edsger Dijkstra je često citiran kako kaže: "Računarstvo nije ništa više o računalima, nego što je astronomija o teleskopima." Dizajn i dostava računala i računalnih sustava se općenito smatra područjem disciplina koji nisu računarstvo. Na primjer, proučavanje računalnog sklopovlja je uobičajeno smatrano dijelom računalnog inženjerstva, dok je proučavanje komercijalnih računalnih sustava i njihove dostave često zvano informacijska tehnologija ili informacijski sustavi. Računarstvo je ponekad kritizirano kao nedovoljno znanstveno, pogled koji je utjelovljen u izjavi "Znanost je računarstvu ono što je hidrodinamika vodoinstalaterstvu", pripisana Stanu Kelly-Bootleu[12] i drugima. Međutim, znatna se interdisciplinarna suradnja odvija između različitih disciplina vezanih za računala. Računarstvo je također nerijetko prešlo u druge discipline, kao što je umjetna inteligencija, kognitivna znanost, fizika (vidi kvantno računarstvo), te jezikoslovlje.

Neki smatraju da je računarstvo srodnije matematici od mnogih drugih znanstvenih disciplina.[7] Rano je računarstvo bilo pod strogim utjecajem rada matematičara kao što su Kurt Gödel i Alan Turing, i postoji jako plodonosna razmjena ideja između dvaju polja u područjima kao što su matematička logika, teorija kategorija, teorija domena i algebra.

Odnos između računarstva i programskog inženjerstva je predmet mnogih prijepora, a što je još dodatno zamućeno mnogim sporovima oko toga što točno naziv "programsko inženjerstvo" znači, te kako je računarstvo definirano. David Parnas, uzimajući za uzor odnose između ostalih inženjerskih i znanstvenih disciplina, je tvrdio da je principijelni fokus računarstva proučavanje općenitih svojstava računanja, dok je principijelni fokus programskog inženjerstva dizajn specifičnih računanja kako bi se postigli praktični rezultati, što to dvoje čini različitim ali komplementarnim disciplinama.[13]

Polja računarstva

[uredi | uredi kôd]

Računarstvo istražuje koncepte i dokaze kako bi objasnilo i opisalo zanimljive računske sustave. Kao i kod svake znanosti, ove teorije mogu biti iskorištene prilikom sinteze praktičnih inženjerskih aplikacija, koje zauzvrat mogu voditi ka novim sustavima za proučavanje i analiziranje. Iako se može koristiti ACM sustav za razredbu računarstva, slijedi nešto deskriptivnija podjela:

Matematičke osnove

[uredi | uredi kôd]
Bulovska logika i ostali načini modeliranja logičkih upita; uporabe i ograničenja formalnih metoda dokazivanja.

Teorija brojeva

[uredi | uredi kôd]
Teorija dokaza i heuristika za nalaženje dokaza u jednostavnoj domeni cijelih brojeva. Korištena kako u kriptografiji, tako i u domeni umjetne inteligencije.

Teorija grafova

[uredi | uredi kôd]
Osnove za podatkovne strukture i algoritme pretraživanja.

Teorija tipova

[uredi | uredi kôd]
Formalna analiza tipova podataka, te uporaba ovih tipova za razumijevanje svojstava programa - napose sigurnosti programa.

Teorija kategorija

[uredi | uredi kôd]
Teorija kategorija pruža sredstva za obuhvaćanje cijele matematike i računanja u jednoj sintezi.

Teorija računanja

[uredi | uredi kôd]

Algoritmi i strukture podataka

[uredi | uredi kôd]
  • Analiza algoritama
  • Vremenska i prostorna složenost algoritama.
  • Algoritmi. Formalni logički procesi korišteni za računanje, te učinkovitost ovih procesa.
    • Računanje koje rješava postavljeni zadatak.
    • Značajke algoritma:
    • popis operacija koje opisuju izvršavanje nekog postupka izražene na jasan i logičan način
    • nedvosmislen
    • završava u konačnom broju koraka
    • operacije iz popisa moraju bit neporedno izvedive.
  • Strukture podataka
  • Organizacija i pravila manipuliranja podatcima.

Programski jezici i jezični procesori

[uredi | uredi kôd]
Jezični procesori
Načini translacije računalnih programa, obično iz viših jezika u niže jezike.
Programski jezici
Paradigme formalnih jezika za izražavanje algoritama, te svojstva ovih jezika (npr. za rješavanje kakvih problema su prikladni)

Konkurentni, paralelni i raspodijeljeni sustavi

[uredi | uredi kôd]
Konkurentnost
Teorija i praksa simultanih računanja; sigurnost podataka u višezadaćnom i višenitnom okolišu.
Raspodijeljeno računarstvo
Računanje korištenjem višestrukih računarskih uređaja preko mreže u svrhu ostvarenja zajedničkog zadatka te reduciranja latencije koja je na taj način uključena u doprinos jednog procesora za bilo koji zadatak.
Paralelno računarstvo
Računanje korištenjem višestrukih konkurentnih niti izvršavanja.

Programsko inženjerstvo

[uredi | uredi kôd]
Dizajn algoritama
Korištenje ideja iz teorije algoritama za kreativnno dizajniranje rješenja konkretnih zadataka.
Računalno programiranje
Praksa korištenja programskog jezika za implementiranje algoritama
Formalne metode
Matematički pristupi opisivanju i zaključivanju o dizajnu programske podrške.
Reverzno inženjerstvo
Primjena znanstvene metoda u razumijevanju neke proizvoljne postojeće programske podrške
Programsko inženjerstvo
Principi i praksa dizajna, razvijanja i testiranja programa, kao i pravilne inženjerske prakse.

Arhitektura računala

[uredi | uredi kôd]
Arhitektura računala
Dizaj, organizacija, optimizacija i verifikacija računalnog sustava, većinom se vrti oko CPU i memorijskih podsustava (te sabirnice koja ih spaja).
Organizacija računala
Implementacija računalnih arhitektura, u terminima opisa njihovih specifičnih električnih krugova
Operacijski sustavi
Sustavi za upravljanje računalnim programima i pružanja baze koristivih sustava.

Komunikacije

[uredi | uredi kôd]
Računalni zvuk
Algoritmi i podatkovne strukture za stvaranje, manipulaciju, pohranu i prijenos zapisa digitalnog zvuka. Također je važan u aplikacijama za prepoznavanje glasa.
Umrežavanje
Algoritmi i protokoli za pouzdano komuniciranje podatcima duž različitih dijeljenih ili dediciranih medija, često uključujući ispravljanje grešaka.
Kriptografija
Primjenjuje rezultate iz složenosti, vjerojatnost i teorije brojeva kako bi izmislila i razbila kodove za šifriranje.

Baze podataka

[uredi | uredi kôd]
Rudarenje podataka
Relacijske baze podataka
Proučavanje algoritama za pretragu i obradu informacija u dokumentima i bazama podataka; usko je povezano s dohvaćanjem informacije.

Umjetna inteligencija

[uredi | uredi kôd]
Umjetna inteligencija
Implementacija i proučavanje sustava koji ispoljavaju autonomnu inteligenciju ili ponašanje.
Automatizirano zaključivanje
Strojevi za rješavanje, kao što ih koristi Prolog, koji proizvode korak do rezultata za dani upit o činjenici i bazu podataka s pravilima.
Računalni vid
Algoritmi za identificiranje trodimenzionalnih objekata iz jedne ili više dvodimenzionalnih slika.
Strojno učenje
Automatsko stvaranje skupa pravila i aksioma ovisno o ulazu.
Obrada prirodnog jezika/Računska lingvistika
Automatsko razumijevanje i generiranje ljudskog jezika
Robotika
Algoritmi za kontrolu ponašanja robota.

Meko računarstvo

[uredi | uredi kôd]

Zajednički naziv za tehnike korištene u rješavanju specifičnih problema.

Računalna grafika

[uredi | uredi kôd]
Računalna grafika
Algoritmi i za sintetičko generiranje vizualnih slika, te za integriranje i mijenjanje vizualne i prostorne informacije uzorkovane iz stvarnog svijeta.
Obrada slike
Određivanje informacije iz slike koristeći računanje.

Interakcija čovjeka i računala

[uredi | uredi kôd]
Interakcija čovjeka i računala
Proučavanje činjenja računala i računanja korisnim, koristivim i univerzalno pristupačnim ljudima, uključujući proučavanje i dizajn računalnih sučelja kroz koja ljudi koriste računala.

Znanstveno računarstvo

[uredi | uredi kôd]
Bioinformatika
Uporaba računarstva u svrhu održavanja, analize i pohranjivanja bioloških podataka, te u svrhu rješavanja bioloških problema poput uvijanja bjelančevina (engl. protein folding), predviđanje funkcije i filogenije.
Kognitivna znanost
Računsko modeliranje stvarnih umova
Računska kemija
Računsko modeliranje teoretske kemije u svrhu određivanja kemijskih struktura i svojstava
Računska neuroznanost
Računsko modeliranje stvarnih mozgova
Računska fizika
Numeričke simulacije velikih neanalitičkih sustava
Numerički algoritmi
Numerička rješenja matematičkih problema kao što su pronalaženje korijena, integracija, rješenja običnih diferencijalnih jednadžbi te aproksimacija specijalnih funkcija.
Simbolička matematika
Manipulacija i rješavanje izraza u simboličkom obliku, poznato i kao računalna algebra.

Obrazovanje i računarstvo

[uredi | uredi kôd]

Neka sveučilišta poučavaju računarstvo kao teoretsko proučavanje računanja i algoritamskog zaključivanja. Ovakvi programi često između ostaloga naglašavaju teoriju računanja, analizu algoritama, teoriju konkurentnosti, baze podataka i analizu sustava. Također tipično poučavaju računalno programiranje, koje pak tretiraju radije kao alat za podršku ostalim poljima računarstva, nego kao središnji fokus proučavanja.

Druge škole i sveučilišta, kao i srednje škole i vokacijski programi koji poučavaju računarstvo, naglašavaju praksu naprednog računalnog programiranja radije nego teoriju algoritama i računanja u svojem programu. Takvi programi se više fokusiraju na vještine koje su važne radnicima koji ulaze u industriju programske podrške. Ovi praktični aspekti računalnog programiranja se često pokrivaju nazivom programsko inženjerstvo. S druge strane, postoji mnogo prijepora oko toga što točno naziv "programsko inženjerstvo" znači, i je li to ista stvar kao i programiranje.

Vidi Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004.

Vidi još

[uredi | uredi kôd]
Glavni popis: Popis osnovnih tema u računarstvu

Izvori

[uredi | uredi kôd]
  1. "Računarstvo je proučavanje informacije" Department of Computer and Information ScienceArhivirana inačica izvorne stranice od 29. svibnja 2009. (Wayback Machine), Guttenberg Information Technologies
  2. "Računarstvo je proučavanje računanja." Computer Science Department, College of Saint BenedictArhivirana inačica izvorne stranice od 3. veljače 2007. (Wayback Machine), Saint John's University
  3. "Računalstvo je proučavanje svih aspekata računalnih sustava, od teoretskih osnova pa do krajnje praktičnih aspekata upravljanja velikim računalnim sustavima" Massey UniversityArhivirana inačica izvorne stranice od 19. lipnja 2006. (Wayback Machine)
  4. Nigel Tout. 2006. Calculator Timeline. Vintage Calculator Web Museum. Pristupljeno 18- rujna 2006. Provjerite vrijednost datuma u parametru: |preuzeto= (pomoć)
  5. Science Museum - Introduction to Babbage. Inačica izvorne stranice arhivirana 8. rujna 2006. Pristupljeno 24. rujna 2006.
  6. IBM Punch Cards in the U.S. Army. Pristupljeno 24. rujna 2006.
  7. a b Denning, P.J. 2000. Computer Science: The Discipline (PDF). Encyclopedia of Computer Science. Inačica izvorne stranice arhivirana 25. svibnja 2006. Pristupljeno 20. travnja 2007.CS1 održavanje: bot: nepoznat status originalnog URL-a (link)
  8. a b David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9.
  9. Constable, R.L. Ožujak 2000. Computer Science: Achievements and Challenges circa 2000 (PDF). Inačica izvorne stranice arhivirana 25. veljače 2009. Pristupljeno 20. travnja 2007.CS1 održavanje: bot: nepoznat status originalnog URL-a (link)
  10. Abelson, H.; Sussman, G.J.; Sussman, J. 1996. Structure and Interpretation of Computer Programs 2nd Ed. izdanje. MIT Press. ISBN 0-262-01153-0. Računalna revolucija je revolucija u načinu na koji mislimo i načinu na koji izražavamo što mislimo. Esencija ove promjene jest emergencija onoga što bi se najbolje moglo opisati kao proceduralna epistemiologija - proučavanje strukture znanja s imperativnog gledišta, kao suprotnost deklarativnom gledištu klasičnih matematičkih subjekata. |edition= sadrži dodatni tekst (pomoć)
  11. a b [1]
  12. Computer Language, Oct 1990
  13. Parnas, David L. 1998. Software Engineering Programmes are not Computer Science Programmes. Annals of Software Engineering. 6: 19–37, p. 19: "Radije nego da programsko inženjerstvo tretiram kao potpolje računarstva, tretiram ga kao element skupa {civilno inženjerstvo, mehaničko inženjerstvo, kemijsko inženjerstvo, elektrotehnika,....}."

Vanjske poveznice

[uredi | uredi kôd]
Logotip Zajedničkog poslužitelja
Logotip Zajedničkog poslužitelja
Zajednički poslužitelj ima još gradiva o temi Računarstvo