PROGRAMSKI JEZICI

Ova stranica posvećena je kursevima u okviru kojih se izučavaju različite programske paradigme i njihovi predstavnici:

  • imperativno programiranje - istorijski razvoj, osnovne karakteristike i mogućnosti različitih imperativnih jezika (programski jezik C se izučava detaljno u okviru kurseva Programiranje 1 i Programiranje 2)
  • objektno-orijentisano programiranje - osnovni koncepti objektno orijentisanog programiranja (teorijske osnove, programski jezik Java i objektno orijentisano programiranje uče se detaljnije u okviru kursa Objektno-orijentisano programiranje)
  • funkcionalno programiranje - teorijske osnove (lambda račun), programski jezici Haskell i Python
  • logičko programiranje - teorijske osnove (logika prvog reda), programski jezik Prolog
  • komponentno programiranje - praktični pristup kroz programski jezik Python i biblioteku PyQt (do 2019. godine Java i bibliteku JavaFX), odnosno Scala i bibliteku ScalaFX
  • konkurentno i distribuirano programiranje - teorijske osnove i praktični pristup kroz programski jezik Java, odnosno Scala
  • programiranje ograničenja - teorijske osnove i praktični pristup kroz BProlog i Python (biblioteka constraint)
  • skript programiranje - teorijske osnove i praktični pristup kroz Python
  • generičko programiranje - teorijske osnove i praktični pristup kroz programski jezik C++
Takođe, u okviru kurseva izučavaju se i osnovna svojstva programskih jezika.

Kursevi

Nastavnik: prof. dr Milena Vujošević Janičić
Asistenti: Marjana Šolajić, Milan Čugurović i Ivan Ristović

U okviru kurseva programskih jezika organizuju se gostujuća predavanja koja imaju za cilj da približe studentima primenu naučenih koncepata u industriji, a drže ih stručnjaci iz IT sveta. Do sada su organizovana sledeća gostujuća predavanja:

  • Reaktivno programiranje, Saša Veličković, Endava (kursevi DPJ i PPI, maj 2021)
  • Programski jezik P4, Miodrag Dinić, Syrmia (kurs PPR novembar 2020, kurs PPI, april 2021)
  • Dimenziona anlaiza u jeziku C++, Nikola Jelić, Zuelhke (kurs DPJ, april 2021)
  • Why Go and Microservices? The Story Behind Vroom’s Back End Infrastructure, Igor Nodelman, Vroom (kursevi DPJ i PPI, april 2021)
  • Konkurentno programiranje u programskom jeziku Go, Miloš Mitrović, Callidus Cloud (kurs PPI, april 2018)
  • Razvoj MScript programskog jezika, Mad Head Games (kurs PPI maj 2015. i decembar 2015., kurs DPJ i PPR decembar 2016)
  • Skript programiranje: programski jezik Lua, RTRK (kurs DPJ, decembar 2015, decembar 2016. i decembar 2017)
  • Funkcionalno programiranje u programskom jeziku Skala, Zuhlke Engineering d.o.o. (kurs PPR, maj 2016. i mart 2017)
  • Reaktivno programiranje, Endava (kurs PPR i PPI, mart 2017)
  • Sistemi u realnom vremenu i programski jezik Ada, Endava (kurs PPR i PPI, april 2017)

Prijavite se za PLMW (Programming Languages Mentoring Workshop)

(29. 03. 2020) U nastavku prenosimo tekst Vašeg kolege, Luke Hadži-Đokića (student četvrte godine, R smer) o svom apliciranju za stipendiju, iskustvu i boravku u New Orleansu na prestižnoj radionici i konferenciji iz oblasti programskih jezika. Takođe, on navodi i značaj svog boravka i mogućnosti koje mu je to iskustvo pružilo. Ukoliko Vas ovaj tekst zainteresuje, za sva dodatna pitanja, osećajte se slobodno da nas kontaktirate!

Prijavite se za PLMW

Da počnem odmah sa poentom - prijavite se za PLMW! Dobro, verovatno ne znate šta je to. Razumljivo. Zato vam preporučujem da pročitate, kao što sam to i ja uradio, ovaj tekst profesorke Lindsi Kuper, koji me je inspirisao da se prijavim. Ukratko, PLMW (Programming Languages Mentoring Workshop) je radionica namenjena studentima koji su zainteresovani za akademsku karijeru u polju programskih jezika. Održava se četiri puta svake godine, dan pred glavnu konferenciju (POPL, PLDI, ICFP i SPLASH). To su četiri “najbitnije” konferencije u polju programskih jezika. Tamo se obrađuju teme kao što su dizajn programskih jezika, sistemi tipova, verifikacija softvera, sinteza programa, interaktivni dokazivači, konstrukcija kompilatora, optimizacija itd. Da bi prisustvovali, potrebno je registrovati se, rezervisati let, smeštaj, što može da bude jako skupo. Baš zato postoji putna stipendija, koja pokriva sve to, namenjena studentima širom sveta. To je najbitnije što imam da kažem. Ta putna stipendija ne važi samo za studente prestižnih univerziteta sa bog-zna-kakvim ocenam. Interesovanje je najbitniji kriterijum. Mene je to u januaru (za džabe) odvelo u Nju Orleans!

