Skip to main content

DIT - Program engeneering

Subject name

Program engeneering

Details
Code
VSITE253
Abbrev.
PRIN
ECTS
5
Year
2
Semester
Winter semester
Type
major obligatory
NQF Level 7
Master's study
E-Learning
0%
Activities
DIT zg - Sum 24/25
ECTS
Units
Hours
Total
T
1
15
2
30
N
0.5
15
1
15
L
0.5
10
1
15
S
0
0
0
0
PN
0
0
0
0
PT
0
2
2
0
PR
0
0
0
0
EN
0
0
0
0
ET
0
1
2
0
AL
3
1
90
90
TeachersLeaders: Tomislav Soldo, pred.
PrerequisitsNone
Content

Sustav za automatsko upravljanje prevođenja i kreiranja projekata ili programa. Zadaćna datoteka za opis procesa kreiranja projekta ili programa. Automatsko upravljane zadaćama po vremenskoj bazi. Zadaćna datoteka, pravila pisanja i način izvršavanja. Zadaće, uvjeti za izvršenje zadaće i akcije koje se izvode. Ugrađena pravila. Grupiranje pravila po ovisnostima i zadatcima. Uvjetno izvršavanje zadaća. Vježbe na alatima make i gmake.
Sustav za upravljanje promjenama u datotekama i projektu ( Revision control system ). Zapis svih promjena u datotekama i projektu, svrha i značaj. Označavanje pojedinih trenutnih verzija projekta. Grananje projekta. Upravljanje granama projekta, stvaranje i spajanje grana. Uobičajeni tipovi grana projekata, objava, ispravci grešaka, dodavanje nove funkcionalnosti. Funkcionalnost i upotreba sa stanovišta razvojnika i administratora. Primjeri i vježbe upotrebom alata GIT.

Learning objectives

Osposobiti studenta za primjenu metoda vođenja programerskih projekata.

Learning outcomes

1. List and explain the systems for managing projects, the purpose and significance of records.
2. Specify and write the task file.
3. Manage tasks, incorporate rules.
4. Manage changes in the project, use the make/gmake tools.
5. Use branching and merging, indicate current versions, use the GIT system.

Competencies

Kolegij pruža temeljna znanja potrebna za upravljanje kreiranjem projekata i upravljanje sustavom za kontrolu verzija projekata.

Recommended Literature

1. Mecklenburg, R.: Managing Projects with GNU Make, Third Edition, O'Reilly Media, 2004.
2. Loeliger, J.: Version Control with Git, O'Reilly Media, 2009.
3. Chacon, S.: Pro Git, APRESS, 2009.
4. Stallman, R. M.; McGrath, R.: GNU Make: A Program for Directed Compilation, GNU Press, 2002.

