DIZAJN PROGRAMSKIH JEZIKA

Kurs dizajn programskih jezika je obavezan kurs na trećoj godini R smera. U okviru kursa se proučavaju različite karakteristike programskih jezika i stilova programiranja:

  • Skript programiranje kroz Python
  • Komponentno programiranje kroz PyQt (prethodnih godina rađena biblioteka JavaFX)
  • Konkurentno programiranje i odgovarajući mehanizmi konkurentnog programiranja kroz GO (prethodnih godina rađena Java)
  • Generičko programiranje kroz C++
U okviru studija postoje i drugi kursevi koji se bave bliskim temama.

Predmetni nastavnik:

Asistent:

Obavezni predmet

  • 5 ESPB bodova
  • 2 časa predavanja
  • 2 časa vežbi

Završni ispit (100 poena):

  • teorija: 45 poena
  • zadaci: 55 poena
Napomene: Na ispitu se rade i teorija i zadaci. Da bi položio ispit, student treba da ostvari najmanje 51 poen, od čega najmanje 40% na teoriji (18 poena) i najmanje 40% ukupno na zadacima (22 poena) od čega minimum 30% na C++u i minimum 30% na GO. Na praktičnom delu ispita dolazi celo gradivo i taj deo traje 2.5 sata.

Dodatni poeni (seminarski radovi, aktivnosti na predavanjima, domaći zadaci i slično) koji su skupljeni u toku godine važe do poslednjeg ispitnog roka za dati kurs. Dodatni poeni mogu se koristiti samo za povećanje ocene, ne i za polaganje ispita. Dakle, neophodno je da imate najmanje 51 poen na ispitu da bi na to mogli da se dodaju ovi poeni.

Organizacija ispita u 2020/21. godini
U skladu sa trenutnom situacijom, teoriju možete polagati u istom ispitnom roku zajedno sa praktičnim delom ispita ili u nekom od narednih rokova, takođe u terminima praktičnog dela ispita (tačna satnica polaganja će uvek biti dostupna u okviru obaveštenja na strani kursa). Jednom položen praktični deo važi i u svim narednim rokovima, tj. sve dok se ne izađe na teoriju. Ukoliko se položi teorija, ocena će biti zavedena u Hipatiji u roku u kojem je položena teorija. Ukoliko se ne položi teorija, potrebno je ponovo da se polaže i praktični deo ispita. Ukoliko polažete praktični deo i teorijski deo ispita u istom roku, teorija se pregleda samo ukoliko položite praktični deo (jer je polaganje praktičnog dela preduslov za teoriju). Neophodno je da prijavite ispit i u roku u kojem polažete praktični deo i u roku u kojem polažete teoriju.

Materijali

Link na video materijale. (Video materijali koje treba pogledati do narednog časa biće okačeni najkasnije u četvrtak)

Postavite pitanje vezano za odgledan video - dobićete odgovor u narednom terminu predavanja.

Materijali će biti dopunjavani tokom semestra.
  • Uvod o kursu i obnavljanje. Pogledati video koji se odnosi na Dodatne programske paradigme (43:59)
  • Do 1. marta, pogledati video materijale
    • 01.01 Uvod u konkurentno programiranje (20:18)
    • 01.02 Konkurentno programiranje. Potrebna podrska, skalabilnost, portabilnost. (15:30)
    • 01.03.01 Konkurentno programiranje. Osnovni koncepti. Zadatak, proces, nit. (18:16)
  • Do 8. marta, pogledati video materijale
    • 01.03.02 Konkurentno programiranje. Osnovni koncepti. Izbor nivoa konkurentnosti. (28:31)
    • 01.03.03 Konkurentno programiranje. Osnovni koncepti. Komunikacija i sinhronizacija (44:23)
  • 15. marta biće održano predavanje uživo (uvod u programski jezik Go)
  • 22. marta biće održano predavanje uživo (programski jezik Go + nastavak tema konkurentnog programiranja)
  • 29. marta biće održano predavanje uživo (kompletiranje konkurentnog programiranja).
    Ko nije odslušao predavanja: postavljeni su video snimci za distribuirano programiranje.
    • 01.04 Konkurentno programiranje. Distribuirani sistemi. Definicija. Prednosti. Izazovi. (18:10)
    • 01.04 Konkurentno programiranje. Distribuirani sistemi: podaci, transakcije, izračunavanje, poruke. (25:30)
    • 01.05.01 Konkurentno programiranje. Veza sa programskim jezicima. Java. Scala. Kotlin. Clojure. (24:00)
    • 01.05.02 Konkurentno programiranje. Veza sa programskim jezicima. Erlang, Elixir, Elm (18:57)
    • 01.05.03 Konkurentno programiranje. Veza sa programskim jezicima. Rust, Go (16:49)
    • Postavljeni su i video snimci za gostujuća predavanja
  • 5. april biće održano predavanje uživo (generičko programiranje, C++)
  • 12. april i 14. april biće održano gostujuće predavanje uživo (oba predavanja vezana za C++), detalji će biti dati u okviru kartice za obaveštenja. Te nedelje ćemo imati ta dva predavanja u po trajanju od 45 minuta umesto dvočasa ponedeljkom.
  • 19. aprila biće održano predavanje uživo (generičko programiranje, C++, nastavak)
  • 26. aprila biće održano predavanje uživo (generičko programiranje, C++, nastavak)
  • 5. maja biće održano predavanje uživo (generičko programiranje, C++, nastavak)
  • 10. maja biće održano gostujuće predavanje uživo
  • 17. maja biće održane konsultacije, biće potrebno pogledati video materijale
    • 07.01-02 Skript jezici. Uloga skript jezika. Karakteristike skript jezika. (34:29)
    • 07.03 Skript jezici. Domeni upotrebe i primene (42:23)
    • 07.04 Skript jezici. Jezici opšte namene (13:35)
  • 24. maja biće održane konsultacije, biće potrebno pogledati video materijale
    • Osnovna svojstva programskih jezika. Leksika. Sintaksa. Semantika. Pragmatika (54:49)
    • Osnovna svojstva programskih jezika. Imena, promenljive, povezivanje. Kontrola toka. Tipovi. Prevođenje. Izvršavanje. (44:55)

