Fakultet tehničkih nauka

Predmet: Napredne tehnike programiranja (17.SEWN35)

Osnovne informacije:
 
Kategorija Naučno-stručni
Uža naučna oblast Primenjene računarske nauke i informatika
ESPB 4

Upoznavanje studenata sa naprednim tehnikama programiranja i savladavanje osnovnih teorijskih znanja i tehnika. Osposobljavanje studenata za analizu i primenu adekvatne metodologije programiranja za postavljeni zadatak i uočavanje prednosti i mana različitih metodologija.

Po okončanju predmeta studenti su sposobni da razumeju različite metodologije programiranja, terminologiju iz ove oblasti, analiziraju i primene adekvatne metodologije i tehnike za postavljen zadatak i kritički evaluiraju rešenje i navedu prednosti i nedostatke. Takođe su osposobljeni za praktičnu upotrebu određenih tehnika i alata u domenu naprednih metodologija programiranja.

Teorijska nastava: metodologije i modeli programiranja: objektno-orijentisano, imperativno, delarativno, programiranje orijentisano ka procesima, funkcionalno, konkurentno, programiranje vođeno događajima (event-driven programming), korisnički orijentisano (end-user programming). Tehnike i pojmovi: iteratori, generatori, korutine, mixins, lenja evaluacija, prototipi, meta-programiranje, sistem tipova. Funkcionalno programiranje: lambda calculus, nepromenjivost (immutability), propratni efekti (side-effects), funkcije višeg reda, rekurzija;algoritmi za obradu velikih količina podatka – (map-reduce); funkcionalni programski jezici (Lisp, Scheme, Clojure, Haskel, Erlang). Programiranje orijentisano ka aspektima (Aspect-Oriented Programming – AOP). Skript jezici i dinamičko programiranje. Programski jezici sa više paradigmi (multi-paradigm) - Python/Jython, Java, Scala, C++. Upotreba i kombinovanje više programskih jezika (language polyglotism): mehanizmi integracije, integracione platforme, konverzije tipova, alati. Praktična nastava: obuka za korišćenje i praktičnu primenu programskih jezika, tehnika i alata baziranih na različitim metodologijama i programskim modelima. Primena naučenog u implementaciji projektog zadatka uz upotrebu različitih programskih jezika, tehnika i alata i integracija programskog koda u jedinstveno rešenje.

Predavanja; Računarske vežbe; Konsultacije. Rešavanje projektnog zadatka kroz rad u okviru projektnih timova. Poslednjih nedelja semestra organizuju se javne prezentacije projektnih zadataka najuspešnijih timova i diskutuju se postignuti rezultati. Odbrana projekta je usmena. Završni ispit je usmeni. Ocena ispita se formira na osnovu uspeha sa odbrane projektnog zadatka i završnog usmenog ispita.

Autori Naziv Godina Izdavač Jezik
Chassell, R.J. Introduction to Programming in Emacs Lisp 2009 GNU Press Engleski
Ducasse, S., Zagidulin, D., Hess, N., Chloupis, D. Pharo by Example 2017 Square Brackets Associates Engleski
Doxsey, C. An Introduction to Programming in Go 2012 Caleb Doxsey - selfpublished Engleski
Predmetna aktivnost Predispitna Obavezna Broj poena
Predmetna aktivnost
Usmeni deo ispita
Predispitna
Ne
Obavezna
Da
Broj poena
40.00
Predmetna aktivnost
Predmetni projekat
Predispitna
Da
Obavezna
Da
Broj poena
60.00
Predavanja
Predavanja
Računarske vežbe
Računarske vežbe
Računarske vežbe