You are on page 1of 12

FAKULTET ZA MEDITERANSKE POSLOVNE STUDIJE

TIVAT

SEMINARSKI RAD

TEMA: Programiranje
PREDMET: POSLOVNA INFORMATIKA

Mentor: Učenik:
mr Nikola Vukčević Katarina Đukić 30/22

Tivat, jun 2023.


SADRŽAJ

UVOD......................................................................................................................................................
1. OSNOVNI KONCEPTI PROGRAMIRANJA................................................................................
2. GLAVNI PROGRAMSKI JEZICI..................................................................................................
3. PARADIGME PROGRAMIRANJA...............................................................................................
4. PRIMJENE PROGRAMIRANJA...................................................................................................
5. METODOLOGIJA RAZVOJA SOFTVERA...............................................................................
ZAKLJUČAK........................................................................................................................................
LITERATURA......................................................................................................................................

2
UVOD

Programiranje je neizostavan deo savremenog digitalnog sveta. Ova disciplina


omogućava ljudima da stvaraju, kontrolišu i automatizuju računarske sisteme i aplikacije
koje danas koristimo u gotovo svim sferama života. Bez programiranja, moderna
tehnologija ne bi mogla postojati u obliku u kakvom je danas.
Cilj ovog seminarskog rada je pružiti uvod u osnove programiranja, razmotriti neke
od najvažnijih programskih jezika i istražiti širok spektar primena programiranja. Pored
toga, dotaknućemo se i nekih koncepta i metodologija koje su ključne za uspešno
programiranje.
Prvi deo rada će se posvetiti osnovnim konceptima programiranja. Razmotrićemo
šta je programiranje i kako se algoritmi koriste za rešavanje problema. Takođe ćemo se
upoznati sa pojmovima promenljivih, tipova podataka, operatora i izraza, kao i kontrolom
toka programa kroz uslovne naredbe i petlje.
Drugi deo rada će se fokusirati na nekoliko glavnih programskih jezika.
Istražićemo jezike kao što su C, Python, Java, JavaScript i Ruby, i pružiti uvid u njihove
karakteristike, prednosti i primene.
Nakon toga, posvetićemo se paradigmi programiranja, odnosno različitim
pristupima organizaciji i strukturi koda. Razmotrićemo proceduralno programiranje,
objektno orijentisano programiranje i funkcionalno programiranje, i analizirati prednosti i
nedostatke svake od ovih paradigmi.
Sledeći deo rada će se fokusirati na napredne koncepte programiranja.
Pregledaćemo različite strukture podataka koje su ključne za efikasno rešavanje problema,
kao i koncept rekurzije koji omogućava efikasno ponavljanje operacija. Takođe ćemo
istražiti biblioteke i framework-ove koji olakšavaju razvoj softvera i omogućavaju
programerima da iskoriste već postojeće resurse.
U nastavku rada, istražićemo različite primene programiranja. Pregledaćemo
oblasti kao što su web development, mobilne aplikacije, desktop aplikacije, kao i veštačku
inteligenciju i mašinsko učenje. U svakoj od ovih oblasti ćemo istražiti neke od ključnih
tehnologija i jezika koji se koriste.
Na kraju, razmotrićemo razvoj softvera i metodologije koje se primenjuju u tom
procesu. Obratićemo pažnju na faze razvoja softvera i pregledaćemo agilne metodologije
kao što su Scrum.

3
1. OSNOVNI KONCEPTI PROGRAMIRANJA

Osnovni koncepti programiranja su ključni za razumevanje i primenu programskog