Tekući rezultati

Tekuće rezultate možete pratiti preko naredne tabele.

O kursu

  • Uvod: o kursu i obavezama na kursu. Slajdovi.

Programski jezici i programske paradigme - obnavljanje

Konkurentno programiranje

Parametarski polimorfizam

  • Parametarski polimorfizam. Generičko programiranje kroz C++.
    Slajdovi. Tekst.
  • Dimenziona analiza u jeziku C++. Slajdovi

Skript programiranje

Osnovna svojstva programskih jezika

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!
Link na dodatne materijale.

Organizacija časova i konsultacije

Video materijali i propratni kodovi se ažuriraju na nedeljnom nivou. Konsultacije za tekuću nedelju najaviti mejlom najkasnije do utorka u podne te nedelje.

Virtuelna mašina

  • Ubuntu virtuelna mašina sa potrebnim softverom za kurs na kojoj user student ima sudo privilegije, pa je moguće instalirati i dodatni softver: link.
    Da biste pokrenuli virtuelnu mašinu, potrebno je da imate instaliran VirtualBox koji možete preuzeti ovde .
    Studentima je na raspolaganju nalog student (lozinka: student).
    Napomena: VM je ista kao na kursu Programske paradigme.

Webgrader

  • Webgrader sistemu možete pristupiti [ovde]. Studenti koji su ranije napravili nalog za ovu platformu mogu da preskoče naredni korak.
    Pravljenje naloga:
    • Nalog pravite klikom na opciju "Napravi nalog"
    • Za korisničko ime birate Vaše korisničko ime sa alasa (npr. mi20044)
    • Za mejl adresu birate alas adresu (npr. mi20044@alas.matf.bg.ac.rs)
    • Šifra je proizvoljna (ne mora da bude ista kao i na alasu)
    Pristup kursevima ćete dobiti najkasnije do ponedeljka, 03.05.
    U slučaju da imate problem sa registracijom, možete se javiti na: aleksandra_kocic@matf.bg.ac.rs
      Termini u kojima će biti postavljene nove teme za vežbanje i dodatne poene
    • sreda, 12.05. u 16h
    • četvrtak, 13.05. u 16h
    • utorak, 18.05. u 16h
    • sreda, 19.05. u 16h
    • utorak, 25.05. u 16h
  • Pri rešavanju zadataka je potrebno držati se naznačenog formata obrade i ispisa podataka.
  • Prvih pet studenata koji postave tačno rešenje zadatka (uspešnost 100%), dobiće 1 dodatni poen.
  • Jedan student može osvojiti najviše 1 dodatni poen po postavljenoj temi za vežbanje (svaka tema će imati više zadataka), odnosno, ukupno najviše 5 dodatnih poena.
  • Tekuće rezultate možete pratiti preko naredne tabele.

Materijali sa časova

ČAS 1

  • Uvodni čas: * Video materijal za obe grupe dostupan na serveru enastava *
  • Python: Različiti formati podataka. Datum. Argumenti komandne linije. Sortiranje. Obilazak direktorijuma.
    [Zadaci] [Rešenja (dopunjeno)]
    * Video materijal dostupan na serveru enastava *

ČAS 2

  • Python: Komponentno programiranje. PyQt5 biblioteka.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *
  • Dodatne primere u PyQt-u možete pogledati [ovde].

ČAS 3

  • Python: Matplotlib i NumPy biblioteke.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 4

