III semestar

Predmeti:

Objektno-orijentisano programiranje 1

(obavezni, II godina, III semestar)

Uvod. Motivacija i koncepti objektno-orjentisanog programiranja. Istorija razvoja jezika C++. Pregled jezika C++. Prevodioci i alati.
Imperativni elementi jezika C++.
Nasleđe iz jezika C. Deklaracije i definicije. Oblast važenja, vidljivost, životni vek, pristupačnost promenljivih. Proširenja u jeziku C++: konstante, dinamička alokacija, reference, ugrađene funkcije, podrazumevane vrednosti argumenata, preklapanje imena funkcija, novi operatori, prostori imena.
Klase i objekti. Apstrakcija i instanca. Definicija klase. Podaci članovi i funkcije članice. Pravo pristupa. Statički članovi. Prijatelji. Strukture i unije. Ugneždene klase. Konstruktori i destruktori.
Preklapanje operatora. Operatori u jeziku C++. Operatorske funkcije. Binarni i unarni operatori. Specifična preklapanja operatora.
Nasleđivanje. Koncept relacije generalizacije/specijalizacije. Izvedene klase i nasleđivanje. Razlike između nasleđivanja i sadržanja. Zaštićeni članovi. Načini izvođenja.
Polimorfizam.
Virtuelne funkcije članice. Dinamičko vezivanje. Višestruko nasleđivanje.
Izuzeci. Tipovi i objekti izuzetaka. Bacanje i obrada izuzetka.
Šabloni.
Mehanizmi za kreiranje generičkih jedinica. Definicija šablona. Šabloni funkcija i klasa. Generisanje pomoću šablona. Standardna biblioteka šablona.
Ulaz i izlaz. Važnije klase za ulaz i izlaz. Tekstualni i binarni ulaz i izlaz.

Baze podataka 1

(obavezni, II godina, III semestar)

Uvod. Klasična obrada podataka i njeni nedostaci. Koncept baza podataka. Sistemi za upravljanje bazama podataka. Logička i fizička nezavisnost podataka.
Konceptualno modeliranje. Model entiteta i odnosa. Entiteti. Odnosi. Atributi. Dijagram entiteta i odnosa. Prošireni model entiteta i odnosa.
Relacioni model. Relacija. Relaciona šema. Atributi. Primarni ključ. Kandidat ključ. Uslovi integriteta. Dinamički referencijalni integritet. Transformacija modela entiteta i odnosa u relacioni model.
Formalni upitni jezici. Proceduralni i deklarativni upitni jezici. Relaciona algebra. Relacioni račun domena. Relacioni račun torki. Osnove optimizacije upita.
SQL. Definicija podataka. Definicija ograničenja. Upiti. Pogledi. Manipulacija podacima. Kontrola pristupa podacima.
Normalizacija. Funkcijske zavisnosti. Višeznačne zavisnosti. Zavisnosti spajanja. Normalne forme. Dekompozicija. Gubitak informacija. Očuvanje funkcijskih zavisnosti.
Upravljanje tranksacijama. Konkurentan pristup bazi. Transakcije. Serijski i serijalizovan redosled. Provera serijalizovanosti. Obezbeđivanje serijalizovanosti. Otpornost na otkaze i oporavak od kvara.

Osnovi računarske tehnike 2

(obavezni, II godina, III semestar)

Projektovanje digitalnih sistema Operacione i upravljačke jedinice. Operacije. Podaci. Mikrooperacije. Struktura digitalnog sistema. Struktura jedinice digitalnog sistema. Operaciona jedinica i dijagrami toka. Upravljačka jedinica. Projektovanje operacionih i upravljačkih jedinica. Operaciona jedinica i dijagrami toka. Osnovne aritmetičke, logičke i pomeračke operacije. Struktura operacione jedinice i dijagrami toka osnovnih operacija. Složene aritmetičke operacije. Struktura operacione jedinice i dijagrami toka složenih operacija. Upravljačka jedinica. Realizacija sa elementima za kašnjenje. Realizacija kao standardna sekvencijalna prekidačka mreža sa flip-flopovima, registrom ili brojačem. Realizacija sa brojačem koraka i dekoderom. Realizacija sa mikroprogramiranjem.

Digitalni računari Struktura računara. Memorija. Procesor. Ulazno/uzlazni sistem. Magistrala. Funkcionisanje računara. Faze izvršavanja instrukcije. Arhitektura i organizacija računara. Arhitektura. Programski model. Programski brojač, registri podataka, adresni, bazni i indeksni registri, registri opšte namene, ukazivač steka i statusna reč. Tipovi podataka. Celobrojne veličine bez i sa znakom. Veličine u pokretnom zarezu. Formati instrukcija. Troadresni, dvoadresni, jednoadresni, nulaadresni i promenljivi format. Načini adresiranja. Direktno i indirektno registarsko, direktno i indirektno memorijsko, bazno, indeksno i bazno indeksno, autoinkrement i autodekrement, relativno i neposredno. Skup instrukcija. Instrukcije prenosa, aritmetičke, logičke, pomeračke i upravljačke instrukcije. Mehanizam prekida. Čuvanje konteksta i utvrđivanje adrese prekidne rutine.

Algoritmi i strukture podataka 2

(izborni, II godina, III semestar)

