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.
Алати за развој софтвера
Резултати испита -- септембар 1
Увид у радове до четвртка 12.9. путем маила (као и обично).
Суденти којима недостаје до 3 поена (укључујући и 3) за већу оцену, а немају максимум на пројекту, могу да дораде пројекат то 12.9. Кад их дорадите, предајте их поново путем истог формулара који сте користили приликом иницијалне предаје пројекта.
Замерке на пројекте су исте као у претходним роковима.
Испит Пројекат Оцена mi18147 40 30 8 mi18267 35 30 7 mi19031 43 15 6 mi19107 45 30 8 mi19139 41 30 8 mi19182 30 30 7 mi19197 46 30 8 mi20043 52 30 9 mi20045 70 30 10 mi20104 30 20 6 mi20134 38 30 7 mi20139 60 30 10 mi20188 44 30 8 mi21409 32 30 7 -- студенти који су раније полагали испит mi18165 30 30 7 (јун 1) mi18193 30 30 7 (јан 2) mi18261 34 30 7 (јун 1) mi18283 38 15 6 (јан 2) mi19073 39 15 6 (јан 2) mi19074 43 30 8 (јун 1) mi19115 32 30 7 (јун 1) mi19127 47 30 8 (јан 2) mi19238 43 15 6 (јун 1) mi19257 34 20 6 (јан 2) mi19267 31 30 7 (јун 1) mi19287 38 15 6 (јан 1) mi20002 50 30 9 (јан 1) mi20018 58 30 9 (јан 1) mi20064 30 30 7 (јун 1) mi20131 48 30 8 (јан 2) mi20159 30 30 7 (јун 1) mi20370 37 30 7 (јун 1) mi21391 46 15 7 (јан 2) mi21400 43 15 6 (јан 2) -- испод прага mi18474 0 mi19365 17 30 праг
Резултати испита -- јун 1
Увид у радове до четвртка 13.6. путем маила (као и обично).
Пројекте за овај рок можете да предате до недеље 16.6. Кад их дорадите, предајте их поново путем истог формулара који сте користили приликом иницијалне предаје пројекта.
Ако не желите да вам упишем оцену (ако желите поново да изађете на испит, или да дорадите пројекат за неки од наредних рокова), пошаљите ми маил.
Испит Пројекат Оцена mi19120 30 25 6 mi19172 30 30 7 mi19180 37 25 7 mi19182 20 25 праг mi19354 45 25 8 mi20082 30 30 7 mi20162 38 30 7 mi21399 40 20 7 -- студенти који нису предали пројекат mi18147 19 није предат mi18165 30 није предат mi18261 34 није предат mi19074 43 није предат mi19115 32 није предат mi19139 15 није предат mi19238 43 није предат mi19267 31 није предат mi20064 30 није предат mi20159 30 није предат mi20370 37 није предат -- студенти који су раније полагали испит mi18144 36 25 7 (јан 2) mi19039 46 30 8 (јан 1) mi19105 41 30 8 (јан 2) mi19152 38 20 6 (јан 1) mi19188 56 30 9 (јан 2) mi20080 51 30 9 (јан 2) mi20088 38 20 6 (јан 2) mi21404 53 30 9 (јан 2)
Резултати испита -- јан 2
Увид у радове до уторка 13.2. путем маила (као и обично).
Пројекте за овај рок можете да дорадите до петка 16.2. Кад их дорадите, предајте их поново путем истог формулара који сте користили приликом иницијалне предаје пројекта.
Ако не желите да вам упишем оцену (ако желите поново да изађете на испит, или да дорадите пројекат за неки од наредних рокова), пошаљите ми маил.
Неки коментари на пројекте:
- пре предаје пројеката, проверите сва правила везана за пројекте на овој страници;
- многи погрешно покрећу
clang-tidy
(без компилационе базе, без скрипте run-clang-tidy) и добијају грешке да, на пример,<vector>
илиQObject
не постоје из чега некако закључе даclang-tidy
нема замерке на љихов код; - изворни код не треба да се налази у репозиторијуму
azrs-tracking
, пројекат на коме радите има свој репозиторијум; - ако остављате линкове ка туђим изменама, наведите аутора и објасните зашто остављате линкове ка туђим изменама;
- ако остављате линкове ка изменама, те измене траба да буду везане за тај конкретан задатак;
- сам снимак екрана да сте покренули неки алат не говори ништа о томе како сте га користили;
- ако после употребе неког алата нисте због резултата које сте добили изменили код (и поставили линк ка тим изменама), или бар нешто конкретно закључили о свом пројекту (што сте детаљно описали), пробајте поново;
- Git репозиторијум пројекта не треба да садржи производе компилације, html
фајлове које генеришу разни алати (gcov, clang-analyzer)... Ако желите да
их поставите негде, њих још и можете да поставите у репозиторијум
azrs-tracking
.
Испит Пројекат Оцена 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) -- студенти који нису предали пројекат mi18144 36 није предат mi18193 30 није предат mi18283 38 није предат mi19073 39 није предат mi19105 41 није предат mi19127 47 није предат mi19188 56 није предат mi19257 34 није предат mi20080 51 није предат mi20088 38 није предат mi20131 48 није предат mi20378 30 није предат mi21391 46 није предат mi21400 43 није предат mi21404 53 није предат -- дорађени пројекти, испит положен у јануару 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) -- испод прага -- (пројекти су прегледани само за студенте који су положили испит) mi18147 22 mi18165 18 mi18267 8 mi19182 22 mi20159 21 mi20162 18
Резултати испита -- јан 1
Испит Пројекат Оцена 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 није предат mi19039 46 није предат mi19065 32 није предат mi19287 38 није предат mi20002 50 није предат mi20015 62 није предат mi20018 58 није предат mi20038 31 није предат mi19152 38 5 (не уносити) mi19160 32 20 (не уносити) mi20098 41 10 (не уносити) mi20200 47 10 (не уносити) mi20271 60 10 (не уносити) mi21156 57 20 (не уносити) -- испод прага -- (пројекти су прегледани само за студенте који су положили испит) 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 -- пројекти из претходне године -- mi20359 25
Налози на студентском сервису алас
Проверите да су вам налози на сервису алас исправни:- да можете да се улогујете користећи свој актуелни број индекса;
- да вам је коректно подешено име и презиме (по логовању на систем преко ssh,
покрените команду `finger`). Ако вам име и презуме нису подешени,
промените их следећом командом:
chfn -f "Ime Prezime" $USER
(ставите, наравно, своје име и презиме) - ако вам актуелни број индекса не одговара корисничком имену са аласа,
поред имена и презимена ставите корисничко име са аласа
које би одговарало новом броју индекса:
chfn -f "Ime Prezime (mi12345)" $USER
Снимци предавања
Снимци предавања ранијих година:Час 1: Увод у курс, GCC, BASH, Vim (није сниман)
Факултативно: Crazy code, crazy coders (W. E. Brown)
Час 2: Увод у Git
Час 3: Git - наставак
Час 4: Git From the Bits Up (T. Berglund)
Час 5: GDB
Час 6: Git и GitLab
Час 7: Пакети
Час 8: Санитајзери
Час 9: LCov, Hotspot, Git hooks, ...
Асистенти
Прагови
Праг на испиту је 30 поена, а на пројекту је 15.
Испит
Пример задатака какве можете очекивати на испиту видите овде.
Напомена: На испиту пакете који вам затребају за задатак ћете моћи да инсталишете преко конана. За овај пример изнад користите нормалан пакет менаджер који имате на систему (apt, yum...).
Пројекти
Пројекти се раде у тиму, али се оцењују појединачно -- свакоме се бодују они задаци које је урадио/ла. Максималан број поена који је путем пројекта могуће освојити је 30. Оцењује се примена алата који се обрађују на предавањима и вежбама, али и других алата које сте користили.
Рок за предају пројеката
Пројекте ће бити могуће предавати у свком испитном року преко наредног линка:
https://forms.gle/8r8fbTR8qNzPSXtn8Последњи дан за предају пројекта за сваки испитни рок је термин испита.
Студенти који су претходне године радили пројекат, нека се пријаве преко истог овог формулара и нека ставе "од претходне године, XX poena" уместо линка ка канбан табли (замените XX бројем поена који сте имали на пројекту).
Резултати ће бити објављивани заједно са резултатима испита.
Информације о изради пројеката
Можете да радите следеће:
- Студенти који у овом семестру раде пројекат из РС или РГ, могу да демонстрирају знања "алата" на истом. Дозвољено је радити и на туђем пројекту из РС-а.
- Студенти који су претходне године радили пројекат из РС, могу да наставе са развојем тог пројекта и при томе да демонстрирају знања "алата" на истом.
- Студенти који желе, могу уместо рада на факултетском пројекту да изаберу неки активни пројекат отвореног кода писан у језику C++ и да раде на њему.
Задаци
На личном GitLab налогу направити пројекат који ће се звати azrs-tracking и у њему направити канбан таблу и картице за сваки од задатака које планирате да урадите. Овде ћете водити евиденцију о прогресу задатка и описивати начин употребе алата који су у том задатку коришћени.
Дакле, направите канбан картице за сваки задатак, и док радите на задатку додајете коментаре у самој картици шта сте и како урадили. Додајте и снике екрана алата током употребе.
Додатак: На сваки задатак ставите таг на који се алат односи. Тагови треба да буду написани малим словима, речи унутар тага раздвојене цртицама. На пример, за Git, таг би био git, за Clang Format би био clang-format, и слично.
Битно: Сврха алата је да унапреде квалитет неког софтвера. Тако да, кад алатом детектујете неки проблем и направите измене над изворним кодом пројекта над којим сте применили алат, пошаљите merge захтев, и линк ка захтеву такође додате као коментар на картици.
Сам репозиторијум azrs-tracking не мора да садржи ништа, -- код пројекта држите у репозиторијуму у ком радите, а извештаји су унутар канбан табеле. Отварате репозиторијум да бисте могли да направите канбан таблу.
У сваком испитном року ће бити објављиван формулар преко ког предајете завршен пројекат (линк ка канбан табели).
- Git (таг git)
- Користити неки познати модел гранања, писати уредне commit поруке, користити merge захтеве приликом прављења измена на пројекту.
- GDB (таг gdb)
- Користити дибагер приликом налажења неке грешке у пројекту на коме радите и исправити ту грешку.
- GDB (таг gdb-command)
- Направити неку корисну команду за GDB (Python додатак).
- CI (таг ci)
- Осмислити и имплементирати неколико неуобичајених CI задатака који ће се извршавати кад год се нова ревизија кода пошаље на сервер.
- git hook (таг git-hook)
- Осмислити и имплементирати бар 3 неуобичајена git hook-a.
- CMake (таг cmake)
- Направити или унапредити CMakeLists.txt за пројекат (ако је други члан тима направио CMakeLists.txt, додајте неке новине у исти).
- Valgrind (таг valgrind)
- истражити функције које троше више времена него што би требало и решити проблем.
- Gammaray (таг gammaray)
- У случају да пројекат користи Qt, испитати апликацију -- кориснички интерфејс и да ли има проблема у истом.
- ClangTidy (таг clang-tidy)
- Аутоматски рефакторисати код изабраним clang-tody проверама. Објаснити због чега сте укључили баш те провере.
- ClangFormat (таг clang-format)
- Направити свој формат заснован на неком већ постојећем. Обезбедити да је цео пројекат форматиран тим стилом.
- Статичка анализа кода (тагови cppcheck, clang-tidy, clazy, clang-analyzer)
- Преко неког од алата за статичку анализу кода наћи 2-3 проблема у пројекту на коме радите. Исправите проблем и пошаљите закрпу путем merge захтева.
- Docker (таг docker)
- Припремити апликацију да се може покренути као Docker контејнер (докеризовати). Бонус: комбиновати са CI.
- GCov (таг gcov)
- Генерисати coverage извештај за пројекат.
- Остали алати
- На пројектима ће бити урачунато и ако сте испробали и документовали употребу и неких алата који нису предавани на курсу.
- пре предаје пројеката, проверите сва правила везана за пројекте на овој страници;
- многи погрешно покрећу clang-tidy (без компилационе базе, без скрипте run-clang-tidy) и добијају грешке да, на пример, <vector> или QObject не постоје из чега некако закључе да clang-tidy нема замерке на љихов код;
- изворни код не треба да се налази у репозиторијуму azrs-tracking, пројекат на коме радите има свој репозиторијум;
- ако остављате линкове ка туђим изменама, наведите аутора и објасните зашто остављате линкове ка туђим изменама;
- ако остављате линкове ка изменама, те измене траба да буду везане за тај конкретан задатак;
- сам снимак екрана да сте покренули неки алат не говори ништа о томе како сте га користили;
- ако после употребе неког алата нисте због резултата које сте добили изменили код (и поставили линк ка тим изменама), или бар нешто конкретно закључили о свом пројекту (што сте детаљно описали), пробајте поново;
- Git репозиторијум пројекта не треба да садржи производе компилације, html фајлове које генеришу разни алати (gcov, clang-analyzer)... Ако желите да их поставите негде, њих још и можете да поставите у репозиторијум azrs-tracking.