ČAS 5

  • Uvod u programski jezik Go. Konkurentno programiranje.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 6

  • Konkurentno programiranje. Sinhronizacija niti. Podela poslova po nitima unapred.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 7

  • Konkurentno programiranje. Podela poslova po nitima unapred. Uslovni redovi čekanja.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 8

  • Konkurentno programiranje. Uslovni redovi čekanja. Vežbanje.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 9

ČAS 10

  • Generičko programiranje. Šabloni funkcija.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 11

  • Generičko programiranje. Šabloni klasa.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 12

  • Generičko programiranje. STL.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

ČAS 13

  • Generičko programiranje. STL nastavak. Funkcionali. Lambda funkcije.
    [Zadaci] [Rešenja]
    * Video materijal dostupan na serveru enastava *

Ispit

  • Na ispitu dolazi celokupno pređeno gradivo. Ispit traje 2.5 sata i sastoji se od pet zadataka, u okviru stranice obaveze studenata podsetiti se pragova. Primer ispita: [Zadaci]

  • Struktura ispita:
    - Python: jedan zadatak koji obuhvata celo gradivo iz skript i komponentnog programiranja
    - GO: dva zadatka koji obuhvataju celo gradivo iz konkurentnog programiranja
    - C++: dva zadatka koji obuhvataju celo gradivo iz generičkog programiranja

Literatura za predavanja

  • Materijali i slajdovi sa predavanja i vežbi
  • Video materijali (deo predavanja)
  • R. Sebesta: "Concepts of programming languages", Addison Wesley, (10. ed.), 2012.
  • A. Tucker and R. Noonan: "Programming Languages: Principles and Paradigms", McGraw-Hill Science, 2001.
  • P. Van Roy, S. Haridi: "Concepts, Techniques, and Models of Computer Programming", MIT Press, 2003.

Literatura za vežbe

Dodatno

Spisak programa potrebnih za kurs

  • Python 3.6
  • Python biblioteke: pandas, numpy, matplotlib, PyQt5, python-constraint
  • GO
  • G++
  • Visual Studi Code (preporuka, može se koristiti i neki drugi editor)

Septembar 2 - rezultati

Rezultate ispita možete pogledati ovde.

Napomena: U tabeli su odgovarajućom bojom označeni rezultati iz roka Septembar 2 (pogledati vrh tabele). Studenti koji nisu ostvarili uslov na nekom delu su označeni crvenom bojom u odgovarajućoj koloni. Studentu koji nije položio praktični deo ispita, nije pregledan teorijski deo.

Rezultati su upisani i u Hipatiju. Mole se studenti da provere poene u tabeli i na Hipatiji i ako uoče neku nepravilnost, jave odmah profesorki.

Uvid u teoriju: javiti se profesorki elektronskim putem zaključno sa sredom, 29.09. u 18h.
Uvid u zadatke: javiti se asistentkinji elektronskim putem zaključno sa sredom, 29.09. u 18h

29. 09. 2021.

Ispit u roku Septembar 2

Ispit se održava u utorak, 28.09. na Trgu.

Finalna satnica i raspored za ispit:
- praktični deo ispita se održava u učionici 718, počinje u 17:00 i traje do 19:30.
- teorijski deo ispita se održava u učionici 718, počinje u 19:40 i traje do 21:00.

26.09.2021.

Prijava i promena lokacije za ispit u roku Septembar 2

Ispit u roku Septembar 2 biće održan na Trgu.
Molimo Vas da se putem upitnika prijavite ukoliko planirate da polažete ispit. Upitnik možete pronaći [ovde]. U slučaju odustajanja od polaganja (a već ste popunili prijavu), molimo da javite izmenu putem mejla asistentkinji. Prijava traje zaključno sa nedeljom, 26.09. do 15h. Tačna satnica i raspored polaganja će biti objavljen u nedelju po završetku upitnika.

23.09.2021.

Septembar 1 - rezultati

Rezultate ispita možete pogledati ovde.

Napomena: Studenti koji nisu ostvarili uslov na nekom delu su označeni crvenom bojom u odgovarajućoj koloni.

Uvid u teoriju: javiti se profesorki elektronskim putem zaključno sa sredom, 22.09.
Uvid u zadatke: javiti se asistentkinji elektronskim putem zaključno sa sredom, 22.09.

17. 09. 2021.

Ispit u roku Septembar 1

Ispit se održava u subotu, 11.09. na Trgu u učionici 718.
Teorijski deo ispita počinje u 17:00 i traje do 18:20.
Praktični deo ispita počinje u 18:30 i traje do 21:00.

10.09.2021.

Prijava i promena lokacije za ispit u roku Septembar 1