koda. Kroz ove koncepte programeri stvaraju strukturu i logiku svojih programa,
omogućavajući im da rešavaju probleme i ostvare željene rezultate.
Jedan od osnovnih koncepta je algoritam, koji predstavlja precizan set koraka ili
instrukcija koji definiše način rešavanja određenog problema. Algoritmi su osnova svakog
programa i omogućavaju programerima da sistematski pristupe rešavanju zadataka.
Pseudokod je još jedan važan koncept koji se koristi za opisivanje algoritama. Ovo
je jednostavan jezik koji omogućava programerima da razumeju logiku i tok programa pre
nego što započnu pisanje koda na određenom programskom jeziku.
Promenljive su imenovane lokacije u memoriji koje se koriste za čuvanje podataka.
Svaka promenljiva ima svoje ime i odgovarajući tip podataka koji određuje vrstu vrednosti
koju promenljiva može da sadrži. Na primer, brojevi, stringovi, logičke vrednosti su neki
od tipova podataka koji se često koriste.
Operatori su simboli koji se koriste za izvršavanje određenih operacija nad
podacima. Postoje matematički operatori (+, -, *, /) za izvršavanje matematičkih operacija,
operatori poređenja (==, <, >) za upoređivanje vrednosti i logički operatori (&&, ||) za
izvršavanje logičkih operacija. Izrazi su kombinacija promenljivih, konstanti i operatora
koji vrše određenu operaciju i vraćaju rezultat.
Kontrola toka omogućava programerima da upravljaju tokom izvršavanja
programa. Uslovne naredbe, kao što su if, else if i else, omogućavaju izvršavanje
određenog dela koda samo ako je određeni uslov ispunjen. Petlje, kao što su for i while,
omogućavaju ponavljanje određenog dela koda više puta.
Ovi osnovni koncepti programiranja su univerzalni i primenjivi na različitim
programskim jezicima. Bez obzira na jezik koji se koristi, razumevanje i primena ovih
koncepta omogućavaju programerima da razvijaju jasne, efikasne i funkcionalne
programske rešenja. Kroz njih, programeri stiču sposobnost da strukturiraju probleme,
identifikuju logiku rešenja i ostvare željene funkcionalnosti u svojim programima.

4
2. GLAVNI PROGRAMSKI JEZICI

Glavni programski jezici su temelj razvoja softvera i omogućavaju programerima


da pišu kod koji računari mogu razumeti i izvršavati. Postoji veliki broj programskih
jezika, ali u nastavku ćemo se osvrnuti na nekoliko najpopularnijih:
C: C je stariji programski jezik koji je imao značajan uticaj na razvoj modernog
programiranja. Ovaj jezik je poznat po svojoj efikasnosti i sposobnosti da pristupa
hardverskim resursima direktno. C je proceduralni jezik koji se koristi za razvoj sistema,
operativnih sistema i hardverskih aplikacija.
Python: Python je visokonivo programski jezik koji se ističe svojom čitljivošću i
jednostavnošću upotrebe. Ovaj jezik je popularan u različitim oblastima, uključujući web
development, nauku podataka, veštačku inteligenciju i automatizaciju. Python podržava
objektno orijentisano programiranje i ima veliku biblioteku koja olakšava razvoj raznih
aplikacija.
Java: Java je objektno orijentisani programski jezik koji je često korišćen za razvoj
velikih, skalabilnih i sigurnih aplikacija. Java se često koristi za izradu mobilnih aplikacija,
web aplikacija, server-side sistema i embedded sistema. Ona omogućava pisanje jednom,
pokretanje bilo gde (write once, run anywhere) zahvaljujući Java Virtual Machine (JVM).
JavaScript: Iako ime može biti zbunjujuće, JavaScript se razlikuje od Java i koristi
se za razvoj interaktivnih elemenata na web stranicama. JavaScript je skriptni jezik koji se
izvršava u web pregledaču i omogućava dinamičko menjanje sadržaja i ponašanja web
stranica. Takođe se koristi za razvoj server-side aplikacija putem Node.js platforme.
Ruby: Ruby je jednostavan, fleksibilan i intuitivan programski jezik koji je
popularan zbog svoje čitljivosti i produktivnosti. Ruby je često korišćen za web
development, a najpoznatiji je po Ruby on Rails, popularnom frameworku za razvoj web
aplikacija.
Ovi programski jezici su samo neki od mnogih koji se koriste u industriji
programiranja. Svaki jezik ima svoje prednosti, nedostatke i oblasti primene. Izbor
programskog jezika zavisi od zahteva projekta, ciljne platforme i preferencija programera.

