GMail
Ako pišete na fakultetske adrese sa svojih ličnih gmail adresa, računajte da vam odgovori verovatno neće biti isporučeni jer GMail često odbija poruke sa MATF servera poincare.
Alati za razvoj softvera
Rezultati ispita -- septembar 1
Uvid u radove do četvrtka 12.9. putem maila (kao i obično).
Sudenti kojima nedostaje do 3 poena (uključujući i 3) za veću ocenu, a nemaju maksimum na projektu, mogu da dorade projekat to 12.9. Kad ih doradite, predajte ih ponovo putem istog formulara koji ste koristili prilikom inicijalne predaje projekta.
Zamerke na projekte su iste kao u prethodnim rokovima.
Ispit Projekat Ocena mi18147 40 30 8 mi18267 35 30 7 mi18474 0 mi19031 43 15 6 mi19107 45 30 8 mi19139 41 30 8 mi19182 30 30 7 mi19197 46 30 8 mi19365 17 30 prag mi20043 52 30 9 mi20045 70 30 10 mi20104 27 15 prag mi20134 38 30 7 mi20139 60 30 10 mi20188 44 30 8 mi21409 32 30 7 -- studenti koji su ranije polagali ispit mi18193 30 30 7 (jan 2) mi18261 34 30 7 (jun 1) mi18283 38 15 6 (jan 2) mi19073 39 15 7 (jan 2) mi19074 43 30 8 (jun 1) mi19127 47 30 8 (jan 2) mi19238 43 15 6 (jun 1) mi19257 34 20 6 (jan 2) mi19267 31 30 7 (jun 1) mi19287 38 15 6 (jan 1) mi20002 50 30 9 (jan 1) mi20018 58 30 9 (jan 1) mi20064 30 30 7 (jun 1) mi20131 48 30 8 (jan 2) mi20159 30 30 7 (jun 1) mi20370 37 30 7 (jun 1) mi21391 46 15 7 (jan 2) mi21400 43 15 6 (jan 2) mi18165 30 30 7 (jun 1) mi19115 32 30 7 (jun 1)
Rezultati ispita -- jun 1
Uvid u radove do četvrtka 13.6. putem maila (kao i obično).
Projekte za ovaj rok možete da predate do nedelje 16.6. Kad ih doradite, predajte ih ponovo putem istog formulara koji ste koristili prilikom inicijalne predaje projekta.
Ako ne želite da vam upišem ocenu (ako želite ponovo da izađete na ispit, ili da doradite projekat za neki od narednih rokova), pošaljite mi mail.
Ispit Projekat Ocena mi19120 30 25 6 mi19172 30 30 7 mi19180 37 25 7 mi19182 20 25 prag mi19354 45 25 8 mi20082 30 30 7 mi20162 38 30 7 mi21399 40 20 7 -- studenti koji nisu predali projekat mi18147 19 nije predat mi18165 30 nije predat mi18261 34 nije predat mi19074 43 nije predat mi19115 32 nije predat mi19139 15 nije predat mi19238 43 nije predat mi19267 31 nije predat mi20064 30 nije predat mi20159 30 nije predat mi20370 37 nije predat -- studenti koji su ranije polagali ispit mi18144 36 25 7 (jan 2) mi19039 46 30 8 (jan 1) mi19105 41 30 8 (jan 2) mi19152 38 20 6 (jan 1) mi19188 56 30 9 (jan 2) mi20080 51 30 9 (jan 2) mi20088 38 20 6 (jan 2) mi21404 53 30 9 (jan 2)
Rezultati ispita -- jan 2
Uvid u radove do utorka 13.2. putem maila (kao i obično).
Projekte za ovaj rok možete da doradite do petka 16.2. Kad ih doradite, predajte ih ponovo putem istog formulara koji ste koristili prilikom inicijalne predaje projekta.
Ako ne želite da vam upišem ocenu (ako želite ponovo da izađete na ispit, ili da doradite projekat za neki od narednih rokova), pošaljite mi mail.
Neki komentari na projekte:
- pre predaje projekata, proverite sva pravila vezana za projekte na ovoj stranici;
- mnogi pogrešno pokreću
clang-tidy
(bez kompilacione baze, bez skripte run-clang-tidy) i dobijaju greške da, na primer,<vector>
iliQObject
ne postoje iz čega nekako zaključe daclang-tidy
nema zamerke na ljihov kod; - izvorni kod ne treba da se nalazi u repozitorijumu
azrs-tracking
, projekat na kome radite ima svoj repozitorijum; - ako ostavljate linkove ka tuđim izmenama, navedite autora i objasnite zašto ostavljate linkove ka tuđim izmenama;
- ako ostavljate linkove ka izmenama, te izmene traba da budu vezane za taj konkretan zadatak;
- sam snimak ekrana da ste pokrenuli neki alat ne govori ništa o tome kako ste ga koristili;
- ako posle upotrebe nekog alata niste zbog rezultata koje ste dobili izmenili kod (i postavili link ka tim izmenama), ili bar nešto konkretno zaključili o svom projektu (što ste detaljno opisali), probajte ponovo;
- Git repozitorijum projekta ne treba da sadrži proizvode kompilacije, html
fajlove koje generišu razni alati (gcov, clang-analyzer)... Ako želite da
ih postavite negde, njih još i možete da postavite u repozitorijum
azrs-tracking
.
Ispit Projekat Ocena mi16087 32 20 6 (52) mi16407 30 25 6 (55) mi17035 46 30 8 (76) mi17206 38 25 7 (63) mi17485 47 30 8 (77) mi18181 41 20 7 (61) mi18222 36 30 7 (66) mi19079 40 20 7 (60) mi19082 37 20 6 (57) mi19091 53 30 9 (83) mi19103 55 30 9 (85) mi19108 44 20 7 (64) mi19150 61 30 10 (91) mi19218 38 25 7 (63) mi19228 41 30 8 (71) mi19231 35 30 7 (65) mi19241 43 30 8 (73) mi19312 39 25 7 (64) mi20025 52 30 9 (82) mi20028 30 30 7 (60) mi20034 48 25 8 (73) mi20056 38 30 7 (68) mi20062 34 22 6 (56) mi20091 37 30 7 (67) mi20095 47 30 8 (77) mi20120 38 15 6 (53) mi20127 48 22 7 (60) mi20146 40 30 8 (70) mi20169 37 30 7 (67) mi20171 43 25 7 (68) mi20205 42 30 8 (72) mi20222 48 30 8 (78) mi20350 35 25 7 (60) mi20373 48 22 8 (70) mi21387 46 25 8 (71) mi22356 45 30 8 (75) -- studenti koji nisu predali projekat mi18144 36 nije predat mi18193 30 nije predat mi18283 38 nije predat mi19073 39 nije predat mi19105 41 nije predat mi19127 47 nije predat mi19188 56 nije predat mi19257 34 nije predat mi20080 51 nije predat mi20088 38 nije predat mi20131 48 nije predat mi20378 30 nije predat mi21391 46 nije predat mi21400 43 nije predat mi21404 53 nije predat -- dorađeni projekti, ispit položen u januaru 1 mi18117 30 30 7 (60) mi18170 33 30 7 (63) mi19065 32 30 7 (62) mi19160 32 30 7 (62) mi20015 62 30 10 (92) mi20038 31 30 7 (61) mi20098 41 30 8 (71) mi20200 47 30 8 (77) mi20271 60 30 10 (90) mi21156 57 30 9 (87) -- ispod praga -- (projekti su pregledani samo za studente koji su položili ispit) mi18147 22 mi18165 18 mi18267 8 mi19182 22 mi20159 21 mi20162 18
Rezultati ispita -- jan 1
Ispit Projekat Ocena mi18170 33 10 5 mi19036 35 30 7 mi19057 36 25 7 mi19066 35 30 7 mi19069 32 25 6 mi19081 43 20 7 mi19156 45 30 8 mi19163 61 30 10 mi19224 35 25 7 mi19255 40 20 7 mi19288 47 20 7 mi20042 55 30 9 mi20070 58 30 9 mi20073 51 30 9 mi20079 38 30 7 mi20084 50 30 9 mi20108 56 30 9 mi20187 30 20 6 mi18117 30 nije predat mi19039 46 nije predat mi19065 32 nije predat mi19287 38 nije predat mi20002 50 nije predat mi20015 62 nije predat mi20018 58 nije predat mi20038 31 nije predat mi19152 38 5 (ne unositi) mi19160 32 20 (ne unositi) mi20098 41 10 (ne unositi) mi20200 47 10 (ne unositi) mi20271 60 10 (ne unositi) mi21156 57 20 (ne unositi) -- ispod praga -- (projekti su pregledani samo za studente koji su položili ispit) mi18181 25 mi18283 24 mi19073 22 mi19079 20 mi19091 16 mi19103 26 mi19218 17 mi19228 23 mi19241 5 mi19312 25 mi20062 24 mi20088 28 mi20127 18 mi20169 27 mi20171 23 mi20205 17 mi20350 4 mi21391 8 mr17321 26 -- projekti iz prethodne godine -- mi20359 25
Nalozi na studentskom servisu alas
Proverite da su vam nalozi na servisu alas ispravni:- da možete da se ulogujete koristeći svoj aktuelni broj indeksa;
- da vam je korektno podešeno ime i prezime (po logovanju na sistem preko ssh,
pokrenite komandu `finger`). Ako vam ime i prezume nisu podešeni,
promenite ih sledećom komandom:
chfn -f "Ime Prezime" $USER
(stavite, naravno, svoje ime i prezime) - ako vam aktuelni broj indeksa ne odgovara korisničkom imenu sa alasa,
pored imena i prezimena stavite korisničko ime sa alasa
koje bi odgovaralo novom broju indeksa:
chfn -f "Ime Prezime (mi12345)" $USER
Snimci predavanja
Snimci predavanja ranijih godina:Čas 1: Uvod u kurs, GCC, BASH, Vim (nije sniman)
Fakultativno: Crazy code, crazy coders (W. E. Brown)
Čas 2: Uvod u Git
Čas 3: Git - nastavak
Čas 4: Git From the Bits Up (T. Berglund)
Čas 5: GDB
Čas 6: Git i GitLab
Čas 7: Paketi
Čas 8: Sanitajzeri
Čas 9: LCov, Hotspot, Git hooks, ...
Asistenti
Pragovi
Prag na ispitu je 30 poena, a na projektu je 15.
Ispit
Primer zadataka kakve možete očekivati na ispitu vidite ovde.
Napomena: Na ispitu pakete koji vam zatrebaju za zadatak ćete moći da instališete preko konana. Za ovaj primer iznad koristite normalan paket menadžer koji imate na sistemu (apt, yum...).
Projekti
Projekti se rade u timu, ali se ocenjuju pojedinačno -- svakome se boduju oni zadaci koje je uradio/la. Maksimalan broj poena koji je putem projekta moguće osvojiti je 30. Ocenjuje se primena alata koji se obrađuju na predavanjima i vežbama, ali i drugih alata koje ste koristili.
Rok za predaju projekata
Projekte će biti moguće predavati u svkom ispitnom roku preko narednog linka:
https://forms.gle/8r8fbTR8qNzPSXtn8Poslednji dan za predaju projekta za svaki ispitni rok je termin ispita.
Studenti koji su prethodne godine radili projekat, neka se prijave preko istog ovog formulara i neka stave "od prethodne godine, XX poena" umesto linka ka kanban tabli (zamenite XX brojem poena koji ste imali na projektu).
Rezultati će biti objavljivani zajedno sa rezultatima ispita.
Informacije o izradi projekata
Možete da radite sledeće:
- Studenti koji u ovom semestru rade projekat iz RS ili RG, mogu da demonstriraju znanja "alata" na istom. Dozvoljeno je raditi i na tuđem projektu iz RS-a.
- Studenti koji su prethodne godine radili projekat iz RS, mogu da nastave sa razvojem tog projekta i pri tome da demonstriraju znanja "alata" na istom.
- Studenti koji žele, mogu umesto rada na fakultetskom projektu da izaberu neki aktivni projekat otvorenog koda pisan u jeziku C++ i da rade na njemu.
Zadaci
Na ličnom GitLab nalogu napraviti projekat koji će se zvati azrs-tracking i u njemu napraviti kanban tablu i kartice za svaki od zadataka koje planirate da uradite. Ovde ćete voditi evidenciju o progresu zadatka i opisivati način upotrebe alata koji su u tom zadatku korišćeni.
Dakle, napravite kanban kartice za svaki zadatak, i dok radite na zadatku dodajete komentare u samoj kartici šta ste i kako uradili. Dodajte i snike ekrana alata tokom upotrebe.
Dodatak: Na svaki zadatak stavite tag na koji se alat odnosi. Tagovi treba da budu napisani malim slovima, reči unutar taga razdvojene crticama. Na primer, za Git, tag bi bio git, za Clang Format bi bio clang-format, i slično.
Bitno: Svrha alata je da unaprede kvalitet nekog softvera. Tako da, kad alatom detektujete neki problem i napravite izmene nad izvornim kodom projekta nad kojim ste primenili alat, pošaljite merge zahtev, i link ka zahtevu takođe dodate kao komentar na kartici.
Sam repozitorijum azrs-tracking ne mora da sadrži ništa, -- kod projekta držite u repozitorijumu u kom radite, a izveštaji su unutar kanban tabele. Otvarate repozitorijum da biste mogli da napravite kanban tablu.
U svakom ispitnom roku će biti objavljivan formular preko kog predajete završen projekat (link ka kanban tabeli).
- Git (tag git)
- Koristiti neki poznati model grananja, pisati uredne commit poruke, koristiti merge zahteve prilikom pravljenja izmena na projektu.
- GDB (tag gdb)
- Koristiti dibager prilikom nalaženja neke greške u projektu na kome radite i ispraviti tu grešku.
- GDB (tag gdb-command)
- Napraviti neku korisnu komandu za GDB (Python dodatak).
- CI (tag ci)
- Osmisliti i implementirati nekoliko neuobičajenih CI zadataka koji će se izvršavati kad god se nova revizija koda pošalje na server.
- git hook (tag git-hook)
- Osmisliti i implementirati bar 3 neuobičajena git hook-a.
- CMake (tag cmake)
- Napraviti ili unaprediti CMakeLists.txt za projekat (ako je drugi član tima napravio CMakeLists.txt, dodajte neke novine u isti).
- Valgrind (tag valgrind)
- istražiti funkcije koje troše više vremena nego što bi trebalo i rešiti problem.
- Gammaray (tag gammaray)
- U slučaju da projekat koristi Qt, ispitati aplikaciju -- korisnički interfejs i da li ima problema u istom.
- ClangTidy (tag clang-tidy)
- Automatski refaktorisati kod izabranim clang-tody proverama. Objasniti zbog čega ste uključili baš te provere.
- ClangFormat (tag clang-format)
- Napraviti svoj format zasnovan na nekom već postojećem. Obezbediti da je ceo projekat formatiran tim stilom.
- Statička analiza koda (tagovi cppcheck, clang-tidy, clazy, clang-analyzer)
- Preko nekog od alata za statičku analizu koda naći 2-3 problema u projektu na kome radite. Ispravite problem i pošaljite zakrpu putem merge zahteva.
- Docker (tag docker)
- Pripremiti aplikaciju da se može pokrenuti kao Docker kontejner (dokerizovati). Bonus: kombinovati sa CI.
- GCov (tag gcov)
- Generisati coverage izveštaj za projekat.
- Ostali alati
- Na projektima će biti uračunato i ako ste isprobali i dokumentovali upotrebu i nekih alata koji nisu predavani na kursu.
- pre predaje projekata, proverite sva pravila vezana za projekte na ovoj stranici;
- mnogi pogrešno pokreću clang-tidy (bez kompilacione baze, bez skripte run-clang-tidy) i dobijaju greške da, na primer, <vector> ili QObject ne postoje iz čega nekako zaključe da clang-tidy nema zamerke na ljihov kod;
- izvorni kod ne treba da se nalazi u repozitorijumu azrs-tracking, projekat na kome radite ima svoj repozitorijum;
- ako ostavljate linkove ka tuđim izmenama, navedite autora i objasnite zašto ostavljate linkove ka tuđim izmenama;
- ako ostavljate linkove ka izmenama, te izmene traba da budu vezane za taj konkretan zadatak;
- sam snimak ekrana da ste pokrenuli neki alat ne govori ništa o tome kako ste ga koristili;
- ako posle upotrebe nekog alata niste zbog rezultata koje ste dobili izmenili kod (i postavili link ka tim izmenama), ili bar nešto konkretno zaključili o svom projektu (što ste detaljno opisali), probajte ponovo;
- Git repozitorijum projekta ne treba da sadrži proizvode kompilacije, html fajlove koje generišu razni alati (gcov, clang-analyzer)... Ako želite da ih postavite negde, njih još i možete da postavite u repozitorijum azrs-tracking.