Ispričaću i kako sam se tamo proveo. Let je trajao dvadesetak sati, smeštaj je bio super, a konferencija još bolja. Teško je opisati koliko mi je značilo to iskustvo. Upoznao sam dosta studenata, super ljudi, sa sličnim interesovanjima. Upoznao sam dosta profesora, takođe super ljudi sa sličnim interesovanjima. Pričali smo o njihovim radovima, o muzici, aligatorima, životu, i ostalim glupostima. Inače, svi tamo su voljni za razgovor. To je, u neku ruku, i poenta konferencije. Kroz te razgovore i kroz razna predavanja sam, u nedelju dana, naučio više nego mesecima kod kuće. Jedino mi je žao što nisam malo više vremena izdvojio za razgledanje. Biće prilike i za to, da kucnem u drvo.

Inspirisan tuđim genijem i preporukom jednog profesora sa Maks Plank Instituta, odlučio sam da se prijavim za letnju praksu na nekoliko evropskih istraživačkih instituta. Baš skoro sam dobio potvrdu da sam prihvaćen na IMDEA institut, pa ću tako (ako se situacija sa COVID-19 iole popravi), ovog leta tri meseca provesti u Madridu. Da nisam otišao na PLMW i da mi neko nije eksplicitno rekao “prijavi se tu, tu, i tamo”, sumnjam da bi mi to uopšte palo na pamet. Sumnjam da bih se izborio sam sa sobom i prešao preko “svejedno me neće primiti” mentaliteta.

Međutim, kao što ste verovatno i sami zaključili, situacija se promenila. Sledeća od one četiri konferencije, PLDI, koja je planirana za jun ove godine u Londonu, se neće tamo održati. To su ujedno i loše i dobre vesti. Umesto uživo, održaće se online i biće potpuno besplatna za sve!

Stoga, obratite pažnju na njihov sajt ili tviter nalog do juna i nemojte da propustite ovu priliku. A kasnije, kada pandemija prođe, prijavite se za PLMW!

Seminarski rad nije obavezan. Studenti koji ne budu radili seminarski rad i dalje imaju mogućnost da osvoje 100 poena na kursu i da dobiju najvišu ocenu.

Seminarski rad se radi u timu i ne može se raditi samostalno. Tim može da sadrži najviše tri člana. Svaki član tima može dobiti najviše 10 poena. Poeni se ne mogu preneti od prethodne godine.

Dozvoljeni jezici: Scala, Haskel, Prolog, C++ (generičko programiranje), Lua, Ruby, Erlang, Elixir, Scheme, Kotlin, Rust, razni skript jezici.

Nedozvoljeni jezici: Java, Python, PHP, JavaScript, SQL i slično, C, Pascal... Nije dozvoljeno web programiranje niti samo upotreba baza podataka. Takođe, teme iz oblasti mašinskog učenja nisu prihvatljive.

Cilj: Savladati sadržaj koji nije obuhvaćen kursevima na studijama - dakle proširiti znanje i dobiti praktično iskustvo.

Uputstva za izradu i predaju seminarskog:

  • Potrebno je da se koristi GitHub (Uputstvo)
  • Nakon prijave tima, biće napravljen repozitorijum od strane asistenta i članovima tima će biti date potrebne privilegije za rad.
  • Repozitorijum mora da ima README.md fajl koji treba da sadrži:
    • ime teme
    • kratak opis šta tema obuhvata
    • planirane jezike i tehnologije koje će biti korišćeni u izradi
    • šta je potrebno da se projekat pokrene (alati, paketi i slično)
    • na koji način se prevodi i pokreće program
    • za koji operativni sistem je napravljen izvrsni fajl
    • podatke o autorima i njihove kontakt informacije
    • sve ostalo što smatrate da je važno u kontekstu vašeg projekta
  • Neophodno je napraviti izvršnu verziju programa (ne može se koristiti razvojno okruženje za pokretanje programa na odbrani) i postaviti je zapakovanu u repozitorijum pod sekciju Releases.

Seminarski radovi se brane na kraju semestra. Odbrana seminarskog rada se sastoji iz dva dela: prvi deo je kod asistenta gde se detaljno gleda kod i demonstrira da je tema savladana (pokretanje napisanog programa uz neke izmene i prevođenje), a drugi deo je kod nastavnika gde se prezentuje ideja, realizacija i korišćene tehnologije. Odbrana je javna i njoj mogu prisustvovati svi studenti. Odbrana može da bude praćena slajdovima.

Važni datumi
  • Prijava tima za izradu seminarskog rada - do 5. marta
  • Prijava prve verzije teme seminarskog rada - do 12. marta
  • Prihvatanje teme i finalno preciziranje teme seminarskog rada - do 19. marta
  • Predaja finalne verzija seminarskog rada - do 30. aprila
  • Odgovor asistenta o potencijalnim potrebnim izmenama - do 7. maja
  • Korigovanje eventualnih izmena: do 14. maja
  • Odbrane seminarskih radove: od 14. maja do 22. maja

Od timova se očekuje ažurnost prilikom izrade seminarskih radova. Odustanak se kažnjava sa 2 poena oduzeta od osnovnih 100 poena, dok svaki probijeni termin smanjuje broj ukupno osvojenih poena na seminarskom radu za 2.

Seminarski radovi, 2023. godina