Additional Literature
lectures (T)
  1. - Osnovni koncepti programiranja, pisanje, prevođenje i izvršavanje programa. Detaljni koraci kod prevođenja programa s naglaskom na duljinu trajanja svake od faza. - C programski jezik, povijest i značaj. Struktura C programskog jezika, međusobna ovisnost datoteka izvornog koda i datoteka zaglavlja. - Povijest Unix i Linux operativnih sustava. Osnovne naredbe za izvođenje kroz terminal. - Make kao alat za prevođenje složenih programerskih projekata.
  2. - Koncept zadaćnih datoteka, njihov smisao i osnovni dijelovi zadaćne datoteke - Sadržaj zadaćne datoteke. Opis cilja, preduvjeta i recepata. - Na primjeru jednostavne zadaćne datoteke pokazati strukturu i međusobnu povezanost dijelova datoteke. - Način na koji make obrađuje zadaćnu datoteku, redoslijed izvršavanja pojedinih dijelova datoteke i pravila za zaobilaženje pojedinih dijelova. - Što su to varijable, kako se koriste i koje su osnovne vrste grešaka kod korištenja varijabli - Prikaz korištenja MAKE-a za namjene koje nisu strogo prevođenje programskog koda
  3. - Detaljan sadržaj zadaćne datoteke, eksplicitna pravila, implicitna pravila, varijable i naredbe. - Sintaksa pisanja komentara te pisanje linija zadaćne datoteke u više redaka - Standardni nazivi zadaćnih datoteka u različitim inačicama MAKE-a. Korištenje ne standardnih naziva i načina na koji se oni izvode u MAKE-u. - Uključivanje drugih vanjskih datoteka prilikom izvođenja standardne - Koncept pravila u zadaćnoj datoteci, njihov poredak i način označavanja - Sintaksa pisanja pravila, korištenje .RECIEPEPREFIX varijable - Definiranje tipova preduvjeta. Namjena običnih preduvjeta i 'order only' preduvjeta
  4. - Korištenje zamjenskih znakova za poopćavanje sintakse zadaćne datoteke. Tipične pogreške kod korištenja zamjenskih znakova. Korištenje 'wildcard' funkcije. - Traženje preduvjeta u ostalim mapama, a ne samo u lokalnoj mapi. Korištenje VPATH varijable. - Definicija lažnih ciljeva i njihove namjene. Korištenje .PHONY varijable - Korištenje pravila koja nemaju recept ili preduvjeta - Prazne ciljne datoteke kao podvrsta lažnih ciljnih datoteka i njihova namjena kod spremanja događaja - Korištenje više ciljeva unutar jednog pravila te automatsko generiranje preduvjeta
  5. - Sintaksa pisanja recepata i veza s naredbama koje se izvršavaju u terminalu operativnog sustava. - Dijeljenje recepata u više redova i korištenje varijabli u receptima. - Korištenje 'echo' naredbe za ispis potvrde na terminalu - Izvršavanje recepata u jednoj ili više ljuski operativnog sustava - Upravljanje greškama kod izvršavanja recepata - Prisilno zaustavljanje MAKE-a u slučajevima mrtvih petlji ili grešaka kod izvršavanja zadaćne datoteke - Definiranje grupa recepata i načini njihovog izvršavanja i pozivanja
  6. - Varijable u zadaćnim datotekama, njihova usporedba s varijablama u programskim jezicima - Osnove korištenja varijabli, pisanje i pozivanje - Različiti načini pisanja varijabli, prednosti i nedostaci - Dodavanje teksta na postojeću varijablu te korištenje varijabli koje se protežu preko više linija - Korištenje varijabli okoline i varijabli s posebnom namjenom
  7. - Uvjetni dijelovi zadaćnih datoteka, njihova svrha i praktična primjena. Usporedba s uvjetnim dijelovima u programskim jezicima - Različite sintakse uvjeta i primjeri kroz praksu - Korištenje 'ifdef' funkcije za provjeru da li je varijabla definirana i tipične greške kod korištenja navedene funkcije
  8. - Funkcije za obradu teksta i njihova primjena u zadaćnim datotekama za generiranje putanja i generiranje sadržaja recepata - Sintaksa poziva funkcija, paralela s načinom pozivanja varijabli - Najčešće korištene funkcije za analizu i obradu teksta - Najčešće korištene funkcije za generiranje naziva datoteka - Opis funkcija 'origin', namjena i opis vrijednosti koje funkcija 'origin' vraća kao rezultat
  9. - Implicitna pravila kao pomagalo za ažuriranje datoteka bez korištenja detaljno specificiranih pravila - Popis implicitnih pravila s uputama za korištenje i pozivanje - Varijable koje se koriste u implicitnim pravilima - Implicitna pravila koja koriste uzorke
  10. - Automatske varijable, način korištenja i njihova posebnost u odnosu na klasične varijable - Sprječavanje izvršavanja implicitnih pravila pisanjem zasebnih pravila za svaku od datoteka - Algoritam za pretraživanje implicitnih pravila koji će se izvršiti za pojedinu ciljnu datoteku - Načini pokretanje Make-a i parametri koji se pri tome mogu koristiti
  11. - Povijest sustav za upravljanje verzijama softvera. Vrste i načini upravljanja verzijama softvera - Povijest GIT-a kao jedne od vrsta sustava za upravljanje verzijama - Osnove GIT-a, osnovni koncepti rada, upravljanje slikama, a ne razlikama
  12. - Načini inicijalizacije repozitorija u trenutnoj mapi, posljedice inicijalizacije - Kloniranje postojećeg repozitorija. Sintaksa procesa kloniranja i posljedica na lokalni direktorij - Bilježenje promjena u repozitoriju, različiti statusi datoteka u lokalnoj mapi
  13. - Pregled povijesti spremanja u repozitorij, korištenje 'log' naredbe i parametara za strukturirano ispisivanje povijesti spremanja u repozitorij. Ograničavanje ispisa iz log-a. Grafički alati za pregled povijesti spremanja u repozitorij - Posljedice spremanja datoteka u repozitorij i utjecaj na promjene u repozitoriju - Rad s udaljenim repozitorijima, kloniranje podataka, dodavanje referenci na udaljene repozitorije, uređivanje i brisanje referenci - Označavanje verzija softvera. Vrste oznaka, njihovo dodavanje, uređivanje i brisanje
  14. - Namjena grananja u repozitoriju GIT-a, dobre i loše strane procesa - Osnove grananja i spajana grana, izazovi koji se pojavljuju u procesu spajanja grana - Upravljanje granama, dodavanje, uređivanje i brisanje grana - Pregled tipova grana s primjerima korištenja u praksi
  15. - Udaljene grane, namjena i upravljanje udaljenim granama - 'Rebasing', osnovni principi rada, razlika između 'merge-a' i 'rebase-a'. Složeni primjer 'rebase-a' i opasnosti koje se mogu pojaviti - Protokoli koje GIT koristi, prednosti i nedostaci svakog od protokola. Primjeri korištenja - GIT Hosting, praktični primjeri
numeric exercises (N)
  1. - Osnovni koncepti programiranja, pisanje, prevođenje i izvršavanje programa. Detaljni koraci kod prevođenja programa s naglaskom na duljinu trajanja svake od faza. - C programski jezik, povijest i značaj. Struktura C programskog jezika, međusobna ovisnost datoteka izvornog koda i datoteka zaglavlja. - Povijest Unix i Linux operativnih sustava. Osnovne naredbe za izvođenje kroz terminal. - Make kao alat za prevođenje složenih programerskih projekata.
  2. - Koncept zadaćnih datoteka, njihov smisao i osnovni dijelovi zadaćne datoteke - Sadržaj zadaćne datoteke. Opis cilja, preduvjeta i recepata. - Na primjeru jednostavne zadaćne datoteke pokazati strukturu i međusobnu povezanost dijelova datoteke. - Način na koji make obrađuje zadaćnu datoteku, redoslijed izvršavanja pojedinih dijelova datoteke i pravila za zaobilaženje pojedinih dijelova. - Što su to varijable, kako se koriste i koje su osnovne vrste grešaka kod korištenja varijabli - Prikaz korištenja MAKE-a za namjene koje nisu strogo prevođenje programskog koda
  3. - Detaljan sadržaj zadaćne datoteke, eksplicitna pravila, implicitna pravila, varijable i naredbe. - Sintaksa pisanja komentara te pisanje linija zadaćne datoteke u više redaka - Standardni nazivi zadaćnih datoteka u različitim inačicama MAKE-a. Korištenje ne standardnih naziva i načina na koji se oni izvode u MAKE-u. - Uključivanje drugih vanjskih datoteka prilikom izvođenja standardne - Koncept pravila u zadaćnoj datoteci, njihov poredak i način označavanja - Sintaksa pisanja pravila, korištenje .RECIEPEPREFIX varijable - Definiranje tipova preduvjeta. Namjena običnih preduvjeta i 'order only' preduvjeta
  4. - Korištenje zamjenskih znakova za poopćavanje sintakse zadaćne datoteke. Tipične pogreške kod korištenja zamjenskih znakova. Korištenje 'wildcard' funkcije. - Traženje preduvjeta u ostalim mapama, a ne samo u lokalnoj mapi. Korištenje VPATH varijable. - Definicija lažnih ciljeva i njihove namjene. Korištenje .PHONY varijable - Korištenje pravila koja nemaju recept ili preduvjeta - Prazne ciljne datoteke kao podvrsta lažnih ciljnih datoteka i njihova namjena kod spremanja događaja - Korištenje više ciljeva unutar jednog pravila te automatsko generiranje preduvjeta
  5. - Sintaksa pisanja recepata i veza s naredbama koje se izvršavaju u terminalu operativnog sustava. - Dijeljenje recepata u više redova i korištenje varijabli u receptima. - Korištenje 'echo' naredbe za ispis potvrde na terminalu - Izvršavanje recepata u jednoj ili više ljuski operativnog sustava - Upravljanje greškama kod izvršavanja recepata - Prisilno zaustavljanje MAKE-a u slučajevima mrtvih petlji ili grešaka kod izvršavanja zadaćne datoteke - Definiranje grupa recepata i načini njihovog izvršavanja i pozivanja
  6. - Varijable u zadaćnim datotekama, njihova usporedba s varijablama u programskim jezicima - Osnove korištenja varijabli, pisanje i pozivanje - Različiti načini pisanja varijabli, prednosti i nedostaci - Dodavanje teksta na postojeću varijablu te korištenje varijabli koje se protežu preko više linija - Korištenje varijabli okoline i varijabli s posebnom namjenom
  7. - Uvjetni dijelovi zadaćnih datoteka, njihova svrha i praktična primjena. Usporedba s uvjetnim dijelovima u programskim jezicima - Različite sintakse uvjeta i primjeri kroz praksu - Korištenje 'ifdef' funkcije za provjeru da li je varijabla definirana i tipične greške kod korištenja navedene funkcije
  8. - Funkcije za obradu teksta i njihova primjena u zadaćnim datotekama za generiranje putanja i generiranje sadržaja recepata - Sintaksa poziva funkcija, paralela s načinom pozivanja varijabli - Najčešće korištene funkcije za analizu i obradu teksta - Najčešće korištene funkcije za generiranje naziva datoteka - Opis funkcija 'origin', namjena i opis vrijednosti koje funkcija 'origin' vraća kao rezultat
  9. - Implicitna pravila kao pomagalo za ažuriranje datoteka bez korištenja detaljno specificiranih pravila - Popis implicitnih pravila s uputama za korištenje i pozivanje - Varijable koje se koriste u implicitnim pravilima - Implicitna pravila koja koriste uzorke
  10. - Automatske varijable, način korištenja i njihova posebnost u odnosu na klasične varijable - Sprječavanje izvršavanja implicitnih pravila pisanjem zasebnih pravila za svaku od datoteka - Algoritam za pretraživanje implicitnih pravila koji će se izvršiti za pojedinu ciljnu datoteku - Načini pokretanje Make-a i parametri koji se pri tome mogu koristiti
  11. - Povijest sustav za upravljanje verzijama softvera. Vrste i načini upravljanja verzijama softvera - Povijest GIT-a kao jedne od vrsta sustava za upravljanje verzijama - Osnove GIT-a, osnovni koncepti rada, upravljanje slikama, a ne razlikama
  12. - Načini inicijalizacije repozitorija u trenutnoj mapi, posljedice inicijalizacije - Kloniranje postojećeg repozitorija. Sintaksa procesa kloniranja i posljedica na lokalni direktorij - Bilježenje promjena u repozitoriju, različiti statusi datoteka u lokalnoj mapi
  13. - Pregled povijesti spremanja u repozitorij, korištenje 'log' naredbe i parametara za strukturirano ispisivanje povijesti spremanja u repozitorij. Ograničavanje ispisa iz log-a. Grafički alati za pregled povijesti spremanja u repozitorij - Posljedice spremanja datoteka u repozitorij i utjecaj na promjene u repozitoriju - Rad s udaljenim repozitorijima, kloniranje podataka, dodavanje referenci na udaljene repozitorije, uređivanje i brisanje referenci - Označavanje verzija softvera. Vrste oznaka, njihovo dodavanje, uređivanje i brisanje
  14. - Namjena grananja u repozitoriju GIT-a, dobre i loše strane procesa - Osnove grananja i spajana grana, izazovi koji se pojavljuju u procesu spajanja grana - Upravljanje granama, dodavanje, uređivanje i brisanje grana - Pregled tipova grana s primjerima korištenja u praksi
  15. - Udaljene grane, namjena i upravljanje udaljenim granama - 'Rebasing', osnovni principi rada, razlika između 'merge-a' i 'rebase-a'. Složeni primjer 'rebase-a' i opasnosti koje se mogu pojaviti - Protokoli koje GIT koristi, prednosti i nedostaci svakog od protokola. Primjeri korištenja - GIT Hosting, praktični primjeri
laboratory exercises (L)
  1. Instalacija virtualizacijskog okružja. Instalacija Linux operativnog sustava. Korištenje osnovnih unix naredbi korištenjem terminala.
  2. Koraci prilikom prevođenja izvornog koda pisanog u C programskom jeziku. Korištenje GCC prevoditelja. Razumijevanje generiranih datoteka prilikom svakog od koraka prevođenja.
  3. Pisanje osnovne zadaćne datoteke. Prepoznavanje dijelova zadaćne datoteke. Uočavanje veze između preduvjeta i ciljeva. Prevođenje izvornog koda korištenjem zadaćne datoteke.
  4. Korištenje globalnih varijabli. Pronalaženje izvornog koda van radnog direktorija. Korištenje VPATH varijable.
  5. Korištenje uvjeta pri pisanju zadaćne datoteke. Testiranje sintakse svakog od načina korištenja uvjeta. Provjera da li je varijabla deklarirana.
  6. Funkcije za obradu teksta. Generiranje putanje i naziva datoteka nad kojim se izvršavaju recepti, generiranje sadržaj recepata. Testiranje slijedećih funkcija za obradu teksta: subst, strip, sort, wordlist, filter, addprefix, addsuffix, firstword, words
  7. Osnove korištenja GIT-a. Instalacija GIT-a na lokalnom računalu. Podešavanje osnovnih parametara. Kreiranje repozitorija kroz kloniranje postojećeg repozitorija sa udaljenog računala i kreiranje novog repozitorija (inicijalizacija). Spremanje promjena u GIT repozitorij
  8. Dijeljeni repozitoriji u GIT-u. Kreiranje referenci na udaljene repozitorije. Kloniranje sadržaja udaljenih repozitorija. Dodavanje novih datoteka u prostor za pripremu. Konfiguracija GIT-a da ignorira privremene datoteke.
  9. Grananje u GIT-u. Kreiranje grana i kretanje po granama projekta. Stapanje i brisanje grana. Korištenje grafičkog sučelja za upravljanje granama.
  10. Korištenje internetskih inačica GIT-a.
preliminary exam - theory (PT)
  1. Jedinice predavanja 1-10 (poglavlja 1-10). Student dobiva 50 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
  2. Jedinice predavanja 11-15 (poglavlja 1-15). Student dobiva 50 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
exam - theory (ET)
  1. Jedinice predavanja 1-15 (poglavlja 1-15). Student dobiva 100 pitanja s višestrukim mogućim odgovorima. Pozitivno odgovoreno pitanje donosi 1 bod, pogrešno odgovoreno pitanje donosi -0,5 bodova. U slučaju da nema odgovora, student ne dobiva pozitivne niti negativne bodove. Za pozitivnu ocjenu potrebno je skupiti više od 50% bodova.
autonomus learning (AL)
  1. testovi i kolokviji, konzultacije, samostalni rad i samostalno učenje

Ulica Vjekoslava Klaića 7, 10000 Zagreb, tel. 01/3764200 fax. 01/3764264