Organizacija vježbi
Domaća zadaća
Laboratorijske vježbe (domaće zadaće) izrađuju se samostalno (svaki student sam radi vježbe kod kuće ili u računarskom laboratoriju, kad je on dostupan studentima). Po potrebi zatražiti pomoć predavača. Ne gledati tuđa rješenja. Ako je nešto "teže" to samo znači da vam ta znanja nedostaju, da ste ih nekako preskočili. Gledanjem tuđeg koda (ili korištenjem AI alata) ćete to opet preskočiti i nećete usvojiti najbitnije -- samostalnost u rješavanju problema. Osim toga, na predaji i provjerama ćete ostvariti značajno manje bodova bez tog znanja.
Izvorne tekstove programa pisati prema uobičajenim pravilima. Posebice paziti na strukturu koda, 'uvlačenje', razmake te lomljenje preduge linije!). Primjer stila pisanja koda u C-u prikazan je u https://www.kernel.org/doc/Documentation/process/coding-style.rst. Jedan od razloga lošeg izgleda koda jest što studenti miješaju korištenje tabulatora i razmaka za ostvarenje uvlaka. Takav program u drugim okolinama (npr. koje koriste druge dimenzije za tabulator) izgleda nečitljivo. KONZISTENTNO koristiti ILI samo tabulatore (preporučeno) ILI samo razmake za uvlake. Prije konačne pohrane vježbe u repozitorij provjeriti izgled, npr. preko web sučelja repozitorija.
Pripremiti razvojno okruženje (opcionalno)
Iako se neke vježbe mogu napraviti i na drugim okruženjima, preporučeno je pripremiti Linux/UNIX okruženje (ako već nemate pristup takvom računalu).
Upute: Priprema razvojnog okruženja su jedan primjer kako to jednostavno napraviti.
Sadržaj vježbi
LAB-0:
a) Git - kratke upute
(+demo)
b) Zadatak
Po izradi neke vježbe (lab1-lab4), u ispisu (koji treba spremiti u readme.txt
) mora biti vidljivo ispravno ponašanje programa u svim situacijama koje se spominju u zadatku. Ukoliko se nekim pokretanjem to ne vidi, program ponovno pokrenuti i po potrebi promijeniti parametre (npr. broj dretvi, trajanje odgoda i slično) ili pokrenuti program više puta i sve potrebne ispise uključiti u opis (readme.txt
).
LAB-1: Signali
LAB-2: Dretve i semafori
LAB-3: Sinkronizacija monitorom (obavezna vježba) | kod iz uputa
LAB-4: Redovi poruka i cjevovodi
LAB-1::4 Primjeri/predlošci za vježbe (kod)
Dodatni primjeri koda
Upute za predaje vježbi
- Svaka vježba (zadatak/„LAB“) donosi do 6 bodova:
- do dva boda za kod u repozitoriju, ako je ispravan i postavljen u repozitorij prije termina zadane vježbe te je vježba potom i predana
- do četiri boda na predaji.
- Zadaci se nadograđuju: LAB0 → LAB1 → LAB2→ LAB3→LAB4.
- Kod mora biti u repozitoriju dan prije termina (prije petka). Ako nije, onda se ne može pristupiti predaji.
- Termini za predaju su (u kalendaru):
- LAB-0: 21. 3. (3. tj.)
- LAB-1: 4. 4. (5. tj.)
- LAB-2: 9. 5. (10. tj.)
- LAB-3: 23. 5. (12. tj.)
- LAB-4: 6. 6. (14. tj.)
- Nadoknada za LAB-3: 13. 6. (15. tj.)
- Redovan način predaje: rješavanje zadataka iz područja vježbe na papiru, na početku predavanja (u 14:15) u navedenim terminima. Primjeri zadataka
- Iznimno, ako je student napravio vježbu i postavio ju u repozitorij do roka, ali je opravdano spriječen doći u zadani termin na predaju, vježbu može predati idući tjedan na FER-u, uz prethodni dogovor.
- Minimalni uvjeti za prolaz laboratorijskih vježbi jesu (oba moraju biti ispunjena):
- izrada zadatka LAB-3, njegovo postavljanje u repozitorij
- pozitivna ocjena za LAB-3 na predaji (regularnoj ili na nadoknadi).
- Na nadoknadi (zadnji tjedan) se predaje samo LAB-3 (ako već nije predan). Vježbe LAB-0/1/2/4 se ne mogu nadoknaditi.
- Paziti na ispravnost repozitorija – neispravnost se kažnjava negativnim bodovima.
- Rješenja studenata (kodovi) se na kraju semestra međusobno uspoređuju.
- Neočekivana sličnost u netrivijalnim zadacima se kažnjava – studenti s „presličnim kodom“ dobivaju negativne bodove, neovisno o tome tko je autor a tko je kopirao kod.
- Alat za provjeru je neosjetljiv na kozmetičke izmjene.
- Raditi samostalno, ne gledati tuđi kod i nikakvih problema neće biti (ne treba nešto „izmišljati“ da bi kod bio drukčiji).
- Studenti koji su u prošlim akademskim godinama odradili laboratorijske vježbe moraju ih ponovno odraditi ove godine (napraviti novi repozitorij / ponoviti postupak dijeljenja repozitorija prema uputama).