I smer
  • jezik: Go, naziv: "Pesak", studenti: Nemanja, Stevan i Luka opis: simulator čestica različitih materijala i agregatnih stanja git repozitorijum
  • jezik: Kotlin, naziv: Tetris, studenti: Marko Petrović, Ana Knežević i Pavle, opis:Rekreacija popularne video igre Tetris, radjena za Android operativni sistem, git repozitorijum
  • jezik: Go, naziv: "MPass", studenti: Ana Mihajlović i Katarina, opis: Password manager desktop aplikacija za Linux, git repozitorijum
  • jezik: Lua, naziv: Color Game, studenti: Luka Filipović i Stefan Jevtić, opis: Igra koja testira kognitivne sposobnosti igraca i brzinu prstiju tako što se na ekranu pojavljuju boje koje su ispisane slovima u nekoj boji a igrač treba da klikne na polje ako je odgovarajuće boje, git repozitorijum
  • jezik: Rust, naziv: Audio recorder, studenti: Nemanja Ršumović i Mitar Avramović, opis: Aplikacija namenjena za snimanje zvuka, git repozitorijum
  • jezik: Rust, naziv: "Pipaluk", studenti: Danil Grbić, Vuk Amidžić i Marija, opis: Igra u kojoj mačka Pipa pokušava da izađe iz lavirinta, git repozitorijum
  • jezik: Smalltalk, naziv: Whiteboard, studenti: Igor Kandić, opis: Tabla za crtanje sa mogucnosti deljenja table preko interneta, git repozitorijum
  • jezik: Rust, naziv: MP3 Normalizer based on ReplayGain, studenti: Ivan Gogić i Branko, opis: Aplikacija za obradu mp3 snimaka, git repozitorijum
  • jezik: Kotlin, naziv: Rent Drive Go, studenti: Boško Andrić, opis: Rent a car aplikacija, git repozitorijum
R smer
  • jezik: Scala, naziv: Image Processing App in Scala, studenti: Irina Šević i Tijana Jakšić, opis: aplikacija za obradu slika u programskom jeziku Scala, git repozitorijum
  • jezik: Kotlin, naziv: Asocijacije, studenti: Vasilije Kostić, Tanja Gavrić i Anja, opis: Aplikacija za pomoć u igranju igre "Asocijacije" koja se igra u tri faze. git repozitorijum

Seminarski radovi, 2022. godina

I smer
  • jezik: Kotlin, naziv: "Nauči me", studenti: Dragana Zdravković i Mirko Kordić, opis: android aplikacija za lako zakazivanje privatnih časova, git reozitorijum
  • jezik: Go, Rust, naziv: MATDAQ, studenti: Aleksandar Šmigić, Dimitrije Marković i Ilija Stojanović, opis: aplikacija za trgovinu na berzi, git repozitorijum
  • jezik: Kotlin, naziv: NutrTracker, studenti: Tamara Stojanović, Jelena Lazović i Marko Bojković, opis: android aplikacija za praćenje i vođenje evidencije unosa hrane, podsetnik za unos vode, pedometar, git repozitorijum
R smer
  • jezik: Dart, naziv: Morsko dno, studenti: Marija Bogavac i Nevena Mijailović, opis: android igra u kojoj je cilj izbaciti svu plastiku iz mora, git reozitorijum
  • jezik: C#, naziv: Knight's tour, studenti: Mira Milosavljević, Marija Konatar i Nevena Milisavljević, opis: unity aplikacija u kojoj se šahovska tabla obilazi samo potezima koje konj čini, git repozitorijum
  • jezik: Kotlin, naziv: Bluetooth Chat and Reminder app, studenti: Isidora Burmaz i Aleksandra Biočanin, opis: android aplikacija namenjena za dopisivanje preko bluetooth-a, git repozitorijum
  • jezik: Kotlin, naziv: Hotel reservations, studenti: Aleksa Toroman i Andrijana Janković, opis: aplikacija koja omogućava pregled usluga hotela, kao i rezervaciju istih, git repozitorijum
  • jezik: Lua, naziv: Monster Escape, studenti: Luka Sparić i Robert Doža, opis: igra u kojoj čudovište pokušava da pobegne iz tamnice implementirana korišćenjem različitih grafovskih algoritama, git repozitorijum

Seminarski radovi, 2021. godina

