Napredno programiranje

O predmetu

Cilj predmeta

Sticanje teorijskih osnova, ali i praktičnih veština iz oblasti: upravljanja verzijama koda, upravljanja strukturom i pravljenjem projekta, testiranja koda, dokumentovanja koda, višenitnog programiranja, kao i primene višenivojske arhitekture. Razvijanje kritičkog pogleda na opseg i granice praktične primene ovih metoda, tehnika i tehnologija.

Ishod predmeta

Osposobljenost studenata za samostalan razvoj programa korišćenjem aktuelnih alata i tehnologija za upravljanje verzijama koda, upravljanje strukturom i pravljenjem projekta, testiranje koda, dokumentovanje koda i druge uz pravilnu primenu višenivojske arhitekture.

Sadržaj predmeta

Teorijska nastava:

  • Upravljanje verzijama programskog koda
  • Testiranje i dokumentovanje programskog koda
  • Višenivojska arhitektura
  • Kolekcije (liste, mape, skupovi)
  • Upravljanje strukturom i pravljenjem projekta (build)

Praktična nastava: Vežbe, Drugi oblici nastave, Studijski istraživački rad

Praktičan rad sa softverskim okvirima i alatima za: verzioniranje koda, testiranje koda, dokumentovanje koda, upravljanje strukturom i pravljenjem projekta, kolekcije i primenu višenivojske arhitekture. Izrada praktičnog projekta.

Polaganje ispita (ova pravila važe za 2023/2024 školsku godinu)

Ispit se polaže ispunjavanjem predispitnih obaveza (u toku semestra) i izlaskom na sam ispit (u nekom ispitnom roku). Predispitne obaveze čine: kolokvijum (maksimalno 30 poena) i prisustvo na časovima (maksimalno 5 poena, pročitati niže u tekstu).  Ispit nosi maksimalno 65 poena. Poeni sa predispitnih obaveza i sa samog ispita se sabiraju i čine konačnu ocenu koja se formira prema sledećoj tabeli.

Ocena 6 7 8 9 10
Poena 51-60 61-70 71-80 81-90 91-100

NAPOMENA: Poeni sa predispitnih obaveza važe tokom cele školske godine u kojoj je student slušao predmet. Ovi poeni se ne mogu ispravljati, popravljati, niti dopunjavati. Na primer, ako je neko na predispitnim obavezama dobio 0 poena (nije radio kolokvijum i nije prisustvovao/la časovima), može imati maksimalnu ocenu 7 dobijenu preko 65 poena na ispitu. 

Kolokvijum (maksimalno 30 poena)

Organizuje se jedan kolokvijum u toku semestra, u prvoj kolokvijumskoj nedelji. Obuhvata gradivo iz prve polovine semestra. Kolokvijum se radi individualno, u računskom centru, na računaru u trajanju od dva sata. Rešava se praktičan programerski zadatak koji obuhvata tehnologije i softver za: verzioniranje koda (Git), testiranje koda (JUnit), dokumentovanje koda (Javadoc), upravljanje strukturom i pravljenjem projekta (Maven) i platfromski nezavisnu razmenu podataka (JSON).

Prilikom polaganja kolokvijuma nije dozvoljeno:

  • koristiti dodatne uređaje i materijale, ni u papirnoj, ni u elektronskoj formi (diskove, fleš memorije, e-mail, Veb pretraživače i Internet uopšte);
  • nije dozvoljeno slikati, kopirati, niti odnositi zadatke.

Pri pregledanju zadataka, asistenti i nastavnici će se voditi sledećim principima:

  • Ako kod rešenja sadrži sintaksne greške u bilo kojem delu (ne može da se kompajlira), student dobija nula poena za ceo kolokvijum,
  • Kod koji je stavljen pod komentare (bilo zbog toga što ne može da se kompajlira, bilo zbog toga što nije dovršen) biće ignorisan tj. neće biti pregledan.

Prisustvo na časovima (maksimalno 5 poena)

Prisustvo na svakom terminu (predavanja i vežbe zajedno su jedan termin) nosi 0.5 poena. Da bi student dobio/la svih 5 poena za prisustvo na časovima, neophodno je prisustvo na 10 od 13 termina. Na prisustvu  se ne može ostvariti više od 5 poena.

Ispit (maksimalno 65 poena)

Ispit obuhvata praktičan rad sa softverskim okvirima i alatima za: verzioniranje koda, testiranje koda, dokumentovanje koda, upravljanje strukturom i pravljenjem projekta. Polaže se izradom i odbranom praktičnog projekta u kojem se koriste ove tehnologije.