Ispit u roku Septembar 1 biće održan u subotu, 11.09. od 17h na TRGU.
Molimo Vas da se putem upitnika prijavite ukoliko planirate da polažete ispit. Upitnik možete pronaći [ovde]. U slučaju odustajanja od polaganja (a već ste popunili prijavu), molimo da javite izmenu putem mejla asistentkinji. Prijava traje zaključno sa petkom, 10.09. do 12h. Nakon toga će biti objavljen raspored polaganja.

07.09.2021.

Septembar 0 - rezultati

Rezultate ispita možete pogledati ovde.

Napomena: Studenti koji nisu ostvarili uslov na nekom delu su označeni crvenom bojom u odgovarajućoj koloni.

Uvid u teoriju: javiti se profesorki elektronskim putem zaključno sa četvrtkom, 02.09.
Uvid u zadatke: javiti se asistentkinji elektronskim putem zaključno sa četvrtkom, 02.09.

29. 08. 2021.

Ispit u roku Septembar 0

Ispit u roku Septembar 0 se održava u četvrtak, 26.08. na Trgu.
Praktični deo ispita počinje u 13:00 i traje do 15:30. Sačekati ispred učionice 718.
Teorijski deo ispita počinje u 15:40 i traje do 17:00. Sačekati ispred učionice 706.

25.08.2021.

Jun 2 - rezultati

Rezultate ispita možete pogledati ovde.

Napomena: Studenti koji nisu ostvarili uslov na nekom delu su označeni crvenom bojom u odgovarajućoj koloni.

Uvid u teoriju: javiti se profesorki elektronskim putem zaključno sa sredom, 14.07.
Uvid u zadatke: javiti se asistentkinji elektronskim putem zaključno sa sredom, 14.07.

Svi rezultati su uneti u Hipatiju, obavezno proverite i javite što pre ukoliko postoji neka nepravilnost. Ispitni spiskovi na Hipatiji će biti zaključeni 15. jula i nakon toga neće biti moguće jednostavne izmene.

Posebno pohvaljujemo naredne studente za ostvarene izuzetne rezultate u okviru kursa:
  • Karličić Milica
  • Nikolić Hristina
  • Živković Sara
  • Milisavljević Aleksa

10. 07. 2021.

Ispit u roku Jun 2

Ispit u roku Jun 2 se održava u utorak, 06.07. na Trgu.
Praktični deo ispita počinje u 13:00 i traje do 15:30. Raspored po učionicama možete pogledati ovde. Mole se studenti da se drže rasporeda i sačekaju ispred učionice.
Teorijski deo ispita počinje u 15:40 i traje do 17:00. Svi studenti koji su se prijavili za ovaj deo ispita treba da sačekaju ispred učionice BIM.

05.07.2021.

Prijava za ispit u roku Jun 2

Molimo Vas da se putem upitnika prijavite ukoliko planirate da polažete ispit pošto je isti dan i upis na fakultetu i kabinet 718 neće biti dostupan, pa nam je kapacitet smanjen u ovom roku. Upitnik možete pronaći [ovde]. U slučaju odustajanja od polaganja (a već ste popunili prijavu), molimo da javite izmenu putem mejla asistentkinji. Prijava traje zaključno sa ponedeljkom, 05.07. do 12h. Nakon toga će biti objavljen raspored polaganja.

02.07.2021.

Jun 1 - rezultati

Rezultate ispita možete pogledati ovde.

Napomena: Studenti koji nisu ostvarili uslov na nekom delu su označeni crvenom bojom u odgovarajućoj koloni.

Uvid u teoriju: javiti se profesorki elektronskim putem zaključno sa četvrtkom, 24.06.
Uvid u zadatke: javiti se asistentkinji elektronskim putem zaključno sa četvrtkom, 24.06.

21. 06. 2021.

Ispit u roku Jun 1

Ispit u roku Jun 1 se održava u petak, 18.06. na Trgu.
Praktični deo ispita počinje u 13:00 i traje do 15:30. Sačekati ispred kabineta 718.
Teorijski deo ispita počinje u 15:40 i traje do 17:00. Sačekati ispred kabineta 718.

17.06.2021.

Prijava za ispit u roku Jun 1

Ispit u roku Jun 1 se održava u petak, 18.06. od 13h na Trgu. Ukoliko planirate da polažete ispit u ispitnom roku Jun 1, potrebno je da se prijavite putem ankete koju možete pronaći [ovde]. U slučaju odustajanja od polaganja (a već ste popunili prijavu), molimo da javite izmenu putem mejla asistentkinji.
Prijava traje zaključno sa četvrtkom, 17.06. do 12h. Nakon toga će biti objavljen raspored polaganja.

12.06.2021.

Seminarski radovi - poeni

Rezultate možete pogledati u narednoj tabeli. Više detalja o ovogodišnjim seminarskim radovima možete pronaći ovde.

Čestitamo svim timovima na uspešno završenoj prezentaciji. Posebne pohvale za tim Party monster koji čine studenti Hristina Nikolić, Sara Živković i Milan Dimitrijević. Njihovu prezentaciju možete pogledati ovde.

