Доступни курсеви

    Pripremna nastava iz informatike

    Pripremna nastava za polaganje prijemnog ispita iz informatike. Materijal obuhvata neograničen pristup online lekcijama, video materijalima, zadacima, rešenjima zadataka i testovima koji simuliraju prijemni ispit i pripremaju polaznika da ga uspešno položi. 

    Administracija i održavanje sistema 2

    Napredni deo Linux administracije. Opis, konfigurisanje i pregled najćešće korišćenih serverskih programa. Objašnjavanje najučestalijih pojmova iz mreža, servisa itd. Ključne reči: OSI model, TCP/IP, NAT, iproute2, DNS, HTTP/WWW, SMTP, SYSLOG, SSH, CIFS, BIND, Apache, Postfix, Rsyslog, OpenSSH, Samba.

    Kreatori kursa: Ognjen Šešlija

    Administracija i održavanje sistema 1

    Prvi dio kursa o administraciji i održavanju GNU/Linux sistema u kom se bavimo osvnovnim elementima Linux distribucija i upotrebom komandi i alata u komandnoj liniji.

    Osnovi programiranja

    Uvod u osnovne koncepte i logiku programiranja i programskih jezika, fokusirajući se na jezik C kao konkretan primjer. Obrađuju se teme koje su zajedničke za većinu programskih jezika, poput varijabli, kontrole toka, nizova i struktura, funkcija i rada sa fajlovima.

    Administracija i održavanje sistema 2

    Drugi deo kursa o administraciji i održavanju Linux sistema, ovaj put fokusiran na RPM-bazirane distribucije (Red Hat, Fedora, CentOS) i mrežne servise.

    Poslovni softver

    Microsoft PowerPoint: Izrada nove prezentacije, umetanje i izmena tekstualnog sadržaja, tabele, grafikoni i dijagrami, umetanje slika, oblika i grafičkih objekata, formatiranje slajda. Animacione šeme.

    Microsoft Word: Kreiranje stilova teksta, tabela i nabrajanja, numerisanje stranica, umetanje i promena objekata, kreiranje i menjanje dijagrama i grafikona, sortiranje podataka, korišćenje automatizovanih alata za navigaciju, cirkularna pisma, rad sa formama, izrada i izmena formata, pozadine dokumenta, indeksa i sadržaja.

    Microsoft Excel: Korišćenje međuzbirova, definisanje i primenjivanje naprednih filtera, grupisanje podataka, izrada izveštaja, funkcije za pretraživanje, pronalaženje zavisnih ćelija u formulama i grešaka, pronalaženje pogrešnih podataka i formula, izvođenje formula, imenovani skupovi ćelija, izrada i izmena namenskih formata podataka, pravilna upotreba velikog broja formula.

    Menadžer: Igor Mijatovic

    Dizajn i razvoj web strana

    Svrha kursa "Dizajn i razvoj web strana" je upoznavanje sa tehnikama planiranja, izrade i implementacije veb strana i ima za cilj da studenti steknu sposobnost samostalnog planiranja, razvoja, optimizacije i održavanja veb sajtova.

    Web Sistemi i Tehnologije

    Cilj kursa je sticanje opštih znanja iz web sistema i tehnologija. Studenti će biti upućeni u osnovone pojmove sledećih oblasti: Prenošenje podataka kroz računarske mreže. Paketi. Protokoli i interfejsi. Slojeviti prikaz. Fizički i data link slojevi. Mržni sloj i Internet protokol. Transportni sloj i pojam konekcije. TCP i UDP. Aplikacioni sloj. Interfejs sa transportnim slojem. Soketi. DNS. HTTP protokol. Zahtevi i odgovori. HTTP zaglavlja. HTTP komande. Asinhrona komunikacija. Web čitači. HTTP server. Aplikacioni serveri. Web portal. Web proksi. Keširanje. Balansiranje opterećenja. Bezbednost na webu. Autentifikacija i autorizacija. SSL/TLS i HTTPS. SSL akceleratori. Web pretraživači. PHP i JS programiranje. Razvoj jednostavnih web sistema.

    Profesor: Ljubomir Lazic

    SQL programiranje

    Cilj predmeta je sticanje znanja i veština za projektovanje i implementiranje baza podataka korišćenjem Microsoft SQL Server platformske tehnologije i SQL jezika za pravljenje upita.

    C# Programiranje

    Kurs C# programiranje pokriva oblasti iz osnova programiranja u programskom jeziku C#. Zadatak ovog kursa, pored upoznavanja polaznika sa osnovama programiranja je i upoznavanje sa Microsoft razvojnim okruženjem - MS Visual Studio.

    Ovi ciljevi se realizuju kroz sledeće module:

    • Kreiranje projekata u Visual Studio okruženju.
    • Korišcenje C# programskih elemenata za: deklarisanje varijabli,
    • korišcenje izraza i operatora,
    • kreiranje nizova,
    • kreiranje i korišcenje naredbi odlucivanja i petlji.
    • Kreiranje klasa. Kreiranje svojstava.
    • Dogadaji.
    • Deklarisanje i pozivanje metoda.
    • Nasledivanje i implementacija interfejsa.
    • Upravljanje izuzecima.
    • Upravljanje životnim ciklusom objekata i kontrola resursa.
    • Izgradnja i korišcenje kolekcija

    Implementiranje ISA servera

    Implementacija i administracija Internet Security and Acceleration servera, odnosno njegove poslednje verzije pod nazivom Threat Management Gateway.

    Menadžer: Siniša Lale

    Дискретне структуре

    Циљ предмета:

    Стицање основних знања из дискретне математике.

    Исход предмета:

    Студент је оспособљен да у даљем образовању решава проблеме базиране на стеченом знању из дискретне математике.

    Садржај предмета:

    Теоријска настава

    Исказни рачун – (прост и сложен) исказ, истинитосна вредност, логички везници и њихов приоритет, таблице истинитости, логички еквивалентни искази. Аргументи и докази – ваљан аргумент, испитивање ваљаности аргумента уз помоћ таблица истинитости, доказ ваљаности аргумента свођењем на контрадикцију, доказивање ваљаности аргумента употребом правила извођења. Примери доказа. Комплетност у исказној логици и Карноове мапе. Скупови – скуповне операције, партитивни скуп, Декартов производ скупова, Венови дијаграми. Релације – домен и опсег релације, инверзна релација, композиција релација, особине релације на скупу, репрезентација релације, релација поретка и релација еквиваленције. Функције – инјективна, сурјективна и бијективна функција, композиција функција. Математичка индукција. Дељивост – најмањи заједнички садржалац и највећи заједнички делилац. Еуклидов алгоритам. Диофантске једначине са две непознате. Прости бројеви – теорема о јединствености факторизације на просте бројеве. Релација конгруенције. Конгруенцијске једначине. Системи конгруенцијских једначина и Кинеска теорема о остацима. Рекурзија – рекурзивне функције и хомогене и нехомогене линеарне рекурентне релације (једначине). Комбинаторика – основни принципи пребројавања (правило збира и правило производа), принцип укључења – искључења, принцип голубарника, пермутације, комбинације, уопштене пермутације и комбинације, пермутације и комбинације са понављањем

    Практична настава:

    Решавање репрезентативних задатака на табли, из области са којима су студенти упознати на теоријској настави.

    Литература:

    Андерсон Џ. А., Дискретна математика са комбинаториком, Рачунарски факултет и ЦЕТ, Београд, 2005.

    Комбинаторика и теорија графова

    Циљ предмета:

    Упознавање студената са теоријским и практичним аспектима комбинаторне теорије графова.

    Исход предмета:

    По завршетку курса студент поседује знања из комбинаторне теорије графова и упознат је са неким њеним применама.

    Садржај предмета:

    Теоријска настава

    Графови и подграфови. Матрице инциденције и матрице суседства. Графовске инваријанте. Путеви и циклуси – детаљнији приступ. Цикломатички број графа. Чворна и гранска повезаност графа. Стабла и њихове примене. Хамилтонови и Ојлерови циклуси и њихове примене. Бојење графова – детаљнији приступ. Планарни графови и графови полиедара. Теорема Куратовски-Понтрјагина. Бојење планарних графова. Спаривања у графовима и примене. Независни скупови, покривачи и клике графа. Унутрашња и спољашња стабилност графа. Примена у линеарној алгебри. Степени квадратних матрица и Марковљеви ланци. Графови протока сигнала.

    Практична настава

    Решавање репрезентативних задатака на табли, из области са којима су студенти упознати на теоријској настави.

    Литература

    1. Цветковић Д., Теорија графова и њене примене, Научна књига, Београд, 1986.
    2. Цветковић Д., Комбинаторика – класична и модерна, Научна књига, Београд, 1990.
    3. Вељан Д., Комбинаторика с теоријом графова, Школска књига Загреб, 1989.
    4. Петровић В., Теорија графова, Универзитет у Новом Саду, Природно-математички факултет, Нови Сад, 1998.

    Kreatori kursa: Irena Jovanović

    Računarska grafika

    Kurs je namenjen studentima III godine Računarskog fakulteta u Beogradu.
    Na kraju kursa svaki student će razumeti:
    • Osnovnu strukturu grafičkog sistema
    • 2D grafika: algoritmi za renderovanje i klipovanje osnovnih grafičkih primitiva (duž, krug, poligon)
    • 3D grafika: Modelovanje i renderovanje prostornih situacija (polygonal mesh, CSG, ray casting, ray tracing)

    Kreatori kursa: Dragan Mašulović

    Softverske komponente

    Теоријска настава

    Циљеви и предности развоја софтвера заснованог на компонентама. Појам софтверске компоненте. Основне карактеристике софтверске компоненте. Појам физичке и логичке модуларности. Пракса одвајања спецификације од имплементације софтверске компоненте. Поштовање SOLID принципа и примена дизајн патерна у развоју заснованом на компонентама. Документовање софтверске компоненте. Појам билд алата и управљање повезаним компонентама. Преглед савремених билд алата за програмске језике Јава и Пајтон. Стандарди за развој модуларних система за Јава платформу - OSGi i Jigsaw. Софтверске лиценце и верзије. Сервисно оријентисана софтверска архитектура и веб сервиси. Технологије и стандарди за имплементацију веб сервиса - SOAP i REST. Појам микросервиса и поређење са другим архитектурама. Интеграција микросервиса и коминикација између микросервиса. Микросервиси и кориснички интерфејс, микросервиси и базе података. Кораци у провођењу монолитне у микросервисну архитектуру.

    Практична настава

    Приказ илустративног примера софтверске компоненте која користи друге компоненте и њено проширење додатним функционалностима. Илустрација особине рејузабилности компоненте. Рад са системима за управљање верзијама. Коришћење билд алата за Јаву - Apache Ant, Apache Maven и Gradle. Креативна вежба креирања компоненте са одвојеном спецификацијом. HTTP протокол и REST архитектура. Имплементација микросервисне апликације коришћењем Spring Boot технологије. Рад са базама података у микросервисној архитектури укључујући релацине и нерелационе базе. Коришћење Hiberante ORM алата за перзистенцију података у релациону базу. Комуникација између микросервиса и коришћење система за размену порука.

    Prepoznavanje govora

    Teorijska nastava

    Modelovanje govora. Obrada akustičkog signala. Odabiranje, A/D konverzija i uokviravanje. Filtriranje i upotreba prozorske funkcije. Furijeova transformacija i spektar snage ulaznog signala. Promena frekventne ose i filtriranje po mel skali. Prelaz u logaritamski domen. Inverzna kosinusna transformacija, kepstralni koeficijenti i njihovi vremenski parametri. Vektori svojstava akustičkog signala. Markovljevi modeli. Skriveni Markovljevi modeli (HMM). Mešavine Gausovih raspodela. Akustički modeli. Fonetsko modelovanje. Robusnost u odnosu na okolinu (buka, šum, eho). Polukontinualni HMM, vezivanje stanja i klasterovanje. Treniranje HMM-a. Baum-Welch i Forward-Backward algoritmi. Normalizacija govora. Jezički modeli. N-gram usrednjavanje. Osnovna pretraživanja. Vremenski sinhrono Viterbi Beam pretraživanje. Stack i A* pretraživanje. Rad sa velikim rečnikom. Pretraživanje po stablu sa jezičkim modelima. Pretraživanje na osnovu gramatike. N-multipass pretraživačke strategije. Upotreba neuralnih mreža i dubokih neuralnih mreža. Hibridni sistemi dubokih neuralnih mreža i HMM.

    Praktična nastava

    Analiza spektrograma pomoću softvera za rad sa zvučnim signalom. Implemetacija softvera koji može da snima govor. Algoritmi kompresije zvučnog signala. Obrada dobijenog signala, odsecanje, filtriranje i sl. Implementacija i primena (brze) Furijeove transformacije. Implementacija sistema za prepoznavanje govora koji jeste / nije vezan za govornika i formiranje testova za pokazivanje korektnosti rada sistema. Implementacija i testiranje HMM sistema, kao i pretraživačkih algoritama. Rad sa dubokim neuralnim mrežama i njihovo kombinovanje sa klasičnim sistemima za prepoznavanje govora.

    Kreatori kursa: Stevan Milinković

    Sistemi u realnom vremenu (Računarske nauke)

    Teorijska nastava

    Koncept vremena. Postizanje predvidivosti. Vremenska ograničenja. Ograničenje prethođenja. Ograničenja resursa. Problem raspoređivanja. Raspoređivanje aperiodičnih taskova. Džeksonov algoritam. Hornov algoritam. Raspoređivanje bez istiskivanja. Bratlijev algoritam. Spring algoritam. Raspoređivanje sa ograničenjem prethođenja. Raspoređivanje periodičnih taskova. Ciklično raspoređivanje. Raspoređivanje monotonim tempom (RM). Earliest Deadline First (EDF). Deadline Monotonic. EDF sa ograničenim rokovima. Serveri sa fiksnim prioritetom. Pozadinsko raspoređivanje. Server sa propitivanjem. Server sa odlaganjem. Razmena prioriteta. Sporadični server. Slack Stealing. Serveri sa dinamičkim prioritetom. Server sa razmenom dinamičkih prioriteta. Dinamički sporadični server. Server sa totalnim opsegom. Earliest Deadline Late server. Poboljšani server sa razmenom prioriteta. Server sa konstantnim opsegom. Protokoli za pristup resursima. Inverzija prioriteta. Protokol bez istiskivanja. Highest Locker Priority protokol. Protokol sa nasleđivanjem prioriteta. Protokol sa gornjom granicom prioriteta. Politika stek resursa. Raspoređivanje sa ograničenim istiskivanjem. Prag istiskivanja. Odloženo istiskivanje. Rastavljanje taskova. Izbor tačaka istiskivanja. Upravljanje preopterećenjem. Rukovanje aperiodičnim preopterećenjem. Prekoračenja. Permanentna preopterećenja.

     

    Praktična nastava

    Rad sa FreeRTOS operativnim sistemom u simuliranom okruženju i na mikrokontroleru. Poznavanje elemenata FreeRTOS operativnog sistema kao što su poslovi, redovi, brave, semafori i sl. Tipični problemi konkurentnosti kod sistema u realnom vremenu. Primena i modifikacija FreeRTOS raspoređivača. Implementacija podrške za aperiodične i periodične poslove. Implementacija podrške za ograničenja prethođenja. Zapis i analiza dobijenog rasporeda sistemskog raspoređivača u simuliranom i stvarnom okruženju. Implementacija poslova sa ograničenim resursima i njihovo raspoređivanje.

    Kreatori kursa: Stevan Milinković

    Upravljanje Informacijama 2020

    Теоријска настава

    Основни концепти науке о подацима, Data Science. Историјски преглед развоја метода за складиштење, управљање подацима и извештавање. Моделирање података, њихове семантике, знања и информација: скуп, бинарна релација (key-value, хешинг и индекс), н-арна релација (табела), стабло (XML) и граф. Апстракције и свођење н-арне релације на бинарну, сортирање бинарне релације, индекси, пролази кроз стабло и претраживање графова. Codd-ов релациoни модел. Релациона алгебра као апарат за генерисање извештаја, SQL. Пројектoвање информационог система. Анализа захтева. Логичко пројектовање структуре  и  динамике информационог система, SSA.  Објектно-оријентисани  приступ моделовању информационих система - UML. Aнализа  захтева у објектном приступу. Случајеви  коришћења.  Опис динамике информационог система. Дијаграми  секвенци. Концептуални модел система. Патерне у моделовању ИС. Имплементација у реалном окружењу. Пројектовање релационе базе података на основу објектног UML модела. Објектно релациони брокери, Hibernate. Системи за управљање базама података, Oracle, MSSQL, PostgreSQL. Пресликавање података објектног модела у key-value базе података, Redis. Објектне базе података, MongoDB.

    Практична настава

    Анализа  система  и  захтева  корисника на конкретном примеру. Пример пројектовања база података: Нормализација релација. Анализа и пројектовање ИС. Функционална декомпозиција, SSA. Речник  података.  PMOV.  IDEF1X,  IE. Примери пројектовања  објектим приступом коришћењем UML нотације.  Случајеви  коришћења.  Узори  у  фази  анализе система. Вишеслојна архитектура  апликација.  Дијаграми  секвенци. Примери трансформација  концептуалних  модела у реално имплементационо окружење. Коришћење key-value Redis базе података за кеширање података. Примена Hibernate брокера.  Израда комплексног пројекта слоја података за информациони систем.

    Kreatori kursa: Miloš Radenković

    Veliki Podaci 2020

    Теоријска настава

    На предавањима се предочава разноврсност могућих очекивања од великих података и приказује се шта је то што омогућава брз одговор на та очекивања. Студенти се упућују у основе инфраструктуре која се користи у раду са великим подацима. Приказује се покрет NoSQL, те основни концепти, технике и обрасци потребни за дистрибуирани рад база података. Кроз анализу решења попут Amazon Dynamo уводи се концепт база података кључ-вредност. Представљају се документ-оријентисане базе података, са фокусом на MongoDB. Кроз осврт на имплементацију Google BigTable и кратак преглед технологије GFS/HDFS објашњава се функсионисање колонских база података.

    Практична настава 

    На вежбама се доминантно користе технологије Dell EMC. Одговара се на питање када у обради великих података користити релационе, а када нерелационе базе података. Дефинише се шта подразумева решење на платформи Hadoop и разрађује се архитектура HDFS. Пореде се софтверски базирана решења и наменска решења. Студенти на примерима у брижљиво осмишљеној лабораторијској вежби уче како да концепт архитектуре Dell EMC Isilon OneFS искористе за обраду великих података. При томе се упућују како да поставе и скалирају решење, како да управљају сториџима, те како да обезбеде поузданост. На још једној лабораторијској вежби студенти уче како да изврше интеграцију Hadoop и решења у претходно уведеној архитектури, при чему се, поред осталог, ради конфигурисање решења за HDFS, припрема се сервер Ambari и примењује се платформа Hortonworks Data. 

    Kreatori kursa: Miloš Radenković

    Skript Jezici 2020

    Теоријска настава

    Основе веб програмирања. Проблеми и задаци презентационог, апликационог и слоја сесије референтог OSI и TCP/IP модела.  Основе развоја клијентске стране веб апликација. Улога клијентских технологија у савременим архитектурама веб система. Размена података са различитим слојевима веб апликације. XML технологије за меморисање, обраду и визуелизацију података презентационог слоја. JSON. JSON API. RESTful архитектуре. Oснове JavaScript-a. ES6. DOM. JS библиотеке. AJAX. Развојни оквири. MVC. VueJS. Примена развојних оквира у развоју апликација. Two-way data binding, управљање догађајима, рендеровање података, компоненте, диркетиве, рад са елементима DOM, Dependency Injection.  Основе развоја серверске стране веб апликација. Улога серверских технологија у савременим архитектурама веб система. Размена података са различитим слојевима веб апликације. RESTful архитектуре. Веб сервиси. Конектори  и адаптери. Развој API-ја. Платформе за управљање API-јем. Упоредни преглед технологија серверске стране. Ruby on rails. Python. Развојни оквири. Примена развојних оквира у развоју апликација. Управљање рутирањем, ОRМ. NodeJS. Управљање сесијом и кеширањем. Оптимизација серверске стране веб апликација.

    Практична настава

    HTML5, CSS3, CSS препроцесори. XML технологије, DOM и манипулација над XML документима. JSON формат за серијализацију података. Манипулација JSON документима. Фронтенд оквири и библиотеке Bootstrap. Foundation. Semantic. Увод у скриптне језике. DOM. Основе JavaScript програмског језика. Граматика и типови. Контрола тока. Петље и итерације. Функције, изрази и оператори. Текстуално форматирање. Регуларни изрази. IIFE и анонимне функције. Структуре. Колекције. Објекти. Прототипно наслеђивање. Модуларни патерн. JSON. JSON API. Визуелизација. ChartJS. DataTables. XML. JavaScript библиотеке. JQuery. JavaScript оквири. JavaScript компајлери и управљање пакетима. Фронт-енд оквир – VueJS. Верзионисање кода. Git. Увод у серверске веб технологије и скриптне језике. Python. Основна синтакса, променљиве, оператори, контрола тока и итерације, функције и уграђене функције. Nапредне функције за руковање колачићима (cookies), напредне функције за управљање сесијама. Коришћење сесија на примеру форме и веб продавнице. Објектно оријентисано програмирање у Python-u. Имплементација слоја података. Python  и рад са базама података. MySQL и CRUD операције у Python-у. Складиштење и пренос података у веб окружењу. Складиштење динамичких података. Асинхрони позиви ка серверу и ажурирање података у реалном времену. Python, AJAX и MySQL. Сигурност и безбедност у Python апликацијама. Сервисно оријентисана архитектура. SOAP. REST. Веб сервиси. Развој и документација сопственог REST сервиса. Јавни веб сервиси. Имплементација пословне логике. Развој веб апликација. Pазвој апликација са MVC архитектуром. Оквири за развој веб апликација Django/NodeJS.

    Kreatori kursa: Miloš Radenković

    Poslovne aplikacije

    Microsoft PowerPoint: Izrada nove prezentacije, umetanje i izmena tekstualnog sadržaja, tabele, grafikoni i dijagrami, umetanje slika, oblika i grafičkih objekata, formatiranje slajda. Animacione šeme.

    Microsoft Word: Kreiranje stilova teksta, tabela i nabrajanja, numerisanje stranica, umetanje i promena objekata, kreiranje i menjanje dijagrama i grafikona, sortiranje podataka, korišćenje automatizovanih alata za navigaciju, cirkularna pisma, rad sa formama, izrada i izmena formata, pozadine dokumenta, indeksa i sadržaja.

    Microsoft Excel: Korišćenje međuzbirova, definisanje i primenjivanje naprednih filtera, grupisanje podataka, izrada izveštaja, funkcije za pretraživanje, pronalaženje zavisnih ćelija u formulama i grešaka, pronalaženje pogrešnih podataka i formula, izvođenje formula, imenovani skupovi ćelija, izrada i izmena namenskih formata podataka, pravilna upotreba velikog broja formula.

    Menadžer: Igor Mijatovic

    Мултимедијални информациони системи

    Циљ предмета је оспособљавање студената за креирање, прикупљање, обрађивање, компримовање, архивирање, програмирање, синхронизацију, пренос, презентовање, естетско унапређивање и комерцијализацију мултимедијалних садржаја. Предмет упознаје са феномена садржај-дистрибутивних мрежа, као централног технолошког феномена највећих глобалних рачунарских гиганата попут Гугла, Амазона или Фејсубука.

    Kreatori kursa: Dušan Vujošević

    Uvod u programiranje 2020/2021

    Циљ и исход предмета

    Стицање општих знања и практичних вештина из програмирања. Студент разуме све најважније концепте процедуралног програмирања и уме да их примени, способан је да осмисли и имплементира једноставније алгоритме и да користи основне структуре података у програмима за командну линију.

    Теоријска настава

    Основни појмови програмирања: прогармски језик, алгоритам, команда, изворни код, компајлирање, окружење за извршавање програма. Представљање података у рачунару, бројевни системи, представљање карактера (ASCII табела) и реалних бројева. Читање са системског улаза и испис на системски излаз. Прости типови података и променљиве. Операције над подацима - аритметичке, битовне, релационе, логичке. Контрола тока програма - гранања и петље. Функције и опсег видљивости променљивих. Рекурзија и њена примена у задацима. Сложенији типови података - низови, стрингови и структуре. Показивачи и управљање меморијом. Динамичке структуре података - листе и бинарна стабла. Рад са фајловима.

    Практична настава

    Упазнавање са окружењем за имплементацију програма. Имплементација програма са секвенцијалним извршавањем команди уз читање података са системског улаза и испис на системски излаз. Илустрација коришћења различитих типова података и операција над њима. Коришћење разних уграђених функција, писање нових функција. Имплементација програма са различитим варијантама гранања - if, switch, тернарни условни оператор. Програми који користе петље. Илустрација различитих врста петљи (фор, wхиле, до-wхиле) на примерима задатака. Угњеждене петље. Примери програма који користе рекурзију. Програми са низовима. Рад са стринговима као низовима и коришћење уграђених функција над стринговима. Илустрација примера са показивачима. Рад са низовима и стринговима преко показивача. Задаци са једноструко повезаном листом, имплементација операција над листом на два начина - итеративно и рекурзивно. Задаци који користе уређено бинарно стабло. Имплементација операција над уређеним бинарним стаблом на рекурзиван и итеративан начин. Читање из фајла и упис у фајл. Учитавање података из фајла у динамичку структуру података и обрада тих података преко операција над структуром.

    Kreatori kursa: Milan Tomić

    Програмски преводиоци

    Циљ предмета је упознавање студената са проблемима превођења са једног програмског језика на други, са принципима рада програмских преводилаца, алатима за њихово прављење и начином њихове имплементације. Предмет има за исход боље разумевање програмског преводиоца као једног од кључних алата у прављењу програма. Студенти се оспособљавају и за евентуално укључивање у прављење програмског преводиоца.

    Kreatori kursa: Dušan Vujošević
    Asistent: Lazar Jelić

    Inteligentni sistemi 2020/2021

    Циљ и исход предмета

    Упознавање са идејама које су се појавиле током истраживања и развоја у вештачкој интелигенцији у току њеног педесетогодишњег развоја, а кроз уједињавајућу идеју интелигентног агента. Разумевање начина изградње вештачкоинтелигентних ентитета. По завршетку курса, студент има основна знања о вештачко-интелигентним системима (VI). У стању је да одреди шта се може урадити VI приступом. У стању је да одреди проблеме за чије решавање се примењују VI приступи. Зна карактеристике разматраних VI метода. Може да предложи начин решавања проблема, а за неке проблеме и да изабере и реализује одговарајући VI метод. Припремљен је за уже-стручне предмете из области вештачке интелигенције и рачунарске интелигенције.

    Теоријска настава

    Појам вештачке интелигенције. Преглед области и технологија вештачке интелигенције. Реални домети вештачке интелигенције. Теоријске основе вештачке интелигенције. Когнитивна психологија и неуро- науке. Представљање знања. Интелигентно претраживање. Математичке, рачунарске и статистичке методе у вештачкој интелигенцији. Интелигентно расуђивање. Soft computing. Машинско учење. Примена вештачке интелигенције. Интелигентна анализа података. Интелигентни агенти. Мултиагентски системи. Рефлексни агенти. Агенти са циљевима. Екстракција информација и проналажење информација. Екстракција информација у оквиру обраде природног језика. Прецизност и одзив. Препознавање именованих ентитета. Приступ заснован на правилима. Приступ заснован на машинском учењу. Метода скривених Марковљевих модела. Метода максималне ентропије. Екстракција информација без надзирања. Коначни трансдуктори и њихове примене у препознавању именованих ентитета и релација међу њима. Системи засновани на правилима. Семантички веб. Интелигентни едукативни системи. Технологије вештачке интелигенције. Препознавање и обрада говора. Обрада природног језика. Роботика. Обрада слике. Неуронске мреже.

    Практична настава

    Имплементација алгоритама претраживања обрађених на предавањима. Имплементација правила расуђивања уланчавање унапред и уланчавање у назад. Софтверска окружења за развој интелигентних система. Алати за сегментацију текста и токенизацију. Рад са софтвером отвореног кода spaCy. Примери експертских система заснованих на правилима у различитим доменима. Примери проблема који се решавају помоћу неуронских мрежа: класификација, кластеризација, предвиђање, препознавање, апроксимација и моделирање система. Употреба алата отвореног кода за дубоко учење TensorFlow, Torch, Keras, Caffe. Области примене неуронских мрежа: медицина, финансије, производња, одбрана, друштвене науке.

    Kreatori kursa: Milan Tomić
    Asistent: Igor Ciganovic

    Teorija algoritama, automata i jezika

    Alfabet, reč i jezik nad alfabetom. Formalne gramatike. Jezik definisan gramatikom. Hijerarhija formalnih gramatika prema Čomskom.

    Regularni jezici. Deterministički konačni automati. Nedeterministički konačni automati. NKA sa spontanim prelazima. Regularni izrazi. Ekvivalentnost DKA, NKA i regularnih izraza. Minimizacija DKA. Pumping lema za regularne jezike.

    Kontekstno-slobodni jezici. Potisni automati. Deterministički potisni automati. Ekvivalentnost potisnih automata i kontekstno-slobodnih jezika. Osobine kontekstno-slobodnih jezika. Normalna forma Čomskog za kontekstno-slobodne gramatike. Pumping lema za kontekstno-slobodne jezike.

    Tjuringova mašina. Tjuringova mašina sa više traka. Nedeterministička Tjuringova mašina. Neodlučivost. Rekurzivno nabrojivi i rekurzivni jezici.

    Klase problema P i NP, NP-kompletni problemi. Doka NP-kompletnosti problema CSAT i 3SAT.

    Signali i sistemi

    Signali i sistemi

    Ovladavanje matametičkim aparatom za modeliranje signala i sistema u vremenskom, frekvencijskom i kompleksnom domenu
    Poznavanje standardnih tipova signala i mogućnosti njihove obrade
    Poznavanje osnovnih karakteristika sistema i elemenata analize sistema
    Razumevanje odnosa frekvencijskih i vremenskih karakteristika signala i problema filtracije signala
    Razumevanje poroblema diskretizacije signala
    Vladanje softverskim alatom za analizu signala i sistema
    Kreatori kursa: Đorđe Babić
    Asistent: Ivan Kokic

    Sistemi u realnom vremenu (Računarsko inženjerstvo)

    Teorijska nastava

    Koncept vremena. Postizanje predvidivosti. Vremenska ograničenja. Ograničenje prethođenja. Ograničenja resursa. Problem raspoređivanja. Raspoređivanje aperiodičnih taskova. Džeksonov algoritam. Hornov algoritam. Raspoređivanje bez istiskivanja. Bratlijev algoritam. Spring algoritam. Raspoređivanje sa ograničenjem prethođenja. Raspoređivanje periodičnih taskova. Ciklično raspoređivanje. Raspoređivanje monotonim tempom (RM). Earliest Deadline First (EDF). Deadline Monotonic. EDF sa ograničenim rokovima. Serveri sa fiksnim prioritetom. Pozadinsko raspoređivanje. Server sa propitivanjem. Server sa odlaganjem. Razmena prioriteta. Sporadični server. Slack Stealing. Serveri sa dinamičkim prioritetom. Server sa razmenom dinamičkih prioriteta. Dinamički sporadični server. Server sa totalnim opsegom. Earliest Deadline Late server. Poboljšani server sa razmenom prioriteta. Server sa konstantnim opsegom. Protokoli za pristup resursima. Inverzija prioriteta. Protokol bez istiskivanja. Highest Locker Priority protokol. Protokol sa nasleđivanjem prioriteta. Protokol sa gornjom granicom prioriteta. Politika stek resursa. Raspoređivanje sa ograničenim istiskivanjem. Prag istiskivanja. Odloženo istiskivanje. Rastavljanje taskova. Izbor tačaka istiskivanja. Upravljanje preopterećenjem. Rukovanje aperiodičnim preopterećenjem. Prekoračenja. Permanentna preopterećenja.

     

    Praktična nastava

    Rad sa FreeRTOS operativnim sistemom u simuliranom okruženju i na mikrokontroleru. Poznavanje elemenata FreeRTOS operativnog sistema kao što su poslovi, redovi, brave, semafori i sl. Tipični problemi konkurentnosti kod sistema u realnom vremenu. Primena i modifikacija FreeRTOS raspoređivača. Implementacija podrške za aperiodične i periodične poslove. Implementacija podrške za ograničenja prethođenja. Zapis i analiza dobijenog rasporeda sistemskog raspoređivača u simuliranom i stvarnom okruženju. Implementacija poslova sa ograničenim resursima i njihovo raspoređivanje.

    Kreatori kursa: Stevan Milinković

    Управљање пројектима

    Циљ предмета је да студенту помогне да понуде пројеката саставља тако да пројекти буду прихваћани, да би могао да у оквиру рачунарства ради оно што жели, шта год то било, тиме што у понудама посао сагледава као целину, са свим његовим кључним аспектима, тиме што познаје и прецизно употребљава терминологију на састанцима, у презентацијама и у припреми најразличитијих конкурсних документација.

    Primenjena veštačka inteligencija 2020/2021

    Циљ и исход предмета

    Упознавање са идејама које су се појавиле током истраживања и развоја у вештачкој интелигенцији у току њеног педесетогодишњег развоја, а кроз уједињавајућу идеју интелигентног агента. Разумевање начина изградње вештачкоинтелигентних ентитета. По завршетку курса, студент има основна знања о вештачко-интелигентним системима (VI). У стању је да одреди шта се може урадити VI приступом. У стању је да одреди проблеме за чије решавање се примењују VI приступи. Зна карактеристике разматраних VI метода. Може да предложи начин решавања проблема, а за неке проблеме и да изабере и реализује одговарајући VI метод. Припремљен је за уже-стручне предмете из области вештачке интелигенције и рачунарске интелигенције.

    Теоријска настава

    Увод у вештачку интелигенцију. Традиционална VI. Појам агента. Претраживање и хеуристике и везе са игрицама. Представљање знања и поступци аутоматског расуђивања. Експертски системи. Третирање неизвесности у знању и приближно расуђивање. Увод у обучавање. Надгледано и ненадгледано обучавање. Увод у неуралне мреже. Перцептрон и вишеслојни перцептрон. Плитке и дубоке мреже. Аутоенкодери. Конволуционе мреже. Мреже за учење на грешкама. Рекурентне мреже. Генеративне адверзалне мреже. Примена у обради природног језика, препознавању говора, препознавању слика, роботици, медицини, биоинформатици, финансијама, пословању.

    Практична настава

    Имплементација алгоритама обрађених на предавањима. Имплементација минимакс алгоритма на примеру игре са два играча. Имплементација правила расуђивања уланчавање унапред и уланчавање у назад. Имплементација експертских система.

    Kreatori kursa: Milan Tomić

    Uvod u robotiku

    •Uvod u robotiku
    •Struktura robota
    •Pogonski sistemi
    •Završni uređaji
    •Senzori u robotici
    •Vizuelni sistemi
    •Neuralne mreže
    •Upravljanje robotom
    •Primena u industriji
    •Fleksibilni proizvodni sistemi
    Kreatori kursa: Mladen Stanojevic

    RI Računarske mreže

    Cilj kursa je da se:

    • Studentima detalno objasne priroda računarskih komunikacija, postojeći referentni modeli i prednosti rada u mreži

    • Prikažu postojeći tipovi računarskih mreža i njihove topologije

    • Objasne pojmovi fizičke i logičke topologije mreže

    • Detaljno opišu i objasne ključni koncepti mrežne arhitekture, postojeće IP tehnologije i protokoli na L2, L3, L4, L5, L6 i L7 sloju IP mreže

    • Studentima detaljno objasni kako se mogu realizovati različiti mrežni servisi

    • Nauče studenti kako da izaberu i koriste različite metode i alate za monitoring mreže

    • Studentima objasni kako da lociraju problem u mreži i da isti reše koristeći neku od IP tehnologija .

    Kreatori kursa: Živko Bojović, Jelena Šuh