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

Hipatija

Ocene su upisane i za januar 1 i za januar 2. Zamolio bih da proverite da li je sve u redu.

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> 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.
                    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:

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/8r8fbTR8qNzPSXtn8

Poslednji 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:

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.

Rezultati ranijih rokova