I smer
  • jezik: Dart, naziv: Nebula, studenti: Lucija Miličić, Natalija Asanović, Jovana Đurović, opis: Weather aplikacija koja pruža informacije o trenutnoj temperaturi vazduha, koeficijentu zagađenosti vazduha i kvalitetu istog, pružajući informacije o detaljnom sastavu vazduha, kao i još mnogo značajnih informacija za preko 200 000 gradova, git repozitorijum
  • jezik: Go, naziv: MoneyCare, studenti: Bogdan Marković, Andrijana Aleksić, Svetlana Bićanin, opis: Aplikacija koja prati potrosnju novca i na osnovu toga daje korisniku statisticke proracune, savete i upozorenja, git repozitorijum
  • jezik: Kotlin, naziv: Flym, studenti: Mateja Ivancević, Ilija Lekić, Jovan Sijacki, opis: Aplikacija korisniku preporucuje film/filmove na osnovu nesvakidasnjih preferencija koje unese, git repozitorijum
  • jezik: Haskell, naziv: MatfGit, studenti: Milica Živković, Miloš Petričković, Petar Đorđević, opis: Implementacija git-a u programskom jeziku Haskell, git repozitorijum
  • jezik: Haskell, naziv: PsicAsciic, studenti: Igor Paunović, Andrija Urošević, opis: Asciic je digitalni pas ljubimac inspirisan Tamagochijem, git repozitorijum
  • jezik: Kotlin, naziv: YoutubeToDeezerConverter, studenti: Vukan Antić, Katarina Dimitrijević, opis: Program je zamišljen da uzima plejliste sa Deezer naloga korisnika, i pravi identicne plejliste na njihovom Youtube nalogu, git repozitorijum
  • jezik: Android, naziv: MusicPlayer, studenti: Aleksa Lukač, Darko Zorić, Marko Kuliš, opis: Android aplikacija koja služi za reprodukovanje muzičkih fajlova, git repozitorijum
  • jezik: Go, naziv: Mafia, studenti: Aleksandar Stefanović, Matija Lojović, Nikola Subotić, opis: Igra za više igrača u kojoj neinformisana većina pokušava da nadmudri informisanu manjinu, git repozitorijum
  • jezik: Haskell, naziv: AlgoritamTester, studenti: Nikola Borjan, Marko Bura, opis: Tester za ispite i kolokvijume pisan u Haskellu, git repozitorijum
  • jezik: Lua, naziv: LytPlay, studenti: Stevan Popović, Minja Popović, Mina Krivokuća, opis: Implementacija plejera koji strimuje muziku sa YouTube-a, git repozitorijum
  • jezik: Go, naziv: Kviiiz, studenti: Milica Gnjatović, Slobodan Jenko, Isidora Slavković, opis: Kviz za vise igraca, gde se igraci takmice ko ce brze da odgovori na data pitanja, git repozitorijum
  • jezik: Kotlin, naziv: MyPa, studenti: Aleksandra Pešić, Jelena Keljać, opis: Aplikacija koja korisniku (studentu) omogucava planiranje i organizaciju obaveza, pravljenje beleski, to-do listi, rasporeda, kao i zapisivanje bitnih datuma u vidu podsetnika, git repozitorijum
  • jezik: Kotlin, naziv: RollForKotlin, studenti: Tatjana Knežević, Divna Mićić, Aleksandar Šarbajić, opis: Pravljenje statova za dungeons and dragons (DnD) lika, git repozitorijum
R smer
  • jezik: Dart, naziv: Party monster, studenti: Hristina Nikolić, Sara Živković i Milan Dimitrijević, opis: program za organizaciju proslava i nabavku potrebnih stvari, git repozitorijum , prezentacija.
  • jezik: Kotlin, naziv: Minesweeper: Generate And Solve, studenti: Tara Menjak Maksimović i Mila Lukić (I smer), opis: generator mape za igru Minesweeper koju korisnik može da rešava i automatski rešavač za generisanu mapu, git repozitorijum
  • jezik: C++, naziv: Podmornice, studenti: Sara Mišić i Milena Filipović, opis: projekat simulira igru potapanja podmornica, git repozitorijum
  • jezik: C#, naziv: MineSnake, studenti: Branko Cvetković, Milica Karličić i Petar Tešić, opis: kombinacija popularnih igrica Minesweeper i Snake, git repozitorijum
  • jezik: Scala, naziv: Checkers, studenti: Katarina Marjanović, Bogdan Bojović i Emilija Knežević, opis: inspirisano popularnom igrom Checkers sa implementacijom dodatnih algoritama za igru, git repozitorijum
  • jezik: Kotlin, naziv: Nonogram, studenti: Aleksa Milisavljević i Uroš Ševkušić, opis: Generisanje nonograma na osnovu date slike i rešavanje nonograma kojeg korisnik zada, git repozitorijum

Seminarski radovi, 2020. godina

I smer
  • jezik: Scala, naziv: ParGenAlg, studenti: Momir Adžemović, Jovan Rumenić, Filip Božović, opis: Implementacija paralelnog genetskog algoritma u jeziku Skala za rešavanje problema trgovačkog putnika, git repozitorijum
  • jezik: Haskell, naziv: Asocijacije, studenti: Filip Filipovic, Nikola Ubavić, opis: Igra asocijacije, git repozitorijum
  • jezik: Go, naziv: Domine, studenti: Teodora Isailović, Stefan Durlević, Mihailo Vlajković, opis: Igra domine, git repozitorijum
  • jezik: Kotlin, naziv: File Manager, studenti: Vladimir Vuksanović, Aleksa Kojadinović, Lazar Čeliković, opis: Menadžer datoteka, git repozitorijum
  • jezik: Python, naziv: Star Wars Space Battle, studenti: Ognjen Stamenković, Boris Cvitak, Predrag Mitić, opis: Igrica nalik na Galagu implementirana koristeći Python i biblioteku Pygame., git repozitorijum
  • jezik: Dart, naziv: Ps4Flutter, studenti: Marko Vićentijević, opis: Mobilna aplikacija za naručivanje PS4 i nargile na kućnu adresu, git repozitorijum
  • jezik: Python, naziv: Chat Bot za Vremensku Prognozu, studenti: Aleksa Tešić, Božidar Mitrović, opis: Chat bot koji daje informacije o vremenskoj prognozi, git repozitorijum
  • jezik: Go, naziv: GoChat, studenti: Djordje Mutavdzić, Tomislav Savatijević, opis: Implementacija chat soba u programskom jeziku Go, git repozitorijum
  • jezik: Python, naziv: Lojdova slagalica, studenti: Kosta Grujčić, David Nestorović, Momcilo Knezević, opis: Simulacija rešavanja Lojdove slagalice, git repozitorijum
  • jezik: Python, naziv: MSNv2, studenti: Aleksandar Nikolić, Mirko Ilić, Nikola Mićić, Momcilo Knezević, opis: Aplikacija nalik na MSN za usluge četovanja, git repozitorijum
  • jezik: Kotlin, naziv: Student Debut, studenti: Milica Radojičić, Marija Lakić, Ana Nikačević, opis: Aplikacija koja korisniku(studentu) omogućava da pronađe trenutne ponude za posao/prakse/stipendije iz oblasti informatike, git repozitorijum
  • jezik: Dart, naziv: PPQuiz, studenti: Marko Babić, Maja Crnomarković, Aleksandar Milošević, opis: Kviz sa pitanjima za usmeni iz PP, git repozitorijum
  • jezik: Python, naziv: Security Camera Soft, studenti: Milos Milaković, Nikola Jovanović, opis: Softver za detekciju pokreta, git repozitorijum
  • jezik: Python, naziv: Image processing tool, studenti: Vladimir Arsenijević, Luka Vujčić, opis: Alat za editovanje slika implementiran u jeziku Python posredstvom odgovarajućih biblioteka, git repozitorijum
  • jezik: Kotlin, naziv: Kokteli, studenti: Ana Bolović, Jelena Minić, opis: Mobilna aplikacija za naručivanje koktela
