Uvod

Pretpostavljam da znate makar neke osnove matematike, i naravno koristiti računar. :)
Dosta vremena ćemo posvetiti objašnjavanju koncepata i terminologije.
Terminologija je vrlo bitna, jer ćete kasnije lakše razgovarati o datim konceptima i brže ćete učiti ostale programske jezike, "povezivati kockice".

Komunikacija

Mi ljudi za sebe tvrdimo da smo inteligentna bića. Jedan od dokaza za to je i mnoštvo naših načina komunikacije. Komunikacija podrazumijeva razmjenu informacija između dva ili više učesnika (ne moraju biti ljudi), koristeći zajedničke znakove i pravila.
U ovo se ubrajaju audio metode (govor, muzika), vizuelne metode (znakovni jezici, grimase, kolutanje očima), fizičke metode (kad vas neko udari jer ste nepristojni npr.).
Danas u svijetu postoji više od 5.000 jezika, od kojih većina, nažalost, lagano izumire.

Ljudi pričaju i sa robotima, ako ništa gledali ste futurističke filmove.
Za nas ljude to je idealan način za komuniciranje.
Međutim, mašine su u suštini vrlo glupe, nemaju inteligenciju kao živa bića.

Mašine nemaju mozak, tijelo, uši, glasne žice... Sve im to moramo obezbijediti, da bi bile "inteligentne". Neki od tih organa su predstavljeni kompjuterom, mehaničkim dijelovima, mikrofonom, zvučnikom itd.

Kompjuter je mozak mašine, on upravlja svime. Na njega su povezani svi ostali uređaji (organi).
Nama ljudima misli dolaze same od sebe (većini, neki ljudi ne misle nikako), ali kompjuterima ne. I to im moramo "ručno" unijeti... Te kompjuterske misli su ustvari naše naredbe, koje se skupno nazivaju program.

Ovdje smo da naučimo neke od načina za komuniciranje s kompjuterima.
Naime, ljudi su razvili na stotine programskih jezika koje se koriste za pisanje kompjuterskih programa.
Ovi jezici su slični našim jezicima, imaju svoju sintaksu, gramatiku i pravopis.

Apstrakcije

Kroz život, svjesno ili nesvjesno, naučili smo koristiti apstrakcije. Apstrakcija je ustvari generalizovanje, uopćavanje nečeg konkretnog. U datom kontekstu bitna su nam samo neka svojstva datog objekta/stvari/koncepta. Naprimjer kada kažemo automobil, podrazumijevamo nešto sa 4 točka, motorom itd.
To je apstraktni automobil, njegova takoreći definicija, dok je konkretan automobil npr. komšijin Pežo(v) 307, iz 2001. godine.

U fizici i hemiji imamo apstrakciju atoma. Zatim se uvodi apstrakcija molekule, koja se sastoje od više atoma. Kada se govori o molekulama, znamo da su "ispod" atomi, ali nas u datom kontekstu to ne zanima! Kontekst predstavlja skup okolnosti i činjenica, još jedna vrlo bitna stvar kada se govori o apstrakcijama.

U matematici imamo apstrakciju broja. Kada kažemo broj obično mislimo na cijeli broj. Ali ne kažemo koji broj!?
Dakle, samo znamo da mislimo na neki broj.

Programi

Da ponovimo, program je niz naredbi koje računar treba izvršiti, u cilju dobijanja nekog rezultata.
Kako svi ljudi razmišljaju na sebi svojstven način, postoji teoretski beskonačno mnogo rješenja (programa) za jedan te isti problem!

Programi često komuniciraju i sa "vanjskim svijetom".
Npr. ako trebamo učitati neki tekstualni fajl i prebrojati sve riječi, taj fajl nije dio programa već je ulaz (en. input) u naš program. Isto vrijedi i za klik miša, unos sa tastature, mikrofona i sl.

Kada želimo ispisati nešto na ekran, pustiti muziku na zvučnik, to se zove izlaz (en. output) iz našeg programa.

Naravno, da ne bismo "izmišljali toplu vodu" možemo se okoristiti znanjem stečenim kroz ljudsku historiju.
Ljudi su nadošli na koncept algoritma, koji predstavlja nedvosmislenu specifikaciju za rješavanje nekog problema.
Tj. algoritam je niz precizno definisanih koraka za dobijanje nekog rezultata.
Laički rečeno, to je recept za implementaciju neke funkcije.


U toku pisanja koda nekog programa često će nam se pojavljivati greške.
Tj. program se izvršava ali ne radi kako bismo željeli. Te greške se nazivaju bagovi (en. bug - buba, insekt).
Za program koji ima takve greške kaže se da je bagovit.
Proces u kojem tražimo greške i ispravljamo ih naziva se debagovanje.

To je to.