KDP
Konkurentno i distribuirano programiranje je obavezan predmet u šestom semestru za SI, a petom semestru za RTI.
Korisne veze
- ETF SI (rešenja, labovi, nastavni materijali)
- ETF Materijali (Box) (ispravke knjige, labovi)
Nastava
Nastava se održava u tri bloka (podeljeno po kolokvijumima):
- Prvi blok: sinhronizacioni algoritmi (samo na predavanjima), semafori
- Drugi blok: regioni, monitori, konkurentno programiranje u programskom jeziku Java (samo na vežbama)
- Treći blok: distribuirano programiranje, mrežno programiranje u programskom jeziku Java (samo na vežbama)
Vežbe prvih par nedelja mogu da ne budu održane kako bi se na predavanjima dovoljno napredovalo sa gradivom, dok se na predavanjima drže četiri umesto dva časa nedeljno. Prezentacije sa predavanja i vežbi mogu se naći na stranici predmeta, u odeljku Literatura.
Na RTI odseku gradivo se deli na konkurentno (sinhronizacioni algoritmi, semafori, regioni, monitori) i distribuirano programiranje, gde konkurentno dolazi na kolokvijumu a distribuirano na ispitu. Iz ovog razloga se nakon junskog ispitnog roka (na SI) oblasti dele na dva umesto na tri dela (rokovi su isti i za SI i za RTI).
Za pripremanje kolokvijuma od posebne koristi može biti knjiga The little books of semaphores koja se može naći na drajvu u sekciji Korisne veze. Problemi odadve često dolaze kada nastavnici žele da daju nešto novo, pa nije loše videti ideje odatle.
Laboratorijske vežbe
Laboratorijske vežbe se obično održe u trećem bloku predavanja. Rade se u programskom jeziku Java. Na prvoj laboratorijskoj vežbi radi se konkurentno, dok se na drugoj radi distribuirano programiranje. Od razvojnih okruženja na laboratorijskoj vežbi su dostupni Eclipse i IntelliJ, dok se na vežbama uglavnom koristi Eclipse. Vežbe u drugom i trećem bloku se delom bave oblastima koje dođu na laboratorijskoj vežbi, dok se takođe organizuju i pokazne laboratorijske vežbe. Na prvoj pokaznoj laboratorijskoj vežbi radi se jedan zadatak iz 2011. godine čija postavka nije direktno dostupna sa stranice predmeta.
Za pripremu za laboratorijske vežbe, pored gledanja vežbi i pokaznih laboratorijskih vežbi, dostupni su i probni zadataci za laboratorijsku vežbu sa stranice predmeta koji nemaju rešenja (često slični zadaci dođu i na laboratorijskoj vežbi). Pored toga, na vikiju su sakupljeni sledeći zadaci sa prethodnih laboratorijskih vežbi:
- Lab 1 2020
- Lab 1 2022
- Lab 1 2024
- Lab 1 RTI 2021
- Lab 1 RTI 2023
- Lab 1 nadoknada 2022
- Lab 2 2022
- Lab 2 RTI 2023
- Lab 2 nadoknada 2022
Laboratorijske vežbe nose 20 bodova na predmetu, svaka po 10 bodova. Ukoliko se radi i projekat, gleda se bolji rezultat. Moguće je nadoknaditi jednu laboratorijsku vežbu.
Projekat
Umesto laboratorijskih vežbi može da se radi projekat, koji isto nosi 20 bodova. Može da se menja na svaka dva roka, tako da u januaru i februaru bude jedan projekat, u junu i julu drugi a u avgustu i septembru treći.
Dodatne informacije vezane za projekat se nalaze u vodiču.
Ispitni rokovi
Postavke ispitnih rokova su dostupne na stranici predmeta, dok se njihova rešenja mogu naći na nekom od drajvova iz odeljka sa korisnim vezama. Sledeći rokovi su skupljeni na vikiju:
- Januar 2020
- Januar 2021
- Januar 2022
- Januar 2023
- Jul 2020
- Jul 2021
- Jun 2020
- Jun 2021
- Jun 2022
- Avgust 2021
- K 2019
- K 2021
- K 2022
- K1 2018
- K1 2020
- K1 2022
- K2 2019
- K2 2022
- Septembar 2023
- Februar 2020
- Februar 2021
- Februar 2022
- Februar 2023
- Februar 2024
Kategorije zadataka
Ovde su izlistani različite kategorije zadataka koje mogu da dođu na ispitima. Odlaskom na stranicu kategorije možete videti sve zadatke tog tipa.
Konkuretno programiranje
Distribuirano programiranje
- Aktivni monitori
- CSP
- C-Linda
- Prsten
- Razmena poruka (kanali: send/receive) (WIP)
- Randevu
- RPC (WIP)
- Sandučići (msg_box) (WIP)
- Filterski procesi
Literatura
Dostupan je udžbenik iz predmeta od 2018. godine:
- Konkurentno i distribuirano programiranje, drugo izdanje, Z.Radivojević, I.Ikodinović, Z.Jovanović, Izdavač: Akademska misao, Beograd
Način ocenjivanja
SI
- Predispitne obaveze
- , — Bodovi sa prve i druge laboratorijske vežbe (0-10 svaka, moguća nadoknada jedne vežbe)
- — Bodovi sa projekta (0-20)
- , — Bodovi sa prvog i drugog kolokvijuma (0-25 svaki, moguća nadoknada u junskom roku)
- Junski rok
- — bodovi sa trećeg kolokvijuma (ispitni deo gradiva, distribuirano programiranje) u junskom roku (0-30)
- Ukupni bodovi:
- Ostali rokovi
- — bodovi sa konkurentnog dela ispita (0-40), ukoliko se konkurentni deo ispita ne radi onda je
- — bodovi sa distribuiranog dela ispita (0-40)
- Ukupni bodovi:
RTI
- Predispitne obaveze
- , — Bodovi sa prve i druge laboratorijske vežbe (0-10 svaka, moguća nadoknada jedne vežbe u januarskom roku)
- — Bodovi sa projekta (0-20)
- — Bodovi sa kolokvijuma (0-40, moguća nadoknada u svakom roku)
- Ispitni rokovi
- — bodovi sa konkurentnog dela ispita (0-40), ukoliko se ne radi ovaj deo ispita, važe poeni sa poslednjeg izlaska
- — bodovi sa distribuiranog dela ispita (0-40)
- Ukupni bodovi:
Bodovi | ||||||
---|---|---|---|---|---|---|
Ocena | 5 | 6 | 7 | 8 | 9 | 10 |
Potrebna pomoć
- Na ovom predmetu fale rešenja rokova. Pomozite vikiju rešavanjem rokova i postavljanjem njihovih rešenja na viki.
- Rokovi kojima nedostaje poneko rešenje su: