Cilj predmeta
Osposobiti studente za primenu preporučene prakse, standarda, metoda, tehnika i alata u programiranju.
Ishod predmeta
Studenti poseduju znanja i veštine zasnovanih na standardima i dobroj praksi u programiranju informacionih sistema.
Teorijska nastava
Tehnike za pravljenje raumljivog izvornog koda, upotreba imena i izgled izvornog koda, upotreba klasa, enumeracioni tipovi, promenljive, imenovane konstante i drugi slični entiteti, korišćenje kontrolnih struktura, obrada grešaka ili izuzetaka, sprečavanje probijanja zašite na nivou koda (prepunjenje bafera, prekoračenje indeksa niza, itd.). Organizacija izvornog koda (ulazne naredbe, rutine, klase, paketi i druge strukture), dekompozicija. Testiranje u različitim fazama programiranja. Modularizacija programskog koda. Imperativno programiranje. Struktuirano programiranje. Napredno proceduralno i objektno-orijentisano programiranje. Implementacija pojedinih algoritama i struktura podataka u prisustvu ograničenih resursa. Dinamičko dodeljivanje memorije. Rekurzija. Rad sa perzistentnom memorijom: čitanje, pisanje, pravila pristupanja deljenim resursima. Pojam toka podataka. Pretraživanje podataka.
Praktična nastava
Strukturiranje koda, debagovanje, statička analiza. Recenzija i revizija koda (IEEE 1028). Integracija. Standardi u programiranju (programski jezici, standardi za format i sadržaje dokumenta, platforme, API standardi, alati). Primena standarda u programskim jezicima C, C++ i Java. Upotreba stečenog znanja u rešavanju konkretnih aktuelnih problema u različitim oblastima i aplikacionim domenima.