R smer
  • jezik: Python, naziv: Random Mondrian Art, studenti: Ana Milićević, Miloš Kutlešić i Uroš Dimitrijević, opis: program koristi rekurziju za stvaranje pseudo-slučajne umetnosti u Mondrijanskom stilu, git repozitorijum
  • jezik: Lua, naziv: Our Zelda, studenti: Biljana Zečić i Stevan Nestorović, opis: razvoj igre u framwork-u love2d od nule, generisanje nivoa, programiranje igrača i neprijatelja, git repozitorijum
  • jezik: C#, naziv: Trijangulacija, studenti: Dejana Mandić i Milan Kocić, opis: projekat simulira rad geometrijskih algoritama, git repozitorijum
  • jezik: Python, naziv: Robot Treasure Hunt, studenti: Nina Matić, Milica Kleut i Dunja Čitlučanin, opis: cilj igrice jeste da robot (tj. igrač) dođe do blaga, git repozitorijum
  • jezik: C#, naziv: Manhattan_project, studenti: Miloje Joksimović, Vladan Kovačević i Luka Đorović, opis: aplikacija za nalaženje optimalnog puta od početne do kranje izabrane tačke na mapi jednog dela Menhetna, git repozitorijum
  • jezik: Vala, naziv: Strings, student: Dušan Gvozdenović, opis: štimer za gitaru za GNU/Linux operativne sisteme, git repozitorijum
  • jezik: Python, naziv: Rabbit hunt, studenti: Katarina Branković, Jana Vučković i Marko Popović, opis: Lisica juri zeca po terenu koji sadrži žbunje koje može da blokira pogled lisici do zeca i obrnuto, Naš zadatak je bio da napravimo što pametnijeg zeca odnosno da smislimo algoritam pomoću kog će zec što češće pobediti u igri, git repozitorijum
  • jezik: C#, naziv: Basketball game statistics, studenti: Danilo Vasić i Mihajlo Stojanović, opis: Program je namenjen praćenju statistike igrača uživo na košarkaškoj utakmici git repozitorijum
  • jezik: Python, naziv: Evil Hangman, studenti: Mila Milovanović, Jovana Adžić i Nemanja Radojičić, opis: u ovom Evil Hangman-u, računar umesto da izabere jednu reč on uzima spisak reči, kako bi pokušao da pobegne pretpostavkama igrača što je više moguće, git repozitorijum
  • jezik: C++, naziv: UNO, studenti: Aleksa Trbović i Robert Doža, opis: UNO! je kartaška igra slična Mau Mau, sa posebno odštampanim kartama i specifičnim pravilima, ideja programa je simulacija uzastopnih partija između četiri igrača. git repozitorijum
  • jezik: Python, naziv: 2020_Ants_vs_SomeBees, studenti: Anka Stanković, Lana Šoškić i Filip Miljojković, opis: tower defense igra koja je inspirisana PopCap-ovom popularnom igrom Plants Vs. Zombies git repozitorijum
  • jezik: Python, naziv: Autocomplete, studenti: Stevan Dragović i Jovan Ranđelović, opis: implementacija autocomplete aplikacije, git repozitorijum
  • jezik: Python, naziv: Hurricane Tracker, student: Milena Vidić, opis: program animira putanju nekoliko uragana Atlantskog okeana iz 2005. godine na osnovu datih podataka, git repozitorijum

Seminarski radovi, 2019. godina

