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, 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
  • 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 i primenu višenivojske arhitekture. Izrada praktičnog projekta.

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

Ispit se polaže ispunjavanjem predispitnih obaveza (u toku semestra) i izlaskom na sam ispit (u nekom ispitnom roku). Predispitne obaveze čini seminarski rad (maksimalno 30 poena, pročitati niže u tekstu).  Ispit nosi maksimalno 70 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, ali se mogu steći u bilo kom trenutku u toku školske godine.

Seminarski rad (maksimalno 30 poena)

Potrebno je napraviti i odbraniti mini softverski projekat koji obuhvata tehnologije i softver za: verzioniranje koda (Git), testiranje koda (JUnit/NUnit/XUnit), dokumentovanje koda (Javadoc/summary), upravljanje strukturom i pravljenjem projekta (Maven/NuGet) i platformski nezavisnu razmenu podataka (JSON).

  • Obim rada obuhvata 4-5 domenskih klasa koje je potrebno uobličiti u softverski projekat putem navedenih tehnologija.
  • Seminarski rad se predaje kao link ka GitHub repozitorijumu sa kodom.
  • Seminarski rad se brani u toku bilo kojih konsultacija u toku semestra.
  • Nije potrebno praviti niti štampati nikakvu dokumentaciju.

Ispit (maksimalno 70 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.