5
3. PARADIGME PROGRAMIRANJA

Paradigme programiranja definišu različite pristupe organizaciji, strukturi i pisanju


programa. Svaka paradigma ima svoj skup pravila, principa i koncepta koji omogućavaju
programerima da razvijaju softver na određeni način. Ovde ćemo razmotriti nekoliko
glavnih paradigmi programiranja.
Proceduralno programiranje je jedna od najstarijih paradigmi. U ovoj paradigmi,
program se organizuje oko funkcija ili procedura koje izvršavaju određene zadatke.
Proceduralno programiranje je strukturirano i modularno, a omogućava programerima da
razdvoje logičke delove programa u manje celine. To olakšava održavanje i ponovnu
upotrebu koda. Jezici kao što su C i Pascal su primeri jezika koji podržavaju proceduralno
programiranje.
Objektno orijentisano programiranje (OOP) je paradigma koja se fokusira na
organizaciju koda oko objekata. Objekti predstavljaju instancu klase i sadrže podatke
(atribute) i metode (funkcije) za manipulaciju tim podacima. OOP promoviše koncepte kao
što su apstrakcija, nasleđivanje, polimorfizam i enkapsulacija. Ova paradigma omogućava
programerima da strukturišu i modulišu kod na intuitivan način. Jezici kao što su Java, C+
+ i Python su popularni jezici za objektno orijentisano programiranje.
Funkcionalno programiranje se fokusira na upotrebu funkcija kao osnovne
konstrukcije za rešavanje problema. U funkcionalnom programiranju, funkcije se tretiraju
kao matematičke funkcije koje primaju ulazne vrednosti i vraćaju izlazne vrednosti, a
nema promenljivih ni promena stanja. Ova paradigma ima jasnu i deklarativnu prirodu, a
funkcije se mogu kombinovati i komponovati kako bi se rešili složeni problemi. Jezici kao
što su Haskell, Lisp i Erlang su primeri jezika koji podržavaju funkcionalno programiranje.
Logičko programiranje se zasniva na formalnoj logici i koristi pravila zaključivanja
za rešavanje problema. U ovoj paradigmi, programer definiše skup činjenica i pravila, a
zatim izražava problem u obliku logičkih tvrđenja. Sistem automatski zaključuje rešenje na
osnovu tih tvrđenja. Jezici poput Prologa su primeri jezika koji podržavaju logičko
programiranje.
Paralelno programiranje se bavi izvršavanjem više instrukcija ili delova programa
istovremeno na više procesora ili računarskih jedinica. Ova paradigma omogućava
povećanje performansi i brzine izvršavanja programa. Paralelno programiranje se često
koristi u aplikacijama koje zahtevaju obradu velikih količina podataka ili visoke

6
performanse. Jezici poput Cilka, MPI-ja i CUDA-e pružaju podršku za paralelno
programiranje.
Svaka od ovih paradigmi programiranja ima svoje prednosti i nedostatke, a izbor
odgovarajuće paradigme zavisi od zahteva projekta, specifičnosti problema i preferencija
programera. U praksi se često koristi kombinacija različitih paradigmi kako bi se postigao
optimalan rezultat. Razumevanje i primena ovih paradigmi omogućavaju programerima da
razvijaju efikasne, fleksibilne i skalabilne softverske aplikacije.

7
4. PRIMJENE PROGRAMIRANJA

Programiranje ima širok spektar primjena u različitim industrijama i oblastima.


