Faculty of Technical Sciences

Subject: (22.EAI045)

General information:
 
Category Theoretical-methodological
Scientific or art field Applied Computer Science and Informatics
ECTS 6

Osposobljavanje studenata za praktičnu primenu tehnika, metoda i alata iz oblasti istraživanja i analize podataka i modela mašinskog učenja u cilju poboljšanja kvaliteta, pouzdanosti i održivosti softverskog proizvoda. Osposobljavanje studenata za praćenje najnovijih istraživačkih rezultata i samostalan stručni i naučno-istraživački rad u ovom domenu.

Student identifikuje probleme u softverskom inženjerstvu koji bi se mogli olakšati primenom veštačke inteligencije, mašinskog učenja i istraživanja i analize podataka. Student konstruiše adekvatne skupove podataka za obuku modela mašinskog učenja, što podrazumeva prikupljanje podataka, anotaciju, pretprocesiranje i reprezentaciju softverskog koda. Studenti je sposoban da analizira programski kod primenom klasičnih modela mašinskog učenja, modela dubokog učenja, primenom tehnika analize teksta i analizom promena koda kroz vreme. Studenti ume da samostalno istražuje trendove primene veštačke inteligencije na probleme softverskog inženjerstva.

(1) Upoznavanje sa problemima u oblasti softverskog inženjerstva koji bi se mogli adresirati primenom tehnika analize i istraživanja podataka: automatska detekcija indikatora loše dizajniranog koda (code smell), automatsko refaktorisanje (automatic refactoring), automatska detekcija i ispravka defekata, ranjivosti i grešaka (defect/vulnerability/bug detection) u kodu, predikcija truda uloženog u razvoj softverskog rešenja (effort estimation), pretraga softverskog koda u cilju pronalaska određene funkcionalnosti (feature location) i slično. (2) Prikupljanje skupa podataka, pretprocesiranje, i reprezentacija softverskog koda za različite probleme u domenu softverskog inženjerstva. Reprezentacija softverskog koda putem metrika, grafova, obeležja ekstrahovanih iz apstraktnog sintaksnog stabla, itd. Postojeći alati za ekstrakciju informativnih obeležja iz koda. (3)Analiza prirodnog jezika u softverskom kodu. Automatsko generisanje opisa (sumarizacija) softverskog koda. (4)Primena modela dubokog učenja na probleme u domenu softverskog inženjerstva. Automatsko učenje reprezentacije softverskog koda u vektorskom obliku (Code2Vec) (5)Enkodiranje promena u softverskom kodu. (6)Studije slučaja. Na praktičnoj nastavi se kroz praktičan rad sa postojećim softverskim alatima za trening standardnih prediktivnih modela mašinkog i dubokog učenja (Scikit-Learn, Keras/TensorFlow ), praktično primenjuju teorijski koncepti obrađivani na predavanjima. Neizostavni deo predmeta je samostalni studentski projekat, gde je ideja da student samostalno odabere problem iz domena softverskog inženjerstva koji se može unaprediti primenom veštačke inteligencije. Student potom temeljno istražuje literaturu na datu temu kako bi utvrdio prednosti i nedostatke do tada predloženih rešenja i na osnovu toga, kroz konsultacije sa predavačima, koncipirao predlog projekta. Po završetku projekta, student piše izveštaj.

Predavanja se izvode uz prateće prezentacije. Praćena su računarskim vežbama (praktičnom nastavom) koje će se oslanjati na programski jezik Python i druga odgovarajuća programska okruženja u cilju implementacije teorijskih koncelata obrađenih na predavanjima. Na praktičnoj nastavi primenjuje se i aktivno učenje kroz projekat i istraživanje relevantnih naučnih publikacija uz redovne konsultacije. Na predavanjima i na vežbama obrađuju se aktuelni problemi iz oblasti mašinskog učenja.

Authors Title Year Publisher Language
Martin, R.C., Grenning, J. and Brown, S. Clean architecture: a craftsman's guide to software structure and design (p. 352) 2018 Prentice Hall English
Trask, A.W. Grokking deep learning 2019 Simon and Schuster English
Goodfellow, I., Bengio, Y., Courville, A. Deep Learning 2017 MIT Press, Cambridge English
Course activity Pre-examination Obligations Number of points
Project Yes Yes 50.00
Oral part of the exam No Yes 30.00
Homework Yes Yes 20.00

Prof. Kovačević Aleksandar

Full Professor

Lectures

Assoc. Prof. Slivka Jelena

Associate Professor

Lectures

Asst. Prof. Luburić Nikola

Assistant Professor

Lectures

Assistant - Master Vidaković Dragan

Assistant - Master

Computational classes

Assistant - Master Grujić Glorija-Katarina

Assistant - Master

Computational classes

Assistant - Master Prokić Simona

Assistant - Master

Computational classes

Faculty of Technical Sciences

© 2024. Faculty of Technical Sciences.

Contact:

Address: Trg Dositeja Obradovića 6, 21102 Novi Sad

Phone:  (+381) 21 450 810
(+381) 21 6350 413

Fax : (+381) 21 458 133
Emejl: ftndean@uns.ac.rs

© 2024. Faculty of Technical Sciences.