I smer
  • jezik: Python, naziv: 2D Persistent Homology visualizer, studenti: Marko Spasić i Kristina Popović, opis: Alatka koja pruža vizualizaciju algoritma za izračunavanje perzistentne homologije u 2D, git repozitorijum
  • jezik: Go, naziv: Go Blockchain, studenti: Nikola Stanojević, Mateja Trtica i Nikoleta Vukajlović, opis: Implementacija decentralizovane mreže čvorova koji simuliraju blockchain, git repozitorijum
  • jezik: C++, naziv: Compound Units, student: Aleksandar Nikolić, opis: Implementacija generičkog tipa koji predstavlja složene jedinice mere i čije se skraćivanje vrši za vreme kompilacije, git repozitorijum
  • jezik: Ruby, naziv: Safir, studenti: Milena Stojić i Dunja Spasić, opis: Implementacija dodatnih funkcionalnosti (tzv. plugins) za Sketchup koje nisu direktno podržane a znatno mogu olakšati i skratiti rad, dodati na estetici i pomoći pri kreiranju novih modela, git repozitorijum
  • jezik: Ruby, naziv: SELENA, studenti: Katarina Savičić, Sandra Radojević i Dara Milojković, opis: Simulacija razgovora čoveka i virtuelnog psihoterapeuta. Predstavlja implementaciju programa ELIZA, prvog NLP programa, git repozitorijum
  • jezik: Ruby, naziv: CV Express, studenti: Bojana Ristanović, Lea Petković i Nikola Stamenić, opis: Na osnovu podataka i želja vezanim za sam dizajn budućeg CV-a korisnika, kreira odgovarajući CV. Program u pozadini generiše PDF fajl, a korisniku nudi razumljiv grafički korisnički interfejs pomoću kog se unose neophodni podaci, git repozitorijum
  • jezik: Ruby, naziv: Pong, studenti: Boris Karanović, opis: Implementacija jedne od najstarijih arkadnih igrica - Pong. Igrica je napravljena za dva igrača, a programirana u programskom jeziku Ruby, na uredjaju RaspberryPI3. Implementacija GUI-a je izvršena pomoću biblioteke OpenGl git repozitorijum
  • jezik: Kotlin, naziv: MATF Asistent, studenti: Olivera Popović i Aleksandar Stefanović, opis: Ideja projekta je pomoć studentima pri organizaciji vremena tako što učitava raspored sa veb strane fakulteta a korisnik zatim može da izabere kurseve koje želi da pohađa, nakon čega program automatski generiše odgovarajući raspored, git repozitorijum
  • jezik: Python, naziv: Geo Demonstrator, studenti: Kristina Pantelić i Lazar Vasović, opis: Korisnik zadaje figuru u dvodimenzionom okruženju, nad kojom zatim vrši proizvoljne afine geometrijske transformacije: translaciju, rotaciju, refleksiju, skaliranje, smicanje, git repozitorijum
  • jezik: Go, naziv: Anotorr, studenti: Antić Dimitrije, Stefan Golubović i Andrija Novaković, opis: Implementacija peer-to-peer torrent protokola, git repozitorijum
  • jezik: Kotlin, naziv: Androidi, studenti: Stevan Milić i Ivan Nedić, opis: Clicker/Idle igrica u kojoj igrač sakuplja resurse i bira unapređenja koja želi, praveći progres i automatizujući proces igranja, git repozitorijum
  • jezik: Haskell, naziv: Ime_tima, studenti: Strahinja Ivanović i Darko Veizović, opis: Rešavač igre Slagalica istoimenog kviza, git repozitorijum
R smer
  • jezik: Lua, naziv: Protect the planet, studenti: Lazar Perišić i Miloš Đurić, opis: bazira se na pomeranju player-a gore-dole i pucanju meta koje dolaze, tokom vremena mete se stvaraju sve brze dok ne dostignu odredjenu brzinu, cilj igrice je postici sto veci score (unistiti sto veci broj meta), git repozitorijum
  • jezik: Rust, naziv: Robin Hud, studenti: Marijana Urošević i Luka Hadži-Đokić, opis: cilj igre je da, u ulozi Robina Huda, opljačkate zamak i pobegnete pre nego što Vas stražari primete i uhvate, stražari patroliraju zamkom u potrazi za uljezom, ako se igrač nađe u vidnom polju stražara, igra je gotova, git repozitorijum
  • jezik: Lua, naziv: Ne ljuti se čoveče, studenti: Natalija Drašković, Isidora Ristović i Vera Popović, opis: igra veoma nalikuje na poznatu igru Ne ljuti se čoveče i održava njene osnovne koncepte, kao što je mogućnost jedenja protivničke figure, ali uvodi i nove koncepte u vidu pitanja na poljima koja vode od početka do cilja, git repozitorijum
  • jezik: C#, naziv: Windows copy, studenti: Marija Katić i Jovan Milenković, opis: implementacija operacije cut/copy/paste na Windows OS koje u pozadini koriste robocopy komandu, git repozitorijum
  • jezik: Python, naziv: Scaffolder, studenti: Alen Osmani, Danilo Vasić i Bogosav Cvetković, opis: video igra u kojoj je cilj postići što veći rezultat, rezultat zavisi od postignute visine, radnja je smeštena na gradilištu, igrač se penje tako što skače sa skele na skelu, git repozitorijum
  • jezik: Python, naziv: Igra memorije, studenti: Anja Velicković, Ivan Stanić i Milica Simić, opis: kartice su poređane na kvadratnom talonu, prvi igrač podiže dve kartice i ako su identične – uzima ih sa talona i podiže još dve, ukoliko kartice nisu iste, na potezu je sledeći igrač, svako od igrača se trudi da zapamti gde stoji kartica i tako traži par istih, ovaj postupak se ponavlja naizmenično dok se kartice nalaze na talonu, pobeđuje igrač koji ima više kartica, git repozitorijum
  • jezik: Python, naziv: Zmijica, studenti: Anja Drašković i Ilija Katić, opis: svaki put kada pojede hranu zmija poraste, ako kretanjem udari u zid ili zagrize sama sebe igra se završava i ispisuju se poeni, git repozitorijum
  • jezik: Python, naziv: Interactive schedule, studenti: Đorđe Jovanović i Višeslav Đurić, opis: aplikacija koja simulira raspored časova za predavanja i vežbe na fakultetu i u školi, git repozitorijum
  • jezik: C#, naziv: Space Impact, studenti: Nikola Damjanović, Miloš Nikolić i David Aksović, opis: igrica se bazira na pomerajima svemirskog broda gore,dole,napred,nazad i pucanjem na nailazeće neprijateljske brodove kako bi ih oborili i dobili poene, sudaranje u neprijateljski brod ili projektil dovodi do kraja igre, git repozitorijum