Njegova univerzalnost omogućava programerima da razvijaju softver i sisteme za različite
svrhe. Evo nekoliko glavnih primjena programiranja:
Jedna od najčešćih primena programiranja je u web developmentu. Programeri
koriste jezike kao što su HTML, CSS, JavaScript, PHP, Python ili Ruby kako bi kreirali
interaktivne i funkcionalne web stranice, online prodavnice, društvene mreže i još mnogo
toga.
Mobilne aplikacije su takođe popularna primena programiranja. Programeri koriste
jezike kao što su Java, Kotlin, Swift ili React Native kako bi razvili aplikacije koje se
izvršavaju na pametnim telefonima i tabletima. Mobilni operativni sistemi kao što su
Android i iOS zahtevaju programiranje kako bi se razvile aplikacije za ove platforme.
U oblasti nauke podataka i veštačke inteligencije, programiranje je ključno.
Programeri koriste jezike kao što su Python, R ili Java za obradu i analizu podataka,
mašinsko učenje, duboko učenje, analizu slika, obradu prirodnog jezika i druge napredne
tehnike.
Softverski inženjering se takođe oslanja na programiranje. Programeri koriste
različite jezike i alate za izgradnju kompleksnih softverskih sistema, kao što su operativni
sistemi, baze podataka, korisnički interfejsi, sistemski softver i još mnogo toga.
Automatizacija i robotika su oblasti gde se programiranje često primenjuje.
Programeri koriste jezike kao što su Python, C++ ili Java za automatizaciju procesa i
kontrolu robota, industrijskih robota, robotskih manipulatora, automatskih sistema za
upravljanje i slično.
U finansijskoj industriji, programiranje se koristi za razvoj softvera za upravljanje
transakcijama, analizu tržišta, algoritamsko trgovanje, finansijsku analitiku i druge
finansijske usluge.
Programiranje je takođe ključno za razvoj videoigara. Programeri koriste
specijalizovane game development jezike, kao što su C++, C# ili UnityScript, za kreiranje
igara, implementaciju logike igre, upravljanje grafikom i zvukom, veštačke inteligencije i
drugih aspekata igre.
Ovo su samo neke od mnogobrojnih primena programiranja. Programiranje je
prisutno u gotovo svim industrijama i oblastima gde postoji potreba za razvojem softvera i

8
automatizacijom procesa. Sa stalnim napretkom tehnologije, programiranje će i dalje imati
sve veći značaj u svetu moderne informacione tehnologije.

9
5. METODOLOGIJA RAZVOJA SOFTVERA

Metodologije razvoja softvera predstavljaju struktuirane pristupe i setove pravila


kojima se upravlja procesom razvoja softvera. One su ključne za organizaciju timova,
upravljanje projektima, planiranje, dizajn, implementaciju, testiranje i održavanje softvera.
Postoji nekoliko glavnih metodologija razvoja softvera, od kojih svaka ima svoje
specifičnosti i prednosti.
Vodopadna metodologija je linearna i sekvencijalna metodologija u kojoj se
razvojni proces deli na jasno definisane faze. Svaka faza se izvršava nakon završetka
prethodne faze. Ova metodologija se često koristi kada su zahtevi stabilni i dobro
razumljivi.
Agilna metodologija je fleksibilna i prilagodljiva. Ona promoviše iterativni i
inkrementalni pristup, gde se timovi rade u kratkim ciklusima i redovno komuniciraju sa
klijentima radi povratnih informacija. Popularne agilne metodologije su Scrum i Kanban.
Spiralna metodologija kombinuje elemente vodopadne metodologije i prototipskog
razvoja. Proces se odvija u ciklusima koji prolaze kroz četiri faze: identifikacija ciljeva,
analiza rizika, razvoj i evaluacija. Ova metodologija je korisna kada su prisutni visoki
rizici i neizvesnosti u projektu.
DevOps je metodologija koja integriše prakse iz razvoja softvera i operacija. Ona
teži automatizaciji procesa razvoja, testiranja i puštanja softvera u proizvodnju. DevOps
podstiče saradnju između razvojnog i operativnog tima kako bi se postigla brža isporuka
softvera sa većom pouzdanošću i efikasnošću.
Lean metodologija se fokusira na eliminisanje gubitaka i nepotrebnih aktivnosti u
procesu razvoja softvera. Ova metodologija se oslanja na princip kontinuiranog
poboljšanja i optimizaciju procesa kako bi se postigla veća efikasnost i vrednost za
klijenta. Inspirirana je japanskim principima lean proizvodnje.
Ekstremno programiranje (XP) je agilna metodologija koja promoviše blisku
saradnju između programera i klijenta, kratke iteracije, kontinuirano testiranje i isporuku
softvera.
Ove metodologije se mogu koristiti zasebno ili u kombinaciji, u zavisnosti od
specifičnosti projekta, zahteva klijenta, timskih kapaciteta i okruženja u kojem se softver
razvija. Svaka metodologija ima svoje prednosti i ograničenja, pa je važno pažljivo
odabrati i prilagoditi metodologiju u skladu sa potrebama projekta i tima.

