- Trajanje studija: 4 godine
- Broj ESPB: 242 ESPB
- Zvanje: Diplomirani inženjer softvera
- Polje: Tehničko-tehnološke nauke
- Oblast: Elektrotehničko i računarsko inženjerstvo
- Uža oblast: Softversko inženjerstvo
- Oblici studiranja: tradicionalni (u sedištu Univerziteta u Beogradu i u visokoškolskoj jedinici van sedišta u Nišu) i onlajn, preko Interneta (e-učenje)
- Mesto održavanja nastave: Beograd i Niš
Šta je softversko inženjerstvo?
Softversko inženjerstvo je disciplina koja se bavi razvojem i održavanjem pouzdanih i efikasnih softverskih sistema. Značaj softverskog inženjerstva je porastao sa rastućim zahtevima za razvojem bezbednih aplikacija, tj. bezbednih softverskih sistema i sa većim značajem velikih i skupih softverskih sistema. Američko udruženje IEEE definiše softversko inženjerstvo kao „primena jednog sistematskog, disciplinovanog i kvantifikovanog pristupa za razvoj, rad i održavanje softvera“. Softversko inženjerstvo integriše računarske nauke i inženjerske principe koji se primenjuju pri razvoju proizvoda u drugim oblastima inženjerstva (tehnike).
Softversko inženjerstvo se bavi razvojem visokokvalitetnog softvera na jedan sistematski, upravljiv i efikasan način. U skladu sa tim, posebno se ističe značaj faza u razvoju softvera:
- Analize i evaluacije potreba za softverom
- Specifikacije zahteva
- Projektovanje softvera
- Izrada i testiranje koda softvera
Takođe, softversko inženjerstvo se vezuje za upravljanje procesom i kvalitetom, za kreativnost i inovacije, za standarde, za individualne veštine pojedinaca, ali i za sposobnost timskog rada i primenu pravila i iskustva iz profesionalne prakse.
Da bi jasnije ukazali na razliku softverskog inženjerstva u odnosu na druge discipline iz šire oblasti računarstva, koristićemo dijagrame na slici 1 (izvor IEEE/ACM).
Slika 1. Oblast znanja pokriveno studijama iz Softverskog inženjerstva (izvor: IEEE&ACM)
Horizontalna osa pokazuje kretanje od teorije ka primeni računara. Vertikalna osa pokazuje kretanje od računarskog hardvera i njegove arhitekture, do organizacijskih pitanja u organizaciji u kojima se primenjuju računari.
ZAŠTO STUDIRATI SOFTVERSKO INŽENJERSTVO NA UNIVERZITETU METROPOLITAN?
Cilj studijskog programa „Softversko inženjerstvo“ je da osposobi studenta da se uspešno bavi profesionalnim razvojem softvera, u skladu sa očekivanjima i potrebama kompanija koje se bave profesionalnim razvojem softvera.
Studijski program obezbeđuje znanja iz oblasti softverskog inženjerstva, prema kategorizacijama IEEE i ACM. Nastava ne samo da omogućuje sticanje znanja iz svih faza procesa razvoja softvera, nego i obezbeđuje sticanje fundamentalnih znanja iz računarskih nauka, što je neophodno svakome ko želi da se bavi razvojem softvera.
U programu se daje naglasak na sticanje praktičnih i primenjivih znanja i veština. Iz svakog predmeta se rade praktični projekti i veliki broj zadataka. Po završetku studija, student je potpuno osposobljen za uspešan rad u softverskoj industriji.
KOJIM POSLOVIMA MOGU DA SE BAVE DIPLOMIRANI INŽENJERI SOFTVERSKOG INŽENJERSTVA?
Studenti koji završe osnovne akademske studije iz softverskog inženjerstva, osposobljeni su da rade na razvoju profesionalnog softvera industrijskog kvaliteta. Ti poslovi obuhvataju:
- Utvrđivanje potreba i zahteva korisnika softvera i njihovo prevođenje u inženjerske zahteve čije zadovoljenje obezbeđuje punu funkcionalnost softvera, ali i dostizanje profesionalnog kvaeta softvera;
- Postavljanje arhitekture softverskog sistema, definisanje softverskih modula i komponenata, ali i njihovih međusobnih interfejsa;
- Projektovanje softverskog sistema, odnosno, projektovanje objektno-orijentisanog (OO) sistema, na osnovu postavljenog OO modela i primenom UML jezika za modeliranje OO sistema;
- Programiranje, tj. implementacija projektnog rešenja izradom softvera u jednom od programskih jezika, kao što su Python, Java, C++ ili C#;
- Obezbeđivanje kvaliteta softvera i njegovo testiranje, kao i njegovo konfigurisanje u skladu sa postavljenom arhitekturom softverskog sistema;
- Rukovođenje projektima razvoja softvera, i drugo.
NAJČEŠĆA RADNA MESTA DIPLOMIRANIH STUDENATA:
Radna mesta na kojima rade stručnjaci za softversko inženjerstvo se različito zovu u različitim organizacijama. Negde je uloga „softverskog inženjera“ izjednačena sa poslom „programera“, „projektanta softvera“ i slično.
Studenti su osposobljeni da rade na svim poslovima razvoja softvera:
Analiza zahteva
Definisanje arhitekture i projektovanje softvera
Izrada softvera (kodiranje)
Testiranje i obezbeđenje kvaliteta softvera
Održavanje softvera
Industrija razvoja softvera u Srbiji ima veliku mogućnost razvoja, naročito u vidu saradnje sa velikim proizvođačima softvera u svetu. Međutim, glavna prepreka je nedostatak profesionalno školovanih i sposobnih inženjera za razvoj softvera. Zato, diplomirani studenti ovog studijskog programa nemaju nikakav problem u nalaženju posla, i to, vrlo dobro plaćenog posla.
Uspešni završetak ovih studija omogućiće diplomiranim studentima da uspešno rade na razvoju profesionalnih i kvalitetnih softverskih sistema, pre svega u specijalizovanim preduzećima za razvoj softvera, ili da rade kao nezavisni softverski inženjeri koji po ugovoru rade na razvoju softvera za potreba inostranih, ali i domaćih firmi koje se bave razvojem profesionalnog softvera, tj. softverskih proizvoda.
ISHODI UČENJA STUDIJSKOG PROGRAMA:
Uspešan student biće sposoban da:
- projektuje, primeni i oceni rad nekog računarskog sistema, procesa ili programa, a radi zadovoljenja iskazanih potreba;
- identifikuje i analizira potrebe korisnika;
- efektivno integriše softverska rešenja u okruženju korisnika;
- razume najbolju praksu i standarde, kao i njihovu primenu;
- učestvuje u kreiranju efektivnog plana projekta;
- razvija i sprovodi odgovarajuće eksperimente, analize i interpretira podatke korišćenjem inženjerskog rasuđivanja za izvođenje zaključaka;
- identifikuje, formuliše i rešava složeni inženjerski problem primenom principa inženjerstva, nauke i matematike.
- prepoznaje etičke i profesionalne odgovornosti u inženjerskim situacijama i donosi informisane odluke, koje moraju uzeti u obzir uticaj inženjerskih rešenja u globalnom, ekonomskom, ekološkom i društvenom kontekstu;
- efikasno funkcioniše u timu čiji članovi zajedno obezbeđuju vođstvo, stvaraju saradničko i inkluzivno okruženje, postavljaju ciljeve, planiraju zadatke i ispunjavaju ciljeve.
- objasni, ispita i primeni tehnike i metode rešavanja šireg opsega problema u računarstvu;
- ispita i primeni alate i tehnike upravljanja projektom;
- analizira potrebe korisnika i projektuje odgovarajuća softverska rešenja u jednom ili više aplikacionih domena, upotrebom metoda softverskog inženjerstva koja integrišu etičke, društvene, pravne i ekonomske aspekte;
- prepozna potrebe i sposobnost stalnog profesionalnog razvoja, kao i da primeni nova znanja po potrebi, korišćenjem odgovarajućih strategija učenja;
- analizira društvena, etička i pravna pitanja koja su relevantna za razvoj softvera.
NAŠI PARTNERI
USAGLAŠENOST PROGRAMA SA MEĐUNARODNIM STANDARDIMA
Program je usaglašen sa najnovijim preporukama američkih profesionalnih udruženja IEEE i ACM.
Kao disciplina, Softversko inženjerstvo se oslanja na drugu računarsku disciplinu, Računarske nauke, koja daje neophodnu osnovu, tj. poznavanja programiranja, rada računara i operativnih sistema, korišćenja web i internet tehnologija, sistema baza podataka i dr. Ovo je nužno, jer se sposobnost razvoja profesionalnog softvera (softversko inženjerstvo) nadograđuje na znanje i sposobnosti programiranja, korišćenju baza podataka, računarskih mreža, komunikacije čovek-računar, arhitekture računara i operativnih sistema (najveći deo disciplene: Računarske nauke).
Zbog toga, studijski program je usaglašen sa preporukama američkih profesionalnih udruženja IEEE i ACM, i to za disciplinu Računarske nauke i za disciplinu Softversko inženjerstvo.
Program u većem delu je rađen za računarsku disciplinu: Informacione tehnologije, a u manjem delu, za računarsku disciplinu: Računarske nauke. Zbog toga, studijski program je usaglašen sa preporukama američkih profesionalnih udruženja IEEE i ACM.
Program je usaglašen sa sledećim preporukama američkih profesionalnih udruženja IEEE i ACM:
- Software Engineering 2014 – Curriculum Guidlines for Undergraduate Degree Programs in Software Engineering, February, 2015, IEEE Computer Society and Association for Computing Machinery
- Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in Computer Science – The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) and IEEE Computer Society
Studijski program obezbeđuje sticanje neophodnog znanja, tj. tzv. „korpus znanja“ (Body of Knowledge) u skladu sa oba navedena dokumenata, tj. ujedinjujući korpuse znanja definisane za oblast Računarskih nauka i oblast Softverskog inženjerstva, koji su opisani u sledećim dokumentima:
- Guide to the Software Engineering Body of Knowledge (2004 Version) – SWEBOK, IEEE Computer Society
- Baseline List of Topics, SWEBOK Guide V3 (status as of 21/08/2012), IEEE Computer Society
Primenom najnovijih preporuka profesionalnih udruženja IEEE Computer Society i ACM pri izradi kurikuluma za OAS Softversko inženjerstvo, obezbeđeno je da studenti dobiju najsavremenija i standardizovana znanja iz oblasti računarskih nauka i softverskog inženjerstva, u skladu sa međunarodno priznatim preporukama za kurikulume iz ovih oblasti. To obezbeđuje i međunarodno priznavanje stečenog znanja i diplome sa OAS Softversko inženjerstvo, te samim tim, i olakšano zapošljavanje diplomiranih studenata u inostranstvu.
PLAN I PROGRAM
I godina
SE101 Razvoj softvera i inženjera softvera
Cilj predmeta je da se studentima Softverskog inženjerstva, na samom početku studija, pruži orijentacioni pregled osnovnih pristupa u razvoju softvera, ali i da ukaže na funkciju i značaj inženjera softvera, i na važnost planiranja sopstvene karijere svakog studenta. Predmet upoznaje studenta sa softverskim inženjerstvom i sa dva osnovna pristupa u razvoju softvera: procesni (planski) razvoj softvera i razvoj sa fokusom na proizvod, a ne na proces. Kako se predmet izučava u prvom semestru, izlaganja koncepata i primera ne zahteva znanje i primenu programskih jezika. Posle izlaganja koncepata procesno-orijentisanog razvoja softvera i razvoja zasnovanog na softverskom proizvodu, u trećem delu nastave studenti dobijaju pregled predmeta osnovnih i master studija softverskog inženjerstva, kao i savete kako da planiraju sopstvenu karijeru inženjera softvera. Ovo je novi predmet koji je uveden kao reakcija na pojavu da se jedan deo studenata, već u toku studija, orijentiše samo na učenje programiranja, te posle druge godine, počinju da rade kao programeri, a jedan deo njih i prekida studije. Predmet ima za cilj da studentima ukaže na značaj softverskog inženjerstva, kao celine, i da studenti shvate da razvoj softvera zahteva mnogo više nego samo znanje programiranja, te i da im ukaže na značaj važnih inženjerskih aspekata razvoja softvera koji se izučavaju u 3. i 4. godini osnovnih studija i na master studijama. U toku studija, studenti svojim odlukama odlučuju o svojoj budućoj karijeri. Zato, već na početku studija treba da budu upoznati sa svim izazovima, dilemama i mogućim odlukama kojim odlučuju o svoj profesionalnoj budućnosti. U budućnosti, softverski roboti će se baviti programiranjem, a inženjeri softvera će projektovati i razvijati softverske proizvode. Studenti koji već na početku studija dobro definišu svoj cilj studiranja i razvoj svoje karijere, imaće znatno bolja radna mesta u industriji, samim tim i znatno veće zarade, i mogućnost da rade znatno interesantnije i raznovrsnije stručne poslove. Zato je ovaj predmet stručne i karijerne orijentacije vrlo značajan za uspeh studiranja i na definisanje uspešne buduće poslovne karijere studenata.
CS100 Uvod u programiranje (Python)
Cilj predmeta je da uvede studente u osnove programiranja kroz programski jezik Pajton. Kroz predmet se studenti upoznaju sa osnovnim konceptima programiranja kao što su strukture podataka, uslovi, petlje, promenljive i funkcije. Ovaj predmet uključuje pregled različitih alata dostupnih za pisanje i pokretanje Pajtona. Predmet pruža praktične vežbe kodiranja koristeći najčešće korišćene strukture podataka, pisanje prilagođenih funkcija i čitanje i pisanje u datoteke. Na predmetu se izučavaju teme kao što su uvod u osnove programiranja (šta je i kako funkcioniše), tipovi podataka, kontrolne strukture, funkcije, nizovi, nasleđivanje, binarno računanje, otklanjanje grešaka, testiranje, dokumentovanje i objektno orijentisane paradigme. Takođe, kroz predmet se obrađuje rukovanje stringovima, operacije nad stringovima, formatiranje stringova; grananje u programu, jednostruko, dvostruko i višestruko grananje; obrada izuzetaka, petlje i logički izrazi: Bulova algebra i Bulovi izrazi.; dekompozicija programa; pozivanje podprograma; prenos parametara i rezultata; pojam i primena rekurzije; nizovi i operacije nad nizovima.
NT110 Profesionalna komunikacija
Predmet omogućava usvajanje relevantnih teorijskih i praktičnih znanja iz poslovne komunikologije koja omogućavaju adekvatno delovanje u poslovnom okruženju. Studenti stiču spoznaju da veštine komunikacije mogu biti krucijalne za uspeh u svakoj poslovnoj aktivnosti. Predmet uvodi studente u poslovna i društvena pitanja komunikacije – modele i implikacije efektivnog poslovnog komuniciranja na poslovanje. Teme koje se izučavaju na predmetu su: Uvod profesionalnu komunikaciju, prepreke u komunikaciji, vrste komuniciranja, veštine verbalne komunikacije, veštine neverbalne komunikacije, veštine pisane komunikacije, lični nastup u komunikaciji, konflikti, timsko komuniciranje, interkulturna komunikacija, vizuelni identitet organizacije, organizaciona (korporativna) kultura.
MA120 Linearna algebra
Na predmetu se studenti upoznaju i ovladavaju raznim matematičkim metodama i tehnikama koji se odnose na pojmove iz oblasti linearne algebre, koji su predviđeni za profil inženjera ovakvog usmerenja. Na predmetu se izučavaju sledeće teme: Uvodni pojmovi; Osnovni pojmovi matematičke logike; Iskazni račun; Kvantifikatori; Skupovi i binarne relacije; Pojam funkcije; Algebarske strukture sa jednom i dve algebarske operacije; Brojevni skupovi; Polje realnih brojeva; Polje kompleksnih brojeva (algebarski, trigonometrijski i eksponencijalni oblik kompleksnog broja, Muavrova formula, korenovanje kompleksnog broja); Polinomi nad poljem kompleksnih i realnih brojeva; Determinanta; Pojam; Parne i neparne permutacije; Determinanta proizvoljnog reda; Osobine determinanti; Laplasov stav za razvoj determinante; Matrični račun: Pojam matrice; Operacije sa matricama; Inverzna matrica; Rang matrice; Sistemi linearnih jednačina: Pojam; Matrični metod; Kramerovo pravilo. Gausov-Žordanov metod; Kroneker – Kapelijev stav; Vektorski prostori: Linearna nezavisnost i nezavisnost vektora; Baza i dimenzija vektorskog prostora; Unitarni i normiran vektorski prostor; Metrika; Vektorski prostor R^n; Skalarni proizvod, norma i metrika u R^n; Dekartov pravougli koordinatni sistem u R^3; Operacije i relacije s vektorima u R^3; Skalarni proizvod dva vektora – definicija, osobine, primene. Vektorski proizvod dva vektora – definicija, osobine, primene. Mešoviti proizvod vektora – definicija, osobine, primene; Jednačina ravni (vektorski oblik, opšti skalarni oblik, segmentni oblik); Jednačina ravni određena sa tri nekolinearne tačke; Rastojanje tačke do ravni; Uzajamni odnos dve ravni; Ugao između dve ravni; Pramen ravni; Jednačina ravni (vektorski oblik, kanonski oblik); Jednačina prave koja sadrži dve različite tačke; Jednačina prave kao presek dve ravni; Uzajamni položaj dve prave – mimoilazne prave; Najkraće rastojanje između dve mimoilazne prave; Uzajamni položaj dve prave – prave se seku, paralelne su i poklapaju se; Ugao između dve prave koje se seku; Rastojanje tačke do prave; Uzajamni odnos prave i ravni; Ugao između prave i ravni; Projekcija tačke na ravan; Projekcija tačke na pravu; Projekcije prave na ravan.
NT111 Engleski 1
Engleski jezik 1 je srednji nivo opšteg engleskog jezika. Cilj ovog predmeta je razviti kompetenciju iz oblasti gramatike i vokabulara, kao i razvijati i uvežbavati sledeće jezičke veštine: govorenje, slušanje, čitanje, pisanje, prevođenje i integrisanje pomenutih veština. Nakon položenog predmeta NT111 Engleski 1, student će biti u stanju da: U oblasti razumevanja govora: adekvatno reaguje na usmene poruke u vezi sa aktivnostima u opštem kontekstu, razume poruku kraćih izlaganja, razume informacije o poznatim sadržajima, razume suštinu iskaza, izvodi zaključke posle slušanja nepoznatog kraćeg teksta; U oblasti razumevanja pročitanog teksta: čita kraće tekstove napisane standardnim jezikom, razume opšti smisao i dopunske informacije iz kraćeg teksta, razume kraće tekstove različitog sadržaja; U oblasti usmenog izražavanja: učestvuje u dijalozima, razmenjuje informacije i mišljenje sa sagovornikom o opštim temama i interesovanjima, koristi engleski jezik za komunikaciju u opštem kontekstu u trajanju od 5 minuta; U oblasti pismenog izražavanja: piše beleške, poruke i pisma na razložan i argumentovan način, rezimira pročitan ili preslušani kraći tekst o opštim temama i iznosi sopstveno mišljenje, piše elektronske poruke, tekstualne poruke, učestvuje u diskusijama na blogu na nivou B1 po „Zajedničkom evropskom referentnom okviru za jezike“.
CS101 Objektno – orijentisano programiranje 1
Predmet se fokusira na uvod u osnovne koncepte u programiranju sa aspekta objektno – orijentisanog programiranja. Predmet upoznaje studente sa konceptima objektno-orijentisanog programiranja, kao i sa metodama proceduralnog programiranja sa ciljem savladavanja osnova programskih jezika. Student se osposobljava da samostalno razvija jednostavnije programe u Javi. Teme koje se izučavaju na predmetu su: Koncept i istorija programskih jezika; Prevođenje programa; Tipovi podataka, aritmetički, relacioni i logički operatori; Programske petlje; Metodi i povratni tipovi; Jednodimenzionalni i višedimenzionalni nizovi; Osnovne Java klase; Nasleđivanje, generalizacija i polimorfizam; Interfejsi; Relacije asocijacije, agregacije i kompozicije u UML jeziku sa implementacijom u Javi; Ugnježdene klase; Tokovi, datoteke i specijalizacija.
CS120 Organizacija računara
Kroz ovaj predmet studenti se upoznaju sa osnovnim pojmovima i principima iz oblasti slojevite organizacije računarskih sistema. Studenti se najpre uvode u referentne modele savremenih računarskih sistema koja uključuje procesore, primarnu i sekundarnu memoriju, kao i ulazno/ izlazne uređaje i magistrale koje povezuju ostale podsisteme. Studenti se zatim upoznaju sa svim slojevima organizacije računara, i to: sloj digitalne logike, sloj mikroarhitekture, sloj skupa instrukcija i asemblerskog jezika, kao i sloj arhitekture paralelnih računarskih sistema, koja uključuje paralelizam na čipu, ko-procesore, multiprocesore i multiračunare, ali i grid računare. Na predmetu se obrađuju sledeće teme: Struktuirana organizacija računara; Binarna aritmetika; Jednostavna digitalna logička kola; Složena digitalna logička kola; Centralni procesor; Primarna i sekundarna memorija; Ulazno/izlazni uređaji; Magistrale i interfejsi; Mikroarhitektura procesora; Poboljšanje performansi; ISA skup instrukcija; Assembly jezici; Prevođenje i interpretiranje programa; Paralelne arhitekture računarskih sistema; Uvod u operativne sisteme.
CS105 Osnove veb tehnologija
Cilj predmeta je upoznavanje studenata sa osnovama različitih veb tehnologija i fundamentalnim principima veb sajtova i veb aplikacija. Studentima će kroz pregled tema i koncepata biti prezentovana osnovna znanja i veštine za programiranje klijentske strane (front-end). Studenti će biti osposobljeni za kreiranje jednostavnih veb aplikacija. Teme koje se izučavaju na predmetu su: Jezici za označavanje i stilizovanje; HTML (Hyper Text Markup Language) i CSS (Cascading Style Sheets); Osnove skripting jezika; JavaScript; JavaScript – DOM (Document Object Model); JQuery; Bootstrap; Semantic UI; Osnove front-end programiranja; Elementi dobrog dizajna; Programiranje zasnovano na događajima; Prilagodljiv dizajn; Mrežni protokoli; HTTP (Hypertext Transfer Protocol); Komunikacija veb server – veb pregledač; Osnove AJAX- a (Asynchronous JavaScript And XML); Uvod u optimizaciju rezultata pretrage – SEO (Search Engine Optimizatin).
MA105 Matematička analiza
Na predmetu se studenti upoznaju i ovladavaju raznim matematičkim metodama i tehnikama koji se odnose na pojmove iz oblasti neprekidnosti i diferencijalnog računa funkcije jedne promenljive i više promenljivih, integralnog računa, teorije brojnih nizova i redova, kao i funkcionalnih redova. Na predmetu se izučavaju sledeće teme: Realna funkcija jedne realne promenljive: Pojam; Osobine; Osnovne elementarne funkcije; Elementarne funkcije i drugi tipovi funkcija; Brojni nizovi: pojam, osobine, konvergencija; Granična vrednost realne funkcije jedne realne promenljive: pojam, osobine. Neke važnije granične vrednosti; Neprekidnost funkcije u tački; Neprekidnost funkcije na intervalu; Diferencijalni račun: pojam, geometrijska interpretacija, tablica, pravila za izračunavanje; Izvod složene funkcije, logaritamski izvod, izvod funkcije zadate parametarski i implicitno, izvod inverzne funkcije; Izvodi višeg reda; Lajbnicova formula; Diferencijali prvog i višeg reda i primena; Teoreme o diferencijalnom računu; Tejlorov polinom; Lopitalovo pravilo; Primena prvog i drugog izvoda na određivanje osobina funkcija; Asimptote funkcije; Opšta šema ispitivanja realnih funkcija jedne realne promenljive. Neodređena integracija, pojam, metode za rešavanje raznih tipova realnih funkcija jedne realne promenljive; Određena integracija, pojam, egzistencija i osobine, Njutn – Lajbnicova formula, geometrijska intepretacija i primene; Nesvojstveni integrali I i II vrste; Numerički redovi: pojam, osobine, kriterijumi za konvergenciju; Funkcionalni redovi, uniformna konvergencija; Vajerštrasov kriterijum, osobine uniformno konvergentnih redova, stepeni redovi, Tejlorovi redovi; Realne funkcije više promenljivih, granična vrednost i neprekidnost, parcijalni izvodi, geometrijsko tumačenje prvog parcijalnog izvoda, parcijalni izvodi višeg reda, diferencijal funkcije, diferencijali višeg reda, Tejlorova i Maklorenova formula, parcijalni izvodi složene funkcije, tangentna ravan i normalna površ, ekstremumi funkcija više promenljivih, uslovni ekstremumi; Najmanja i naveća vrednost funkcije na oblasti.
NT112 Engleski 2
Engleski jezik 2 je viši srednji nivo engleskog jezika – kombinacija opšteg engleskog jezika i jezika struke. Cilj ovog predmeta je razviti kompetenciju iz oblasti gramatike i vokabulara, kao i razvijati i uvežbavati veštine govora, slušanja, čitanja, pisanja, prevođenja i integrisati pomenute veštine. Nakon položenog predmeta NT112 Engleski 2 studen će biti osbosobljen da: U oblasti razumevanja govora: Adekvatno reaguje na usmene poruke u vezi sa aktivnostima u opštem kontekstu, razume poruku dužih izlaganja, razume informacije o poznatim sadržajima, razume suštinu iskaza, izvodi zaključke posle slušanja nepoznatog teksta; U oblasti razumevanja pročitanog teksta: Čita kraće tekstove napisane standardnim jezikom, razume opšti smisao i dopunske informacije iz teksta, razume duže tekstove različitog sadržaja; U oblasti usmenog izražavanja: Učestvuje u dijalozima, razmenjuje informacije i mišljenje sa sagovornikom o opštim temama i interesovanjima, koristi engleski jezik za komunikaciju u opštem kontekstu u trajanju od 5 do 7 minuta; U oblasti pismenog izražavanja: Piše beleške, poruke i poslovna pisma na razložan i argumentovan način, rezimira pročitan ili preslušani tekst o opštim temama i iznosi sopstveno mišljenje, piše formalna pisma (prijave za prakse ili stipendije), piše elektronske poruke, tekstualne poruke, učestvuje u diskusijama na blogu na nivou B2 po „Zajedničkom evropskom referentnom okviru za jezike”.
II godina
CS202 Objektno – orijentisano programiranje 2
Uvod u napredne koncepte u programiranju sa aspekta objektno – orijentisanog programiranja. Predmet upoznaje studente sa konceptima upravljanja greškama i izuzecima, višenitnosti, rada sa GUI i upravljanjem događajima, rad sa strukturama podataka i generičkim tipovima podataka, mrežnog programiranja, kreiranjem Java aplikacija nad bazama podataka, kao i internacionalizacijom i lokalizacijom. Student se osposobljava da samostalno razvija srednje i složene programe u Javi. Teme koje se obrađuju na predmetu su: Razvoj i upravljanje događajima u GUI primenom napredne Java-FX platforme; Primena niti i pisanje višenitnih programa kroz konkurentno i paralelno programiranje; Rukovanje greškama i izuzecima u Java programima; Rad sa generičkim klasama i metodama; Rad sa strukturama podataka u Javi: liste, redovi, stekovi, setovi i mape primenom Java Collections Framework; Integrisanje SQL upita u Java programe i kreiranje Java aplikacija nad bazama podataka – standardni pristup i ORM; Lokalizacija i internacionalizacija u Javi; Kreiranje programa sa složenim nivoom kompleksnosti.
IT250 Baze podataka
Baza podataka je centralno mesto svakog informacionog sistema. Prvenstveni cilj ovog predmeta je upoznati studente sa osnovnim pravilima i principima koji se koriste u slučaju dizajniranja baza podataka primenom E/R tehnike, postupka inverznog inženjeringa i pravila normalizacije podataka. Takođe, studenti treba da savladaju sintaksu i semantiku SQL-a kako bi se baze podataka nakon dizajniranja uspešno kreirale, implementirale i koristile. Značajno mesto u okviru ovog predmeta je posvećeno i proučavanju postojećih standarda za pristup podacima (ODBC i JDBC) kao i ulozi koju u rešavanju takvih problema danas ima XML. Predmet ne obezbeđuje samo potrebna znanja onima koji će se baviti samo projektovanjem baza i izradom aplikacija nad bazama podataka, već i onima koji žele da se usmere na administraciju baza podataka, jer je deo predmeta posvećen i ovim temama. Na predmetu se izučavaju sledeće teme: Upravljanja informacijama; Arhitektura organizacije podataka; Arhitektura organizacije podataka – relacioni model baza podataka; Konceptualno modeliranje podataka primenom E/R dijagrama; Konceptualno modeliranje podataka primenom naprednih E/R dijagrama; Primeri dobrih konceptualnih modela; Veza konceptualni – logički- fizički model baze podataka; Transformacija konceptualnog u logički i fizički model baze podataka; Arhitektura organizacije podataka- normalizacija podataka, SQL za definiciju podataka (DDL) ; SQL za manipulaciju podacima (DML) – rad sa jednom tabelom; SQL: Naredba SELECT za rad sa više tabela; Kreiranje pogleda; Upravljanje okruženjem baza podataka; Administracija baza podataka; Zaštita baza podataka; Distribucija baza podataka.
CS215 Diskretne strukture
Predmet Diskretne strukture ima dva osnovna cilja. Prvi je upoznavanje sa osnovnim konceptima i tehnikama koje se tiču diskretnih matematičkih struktura, posebno sa onim koje imaju neposrednu primenu u računarstvu. Drugi cilj je upoznavanje studenata sa metodama matematičkog i logičkog zaključivanja.
Studenti će biti osposobljeni da rešavaju probleme bazirane na stečenim znanjima koja uključuju osnove matematičke logike, osnove teorije skupova, relacije, funkcije, algoritme, osobine celih brojeva, kongruencije, rekurentne relacije, teoriju grafova i algoritme sa njima, strukture za dinamičko skladištenje podataka, relacije uređenja, mreže, matematičke strukture, linearne prostore i preslikavanja. Predmet obuhvata sledeće teme: Osnove matematičke logike; Osnove teorije skupova: Operacije nad skupovima, konačni, prebrojivi i neprebrojivi skupovi; Kardinalnost skupova; Klase skupova, partitivni skup i particije; Matematička indukcija; Relacije: Tipovi relacija, relacije ekvivalencije, relacije uređenja; Funkcije: 1-1, NA i invertibilne funkcije, primeri funkcija, aritmetika po modulu M, Algoritmi: Osnovni pojmovi, rekurzivno definisane funkcije, numerički algoritmi; Osobine celih brojeva: Osnovni pojmovi, fundamentalna teorema Aritmetike; Dobro uređenje; Algoritam deljenja; Deljivost, prosti brojevi, NZD i NZS, Euklidov algoritam; Kongruencije: Uzajamno prosti brojevi, fundamentalna teorema aritmetike, relacije kongruencije, jednačine kongruencije; Rekurentne relacije: Linearna rekurentna relacija sa konstantnim koeficijentima, rešavanje homogene linearne rekurentne relacije drugog reda; Grafovi: Strukture za dinamičko skladištenje podataka, putevi u grafu, izomorfni i homeomorfni grafovi, komponente povezanosti, Ojlerovi i Hamiltonovi putevi, težinski, potpuni, regularni, bipartitni grafovi, planarni grafovi, drveta, algoritmi sa grafovima, bojenje grafova; Relacije uređenja: Parcijalno uređeni skupovi, topološko sortiranje; Ekstremni elementi; Mreže; Modelovanje i mogućnost primene specijalnih grafova u različitim oblastima računarskih nauka.
SE222 Inženjerstvo zahteva
Analiza zahteva za softver je nedvosmisleno veoma važan proces kako pri projektovanju velikih informacionih sistema tako i pri izgradnji manjih softverskih rešenja. Cilj ovog predmeta je, s jedne strane upoznati se s procesima utvrđivanja, izbora, analize, specifikacije i validacije jasnih, preciznih, nedvosmislenih zahteva, a s druge savladavanje metoda i tehnika koje se mogu koristiti za njihovo prikazivanje. Takođe, potrebno je prikazati sintezu zahteva od razvoja plana za definisanje zahteva do izvršenja procesa razvoja softvera u saradnji sa predstavnicima korisnika softvera. Na predmetu se izučavaju sledeće teme: Uvod u inženjerstvo zahteva; Modeli procesa; Razvoj poslovnih zahteva; Značaj korisnika softvera u inženjerstvu zahteva; Prikupljanje zahteva; Primena slučajeva korišćenja; Postavljanje poslovnih pravila; Dokumentovanje zahteva; Modeliranje zahteva; Specifikacija zahteva za podacima i softverski alati za razvoj; Nefunkcionalni zahtevi; Izrada prototipova i postavljanje prioriteta zahteva; Potvrđivanje zahteva; Upravljanje promenama zahteva; Praćenje zahteva i alati za praćenje zahteva.
NT213 Engleski za informatičare
Cilj nastave engleskog jezika je podizanje nivoa znanja engleskog jezika struke na nivo B2+/C1 „Zajedničkog evropskog okvira za žive jezike“. Na predmetu Engleski za informatičare, studenti treba da utvrde upotrebu gramatike na višem srednjem nivou, prošire opšti, a naročito, stručni vokabular, uvežbavaju njihovu upotrebu u različitim jezičkim funkcijama i usavršavaju i integrišu sve četiri jezičke veštine (čitanje, pisanje, slušanje i govor). Nakon položenog predmeta Engleski za informatičare, student će biti osposobljen: U oblasti Razumevanja govora: Adekvatno reaguje na usmene poruke u vezi sa aktivnostima u stručnom kontekstu; Razume poruku dužih izlaganja o poznatim temama u kojima se koristi stručni jezik i razgovetan izgovor; Razume informacije o relativno poznatim i bliskim sadržajima i složenija uputstva u stručnom kontekstu; Razume opšti i stručni smisao informativnih radijskih i televizijskih emisija o bliskim temama, u kojima se koristi stručni govor; Razume suštinu iskaza (sa)govornika koji razgovaraju o stručnim temama; Izvodi zaključke posle slušanja nepoznatog teksta u vezi sa vrstom teksta, brojem sagovornika, njihovim međusobnim odnosima i namerama, kao i u vezi sa stručnim sadržajem; U oblasti razumevanja pročitanog teksta: Razume duže tekstove o konkretnim temama iz stručne literature; Pronalazi, izdvaja i razume u informativnom tekstu o poznatoj stručnoj temi osnovnu poruku i suštinske informacije; Identifikuje i razume relevantne informacije u pisanim prototipskim dokumentima (pismima, prospektima) i drugim nefukcionalnim tekstovima (novinskim vestima, člancima u časopisima, reportažama i oglasima); Prepoznaje osnovnu argumentaciju u stručnim tekstovima (npr. novinskim kolumnama ili pismima čitalaca, blogovima, forumima kao i drugim vrstama komentara); Određuje značenje nepoznatih reči na osnovu konteksta; U oblasti usmenog izražavanja: Učestvuje u dijalozima, razmenjuje informacije i mišljenje sa sagovornikom o stručnim temama i interesovanjima; Koristi engleski jezik kao jezik komunikacije u stručnom kontekstu, prilagođavajući svoj govor komunikativnoj situaciji, u vremenskom trajanju od pet do sedam minuta; Izlaže unapred pripremljenu prezentaciju u trajanju od osam do deset minuta na određenu temu (iz domena struke i ličnog interesovanja); Ukazuje na značaj određenih iskaza i delova iskaza prigodnom gestikulacijom i mimikom ili naglašavanjem i intonacijom; U oblasti pismenog izražavanja: Piše na razložan i argumentovan način o temama iz svog okruženja i područja interesovanja; Sastavlja izveštaj na osnovu izvedenog istraživanja iz oblasti struke.
CS203 Algoritmi i strukture podataka
Cilj predmeta je da student shvati ogromnu ulogu i značaj algoritama i struktura podataka u rešavanju raznih problema, kao i da postane sposoban da razvija efikasne programe primenom rekurzije, lista, redova, stekova, setova i mapa, i sortiranja. Predmet takođe ima za cilj da studenti nauče kako da razvijaju programe za pretraživanje korišćenjem binarnog i AVL stabla, kao i da razvijaju programe primenom heširanja, grafova i težinskih grafova. Zadaci koje studenti dobijaju u toku semestra im omogućavaju da unaprede veštine neophodne za razvoj, opis i validaciju algoritamskih rešenja za nove probleme na koje naiđu u svojoj profesionalnoj karijeri. Teme koje se obrađuju na predmetu su: Uvod u algoritme; Analiza složenosti algoritama; Rekurzija – Napredna analiza; Sortiranje; Liste; Stekovi, redovi i prioritetni redovi; Stabla; Stabla pretraživanja; Heširanje; Grafovi; Težinski grafovi; Algoritmi i stringovi; Konačni automati; Teško rešivi problemi; Kompresija podataka.
CS230 Distribuirani sistemi
Na ovom predmetu studenti se uvode u koncepte organizacije i razvoja distribuiranih sistema primenom Java Enterprise Edition platforme i njihovo razlikovanje od sistema sa centralizovanom arhitekturom. Upoznavanje sa različitim tipovima distribuiranih sistema. Upoznavanje sa različitim tehnikama i alatima baziranih na najznačajnijoj JEE platformi za razvoj i održavanje distribuiranih sistema. Upoznavanje koncepta distribuiranog lakog klijenta kroz tehnologije JSP i JSF. Upoznavanje sa servlet tehnologijom kao osnovom savremenog razvoja distribuiranog softvera. Upotreba udaljenih poziva kroz implementaciju putem: Veb servisa, JMS sistema kao zamene za zastarele CORBA funkcionalnosti, EJB zrna u kombinaciji sa udaljenim – distribuiranim interfejsima; Kreiranje i primena REST i SOAP servisa u distribuiranim aplikacijama; Upoznavanje sa servisima u oblaku za podršku distribuiranim aplikacijama; Teme koje se obrađuju na predmetu su: Sistemi sa distribuiranom i centralizovanom arhitekturom – upoznavanje, poređenje, prednosti i nedostaci; Primeri sistema sa distribuiranom arhitekturom; Platforme za razvoj softverskih rešenja sa distribuiranom arhitekturom – JEE; Servlet tehnologija kao osnov razvoja distribuiranih sistema baziranih na JEE platformi; Razvoj distribuiranog lakog klijenta baziranog na primeni servlet tehnologija: JSP i JSF; Primena CDI zrna za razvoj serverske strane distribuiranog softverskog rešenja; Udaljeni pozivi primenom JMS sistema kao zamene za zastarele CORBA funkcionalnosti; Kreiranje i upotreba različitih tipova EJB zrna u kombinaciji sa udaljenim – distribuiranim interfejsima; Primena veb servisa u distribuiranim sistemima; Primena servisa u oblaku u distribuiranim sistemima.
CS130 C/C++ Programski jezik
Cilj predmeta je da student postane sposoban da koristi sve bitne elemente kako C tako i C++ programskog jezika. Ovo podrazumeva da se student osposobi da piše tj. izrađuje složene C/C++ konzolne aplikacije, kako strukturne programe u C-u, tako i objektno orijentisane (OO) programe u C++-u, korišćenjem integrisanih razvojnih okruženja za C/C++ programiranje. Studenti se upoznaju sa tipovima podataka, promenljivama, kontrolom toka programa, petljama, funkcijama, nizovima i stringovima, kao i sa konceptima OO programiranja. Sve važne osobine i karakteristike ovog programskog jezika biće prodiskutovane i ilustrovane tako da će studenti naučiti sve bitne razlike koje postoje u sintaksi, osobinama i memorijskom modelu između C/C++ i drugih programskih jezika. Teme koje se obrađuju na predmetu su: Uvod u C; Uslovni iskazi i petlje; Funkcije; Nizovi i stringovi; Pokazivači; Strukture; Unije; Upravljanje memorijom; C-pretprocesor; Rad sa fajlovima; Otklanjanje grešaka; Uvod u C++; Osnovni elementi C++ jezika; Uvod u C++ klase i objekte; Sakrivanje podataka; Statički članovi klase; Preklapanje funkcija i operatora; Kompozicija; Nasleđivanje; Polimorfizam; Apstrakcija; Šabloni; C++ Biblioteka i STL; Upravljanje izuzecima; Ulaz/Izlaz u C++-u; Moderni C++.
MA273 Osnove verovatnoće i statistike
Kroz ovaj predmet studenti ovladavaju osnovnim metodama iz verovatnoće i statističke analize i sposobnostima primene tih metoda u rešavanju problema iz prakse. Teme koje se obrađuju na predmetu su: Slučajni događaji; Pojam verovatnoće; Aksiome verovatnoće; Geometrijska verovatnoća; Kombinatorika; Princip ptičjeg gnezda; Uslovna verovatnoća; Nezavisnost događaja; Formula totalne verovatnoće; Bajesova formula; Bernulijeva šema; Jednodimenzionalne slučajne promenljive diskretnog i neprekidnog tipa. Dvodimenzionalne slučajne promenljive diskretnog tipa; Numeričke karakteristike slučajnih promenljivih; Neke važnije raspodele; Uslovne raspodele; Informacija i entropija; Jednakost Čebiševa; Muavr-Laplasova formula; Zakon velikih brojeva; Centralna granična teorema; Pojam, predmet i zadatak statistike; Etape u statističkom zaključivanju; Uzorak; Prikazivanje statističkih podataka; Statistička analiza podataka, mere centralne tendencije, mere varijacije; Teorija ocene, metod maksimalne verodostojnosti; Intervali poverenja; Testiranje statističkih hipoteza – parametarski i neparametarski testovi; Linearna regresija i korelacija; Modeli analize varijansi.
IT230 Interakcija čovek – računar
Ovaj predmet se bavi odnosom ljudi sa računarskim sistemima, tako da je cilj predmeta „Interakcija čovek-računar“ da upozna studente sa brojnim kulturnim, socijalnim, organizacionim, kognitivnim i perceptivnim modelima pri čemu se koriste raznovrsne discipline uključujući psihologiju, egonomiju, kompjutersku nauku, grafički i industrijski dizajn, antropologiju i inženjerstvo.
Predmet pokriva nekoliko ključnih oblasti koje se tiču dizajniranja interakcija između ljudskih aktivnosti i računarskih sistema koji ih podržavaju konstruisanim interfejsima kao i fenomenima koji ih okružuju: Poznavanje korisnika, dizajn interakcije, programiranje interaktivnih sistema, korisnički orjentisan dizajn i testiranje, nove interaktivne tehnologije, kolaboracija i komunikacija, bezbednost, statističke metode, proširena i virtuelna realnost. Praktične vežbe prate teorijsku nastavu analiziranjem dobrih i loših modela u dizajnu interfejsa i kroz izradu funkcionalnih prototipa uz pomoć namenskih softvera (Figma, Marvel App, Invision app) ili programskih jezika (HTML, JavaScript i JAVA) u zavisnosti od zadatka.
III godina
IT354 Veb sistemi 1
Predmet uvodi studente u oblast projektovanja i programiranja klijentske strane (front – end). Cilj predmeta je da kroz upoznavanje studenata sa funkcionisanjem Interneta i Internet servisa, obuči studente za razvoj frontend veb aplikacija primenom specifičnog radnog okvira baziranog na JavaScript / TypeScript notaciji – Angular. Pored razvijanja poslovne logike, kodiranjem Angular datoteka, studenti će steći i veštine dizajniranja veb korisničkog interfejsa, optimizacije i redukcije frontend koda, primene šablona za razvoj frontend aplikacija. Posebno, studenti će naučiti da obavljaju standardne i Mock – simulirane testove nad kreiranim frontend-om, primenom savremenih test alata poput: Jasemin i Karma. Konačno, savladavanjem ovog predmeta student će steći veštine i znanja neophodna za obavljanje zadataka junior veb frontend programera. Teme koje se obrađuju na predmetu su: Pregled i primena naprednih HTML koncepata; Primena stilizacije na klijent strani primenom CSS jezika i Bootstrap radnog okvira; Osnovni i napredni elementi jezika JavaScript; Elementi Angular okvira i jezika TypeScript kao proširenja standardnog jezika JavaScript; Rad sa komponentama u Angularu; Struktura Angular aplikacije; Rad sa formama; Koncept umetanja zavisnosti; Rukovanje HTTP zahtevima i rutiranje u Angular aplikacijama; Rad sa veb servisima; Reaktivno programiranje u Angularu i napredne komponente; Rad na naprednom Angular projektu.
SE310 Konstruisanje softvera
Cilj je ovladavanje tehnikama, metodama, modelima i računarskim alatima za konstruisanja softvera. Termin konstruisanje označava detaljnu izradu tj. neposrednu proizvodnju softvera i predstavlja kombinaciju detaljnog projektovanja, kodiranja, debagovanja, jediničnog testiranja, i integracionog testiranja, tako da će studenti ovladati strategijama i tehnikama najsavremenijih softverskih alata za kodiranje, debagovanje, detaljno projektovanje i jedinično i integraciono testiranja softvera. Nakon savladanog sadržaja programa predmeta, student će da: Razume i zna da primenjuje tehnike i softverske alate za kodiranje softvera; Razume i zna da primenjuje strategije i tehnike i softverske alate za razvojno testiranja softvera; Razume i zna da primenjuje tehnike i softverske alate za dijagnosticiranje i popravke greški u softveru; Razume i zna da primenjuje strategije i tehnike i softverske alate za detaljni dizajn softvera; Stekne veštinu razumevanja i primene tehnika i softverskih alata za integraciju i integraciono testiranja softvera; Stekne veštinu razumevanja i primene tehnika i softverskih alata za upravljanje konstruisanjem softvera; Stekne veštinu razumevanja i primene tehnika i softverskih alata za obezbeđenja kvaliteta konstruisanja softvera; Stekne veštinu razumevanja i primene tehnika defanzivnog programiranja; Stekne veštinu razumevanja i primene tehnika planiranja konstruisanja softvera; Stekne veštinu razumevanja i primene standarda kod konstruisanja softvera; Stekne veštinu razumevanja i primene tehnika minimizacije kompleksnosti softvera; Stekne veštinu razumevanja i primene tehnika podešavanja performansi softvera; Stekne veštinu razumevanja i primene tehnika reupotrebe softvera kod konstruisanja softvera; Stekne veštinu razumevanja i primene tehnika za statičku analizu softvera; Stekne veštinu razumevanja i primene tehnika za upravljanje konfiguracijom softvera. Teme koje se izučavaju na predmetu su: Uvod u konstruisanje softvera; Tehnike i pravila kodiranja; Upravljanje konstruisanjem; Konstrukcioni alati; Konstrukciono testiranje; Debagovanje softvera; Integracija softvera; Strategije i tehnike projektovanja softvera; Konstruisanje klase; Konstruisanje potprograma; Refaktorisanje softvera; Defanzivno programiranje; Kvalitet konstruisanja softvera; Konstrukcione tehnologije; Rekapitulacija i sistematizacija sadržaja predmeta.
SE311 Projektovanje i arhitektura softvera
Cilj ovog predmeta je osposobiti studente da, na osnovu definisanih zahteva za softver, projektuju softversku arhitekturu primenom planom vođenog razvoja objektno-orijentisanog softvera. Student treba da definiše komponente softverske arhitekture (opisom strukture softvera na globalnom nivou i identifikovanjem različitih komponenti), primeni adekvatan način projektovanja i kreira detaljnu projektnu dokumentaciju koja predstavlja polaznu osnovu za implementaciju softvera. Na predmetu se izučavaju sledeće teme: Osnove projektovanja softvera; Arhitektonske strukture, pogledi i stilovi; Stilovi softverskih modula; Stilovi povezivanja softverskih komponenata; Stilovi alokacije i hibridni stilovi; Upotreba šablona projektovanja softvera; Strategije i metodi projektovanja softvera; Tradicionalni metodi projektovanja softvera; Ponovna upotreba softvera; Projektovanje softvera primenom komponenata; Projektovanje distribuiranih softverskih sistema; Projektovanje servisno-orijentisanog softvera; Projektovanje softvera u realnom vremenu; Projektovanje pouzdanog softvera; Analiza ocena kvaliteta projektnog rešenja softvera.
CS360 Veštačka inteligencija
Veštačka inteligencija je danas jedna široka naučna oblast koju je teško u potpunosti pokriti jednim predmetu, ako se nastoji da se studentima pruži dovoljno znanja da oni razumeju suštinu svih značajnih metoda veštačke inteligencije. Jedna od mogućih podela ovako široke oblasti je podela na dva dela. U prvom delu su metode predstavljanja znanja u nekoj oblasti primene na osnovu koga, inteligenti softverski sistemi, koji se najčešće zovu inteligentnim agentima, mogu da zaključuju i da donose odluke na osnovu koje određenim akcijama deluju na okruženje. Drugi deo veštačke inteligencije ne polazi od utvrđenog znanja, već od velikog broja prikupljenih podataka, čijom analizom uočavaju veze između ulaznih podataka nekog realnog sistema i njegovog ponašanja. To je pristup u kome inteligenti sistem uči kako da se ponaša na bazi prikupljenih podataka u stvarnosti. To je oblast tzv., mašinskog učenja. Ovaj predmet, obuhvata samo prvi deo ovako podeljene oblasti veštačke inteligencije, tj. izučava ponašanja inteligentnog softverskog sistema na osnovu unetog domenskog znanja, predstavljenog na neki od načina koji softverski sistem razume (na primer, u vidu pravila) i zaključivanja na osnovu obrade tako predstavljenog znanja. Drugi deo oblasti veštačke inteligencije kojom se inteligenti sistem uči na osnovu unetih podataka, izučava se u predmetu CS375 Mašinsko učenje.
Izborni predmet A1
CS322 C# programski jezik
Cilj ovog predmeta je da student bude osposobljen da koristi sve bitne elemente jezika C# tj. Visual C#, i da se osposobi da pravi grafičke aplikacije pomoću Visual C#. Cilj predmeta je da osposobi studente da koriste radne okvire za kreiranje vizualnih aplikacija „Windows Presentation Foundation – WPF“. Takođe, cilj predmeta je da obuči studente da koriste moderne veb radne okvire kao što je ASP.NET Core (MVC), sa fokusom na kreiranje WEB API aplikacija. Na predmetu se izučavaju sledeće teme: Uvod u Windows Presentation Foundation (WPF); XAML; WPF kontrole; Layout; Dijalozi; Meniji i komande; Toolbars; Status bars; WPF resursi; Povezivanje podataka; Karakteristike ASP.NET Core; MVC; Upoređenje ASP.NET Core sa ASP.NET MVC i ASP.NET Web Forms; MVC i Entity Framework Core; Veb keširanje; Modularni razvoj; Rukovanje greškama.
CS320 Operativni sistemi
Studenti se upoznaju sa osnovnim pojmovima i principima rada operativnih sistema, uključujući arhitekturu, ciljeve, strukturu, metode i modele različitih operativnih sistema. Studenti se najpre uvode u principe rada operativnih sistema kroz istorijski pregled i kroz koncepte realizacije operativnih sistema. Studenti se zatim upoznaju sa sistemskim pozivima i pojmovima procesa i niti, raspoređivanjem procesa i problemima koji nastaju u interprocesnoj komunikaciji. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču upravljanja memorijom, sistemima datoteka, osnovnim pojmovima iz virtualizacije, kao i načinima rada Linux, Android i savremenih Windows operativnih sistema, razvijajući ujedno svoje sposobnosti rešavanja problema u ovim sistemima. Teme koje se obrađuju na predmetu su: Istorijski pregled operativnih sistema; Koncepti operativnih sistema; Sistemski pozivi; Struktura operativnih sistema; Procesi i niti; Interprocesna komunikacija; Algoritmi raspoređivanja; Upravljanje memorijom; Straničenje i segmentacija; Sistemi datoteka; Zastoji i prevencija zastoja; Uvod u virtualizaciju; Pregled Windows operativnih sistema; Pregled Linux i Android operativnih sistema; Projektovanje operativnih sistema.
CS330 Razvoj mobilnih aplikacija
Predmet uvodi studente u oblast razvoja mobilnih aplikacija na Android platformi. Posebno se insistira na razvoju aplikacija koje podrazumevaju najnoviju verziju operativnog sistema i najviše API nivoe. Cilj predmeta predstavlja razumevanje i savladavanje osnovnih, kao i naprednih Android koncepata i principa, kao i najnovijih razvojnih alata i jezika neophodnih za uspešno kreiranje aplikacija za mobilne uređaje koji rade na Android platformi. Posebno, studenti će pored Jave naučiti i zvaničan jezik Androida – Kotlin, kao još jedan novi jezik Javine virtuelne mašine. Posebno, predmet će prikazati kako je moguće primenom cross-platform pristupa razvijati mobilne aplikacije za različite mobilne platforme. Savladavanjem ovog predmeta, studenti će u potpunosti biti osposobljeni za poslove junior Android programera. Na predmetu se izučavaju sledeće teme: Uvod u Android; Osnovni elementi Android aplikacije
Aktivnosti, fragmenti i namere; Razvoj GUI u Androidu; Rad sa pogledima, grupama pogleda, slikama i menijima u Android aplikacijama; Čuvanje podataka u Android aplikacijama primenom datoteka, deljenih preferencija i baza podataka; Napredno čuvanje i pristup podacima putem provajdera sadržaja; Rad sa porukama u Android aplikacijama; Kreiranje i rad sa servisima u Android aplikacijama; Digitalno potpisivanje i objavljivanje aplikacije na Google Marketu; Elementi Kotlin jezika; Konverzija postojećeg Java koda u Kotlin; Razvoj Android aplikacija primenom Kotlin jezika; Hibridni razvoj mobilnih aplikacija – cross-platform pristup; Razvoj naprednih Android projekata i njihova integracija sa veb projektima.
IT390 Profesionalna praksa i etika
Usvajanje relevantnih teorijskih i praktičnih saznanja iz poslovne prakse i etike koja omogućavaju adekvatno delovanje u poslovnom okruženju. Spoznavanje da primena etike u poslovanju daje sigurnost i budućnost razvoja svakog poslovnog sistema. Uočavanje specifičnosti koje profesionalna praksa i etika imaju u oblasti informacionih tehnologija. Na predmetu se izučavaju sledeće teme: Uvod u etiku kao nauku o moralu; Uvod u poslovnu i profesionalnu etiku; Odgovornost pojedinca na radnom mestu; Zaštita ljudskih prava na radnom mestu; Korporativna društvena odgovornost; Etičke vrline i načela u poslovanju; Liderstvo; Preduzetništvo; Računarska etika; Aktuelna pitanja profesionalizma u oblasti informacionih tehnologija; Privatnost u doba informaciono-komunikacionih tehnologija; Intelektualna svojina i etika; Etika i visokotehnološki kriminal; Etičke dileme i nedoumice u poslovanju; Prevencija, prepoznavanje i sprečavanje mobinga.
IT355 Veb sistemi 2
Predmet uvodi studente u oblast projektovanja i programiranja serverske strane. Izučavaju se veb klijent-server i višeslojne arhitekture, servisno orijentisana arhitektura, aspekt-orijentisano programiranje (AOP), inverzija kontrole sa ubacivanjem zavisnih komponenti (DI), J2EE tehnologija i druge savremene tehnike. Kroz ovaj predmet student će biti upoznat sa Java baziranim okvirom za projektovanje i programiranje složenih veb aplikacija – Spring okvirom, tehnikama osiguranja bezbednosti veb sistema, tehnikama i alatima testiranja veb aplikacija. Posebno, cilj predmeta je savladavanje sledećih Spring tema: Savladavanje osnovnih i naprednih Spring IoC koncepata, savladavanje tehnika aspektno-orijentisanog programiranja u Springu, rešavanje problema bezbednosti veb aplikacija u Springu, upravljanje veb tokovima u Springu, rad u Spring MVC okviru, savladavanje Spring REST servisa, rad sa bazama podataka (Data Access) u Springu kroz okvire Spring JDBC, Spring ORM i Hibernate, testiranje veb aplikacija kroz Spring podršku za JUnit4/5 i TestNG6, rad sa sistemskim porukama u Spring, primena Spring Boot okvira – a za olakšavanje podešavanja i razvoja Spring aplikacija, integracija okvira Angular sa Springom. Teme koje se obrađuju na predmetu su: Uvod u Spring okvir; Spring IoC kontejner; Aspektno – orijentisano programiranje u Spring okviru; JSP i JSTL; Spring MVC; Uvod u Spring Boot; Spring Boot napredni koncepti – napredni alati i tehnologije; Objektno relaciono mapiranje u Spring okviru; Spring REST; Spring Security podokvir; Spring Messaging; Testiranje aplikacija u Spring okviru; Integracija Spring (Boot) i Angular; Razvoj složenih klijent – server aplikacija.
IT382 Zaštita računarskih sistema
Studenti sa upoznaju sa konceptom sigurnosti podataka i sistema, kao i sa bezbednosnom politikom, napadima, ranjivostima i šifrovanjem. Predmet osposobljava studente da prepoznaju probleme koji su vezani za obezbeđenje sigurnosti informacija i računarskih sistema, kao i da prepoznaju koji su odgovarajući mehanizmi zaštite. Studenti uče o osnovnim pojmovima digitalne forenzike i digitalnih dokaza, kao i bezbednosti različitih operativnih sistema. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču osnovnih pojmova zaštite računarskih sistema. Teme koje se obrađuju na predmetu su: Uvod u zaštitu računarskih sistema, Napadi i pretnje, rizici i ranjivost, Modeli sigurnosti, Bezbednosni mehanizmi, Kriptografski sistemi, Sistemi za detekciju i sprečavanje upada, Sigurnost mrežnog sloja, Sigurnost transportnog i aplikacionog sloja, Mrežni zaštitni zidovi, Bezbednost bežičnih računarskih mreža, Bezbednost operativnih sistema (Linux), Bezbednost operativnih sistema (Windows), Bezbednost e-poslovanja, Bezbednost informacionih sistema, Uvod u digitalnu forenziku.
SE330 Agilne metode razvoja softvera
Ovaj predmet podstiče studente da stiču znanja i iskustvo u razvoju softvera korišćenjem agilnih metoda. Na predmetu se izučavaju i tehnički i kulturni/društveni aspekti agilnih metoda, uključujući: “pair” i “mob” programiranje, rad timova koji imaju visoke performanse, razvoj zasnovan na testovima (test-driven development), razvoj vođen ponašanjem (behavior-driven development), kontinuirana isporuka, čist kod (clean code), refactoring, ekstremno programiranje, Scrum, Kanban i Agilno upravljanje projektima. Teme iz poslovne agilnosti uključuju: Agilni početak proizvoda; Korisničke priče i izrada zaostalih proizvoda; Definicija „gotovog“ i definicija „spremnog“; Procena; Agilno predviđanje i upravljanje projektima; Planiranje sprinta; Retrospektive.
SE321 Obezbeđenje kvaliteta, testiranje i evolucija softvera
Cilj predmeta je da studenti razumeju i ovladaju metodama i tehnikama iz oblasti kvaliteta, testiranja i održavanja softvera, što obuhvata savladavanje: Osnovnih pojmova kvaliteta softvera kao i njegove specifičnosti u odnosu na druge proizvode; Određivanje atributa kvaliteta softvera i mere kvaliteta kao i standardi koji se primenjuju u ovoj oblasti. Studenti će ovladati tehnikama i procesima obezbeđenja kvaliteta softvera kroz testiranje kao i propisivanje i primenu procedura testiranja na bazi tehnika testiranja softvera bez izvršavanja koda, kao i tehnike sa izvršavanjem koda. Posebna pažnja se posvećuje organizaciji testiranja softvera. Izučavaju se statističke metode praćenja, merenja i predviđanja kvaliteta softvera. Pored obezbeđenja i testiranja softvera u projektovanju softverskih rešenja, u okviru predmeta se izučavaju i procesi, tehnike i modeli poboljšanja i održavanja softverskog proizvoda. Teme koje se izučavaju na predmetu su sledeće: Kvalitet softvera – osnove; Faktori kvaliteta softvera – procesi, modeli, zahtevi i metrika; Testiranje softvera – osnove, ciljevi, pristupi, procesi, planiranje i sprovođenje; Testiranje softvera – strategije, tipovi (klase) tehnika testiranja; Testiranje softvera – tehnika crne kutije (funkcionalno testiranje) ; Testiranje softvera – tehnike bele kutije; Testiranje softvera – strukturno testiranje i tehnike sive kutije; Organizacija procesa testiranja softvera; Upravljanje procesom testiranja softvera (nivoi testiranja); Merenje i predikcija kvaliteta softvera; Osnovno o održavanju softvera, vrste i kategorije održavanja softvera; Analiza problema, izbor tehnika održavanja, proces upravljanja greškom (bagom, defektom, otkazom) ; Procena vrste i obima (modeli estimacije) poslova u procesu održavanja softvera; Tehnike održavanja, podmlađivanja i redizajna softvera; Estimacija održavanja softvera prema klasifikaciji grešaka.
Izborni predmet B1
CS375 Mašinsko učenje
U ovom predmetu izučava se deo veštačke inteligencije koji se bavi metodama učenja inteligentnih sistema da se ponašaju na osnovu analize velikog broja podataka na ulazu u sistem. Tako naučen sistem u određenom stepenu tačnosti, oponaša realni sistem koji predstavlja. Ne koristi se jasno i eksplicitno definisanje i predstavljanje znanja, jer je ponašanje ovakvih inteligentnih sistema, na osnovu implicitno definisanog znanja. Sistem je prethodno naučio da se ponaša kao i realan sistem u slučaju izloženosti dejstvu određenog seta ulaznih veličina promenljivih sistema, te sistem reaguje na način koji je ”naučio” u fazi učenja. Ova oblast veštačke inteligencije se naziva mašinsko učenje, jer se naučena ”mašina”, tj. inteligentni softverski sistem ponaša kako treba, a u skladu sa nizom vrednosti ulaznih promenljivih sistema. Pružajući pregled teorije i prakse mašinskog učenja, ovaj predmet istražuje centralne koncepte i algoritme nadgledanog, nenadgledanog učenja i učenja sa pojačanjem.
SE350 Razvoj softvera u realnom vremenu
Sistem se naziva „real-time” sistemom (RTS) kada je u interakciji sa stvarnim svetom (fizičkim procesom) u okviru vremenskih zahteva. Odgovor RTS ne samo da mora biti tačan, već mora stići u pravo vreme ili se smatra da je sistem zakazao. Ovo je slučaj aktiviranja vazdušnog jastuka ili ABS-a u automobilu, da damo dva kritična primera, ali i robota koji mora da uhvati loptu u letu. Na kraju predmeta student će razumeti razliku između brzog i sistema u realnom vremenu, kao i razliku između tvrdog, mekog ili kritičnog sistema u realnom vremenu. Znaće da analizira, dizajnira i implementira sisteme zasnovane na mikroračunarima sa zahtevima vremenske kritičnosti, pouzdanosti i cene. Na predmetu se izučavaju sledeće teme: Uvod u „real-time” sisteme (RTS); Objašnjenje različitih primera u kojima analiza i upotreba tehnika u realnom vremenu postaje suštinska; RTS koji su „pasivni“ ili bez računarskih sposobnosti; Primeri RTS-a koji nemaju računarske sposobnosti da bi mogli da reše moguće probleme „istovremenosti“ (concurrency problems): RT mreže, liftovi, baterije, raskrsnice ili železničke pruge, drugi primeri koji proširuju interesovanja studenata, optimalno planiranje. Aktivni RTS ili sa računarskim mogućnostima; Onlajn zakazivanje i prevencija: Optimalni planeri, „Rate monotonic”, “Deadline monotonic”, „Earliest deadline first“. Implementacija RT operativnog sistema u mikroprocesoru; Detalji koje treba uzeti u obzir pri migraciji ili primena operativnog sistema u realnom vremenu na mikroprocesoru; Sistemi visokog nivoa. „Bandwitdth” serveri i njihova implementacija, RTS sa više od jednog mikrokontrolera.
IT375 Kriptografija i kripto tehnologija
Studenti se upoznaju sa predmetom izučavanja kriptografije, kao i sa različitim klasama kriptografskih sistema i osnovnim nivoima kriptoanalitičkih napada. Predmet pruža osnove vezane za modularnu aritmetiku i teoriju brojeva i pregled algoritama za faktorizaciju velikih brojeva, te na taj način studenti stiču neophodna matematička znanja koja se koriste u kriptografiji. Studenti se upoznaju sa osnovnim karakteristikama blokovnih kriptografskih sistema, sa i bez ključa, i tehnikama za formiranje digitalnog potpisa i razmenu ključa, kao i sa metodama kriptoanalize. Nakon savladavanja sardžaja programa predmeta, studenti: poseduju osnovna saznanja o kriptografiji i kriptotehnologiji; su upoznati sa klasičnom tehnikom šifrovanja; su upoznati sa matematičkim osnovama koje su neophodne za razumevanje kriptografije; su upoznati sa blokovskim algoritmima; poseduju osnovna znanja iz oblasti simetirčne i asimetrične kriptografije; su upoznati sa infrastrukturom javnih ključeva (PKI) kao i sa Heš algoritmima; su stekli osnovna znanja iz oblasti steganografije; su upoznati sa metodama kritptoanalize. Na predmetu se izučavaju sledeće teme: Klasična kriptografija; Klasične tehnike šifrovanja; Matematičke osnove; Blokovske šifre i DES algoritam; AES algoritam; Kombinovanje blokovskih šifara; Generatori pseudoslučajnih sekvenci i šifre toka; Asimetrična kriptografija; Upravljanje ključevima; Provera identiteta poruka i Heš funkcije; Heš i MAC algoritmi; Digitalni potpis i problemi identiteta; Primena kriptografskih sistema; Kriptoanaliza.
IV godina
SE425 Upravljanje projektima razvoja softvera
Ovladavanje osnovim tehnikama menadžmenta u malom profesionalnom timu za razvoj softvera. Studenti se upoznaju sa klasičnim (vodopad) modelom upravljanja softverskih projekata i modelom životnog ciklusa softverskog projekta. Studenti uče o trouglu ograničenja pri upravljanju projektima razvoja softvera, kako upravljati kvalitetom softvera, ali i standardima za razvoj softvera. Konačno, studenti se upoznaju i sa iterativnim pristupom upravljanja softverskog projekta, kao uvod u agilni razvoj softvera. Teme koje se obrađuju na predmetu su: Uvod u projekte razvoja softvera; Osnovi upravljanja projektima; Klasični model upravljanja projektima; Osmišljavanje, pokretanje, planiranje, realizacija i završetak projekta; Pokretanje i planiranje softverskog projekta – detalji i tehnike; Modeli životnog ciklusa softvera; Upravljanje kvalitetom softvera; Kontrola konfiguracije softvera; Primena merenja u projektu razvoja softvera; Standardi za razvoj softvera.
MG470 Inovacije i preduzetništvo u digitalnom biznisu
Ovaj predmet pruža uvid u nastanak digitalnog preduzetništva, ključne koncepte, poslovne modele i resurse potrebne za razvoj uspešnih poduhvata. Studenti će razviti poslovni plan za digitalno preduzeće kao deo tima za poduhvat i predstaviće ovaj plan u poslovnom piču (pitch). Fokus predmeta je na inovativnom digitalnom preduzetništvu, te student stiče i osnovna znanja o procesu razvoja inovacija. Ovaj predmet je od interesa za studente koji planiraju razvoj sopstvenog preduzeća ili koji nameravaju da rade u dinamičnim, digitalnim preduzećima.
Izborni predmet B2 i B3
IS460 Robotska automatizacija procesa
Cilj predmeta predstavlja ovladavanje znanjem o robotskoj automatizaciji procesa (RPA), omogućava studentima da bolje razumeju značaj i potrebu automatizacije i njihovo stručno osposobljavanje za adekvatnu primenu različitih upravljačkih tehnika u primeni robotike u postupku automatizacije procesa. Predmet robotska automatizacija procesa je dizajniran da pokaže studentima kako RPA može da transformiše poslovne procese eliminisanjem svakodnevnih, dugotrajnih, ručnih zadataka koje obavljaju zaposleni u kompanijama, omogućavajući im više vremena da se usredsrede na kritičko razmišljanje. Predmet takođe uključuje smernice o izboru odgovarajućih procesa za automatizaciju, kao i strategije za uspešnu implementaciju RPA. Na predmetu se izučavaju sledeće teme: Uvod u RPA; Kako RPA funkcioniše? RPA tržište i istorija, važnost i prednosti RPA, RPA i AI; Osnove RPA; Nivoi automatizacije, slučaji upotrebe; Priprema RPA; Procena mogućnosti i zahteva, izbor odgovarajućih procesa za automatizaciju, potencijalni procesi u neindustriji.
CS420 Primene veštačke inteligencije
Cilj ovog predmeta je da se studenti upoznaju sa primenama veštačke inteligencije u sistemima odlučivanja, obradi prirodnog jezika, robotici, i računarskog vida. Takođe, diskutuju se i teme o mogućnostima i granicama primene veštačke inteligencije, o etici primene veštačke inteligencije i budućnosti veštačke inteligencije. Po završetku nastave na predmetu, studenti će moći da: razumeju i primene metode veštačke inteligencije u sistemima odlučivanja, razumeju metode dubokog učenja s ciljem računarskog razumevanja prirodnog jezika, što je preduslov za razvoj i primenu inteligentnih sistema u kome se koristi i prirodni govor u komunikacija sa sistemom, razumeju primenu veštačke inteligencije u upravljanju ponašanjem robota, razumeju primenu metoda veštačke inteligencije u analizi slika, fotografija ili 3D objekata, što je preduslova za korišćenje tzv. računarskog vida, koji je često neophodno ulazno ”čulo vida” mnogih inteligentnih softverskih sistema.
IT470 Etičko hakovanje i penetraciono testiranje
Studenti se upoznaju sa konceptima identifikacije ranjivosti računarskih sistema i načinima njihove eksploatacije u cilju poboljšanja bezbednosti. Studenti dobijaju znanja da kroz pokušaje neovlašćenog pristupa računarskih sistema i testiranje ranjivosti, ukažu na sigurnosne propuste sistema. Studenti se upoznaju sa malicioznim aktivnostima unutar računarskog sistema, njihovim elementima i načinima rada, kao i sa metodama njihove identifikacije. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču tzv. etičkog hakovanja u kontekstu bezbednosti. Na predmetu se izučavaju sledeće teme: Eksploatacija ranjivosti računarskih sistema; Postavka virtuelne laboratorije za penetraciono testiranje; Planiranje napada: sakupljanje informacija, izviđački radovi i identifikacija ranjivosti; Ranjivosti računarskog sistema kroz analizu mrežnog saobraćaja; Analiza sistemskih izveštaja; Bezbednost bežičnih mreža – vrste bezbednosnih postavki; Bezbednost bežičnih mreža – eksploatacija ranjivosti; Bezbednost i ranjivosti mrežne infrastrukture – komutatori i usmerivači; Bezbednost i ranjivosti mrežne infrastrukture – zaštitni zidovi i pristupne liste; Bezbednost baza podataka i SQL injekcije; Bezbednost servera; Provera otpornosti sistema na DoS i DDoS napade; Maliciozni softver; Etičko hakovanje i sajber kriminal; Projektovanje sigurnih računarskih sistema i mreža.
IT465 Bezbednost softvera i web sistema
Studenti se upoznaju sa konceptom bezbednosti softvera i veb sistema. Predmet osposobljava studente da prepoznaju probleme koji su vezani za analizu savremenih veb aplikacija iz bezbednosnog aspekta. Studenti uče o tehnikama identifikacije slabih tačaka u arhitekturi softvera i veb aplikacija, ali i o zaštiti pri razvoju veb aplikacija. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču osnovnih pojmova bezbednosti veb sistema. Na predmetu se izučavaju sledeće teme: Istorijski pregled bezbednosti softvera; Struktura savremenih veb aplikacija i softverskih sistema; Mapiranje veb aplikacija; Ranjivosti javnih veb servisa; Analiza API-ja; Identifikacija zavisnih komponenata veb aplikacija i softvera; Slabe tačke veb aplikacija i softverskih sistema; Vrste napada na veb aplikacije i softverskih sistema; SQL injekcije; Načine zaštite od Denial-of-Service (DoS) i Distributed-Denial-of-Service (DDoS) napada; Zaštita savremenih veb aplikacija; Tehnologije bezbednih veb aplikacija; Postavljanje bezbedne arhitekture veb sistema; Pregled programskog koda za veb sisteme iz ugla bezbednosti; Uvod u penetraciono testiranje.
SE455 Softverski sistemi sa IoT
Studenti se kroz predmet upoznaju sa osnovnim principima rada i projektovanja Interneta Stvari (IoT, eng. Internet of Things). Predmet najpre uvodi studente u glavne koncepte IoT-a, kao što su pametni objekti, pametno okruženje i komunikacija mašina-ka-mašini. Studenti uče o arhitekturi i referentnim modelima IoT-a, o mrežnim, senzorskim i ugrađenim zahtevima. Studenti se upoznaju sa radnim okvirima softverskih sistema IoT-a, uz projektovanje različitih primera IoT uređaja sa razvojnim pločama. Konačno, studenti se upoznaju sa sigurnosnim aspektima IoT uređaja, kao i Industrijom 4.0. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču Interneta Stvari. Na predmetu se izučavaju sledeće teme: Osnovni elementi Interneta Stvari (IoT); Informaciono-komunikaciona infrastruktura IoT-a; Pametni objekti; Pametna okruženja i komunikacija mašina-ka-mašini; Tehnologije koje omogućavaju rad IoT-a; IoT i mobilno računarstvo; IoT i računarstvo u oblaku; Softverski sistemi za rad sa razvojnim pločama; Programiranje razvojnih ploča; Projektovanje IoT uređaja; Sigurnosti aspekti IoT infrastrukture; Razvoj mobilnih aplikacija za IoT uređaje IoT i Industrija 4.0.
Izborni predmet B4
CS440 Analitika podataka
Predmet pruža i teorijska i praktična znanja i veštine u vezi sa skladištenjem, obradom, analizom i vizuelizacijom podataka. Ovo uključuje sakupljanje i istraživanje podataka kako bi se pronašli šabloni koji mogu biti korisni u organizaciji, na primer, u obliku poboljšanog donošenja odluka za menadžment organizacije. Predmet se bavi konceptima koji se odnose na analitiku podataka, kao što su veliki podaci, jezera podataka, mašinsko učenje i vizuelizacija. Praktični aspekti predmeta sastoje se delom od primene alata za analizu i vizuelizaciju, a delom iz laboratorijskih vežbi gde studenti razvijaju svoja rešenja na terenu. Na predmetu studenti takođe uče kako da sastavljaju podatke iz različitih izvora kako bi omogućili analizu podataka.
IS450 Analiza i projektovanje sistema
Cilj predmeta je razumevanje poslovnih potreba neke organizacije koje se mogu rešiti korišćenjem rešenja baziranih na informacionim tehnologijama. Studenti se osposobljavaju da: (1) učestvuju u timovima čiji je zadatak iniciranje projekata informacionih sistema, (2) modeliraju rešenja informacionog sistema korišćenjem bar jedne od postojećih metodologija za analizu poslovnih problema, (3) specificiraju zahteve sistema koji će omogućiti produktivne promene u načinu na koji se vodi poslovanje, (4) upravljaju projektima informacionih sistema korišćenjem formalnih metoda za upravljanje projektima, (5) rade logički dizajn sistema na visokom nivou (dizajniraju korisnički interfejs, podatke i zahteve za informacijama). U predmetu se govori o procesima, metodama, tehnikama i alatima koje organizacije koriste kako bi definisale način na koji će voditi svoje poslovanje, sa posebnim fokusom na to kako računarski bazirane tehnologije mogu da efikasno doprinesu tako organizovanom načinu poslovanja. Predmetom su obuhvaćene metodologije za analiziranje poslovnih problema, određivanje uloge računarski baziranih tehnologija u njihovom rešavanju, artikulisanje poslovnih zahteva i alternativnih pristupa za primenu tehnoloških rešenja i specificiranje zahteva za izgradnjom informacionih sistema primenom različitih strategija koje se baziraju na sopstvenom razvoju, razvoju u kojem učestvuje treća strana i kupovinom gotovih softverskih paketa. Teme koje se obrađuju na predmetu: Životni ciklus razvoja: strukturne i agilne metodologije razvoja IS, objektno orijentisane metodologije razvoja IS; Analiza i upravljanje poslovnim procesima; Planiranje projekta razvoja informacionog sistema; Analiza i specifikacija sistemskih zahteva; Metode za strukturiranje i razmenu zahteva: dijagrami tokova podataka, dijagrami slučajeva korišćenja, klasni i objektni dijagrami, dijagrami interakcije; Problemi na visokom nivou projektovanja sistema-sistemsko projektovanje; Principi detaljnog projektovanja sistema; Projektovanje sloja za upravljanje podacima; Projektovanje korisničkog interfejsa.
IT475 Blokčejn tehnologija u zaštiti podataka
Studenti se kroz predmet upoznaju sa osnovnim konceptima blokčejn tehnologije i njihove primene. Predmet najpre uvodi studente u matematičke i kriptografske algoritme koji pokreću blokčejn tehnologiju. Zatim, studenti se upoznaju sa konceptima decentralizovanih i distribuiranih računarskih sistema, njihovih sličnosti i razlika, kao i primena istih. Studenti uče način rada uopštenog blokčejn distribuiranog sistema, uz osnove iz konkretnih primera: Bitcoin, Ethereum i Hyperledger blokčejn tehnologije i njihovih bezbednosnih osobina. Konačno, studenti stiču veštine da prepoznaju moguću primenu odgovarajućih blokčejn tehnologija na postojeća softverska rešenja, i da istaknu bezbednosne prednosti, ali i nedostatke. Kroz samostalne zadatke studenti stiču mogućnost da detaljnije prouče određene teme koje se tiču osnova blokčejn tehnologije u kontekstu bezbednosti. Na predmetu se izučavaju sledeće teme: Osnovni elementi blokčejn tehnologije; Matematičke i kriptografske postavke; Strukture podataka koje koristi blokčejn tehnologija; Blokčejn i distribuirani računarski sistemi; Blokčejn tehnologija i bezbednost informacija; Kriptovalute i ostale primene blokčejn tehnologija; Uvod u Bitcoin; Uvod u Ethereum; Uvod u Hyperledger; Analiza i uporedni prikaz manje poznatih blokčejn tehnologija; Implementacija blokčejn tehnologije – kada (ne) koristiti blokčejn?; Implementacija blokčejn tehnologije – projektovanje softvera sa blokčejn tehnologijom; Povezivanje blokčejn tehnologije sa ostalim elementima softverskog sistema; Softverski sistemi koji koriste više blokčejn tehnologija; Upotreba blokčejn tehnologije u kontekstu sajber bezbednosti.
Izborni predmet B5
CS490 Projekat primene veštačke inteligencije
Cilj ovog predmeta je da omogući studentu da u okviru jednog celovitog projekta, praktično primeni stečena znanja na predmetima u oblasti veštačke inteligencije: CS360 Veštačka inteligencija, CS375 Mašinsko učenje, CS420 Primene veštačke inteligencije i CS440 Analitika podataka. Pored ovih predmeta, u ovom predmetu se posebno primenjuju znanja stečena na predmetu SE425 Upravljanje projektima razvoja softvera, kao i na predmetima u kojima se izučavaju posebne faze razvoja softvera, (SE222 Inženjerstvo zahteva, SE310 Konstruisanje softvera, IT230 Interakcija čovek-računar, SE311 Projektovanje i arhitektura softvera, SE321 Obezbeđenje kvaliteta, testiranje i evolucija softvera, SE330 Agilne metode razvoja softvera). Po pravilu, projekat realizuje tim od 3 do 5 studenata. Po završetku nastave na predmetu, studenti će moći da: Definišu plan projekta, u zavisnosti da li primenjuje planom vođen razvoj softver, ili agilni metod razvoja softvera, utvrđuju zahteve za razvoj softvera, definišu njegovu arhitekturu i projektuju i implementiraju (programiraju) urađeno projektno rešenje, testiraju razvijen softverski sistem, primenjuju metode veštačke inteligencije u skladu sa zahtevima dobijenog projektnog zadatka, analiziraju rezultate primene razvijenog inteligentnog softverskog sistema pri korišćenju odgovarajućih skupova ulaznih podataka.
SE485 Projekat razvoja softvera u realnom vremenu
Cilj ovog predmeta je da studenti nauče kako da razviju timska rešenja za projekte koji razvijaju “real time” sisteme (RTS). Studenti će steći iskustvo i razumevanje timskog rešavanja problema. Studenti će naučiti kako da implementiraju i integrišu RTS u softverski proizvod. Po završetku ovog predmeta student će moći da: Primenjuje metode i tehnike koje se koriste u procesu razvoja RTS, projektuju i realizuju RTS na jednom ili više programskih jezika, planira projektno rešenje i dokumentuje napredak, efikasno rasporedi opterećenje među članovima tima, komunicira i učestvuje u radu projektnog tima. Na predmetu se izučavaju sledeće teme: Definisanje problema za RTS; Specifikacija zahteva za RTS; Odabrane teme koje se podudaraju sa interesovanjem studenata i projektima koje realizuju; Upravljanje timom i zadacima; Procedure upravljanja projektom: identifikovanje ciljeva, obima i ograničenja; Pisana i usmena prezentacija rezultata.
IT485 Projekat zaštite računarskog sistema
Studenti se upoznaju sa konceptima projektovanja bezbednosnih mehanizama za IT sisteme i mreže koje zadovoljavaju određene bezbednosne kriterijume. Studenti najpre dobijaju znanja da analiziraju bezbednosne zahteve IT sistema i mreža. Zatim, studenti stiču znanja o bezbednosnim podešavanjima i načinima testiranja mrežne infrastrukture i serverskih i klijentskih uređaja. Primenjujući stečena znanja, studenti rade u grupama na projektnim zadacima. Po završetku predmeta, studenti stiču znanja koja im omogućavaju da: Analiziraju bezbednosne zahteve pri projektovanju bezbednosnih mehanizama za IT sisteme i mreže; Primene tradicionalne i agilne modele projektovanja bezbednosnih mehanizama; Izvrše napredna bezbednosna podešavanja mrežne infrastrukture, računarskih uređaja i korisničkog pristupa; Projektuju bezbednosne mehanizme za računarsku mrežu koja će zadovoljiti date bezbednosne kriterijume; Simuliraju i testiraju bezbednost projektovanih mehanizama. Predmet obuhvata sledeće teme: Uvod u projektovanje bezbednosnih mehanizama za IT sisteme i mreže; Modeli projektovanja bezbednosnih mehanizama; Sakupljanje i analiza bezbednosnih zahteva; Planiranje i postavka; Zaštitni mehanizmi protiv neovlašćenog pristupa sistemu; Napredna bezbednosna podešavanja mrežne infrastrukture; Napredna bezbednosna podešavanja klijentskih i serverskih uređaja; Bezbednosna podešavanja klaud servisa; Podešavanja politike privatnosti korisnika; Podešavanja bezbednog korisničkog pristupa; Bezbedno skaliranje; Testiranje bezbednosnih mehanizama; Simulacija napada na bezbednosne mehanizme; Pisanje dokumentacije i uputstva za korisnike bezbednosnih mehanizama; Održavanje bezbednosnih mehanizama za IT sisteme i mreže.
NT475 Pravo na internetu
Usvajanje osnovnih i primenjenih znanja iz oblasti prava na Internetu, što podrazumeva: Razumevanje osnova pravnog sistema Republike Srbije; Razumevanje izvora prava na Internetu i njihove međusobne hijerarhije; Razumevanje potrebe za zaštitom podataka o ličnosti u sajber prostoru i osnovnih postulata GDPR Uredbe; Razumevanje uloge i značaja prava intelektualne svojine u oblasti informaciono-komunikacionih tehnologija; Razumevanje pravnih aspekata čuvanja podataka o ličnosti u klaudu; Razumevanje i unapređivanje znanja u oblasti visokotehnološkog kriminala i njegovih pojavnih oblika, kao što je fišing; Razumevanje značaja pravnog regulisanja ponašanja na društvenim mrežama (pre svega, Fejsbuku); Razumevanje značaja i uloge pravnog sistema u oblasti elektronske trgovine i zaključivanja digitalnih ugovora, posebno u svetlu blokčejn tehnologija. Teme koje se obrađuju na predmetu su: 1. Osnove prava; 2. Izvori prava na Internetu; 3. Pravo intelektualne svojine; 4. Pravna zaštita računarskih programa i baza podataka; 5. Elektronska uprava; 6. Pravna zaštita naziva internet domena; 7. Visokotehnološki kriminal; 8. Pravo Evropske unije o zaštiti podataka o ličnosti; 9. Pravo Republike Srbije u oblasti zaštite ličnih podataka; 10. Pravni aspekti čuvanja podataka u internet oblaku (cloud); 11. Fišing kao vid krađe ličnih podataka na Internetu; 12. Pravni aspekti u vezi sa internet špijunažom i hakovanjem; 13. Pravni aspekti korišćenja društvenih mreža i pravila o oglašavanju Republike Srbije; 14. Elektronska trgovina; 15. Ugovori na internetu.
SE491 Stručna praksa
Cilj stručne prakse je da studente pripremi i obezbedi kvalitetno sticanje kompleksnijeg iskustva o njihovoj profesiji i radnim zadacima za koja se školuju. Programski zadaci su tako postavljeni da u prvoj fazi vode i omoguće upoznavanje radne sredine, profil organizovanosti, raspodelu radnih zadataka i uvid u sadržaj aktivnosti, uvid u specifičnosti rada na različitim radnim mestima. Naredni zadaci su orijentisani na uključenje studenata u projekte različitih vrsta, obima i namena, u njihovoj početnoj, razvojnoj ili završnoj fazi, kao i u njihovu implementaciju od instalacije, obuke do održavanja. Studenti kroz asistiranje u konkretnim zadacima, trebaju bolje upoznati i u što većoj meri prihvatiti tehnologiju rada, kako bi u narednoj fazi krenuli u projekte samostalno. Kroz sagledavanje radne sredine i konkretnih radnih aktivnosti student treba steći nova znanja, sigurnost u radu i mogućnost integrisanja parcijalno stečenih znanja i veština kroz prethodne studije. U boravku i radu u profesionalno orijentisanoj okolini, stiču se i šira iskustva o zahtevima prema specijalnosti za koju se student priprema, omogućuje kvalitetno sagledavanje uspešnosti prethodnog školovanja i jasna procena potrebe za daljim usavršavanjem.
SE495 Završni rad
Završni rad prvog stepena akademskih studija je samostalan rad studenta kojim se proverava i ocenjuje sposobnost studenta da stečeno znanje uspešno primenjuje u praksi, posebno iz oblasti iz koje je završni rad. Završni rad predstavlja istraživački rad studenta u kome se on upoznaje sa specifičnostima primene inženjerske metodologije u oblasti. Nakon obavljenog istraživanja student priprema završni rad u formi koja sadrži sledeća poglavlja: Uvod; Teorijski deo; Eksperimentalni deo, rezultati i diskusija; Zaključak; Pregled literature.
Univerzitet Metropolitan u Beogradu – Tradicionalna nastava i internet nastava
STUDIJSKI PROGRAM | Godišnja školarina (tradicionalna i Internet nastava) | Akontacija 20% uplata pri upisu | IZNOS MESEČNE RATE ZA MODEL PLAĆANJA OD PREOSTALIH 11 RATA BEZ KAMATE | |||
FAKULTET INFORMACIONIH TEHNOLOGIJA | ||||||
Informacione tehnologije | 2.990 € | 598 € | 217.45 € | |||
Softversko inženjerstvo | 2.990 € | 598 € | 217.45 | |||
Razvoj video igara | 2.990 € | 598 € | 217.45 | |||
FAKULTET ZA MENADŽMENT | ||||||
Inženjerski i operacioni menadžment | 2.490 € | 498 € | 181.09 € | |||
Digitalni biznis i marketing | 2.490 € | 498 € | 181.09 € | |||
FAKULTET DIGITALNIH UMETNOSTI | ||||||
Grafički dizajn | 3.690 € | 738 € | 268.35 € | |||
Dizajn interaktivnih medija | 3.690 € | 738 € | 268.35 € | |||
Modni dizajn | 3.890 € | 778 € | 282.9 € |
Univerzitet Metropolitan u Nišu
STUDIJSKI PROGRAM | Godišnja školarina (tradicionalna i Internet nastava) | Akontacija 20% uplata pri upisu | IZNOS MESEČNE RATE ZA MODEL PLAĆANJA OD PREOSTALIH 11 RATA BEZ KAMATE | |||
FAKULTET INFORMACIONIH TEHNOLOGIJA | ||||||
Informacione tehnologije | 2.490 € | 498 € | 181.09 € | |||
Softversko inženjerstvo | 2.490 € | 498 € | 181.09 € | |||
Razvoj video igara | 2.490 € | 498 € | 181.09 € | |||
FAKULTET ZA MENADŽMENT | ||||||
Biznis i marketing | 1.990 € | 398 € | 144.72 € | |||
FAKULTET DIGITALNIH UMETNOSTI | ||||||
Grafički dizajn | 3.090 € | 618 € | 224.72 € |
POGLEDAJTE ŠTA OBUHVATA ŠKOLARINA