Sekcije kursa

Uvod u programiranje

Programski jezici

Šta su programski jezici?

Ljudi za međusobnu komunikaciju koriste jezik. Kada zoveš društvo napolje, koristiš jezik. Isto tako ti drugari (ili drugarice) odgovore istim jezikom koji ti razumeš. Kako objasniti računaru šta želiš? Već smo rekli da računar nije baš pametan i ne razume (za sada!) ako mu se obratis na svom maternjem jeziku. Da bi se ti i računar razumeli, izmišljeni su programski jezici. Računar može “razumeti” samo formalni zapis, pri čemu ne toleriše ni najmanje nepreciznosti.

Da li znaš šta su binarni brojevi? Ako razumeš sledeći vic na dobrom si putu! “Postoji 10 vrsta ljudi na svetu: Oni koji znaju binarne brojeve i oni koji ih ne znaju…” U slučaju da nisi razumeo vic, evo male pomoći: “10” predstavlja binarni zapis dekadnog broja “2″. Ljudi najčešće koriste dekadni brojni sistem, ali računar radi na binarnom. Svaki broj u dekadnom brojnom sistemu može da se predstavi u binarnom sistemu koristeći nule i jedinice. Ovde nećemo objašnjavati algoritam kako se broj iz dekadnog zapisa prebacuje u binarni (a ni obrnuto).

Bonus problem: Sastavni deo programiranja je da na zadati problem pronađeš rešenje. Recimo da se traži da svoj broj godina napišeš u binarnom zapisu? Probaj da izguglaš rešenje. Šta misliš, da li će broj napisan u binarnom zapisu imati više ili manje cifara od broja koji je napisan u dekadnom? Zašto?

Sigurno si čuo da postoji puno programskih jezika. Čuo si da pored Python-a postoji C#, Java itd. Šta misliš koliko programskih jezika govori računar?

Samo jedan! I to mašinski jezik! Ma­šin­ski je­zik– jedini jezik koji računar razume! Mašinski jezik je bi­nar­ni je­zik; pro­gram na nje­mu se sa­sto­ji is­klju­či­vo od nu­la i je­di­ni­ca. Šta misliš, da li je lako pisati program na mašinskom jeziku? Da li se tako lako pravi greška? Naravno, pi­sa­nje pro­gra­ma na ma­šin­skom je­zi­ku je mu­ko­tr­pan po­sao i  pod­lo­žan gre­ška­ma. Ta­ko­đe, sva­ki tip ra­ču­na­ra ima svoj ma­šin­ski je­zik. Pro­gra­mer ko­ji po­zna­je je­zik jed­nog ra­ču­na­ra ne mo­že  pro­gra­mi­ra­ti na dru­gom ra­ču­na­ru! 01010000 01110010 01101111 01100111 01110010 01100001 01101101 01101001 01110010 01100001 01101110 01101010 01100101 00100000 01101010 01100101 00100000 01101100 01100001 01101011 01101111 00100001 Da li si razumeo poslednju rečenicu? Piše “Programiranje je lako!” Da programiramo na mašinskom jeziku i ne bi bilo tako lako. Ako želiš da isprobaš da neku tvoju rečenicu prebaciš u binarni zapis, možeš to da uradiš klikom na sledeći link. Tako možeš da se dopisuješ i sa tvojim društvom a da vas malo ko razume 🙂 .

Ostali jezici (Python, C#, Java) su  ma­šin­ski‑ne­za­vi­sni pro­gram­ski je­zi­ci. Oni omo­gu­ća­va­ju pro­gra­me­ru da se programi zapisuju rečima koje su nam razumljive. Mašinski – nezavisni programski jezici predstavljaju programske jezike višeg nivoa. Svaki program napisan na jeziku višeg nivoa mora se prevesti na mašinski jezik (jer računar samo njega razume), a u zavisnosti od načina prevođenja i izvršavanja, jezike višeg nivoa možemo da podelimo na kompajlerske i interpretatorske jezike. Kompajleri prevode CEO program napisan na višem programskom jeziku u njemu ekvivalentan, mašinski program koji se može izvršiti na računaru. Kod interpretatorskih jezika, program se prevodi i izvršava instrukcija po instrukcija. Primer interpretatorskog programkog jezika je Python.

 

Programiranje i kodiranje

Programiranje i kodiranje – zar to nije isto? Najveći broj ljudi pogrešno smatra da je programiranje i kodiranje jedno te isto. Produktivnost jednog programera ne meri se brojem linija koda koje otkuca tokom dana. Ima dana kad programeri ne pišu kod i neko ih plaća za to?!! Slično kao kada pisac pre nego što krene da piše knjigu potroši puuuno vremena u razmišljanju i onda napiše knjigu u kratkom roku, tako slično i programeri programiraju, a da ne pišu kod. Šta oni u stvari rade? Prva stvar je da razmisle kako da reše problem. Zamisli da treba da napišeš program koji će da računa koji si znak u horoskopu. Šta bi prvo uradio? Prvo bi se raspitao koji sve horoskopski znaci postoje, pa bi onda pronašao za svaki znak kad počinje i kad se završava. Sledeći korak je da napišemo algoritam. Najjednostavnije objašnjenje algoritma je da je to “recept za program”. Pisanje algoritma je najkreativniji posao u celom procesu programiranja. Ako je problem kompleksan, može se rešiti na više načina – svako rešenje ima drugačiji algoritam, a za svaki algoritam može da se napiše odgovarajući program. Nakon odabira algoritma, pišemo kod (tek sad stižemo do kodiranja!!!). I kad napišemo kod, tu nije kraj jer moramo da proverimo (testiramo) da li naš program radi. I za to nije dovoljno testirati na jednom primeru. Niko ne želi greške u programu koji koristi. Ovaj program bi mogao da testiraš tako što bi za svakog drugara/drugaricu izračunao horoskopski znak i proverio da li tvoj program radi. Možeš i da angažuješ nekog drugara da testira. Inače, svaki ozbiljniji tim programera ima jednu ili više osoba koje se bavi testiranjem softvera i čiji je zadatak da pronađe bug-ove (greške) u programu koje će prijaviti programeru. Nakon toga programer ispravlja greške i ponovo daje program na testiranje. Ovo je iterativan proces i može da traje jako dugo.