26.05.2021.

Kako unaprediti nastavu?

Mole se svi studenti da popune narednu anketu: Link. Anketa ima za cilj da nam pomogne da sagledamo Vaše utiske o kursu i da unapredimo nastavu za naredne generacije. Hvala svima koji odvoje 5 minuta da je popune!

23.05.2021.

Seminarski radovi - odbrane

Podatke za pristup odbrani u izabranom terminu timovi mogu pronaći ovde.

Podrazumeva se da svi članovi tima koji brane rad moraju prisustvovati odbrani, u suprotnom se smatra da su ti članovi odustali od odbrane i neće dobiti poene. Odbrana seminarskog rada podrazumeva pokretanje napisanog programa uz neke izmene i prevođenje, tj. demonstriranje da je tema savladana i očekuje se da svaki član tima učestvuje u odbrani. Potrebno je pripremiti rad lokalno pred odbranu, a jedan član tima deli ekran putem kog se radi prezentacija. Svi članovi treba da obezbede kameru i mikrofon tokom prezentacije. Za potrebe kamere, član tima se može priključiti i sa više uređaja, npr. mobilnog i računara. Prezentacija rada utiče na finalno formiranje poena.

19.05.2021.

Seminarski radovi - odbrane

Odbrane seminarskih radova biće održane putem aplikacije Webex. Termine možete pronaći ovde. Potrebno je da svaki tim, u odnosu na željeni termin odbrane (kolona M), unese u odgovarajuće polje tabele naziv svog repozitorijuma (iz kolone A).

Podrazumeva se da svi članovi tima koji brane rad moraju prisustvovati odbrani, u suprotnom se smatra da su ti članovi odustali od odbrane i neće dobiti poene. Odbrana seminarskog rada podrazumeva pokretanje napisanog programa uz neke izmene i prevođenje, tj. demonstriranje da je tema savladana i očekuje se da svaki član tima učestvuje u odbrani. Prezentacija rada utiče na finalno formiranje poena.

Prijavljivanje za odbranu traje do srede, 19.05. Ukoliko nekom timu ne odgovara nijedan od ponuđenih termina, potrebno je da se članovi jave asistentkinji do 19.05. u suprotnom, smatraće se da je tim odustao od odbrane rada.

17.05.2021.

Vežbe

Postavljeni su materijali za trinaestu nedelju nastave.

14.05.2021.

Seminarski radovi

Svakom timu je poslata potvrda o pregledanom radu (repozitorijumu) i potencijalnim izmenama koje treba završiti do 19. maja. Mole se svi članovi timova da što pre provere svoju poštu i jave se asistentkinji ako potvrda nije stigla. Po završetku izmena/dopuna, tim treba da se javi asistentkinji kako bi se uradio finalni pregled seminarskog pre zvanične odbrane. Odbrane seminarskih radova se planiraju u periodu od 20. maja do 25. maja, tačni termini će biti naknadno objavljeni.

10.05.2021.

Termini za objavljivanje zadataka na Webgrader

Na osnovu rezultata ankete, termini u kojima će biti postavljene nove teme za vežbanje i dodatne poene su:
  • sreda, 12.05. u 16h
  • četvrtak, 13.05. u 16h
  • utorak, 18.05. u 16h
  • sreda, 19.05. u 16h
  • utorak, 25.05. u 16h
Na stranici za vežbe (uvodni odeljci) pročitati dodatne informacije i pravila u vezi sa platformom Webgrader i bonus poenima.
Tekuće rezultate možete pratiti preko naredne tabele.

10.05.2021.

Vežbe

Postavljeni su materijali za dvanaestu nedelju nastave.

07.05.2021.

Termini za objavljivanje zadataka na Webgrader

Problem sa serverom je rešen i kurs je uspešno prošao test fazu. Na osnovu rasporeda časova grupe, napravljen je spisak sa više predloga za termine u kojima bi se postavili zadaci za vežbanje i dodatne poene (prema pravilima koja su objavljena na strani za vežbe). Mole se studenti da se putem ankete izjasne koji od predloženih termina odgovaraju (odabrati sve sa liste što odgovara): anketa.

Anketa će biti otvorena do nedelje, 09.05. u 12h. Nakon toga će na sajtu biti objavljeni termini koji su imali najviše glasova i u tim terminima će na kursu Dizajn programskih jezika na sistemu Webgrade biti postavljane dodatne teme sa zadacima za vežbanje i bonus poene. Ukupno će biti postavljeno 5 tema u skladu sa gradivom iz programskog jezika C++, a svaka tema će imati više zadataka.

07.05.2021.

Webgrader