Seminarski radovi, 2018. godina

R smer
  • jezik: C++, naziv: Cars game, studenti: Maša Kilibarda, Anđela Milanović i Tamara Despotović, opis: igrica se bazira na pomerajima levo-desno kako bi se izbegli automobili koji nadolaze i skupilo gorivo koje se neprestano smanjuje, cilj igrice je preći što dužu razdaljinu, git repozitorijum, rad
  • jezik: Python, naziv: Primena mašinskog učenja u igri šaha, studenti: Miodrag Radojević, Milica Šehovac i Milica Gajić, opis: primenom mašinskog učenja program daje odgovor da li igrač sa kraljem i topom može u narednih 16 poteza da matira igrača sa kraljem na šahovskoj tabli, git repozitorijum, rad
  • jezik: Scala, naziv: NeoReborn, student: Miloš Ivanović, opis: editor za rad sa grafovima, git repozitorijum, rad
  • jezik: Scala, naziv: Padaš ili vladaš?, studenti: Vera Milosavljević i Veronika Miljaković, opis: kviz sadrži pitanja iz gradiva kursa Programske paradigme i služi za pripremanje kolokvijuma i ispita, git repozitorijum, rad
I smer
  • jezik: Haskell, naziv: Skočko, studenti:Dimitrije Špadijer i Selena Vukadinović, opis: Implementacija igre Skočko iz TV kviza Slagalica, git repozitorijum , rad
  • jezik: GO, naziv: Go golf, studenti: Nikola Ninković i Jovana Pejkić, opis: 2D golf igrica, git repozitorijum , rad
  • jezik: Python, naziv: Imaginary Friend, studenti: Miloš Milutinović i Dijana Zulfikarić, opis: Alat za prepoznavanje govora, koji će u zavisnosti od ulaza izvršavati različite zadatke, git repozitorijum , rad
  • jezik: Haskell, naziv: Numerički algoritmi u Haskellu, studenti: Marija Filipović i Djordje Stanojević, opis: Implementacija numeričkih algoritama, git repozitorijum , rad
  • jezik: Python, naziv: python-web-browser, studenti: Đorđe Dimović i Lazar Bojanić, opis: Pojednostavljen web pretraživač, git repozitorijum , rad
  • jezik: Python, naziv: Kate Perry, studenti: Mateja Marjanović i Dalma Beara, opis: Tekst editor napisan u Python-u, git repozitorijum , rad
  • jezik: C++, naziv: Pluton, studenti: Nebojša Koturović i Jelena Mrdak, opis: Fajl menadžer napisan u C++, git repozitorijum , rad
  • jezik: Kotlin, naziv: Kotlin, studenti: Marko Veljković i Aleksandar Jakovljević, opis: Aplikacije za odabir predavanja iz dobijenog rasporeda časova generisanog izborom predmeta koji student sluša u tekućoj godini na MATF-u, git repozitorijum , rad
  • jezik: Python, naziv: BobanBot, studenti: Marko Jovanović i Stevan Djokić, opis: Boban bot je tu pomogne i studentima i Bobanu tako što će poboljšati efikasnost studentske službe na Matematičkom fakultetu. Biće implementiran kao messenger (facebook) chatbot koji će imati različite funkcionalnosti, git repozitorijum , rad
  • jezik: Python, naziv: mlSmart game, studenti: Stevan Milić i Ivan Nedić, opis: Igrica za dva igrača za učenje mašinskog učenja, git repozitorijum , rad

Seminarski radovi, 2017. godina

  • jezik: Python, naziv: Pyraminix, studenti: Tamara Marčetić i Maja Stojković, rad
  • jezik: Python, naziv: Multitasking igrica, studenti: Vladimir Đošović i David Marjanović , rad
  • jezik: Scala, naziv: Potera, studenti: Katarina Đurić, Lazar Mladenović i Tatjana Damnjanović, rad
  • jezik: Scala, naziv: Gladne zeke, studenti: Ivona Jurošević i Aleksandar Mužina, rad
  • jezik: Scala, naziv: Kviz, studenti: Marko Mladenović, Andrijana Čakarević i Nikola Rajković, rad
  • jezik: Lua, naziv: Whey invasion, studenti: Katarina Živković i Lazar Nisić, rad
  • jezik: C++, naziv: Implementacija balansiranih AVL stabala, studenti: Milan Čugurović i Ivan Drecun, rad
  • jezik: Python, naziv: Maze-pathfinder, studenti: Milana Kovačević i Ivan Ristović, rad
  • jezik: Python, naziv: Escape room, studenti: Ana Bajić, Strahinja Stanojević i Tomislav Milovanović, rad
  • jezik: Python, naziv: PMK, student: Miljan Kolčić, rad
  • jezik: Ruby, naziv: Sticky notes, studenti: Dušan Pilipović i Vido Mladenović, rad
  • jezik: Ruby, naziv: RX ball, studenti: Nikola Dimić i Dragana Dimitrijević, rad
  • jezik: Lua, naziv: 5 in a row, studenti: Srđan Lazarević i Ana Košutić, rad
  • jezik: Lua, naziv: Defense of the burek, studenti: Nikola Dimitrijević, Luka Živanović i Božidar Antić, rad
  • jezik: Blueprint (Unreal Engine), naziv: Balansero, studenti: Rastko Đorđević, Marijana Tanović i Bojan Vasiljević, rad
  • student: Uroš Gojković, jezik: Clojure, rad
  • student: Slavko Djuričin, jezik: OCaml, rad
  • student: Miroslav Mišljenović, jezik: GO, rad
  • student: Nemanja Majstorović, jezik: ML, rad
  • student: Djordje Andjelković, jezik: Julia, rad