10
ZAKLJUČAK

Programiranje predstavlja neizostavnu veštinu u današnjem digitalnom dobu. Kroz


ovaj seminarski rad smo istražili osnovne koncepte programiranja, upoznali se sa glavnim
programskim jezicima, paradigme programiranja, primenama programiranja i
metodologijama razvoja softvera.
Programiranje pruža neograničene mogućnosti za stvaranje softvera i rešavanje
složenih problema. Razumevanje osnovnih koncepata kao što su algoritmi, petlje, funkcije
i promenljive omogućava nam da konstruišemo efikasne i funkcionalne aplikacije.
Postoji veliki broj programskih jezika, svaki sa svojim prednostima i
specifičnostima. Izbor odgovarajućeg jezika zavisi od zahteva projekta i preferencija
programera. Bez obzira da li je u pitanju web development, nauka podataka, veštačka
inteligencija ili neka druga oblast, programiranje je ključno za razvoj naprednih
softverskih rešenja.
Primene programiranja su neograničene. Od razvoja web aplikacija i mobilnih
aplikacija, preko analize podataka i veštačke inteligencije, pa sve do softverskog
inženjeringa i automatizacije procesa, programiranje je ključno za napredak u različitim
industrijama.
Metodologije razvoja softvera pružaju strukturu i smernice za efikasan i
organizovan proces razvoja softvera. Bilo da se koristi vodopadna, agilna, spiralna,
DevOps, lean ili ekstremno programiranje, svaka metodologija ima svoju ulogu u
osiguravanju uspešnog završetka projekta.
Uz kontinuirano učenje, praksu i istraživanje, programeri imaju mogućnost da
unaprede svoje veštine i doprinesu inovacijama u oblasti programiranja.
Ukratko, programiranje je ključna veština koja otvara vrata neograničenim
mogućnostima. Kroz razumevanje osnovnih koncepata, izbor odgovarajućeg jezika,
primenu odgovarajuće paradigme i upotrebu odgovarajuće metodologije, programeri mogu
postići uspeh u razvoju sofisticiranih i funkcionalnih softverskih rešenja. Programiranje je
put ka inovacijama i unapređenju različitih industrija, pružajući nam moć da oblikujemo
digitalnu budućnost.

11
LITERATURA

[1] Miloš Đekić - Autor knjige "Osnovi programiranja"

[2] Bojan Vujičić - Autor knjige "Programiranje - koncepti, tehnike i modeli"

[3] Petar Ćurić - Autor knjige "Osnove algoritama i programiranja"

[4] https://www.it-akademija.com/uvod-u-programiranje

[5] http://l3public.elfak.ni.ac.rs/~vciric/vciric-uvod_u_programiranje.pdf

12

You might also like