Osnovni metodi pretraživanja. Sekvencijalno pretraživanje – optimizacije i primene u neuređenim i uređenim tabelama. Binarno pretraživanje – osnovni algoritam, primena u povećanoj tabeli i tabeli nepoznate veličine. Interpolaciono pretraživanje. Fibonacci-jevo pretraživanje.
Stablo binarnog pretraživanja.
Ispitivanje, umetanje i brisanje, efikasnost operacija. Visinski balansirana (AVL) stabla – operacije i performanse. Raširena (splay) stabla, 2-3 stabla i crveno-crna stabla. Optimalno stablo binarnog pretraživanja i približno optimalna stabla. Primene - tabela simbola i prioritetni red.
Stabla opšteg pretraživanja. Stablo m-arnog pretraživanja. B, B*, i B+ stabla, stabla digitalnog pretraživanja.
Heširanje. Heš funkcije zavisne i nezavisne od raspodele ključeva. Razrešavanje kolizija otvorenim ulančavanjem (linearno, kvadratno, dvostruko heširanje) i ulančavanjem (odvojeno i objedinjeno). Performanse heširanja. Spoljašnje heširanje (standardno, dinamičko i proširljivo).
Unutrašnje sortiranje.
Sortiranje poređenjem - metodi umetanja (direktno, Shellsort), metodi selekcije (direktna, pomoću stabla selekcije, Heapsort) i metodi zamene (Bubblesort, Quicksort, pobitno razdvajanje). Metodi sortiranja linearne složenosti (Radix, sortiranje brojanjem, adresno sortiranje). Performanse metoda sortiranja. Primena principa sortiranja - statistika poretka.
Spoljašnje sortiranje.
Direktno spajanje, prirodno spajanje, višestruko spajanje, polifazno spajanje i kaskadno spajanje. Organizacija bafera.

Numerička analiza i diskretna matematika

(izborni, II godina, III semestar)

Numerička analiza. Opšta teorija iterativnih procesa. Principi aproksimacije funkcija. Aproksimacija trigonometrijskim polinomima. Lagrangeov i Newtonovi interpolacioni polinomi. Pojam Splinea i interpolacija Spline funkcijama. Srednjekvadratna i minimax aproksimacija. Numerički metodi u linearnoj algebri: sistemi linearnih jednačina (Gaussov i Gauss-Seidelov metod), nalaženje inverzne matrice, određivanje sopstvenih vrednosti i sopstvenih vektora matrica. Rešavanje nelinearnih jednačina: metoda sečice, metoda tangente i kombinovana metoda. Modifikacija navedenih metoda. Rešavanje sistema nelinearnih jednačina i rešavanje kompleksnih jednačina. Numeričko diferenciranje i integracija. Newton-Cotesove i Gaussove formule. Rungeova ocena greške. Numeričko rešavanje diferencijalnih jednačina: Runge-Kutta i visekoračni metodi. Stabilnost metoda. Sistemi diferencijalnih jednačina. Primene matematičkih alata u Numeričkoj analizi: Maple, Derive, MatLab, MatCad i Matematica. Osnovni principi izrade projektnog zadatka iz Numeričke analize.

Diskretna matematika. Elementi teorije algoritama. Rekurzivne funkcije. Church-ova teza. Turing-ova masina. Kompleksnost algoritma. Polinomijalni i eksponencijalni algoritmi. Nedeterministički polinomijalni algoritmi. Klase problema P i NP. NP-potpuni i NP-teški problemi. Heuristički pristup u rešavanju teških i algoritamski nerešivih problema. Matematicka logika. Kvantifikatorski racun. Valjane formule. Formalne teorije. Herbrand-ova teorema. Princip rezolucije. Algebra. Konačna polja. Teorija kodova. Kodovsko rastojanje. Perfektni kodovi. Linearni kodovi. Generatorska i kontrolna matrica koda. Linearni rekurentni nizovi i pseudoslučajne sekvence. Elementi teorije mreza (A-mreže i S-mreže).

Principi modernih telekomunikacija

(izborni, II godina, III semestar)

Osnovi digitalne elektronike

(izborni, II godina, III semestar)

Studenti se upoznaju sa pojavama i problemima pri realnoj implementaciji digitalnih kola kako kombinacionih tako i sekvencijalnih. Takođe se upoznaju sa funkcionisanjem i korišćenjem standardnih memorijskih i programabilnih komponenata kao i principima, realizacijama i korišćenjem kola za konverziju signala. Razvija se sposobnost za razumevanje i korišćenje složenijih digitalnih sistema.

Poluprovodničke komponente u prekidačkom režimu rada.
Statičke i dinamičke karakteristike idealnih i realnih logičkih kola.
Realizacija logičkih kola sa tranzistorima. CMOS, ECL, TTL, BiCMOS, logička kola. Analiza statičkih i dinamičkih karakteristika realnih logičkih kola sa stanovišta korisnika. Komparatori i Šmitovo kolo.
Bistabilna, monostabilna kola, rlaksacioni ocilatori. Astabilni generatori linearnih vremenskih baza. Primena za generisanje taktnih signala, time-out logiku, watch-dog tajmer, mikroprocesorska supervizorska kola.
ROM memorije. RAM memorije. Programabilne komponente.
A/D i D/A konvertori. Diskretizacija po amplitudi i vremenu. Realizacija konvertora. Povezivanje na procesorsku magistralu. Optički enkoder kao A/D konvertor pozicije i brzine. Impulsno širinska modulacija kao D/A konverzija. Upotreba konvertora. Primer konverzije digitalnih u fizičke veličine koračnim motorom.
Primeri digitalnih sistema. Napajanje u digitalnom sistemu. Galvansko razdvajanje. Optokapleri.