Seminarski radovi, 2016. godina
  • naziv: Sovice, studenti: Stanko Grujić i Željko Grujić, rad
  • naziv: Mravi, studenti: Strahinja Milojević, Miloš Arsić i Jovana Đoković, rad
  • naziv: HopOp, studenti: Uroš Poznan i Jelena Kitanović, rad
  • naziv: Avioni, studenti: Miloš Lončarević i Filip Miljaković, rad
  • naziv: Banka, studenti: Kristina Gavrilović, Milena Dukanac, Uroš Poznan i Jelena Kitanović, rad
  • naziv: DNK, student: Anđela Mijajlović, rad
Seminarski radovi, 2015. godina
  • naziv: PewPew, studenti: Jelena Simović i Nikola Grulović, rad
  • naziv: Multithreading, student: Nikola Premčevski, rad
  • naziv: Sunčev sistem, student: Vojislav Stanković, rad
  • naziv: Pametne utičnice, student: Pavle Pavlov, rad
  • naziv: Kviz, student: Una Stanković, rad
  • naziv: Kviz, student: Kristina Stanojević, rad
  • naziv: Kombinatori, studenti: Vlado Skoko i Nikola Ajzenhamer, rad
  • naziv: Aurora, studenti: Nemanja Mićović i Lazar Ranković, rad
  • naziv: RGB LED, student: Đorđe Milićević, rad
  • naziv: Super Mario, studenti: David Ivić i Saša Cvetković, rad
  • naziv: Moj broj, student: Željka Živanović, rad
  • naziv: Moj broj, studenti: Isidora Đurđević i Daniel Doža, rad
  • naziv: Nim, student: Anja Bukurov, rad

Dodatni materijali

Dodatni materijali sadrže seminarske radove koji su rađeni prethodnih godina iz oblasti kursa.
Upozorenje: seminarski radovi sadrže razne korisne informacije, ali mogu sadržati i greške!


Teme sa predavanja Programski jezici
  • Erlang. Tijana Jevtić, Jelena Mrdak, David Dimić, Zorana Gajić.
  • Elixir. Božidar Antić, Marija Novaković, Srđan Lazarević, Radmila Ninković
  • F#. Tijana Todorov, Tamara Garibović, David Nedeljković, Mihajlo Vićentijević
  • Clojure.N. Grulović, J. Dmitrović, D. Martinović, N. Bogdanović.
  • Swift. Dragica An]elković. Igor Mandić. Igor Nikolić. Petar Pejović.
  • Perl. Aleksandar Vračarević, Jovan Marić, Petar Mićić, Tatjana Radovanović
  • Ruby. Vladana Dordević, Aleksandra Jovičić, Jovana Nikolić, Tijana Tošev
  • PHP. Đorde Vučković, Tamara Ivanović, Petar Simić, Stefan Stevović
  • ObjectiveC. Dalma Beara, Denis Aličić, Mateja Marjanović, Anja Miletić
  • Kotlin. Jakovljević Aleksandar, Serbić Marko, Veljković Marko, Vukadinović Selena
  • Lua. Jovana Pejkić, Jana Jovičić, Katarina Rudinac, Ivana Jordanov
  • Go. Luka Marković, Tamara Radovanović, Rade Aleksić, Milan Pužić
  • Prethodni dodatni materijali za učenje se mogu naći zipovani ovde
  • JavaScript. Branislav Jovanović, Svetozar Iković, Marko Vesković.
Razvojna stabla programskih jezika
  • Erlang. Igor Šćekić.
  • C. Danica Babić. Milena Vidić.
  • Haskell. Mirjana Miljić.
  • C++. Bojana Jošić. Anđela Sekulić.
  • Swift. Milan Kocić.
  • Lua. Jana Vučković. Katarina Branković.
  • Julia. Kristina Jovanović. Danilo Gligorović.
  • D. Dunja Čitlučanin. Nina Matić.
  • Ruby. Dejana Mandić.
  • Clojure. Luka Tomašević.
  • Python. Ana Nikolić.
  • Java. Marija Nikoloska.
  • Scala. Nikolina Kuprešanin.
  • F#. Vladan Kovačević.
  • PHP. Miloje Joksimović.
  • JavaScript. Anka Stanković.
  • Kotlin. Sanja Milosavljević.
  • Mercury. Andrijana Peković.
  • Ada. Nemanja Radjoičić.
  • Perl. Stevan Dragović.
  • R. Mihajlo Stojanović.
  • OCaml. Jovana Mirković.
  • C#. Lana Šoškić.
  • Rust. Milica Kleut. Aleksandar Petrović.
  • VisualBasic. Biljana Zečić. Stevan Nestorović.
  • Eiffel. Jovana Adžić.
  • Miranda. Jovan Ranđelović.
  • MatLab. Marko Popović.
  • Groovy. Irena Maričić.
  • ObjectiveC. Nevena Manevska.
  • Prethodni dodatni materijali za učenje se mogu naći zipovani ovde
Matematički fakultet, Univerzitet u Beogradu
školska 2018/19. godina