Problem sa serverom je rešen. Mole se studenti koji su do sada pokušali da pošalju rešenje test zadatka, da probaju ponovo. Takođe, podsećaju se studenti koji do sada nisu testirali platformu za vežbanje ili nemaju nalog, da isti naprave i reše test zadatak kako bismo utvrdili da sve radi ispravno pre postavljanja novih zadataka za bodovanje. Ako se prilikom pravljenja naloga ili slanja rešenja javi neki problem, isti odmah proslediti koleginici Kocić na mail aleksandra_kocic@matf.bg.ac.rs.

05.05.2021.

Seminarski radovi

Podsećaju se studenti je rok za predaju seminarskog rada sreda, 05.05. do ponoći. Obavezno proveriti u toku dana da li su na repozitorijumu postavljeni svi traženi elementi navedeni u uputstvu za izradu i predaju seminarskog koji se mogu naći ovde.

Imati u vidu da se kašnjenje sa izradom i nedostajanje navedenih elemenata uzima u obzir prilikom formiranja poena. Nakon isteka roka za predaju, repozitorijum svakog tima će biti pregledan i timu će biti poslat odgovor o potencijalnim potrebnim izmenama najkasnije do 12. maja. Ukoliko je neki tim odustao od seminarskog rada ili je neki član tima odustao u međuvremenu, mole se studenti da o tome obaveste asistentkinju.

05.05.2021.

Gostujuće predavanje firme Endava, ponedeljak 10. 05. 2021. u 13h

Gostujuće predavanje firme Endava biće održano u ponedeljak 10. 05. 2021. u 13h. Predavanje će trajati 45 minuta. Nakon gostujućeg predavanja, imaćemo ispitivanje (i nagradne poene) vezane za samo gostujuće predavanje.

Predavanje će biti održano putem webex-a. Svim studentima kursa će biti poslat direktan poziv, ali je predavanje otvoreno za sve studente tako da zainteresovani koji nisu dobili poziv mogu koristiti naredni link.

U nastavku je opis predavanja, kompanije Endava i predavača.

Reaktivno programiranje

Aktuelan je trend u arhitekturama zasnovanim na mikroservisima ka programiranju vodjenim dogadjajima, asinhronim i reaktivnim modelima kao odgovor na sve veće zahteve performansi i skalabilnosti. Reaktivno programiranje je paradigma koja se bazira na asinhronom funkcionalnom programiranju, orjentisano na kontinualne tokove podataka i obradi dogadjaja koje ti tokovi proizvode. Predavanje obuhvata uvod u asinhrono i reaktivno programiranje, pregled pristupa reaktivnom programiranju u raznim programskim jezicima i na kraju prezentacija Project Reactor-a (https://projectreactor.io/) uz praktičan prikaz reaktivnog programiranja.

Ukratko o firmi Endava

Endava je tehnološka kompanija, sa preko 20 godina iskustva u radu sa nekim od vodećih svetskih kompanija u oblasti finansija, osiguranja, telekomunikacija, medija, tehnologija i maloprodaje. Osmišljavanjem i isporukom inovativnih rešenja, Endava svojim klijentima pomaže u procesu digitalne transformacije poslovnih procesa.

Prema poslednjim podacima Endava zapošljava više od 7500 ljudi širom sveta, sa kancelarijama u Severnoj Americi, Zapadnoj Evropi i Australiji, kao i sa razvojnim centrima u Srbiji, Rumuniji, Moldaviji, Bugrskoj, Makedoniji, Sloveniji, Bosni i Hercegovini , Argentini, Urugvaju, Venecueli i Kolumbiji. Njihova filozofija je veoma jednostavna: Fokusirani su na uspeh ljudi - ljudi koji rade u Endavi, ali i onih sa kojima sarađujemo i koji koriste naše sisteme i aplikacije. Prijatna radna atmosfera je neophodna za nesmetani rad, pa se trude da svojim zaposlenima pruže inspirativno radno okruženje. Osim savremeno uređenih kancelarija, postoje i game room-ovi i biblioteka, koji su na raspolaganju svim zaposlenima.

Ukratko o predavaču: Saša Veličković

Saša Veličković je arhitekta i vodja dizajna za grupaciju transport i logistika u Endavi koja saradjuje sa najvećim svetskim kompanijama u ovoj oblasti. Sa oko 15 godina iskustva u IT industriji njegova ekspertiza je u distribuiranim i "Cloud" serverskim rešenjima.

30. 04. 2021.

Webgrader

Na stranici za vežbe (uvodni odeljci) su dodati podaci u vezi sa platformom Webgrader i budućim vežbanjima koja će biti postavljena na platformu. Studenti treba da do ponedeljka, 03.05. naprave nalog prema ostavljenom uputstvu ili ukoliko već imaju od ranije napravljen nalog, testiraju postojeći kako bismo utvrdili da platforma ispravno radi. Za kurs je postavljen i test zadatak. Studentima se predlaže da pošalju rešenje zadatka kad dobiju pristup kako bi se utvrdilo da ispravno funkcioniše forma za slanje rešenja i ocenjivač za C++.

29.04.2021.

Vežbe

Postavljeni su materijali za desetu i jedanaestu nedelju nastave.

29.04.2021.

Seminarski radovi

Podsećaju se studenti da prate rokove i zahteve za izradu i predaju seminarskog rada ovde. Ukoliko imate pitanja/probleme/nedoumice u vezi sa nekim elementima rada, javiti se asistentkinji za konsultacije (uzeti u obzir predstojeće praznike i neradne dane).

26.04.2021.

Vežbe

U četvrtak, 29.04. biće postavljeni materijali za desetu i jedanaestu nedelju nastave. Dodatno, biće postavljene informacije u vezi sa vežbanjima koja će biti dostupna na Drwebgrade platformi i na koji način će biti moguće ostvariti dodatne poene na aktivnost.

26.04.2021.

Vežbe

Postavljeni su materijali za devetu nedelju nastave.

18.04.2021.

Gostujuće predavanje firme Vroom, sreda 14. 04. 2021. u 17h

Gostujuće predavanje firme Vroom biće održano u sredu 14. 04. 2021. u 17h. Predavanje će trajati 45 minuta. Nakon gostujućeg predavanja, imaćemo ispitivanje (i nagradne poene) vezane za samo gostujuće predavanje.

Predavanje će biti održano putem webex-a. Svim studentima kursa je poslat direktan poziv, ali je predavanje otvoreno za sve studente tako da zainteresovani koji nisu dobili poziv mogu koristiti naredni link.

U nastavku je opis predavanja, kompanije Vroom i predavača.

Why Go and Microservices? The Story Behind Vroom’s Back End Infrastructure

Tokom predavanja ćete saznati koji su razlozi za izbor programskog jezika Go i mikroservisne arhitekture, kao osnove za razvoj Back End sistema u Vroom-u. Igor će se dotaći sličnosti i razlika sa programskim jezikom C++, kao i sa monolitnim sistemskim paradigmama. Biće reči o izazovima tokom implementacije, naučenim lekcijama, kao i o tome u kom pravcu će se platforma kretati u budućnosti. Igor će na kratko dotaći i razloge za izbor tehnologija kao sto su Kafka, Kubernetes i GraphQL.

Uvodnu reč daće Ilija Duni, direktor kompanije Vast.

Ukratko o firmi Vroom

Vroom, public kompanija iz Njujorka, je pandan Amazonu u trgovini polovnim automobilima, odnosno platforma za beskontaktnu kupovinu i prodaju vozila preko interneta. Vroom je u Januaru 2021. kupio Vast, jedan od prvih tehnoloških startapa u Srbiji, i nastavlja da širi domaći tim. Više informacija možete da pogledate u okviru narednog linka.

Ukratko o predavaču: Igor Nodelman

Igor Nodelman rođen je u Belorusiji, a neposredno pre raspada Sovjetskog Saveza seli se sa porodicom u Izrael. Diplomu softverskog inženjera stekao je na Univerzitetu Bar-Ilan, a MBA na Univerzitetu u Tel-Avivu. Igor je proveo deset godina u firmi Nice Systems, jednoj od najvećih tehnoloških kompanija u Izraelu.

13. 04. 2021.

Gostujuće predavanje firme Zuehlke

U ponedeljak 12. aprila u 13h, Nikola Jelić će održati predavanje iz dimenzione analize u programskom jeziku C++. Ovo predavanje Nikola je nedavno držao u Berlinu na konferenciji "Meeting Embedded".

Predavanje je otvoreno za sve zainteresovane studente i biće održano putem webex platforme. Predavanju možete da pristupite putem narednog linka ili ukoliko koristite naredne podatke:

  • Meeting number (access code): 183 849 4903
  • Meeting password: KJhmCcB7Q23

Димензионa анализа у језику C++

Пошто скоро сви уградни уређаји саобраћају са спољним светом, поставља се питање како третирати физичке вредности које уређај очитава и обрађује. Један сензор може да враћа милиампере, док други очитава микроампере. Такође, постоје и различити системи мера, као што су метрички и империјални (нпр. литри или галони, метри или јарди, итд.), али постоје и мере које се међусобно преклапају (нпр. литри и кубни метри, Келвини и Целзијуси, итд.). Посао нам додатно отежавају аритметичке операције између различитих физичких јединица (нпр. Волте и Келвине не смемо сабирати, али их смемо множити). На нашу срећу, савремени Це++ нуди прегршт уграђених функционалности које нам олакшавају решавање овог проблема на изненађујуће оптималан начин.

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

На предавању ћемо научити:
  • како можемо да користимо СИ систем мера?
  • која су типична ограничења на пројектима који се баве обрадом мерених вредности?
  • која својства савременог Це++-а су корисна у решавању овог проблема?
  • која је разлика између апсолутних и релативних вредности?
  • како да напишемо своју имплементацију?
  • како да рефакторисани код учинимо кратким и читљивим?

Укратко о фирми Цулке

Компанијa Zhuelke https://www.zuehlke.com/en основана у Швајцарској 1968. године и има око 1.200 запослених широм света, тј. у Аустрији, Бугарској, Немачкој, Хонг Конгу, Србији, Сингапуру, Швајцарској и Великој Британији. Zhuelke опслужује клијенте из широког спектра индустрија.

Укратко о предавачу

Никола Јелић је завршио Математички факултет, смер "Рачунарство и информатика".
Радно искуство:
  • 11 година рада са уградним системима, од тога 4,5 година у Цулкеу
  • Противпожарни системи, индустријски рутери, лифтови, кућна аутоматика, железнички сензори, итд.
Области интересовања:
  • Це, Це++, Хаскел, Пајтон, Раст
  • Линукс и РТОС-и (Real-time Operating System)
  • Базе података
  • Машинско учење

25.03.2021.

Vežbe

Postavljeni su materijali za osmu nedelju nastave.

09.04.2021.

Vežbe

Postavljeni su materijali za sedmu nedelju nastave.

02.04.2021.

Vežbe

Postavljeni su materijali za šestu nedelju nastave.

28.03.2021.

GitHub repozitorijumi

Studentima koji su se prijavili za izradu seminarskih radova poslati su zahtevi za pridruživanje organizaciji na GitHub-u. Molimo da se do petka 26.03. prihvate poslati zahtevi. Ukoliko neko nije dobio zahtev, potrebno je da se za isti putem mejla javi asistentkinji.

Srećan rad!

23.03.2021.

Vežbe

Sređena je greška sa zvukom u video materijalu za petu nedelju nastave.

23.03.2021.

GitHub repozitorijumi

Studentima koji su se prijavili za izradu seminarskih radova u utorak, 23.03. biće poslati zahtevi za pridruzivanje organizaciji na GitHub-u.

22.03.2021.

Vežbe

Postavljeni su materijali za petu nedelju nastave.

19.03.2021.

Prijava prve verzije teme seminarskog rada

Timovi koji su u roku prijavili temu seminarskog ili se javili za konsultacije u vezi sa istom, potvrdu teme/predlog/izmene će dobiti najkasnije do utorka, 16.03.
Svakom timu koji je prekoračio rok, dozvoljava se da zaključno sa utorkom, 16.03. pošalje tražene podatke. Nakon 16.03. timu će biti oduzet po poen za svaki dodatni dan kašnjenja (od maksimalnih 10 koliko nosi seminarski rad).

15.03.2021.

Vežbe

Postavljeni su materijali za četvrtu nedelju nastave.

14.03.2021.

Prijava prve verzije teme seminarskog rada

Spisak prijavljenih timova može se pogledati ovde. Prijavljeni timovi treba da pošalju mejl asistentkinji sa detaljima prve verzije teme seminarskog do 14. marta.
    U mejlu obavezno navesti:
  • ime teme
  • kratak opis šta tema obuhvata
  • planirane jezike i tehnologije koje će biti korišćeni u izradi
  • sve ostalo što smatrate da je važno u kontekstu vašeg projekta
Napomena: Može se poslati i više predloga. Nakon dobijenih predloga, utvrdićemo dodatne detalje u vezi sa temom, da li treba nešto izmeniti ili ako tim ima nedoumice u vezi sa nekim delom izrade, u kom smeru da nastavi sa istom. Ukoliko još uvek niste sigurni u vezi nekih detalja, posaljite mejl asistentkinji koji programski jezik biste najradije koristili i kakva su interesovanja tima kako bismo mogli da osmislimo skupa temu.

09.03.2021.

Vežbe

Postavljeni su materijali za treću nedelju nastave.

05.03.2021.

Tekući rezultati

Tekuće rezultate možete pratiti preko naredne tabele.

03.03.2020.

Vežbe

Postavljeni su materijali za drugu nedelju nastave.

01.03.2021.

Prijava timova za seminarski rad

Više informacija o seminarskim radovima kao i zahteve za izradu istog možete pogledati ovde .

Timovi zainteresovani za izradu seminarskog rada treba da se prijave do 7. marta putem forme: link.

26.02.2021.

Vežbe

Postavljeni su materijali za prvu nedelju nastave. Studentima su poslati podaci za pristup video materijalima na zvanične alas naloge.

24.02.2021.

Vežbe

Svim studentima sa kursa su poslati podaci za pristup uvodnom času na zvanične alas naloge.

23.02.2021.

Početak letnjeg semestra

Svim studentima želimo uspešan rad u letnjem semestru školske 2020/21. godine!

17.02.2021.

Matematički fakultet, Univerzitet u Beogradu
školska 2020/21. godina