PROGRAMSKE PARADIGME

I smer

Kurs programske paradigme je izborni kurs na trećoj godini I smera u okviru kojeg se proučavaju karakteristike osnovnih programskih paradigmi i stilova programiranja:

  • skript programiranje - programski jezik Python
  • programiranje ograničenja - programski jezici Python i Prolog
  • funkcionalno programiranje - teorijske osnove (lambda račun), programski jezici Haskell i Python
  • konkurentno programiranje - programski jezik Scala
  • distribuirano programiranje - programski jezik Scala i biblioteka Scala Spark
  • logičko programiranje - teorijske osnove, programski jezik Prolog
  • komponentno programiranje - programski jezik Scala i biblioteka ScalaFX
U okviru studija postoje i drugi kursevi koji se bave bliskim temama.

Predmetni nastavnik:

Asistenti:

Izborni predmet

  • 6 ESPB bodova
  • 2 časa predavanja
  • 3 časa vežbi

Predispitne obaveze: kolokvijum (45 poena):

  • teorija: 20 poena
  • zadaci: 25 poena

Završni ispit (55 poena):

  • teorija: 25 poena
  • zadaci: 30 poena
Na ispitu se istovremeno 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% na zadacima (22 poena).

Primeri

  • Primer zadataka za kolokvijum (OVDE )
  • Primer zadataka za ispit (OVDE )

Materijali

ČAS 1

ČAS 2

  • Python: datoteke, JSON format, datum, argumenti kom. linije, obilazak direktorijuma, sortiranje
  • Zadaci: [ tekst ] [ rešenja ]

ČAS 3

ČAS 4

ČAS 5

ČAS 6

ČAS 7 i 8

ČAS 9 i 10

  • Scala: distribuirano programiranje
  • Zadaci: [ tekst ]

ČAS 11

  • Skala: komponentno Prolog: uvod
  • Zadaci: [ tekst ]

ČAS 12

  • Prolog: liste, zagonetke
  • Zadaci: [ tekst ]

ČAS 13

  • Prolog: ograničenja
  • Zadaci: [ tekst ]

Literatura

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

Literatura za vežbe

Dodatno

  • Ubuntu virtuelna mašina za studente [ovde]
  • Uputstvo za generisanje JAR fajlova za Scalu [ ovde]

Prijava ispita za rok JUN2

Studenti koji žele da polažu ispit iz programskih paradigmi u JUN2 ispitnom roku, treba da se prijave na sledećem linku.

Prijava traje do 22.06. 23:59.

Ukoliko se prijavite a ne izađete na ispit, molimo da nas obavestite o tome mejlom.

21.06.2018.

Rezultati junskog ispitnog roka

Rezultati junskog ispitnog roka su uneti u Hipatiju.

Ukupni rezultati i rezultati teorije se mogu videti ovde. U Hipatiju je uneta poslednja kolona tabele koja obuhvata rezultate ispita i rezultate seminarskih radova (tj poeni sa seminarskog su uneti u okviru ispita a ne u okviru predispitnih obaveza).

Mole se studenti da ukoliko vide bilo kakvu nepravilnost (u tabeli u odnosu na prethodne rezultate, ili u Hipatiji u odnosu na tabelu) da to što pre prijave (posebno je važno da proverite Hipatiju).

Uvid u teoriju i upis ocena će biti organizovan u petak 22. 06. u 10:30. Zbog iznenadnog nevremena, uvid i upis ocena se odlažu na 11:30.

Posebne pohvale studentima

  • Špadijer Dimitrije
  • Kapunac Stefan
  • Mrdak Jelena
  • Ilić Milan
na ostvarenim izuzetnim rezultatima na kursu. Čestitamo!

21.06.2018.

PP rezulati prakičnog dela - uvid

Uvid u radove za sve studente će biti održan sutra u 12h u kabinetu 716.

20.06.2018.

PP rezulati prakičnog dela

Rezultate možete pogledati ovde. Termin uvida u radove biće nakanadno objavljen.

Rezultati teorije biće objavljeni u četvrtak uveče.

19.06.2018.

PP Jun 1 - raspored sedenja

Raspored sedenja za rok JUN1 možete pronaći ovde.

Ukoliko vas nema na rasporedu, a planirate da izađete na ispit, obavezno se javite asistentu mejlom.

14.06.2018.

Prijava ispita

Mole se studenti koji su prijavili ispit putem forme, a odustali su, da se OBAVEZNO jave asistentu.

12.06.2018.

Prijava ispita

Studenti koji žele da polažu ispit iz programskih paradigmi u junskom ispitnom roku, treba da se prijave na sledećem linku

Prijava traje do 12.06. 23:59

07.06.2018.

Primer ispita

Primer ispita možete pogledati u sekciji obaveze studenata

07.06.2018.

Ispit

Teorijski deo ispita obuhvata celokupno gradivo (tj gradivo od početka semestra).

04.06.2018.

Rezultati seminarskih radova

Rezultati seminarskih radova.

31.05.2018.

Odbrana seminarskih radova

Odbrana seminarskih radova biće organizovana u terminu predavanja u sredu 30. maja (osim za timove sa kojima sam se dogovorila da prezentaciju obave u ponedeljak, zajedno sa R smerom). Studenti (koji su prethodno prezentovali rad asistentu), treba pred svima da
(1) Objasne ideju svog rada i problema koji su rešavali
(2) Da pokrenu aplikaciju i demonstriraju kako ona radi.
Očekuje se da svi članovi tima ispričaju ili pokažu nešto, kao i da prezentacija bude pripremljena (tj da se unapred osmisli šta će se ispričati).

Svaki tim ima na raspolaganju najviše 6 minuta, i svaki minut nakon dozvoljenog vremena se kažnjava smanjivanjem broja poena. Nakon svake odbrane će uslediti diskusija.
Redosled odbrana
  1. Kotlin
  2. Imaginary Friend
  3. Kate Perry
  4. BobanBot
  5. python-web-browser
  6. mlSmart

25.05.2018.

Najbolji master rad za 2017. godinu

Danas su u okviru galerije Srpske akademije nauka i umetnosti dodeljene nagrade za najbolje doktorske i master radove u oblastima matematike i računarstva. Objavu možete naći na strani Matematičkog instituta ovde.

U oblasti računarstva, Branislava Živković dobila je nagradu za svoj master rad pod imenom ,,Paralelizacija statičke verifikacije softvera''. Rad možete pogledati ovde. Rezultati rada prikazani su i na konferenciji: 23rd International Conference on Types for Proofs and Programs, (maj, 2017). Čestitamo!

23. 05. 2018.

Nadoknada časova za grupu 3IA

Čas nadoknade za grupu 3IA koji nije održan 21. maja kod Nemanje Mićovića, biće održan 27. maja u terminu 9-12h u učionici BIM.

21.05.2018.

Gubitak časova za grupu 3IA

Grupa 3IA neće imati vežbe 21. maja u terminu 8-11h. Termin nadoknade će naknadno biti objavljen.

20.05.2018.

Predaja seminarskih radova

Rok za predaju seminarskog: 23. maj. Seminarski se predaje preko forme koju možete pronaći ovde. Kašnjenje sa predajom seminarskog se kažnjava sa najmanje 3 poena (od max 10 koje tim može osvojiti na odbrani).

Termin odbrane: 30. maj u terminu predavanja.

Napomene

Pre zvanične odbrane koja će biti 30. maja, obavezno je da svaki tim prezentuje svoj rad predmetnom asistentu, kada će se proći kroz implementaciju i testirati program. Potrebno je da tim ponese svoj laptop na kome će prezentovati rad. Termin odbrane kod asistenata je 27.05. u 12h u zgradi na Studentskom trgu.

Ukoliko se niko od članova tima ne pojavi u odgovarajućem terminu, smatra se da je ceo tim odustao od seminarskog i ne može izaći na odbranu 30. maja. Ukoliko se neki član tima ne pojavi na prezentaciji, za istog se smatra da je odustao od seminarskog (ostali članovi tima mogu izaći na odbranu 30. maja ako su bili na prezentaciji). Ukoliko se utvrdi da neko od članova tima nije učestvovao u izradnji seminarskog, a nije zvanično odustao od istog, biće najstrože kažnjen, a sa njim i tim kome je pripadao u vidu kaznenih poena.

Spisak prijavljenih timova i sve bitne informacije možete pronaći ovde.

7.05.2018.

Poeni u Hipatiji

Rezultati teorijskog dela kolokvijuma su upisani u Hipatiju. Uvid u radove: sreda 25. april u 8h i u 9h, učionica 821.

Rezultati praktičnog dela kolokvijuma su upisani u Hipatiju. Mole se studenti da provere da li postoje neka neslaganja sa objavljenim rezultatima i da eventualne razlike prijave predmetnom asistentu do 30. 04. 2018.

20.04.2018.

Konkurentno programiranje u programskom jeziku Go

Gostujuće predavanje: sreda 25. 04. 2018. u 8:15, sala 821.

Programski jezik Go je relativno nov jezik opšte namene koji razvija kompanija Google. Razvijen je kao statički tipiziran jezik koji se kompilira, koji omogućava jednostavnost programiranja kao kod interpretiranih, dinamički tipizarnih programskih jezika.

Na predavanju ce biti izloženi osnovni koncepti programiranja u programskom jeziku Go. Detaljnije će biti razmotrene njegove mogućnosti za konkuretno programiranje i karakteristike koje ga izdvajaju u odnosu na druge programske jezike.

Predavač: Miloš Mitrović je bivši student Matematičkog fakulteta. Osnovne i master studije je završio na smeru Informatka. Početkom ove godine je odbranio master rad na temu "Konkurentnost u programskom jeziku Go". Trenutno je zaposlen u kompaniji Callidus Cloud kao C#/.NET programer.

17.04.2018.

Rezultati praktičnog dela kolokvijuma

Rezultate praktičnog dela kolokvijuma možete pogledati ovde.

Uvid u radove: četvrtak, 19.04.2018. u 11h u kabinetu 718.

17.04.2018.

Raspored za kolokvijum

Raspored za kolokvijum po grupama i učionicama možete pogledati na:

6. 04. 2018.

Teorijski deo kolokvijuma

Teorijski deo kolokvijuma biće u obliku testa. Radiće se 25 minuta. Oblasti na teorijskom delu obuhvataće naredne teme: Odnos programskih jezika i programskih paradigmi. Skript programiranje. Programiranje ograničenja. Funkcionalno programiranje. Konkurentno programiranje (uvodni deo).

31. 03. 2018.

Vežbe sledeće nedelje

U ponedeljak, 19.03. neće biti održane vežbe za grupu 3IA. Termin nadoknade je petak, 23.03. od 11h do 14h u učionici JAG1.
U četvrtak, 22.03. grupa 3IB će imati vežbe zajedno sa grupom 3IC u učionici 718.

17. 03. 2018.

Agilan pristup studentskim projektima

У термину одржавања предавања на курсу Методологија стручног и научног рада, 26. марта у 14h биће одржано гостујуће предавање (у трајању од око 45 минута) у сарадњи са фирмом PuzzleSoftware.
Позивамо све заинтересоване студенте да присуствују овом предавању. Тема предавања: Agilan pristup studentskim projektima
  • Kako da formirate tim kolega za zajednički projekat?
  • Kako da radite planiranje, organizovanje procesa i tima, i implementaciju?

Na početku svakog projekta postavlja se jedno važno pitanje – koji sastav tima bi bio idealan za realizaciju projekta? Ko učestvuje na projektu – jedna je od najvažnijih odluka. Od ljudi koje izaberete često može da zavisi i sudbina projekta. Da li želite ljude koji su inovativni, energični? Da li ćete raditi odvojeno sa jasnim smernicama za integracijuna kraju, ili ćete imati redovne sastanke i sinhronizaciju? Odabir ljudi za tim zavisi od pojedinačnog slučaja.

Na fakultetu se obično bavimo onim što nazivamo domenskim zanjem - učimo o oblasti u kojoj ćemo raditi, kao i tehnike za razvoj konkretnog projekta iz konkretne oblasti. U poslednje vreme, studenti takođe uče i o takozvanim “soft” tehnikama i o nekim metodologijama rada.

Tokom ove radionice, bavićemo se planiranjem jednog studentskog projekta. To može biti ispit, praktičan zadatak ili realizacija sjajne ideje pojedinca ili grupe (tima). Razgraničićemo šta je to: Tradicionalan “waterfall” način razvoja, tj. rada na projektu, Iterativni, agilni pristup projektu

Zatim, objasnićemo i kako je moguće podeliti ispit po fazama učenja; kako meriti napredak; šta je to “Design Thinking” i zašto je pogodan za projekte gde eksperimentišemo, gde nam unapred nije poznato rešenje.

Predavač: Đorđe Babić. Đorđe Babić se poslednjih pet godina bavi Project Management-om i izgradnjom timova. Ima veliko iskustvo u software development-u i trenutno radi kao Senior Scrum Master za Innovative Gaming Software (IGSoft) u beogradskom studiju za razvoj betting & social igrica, sa akcentom na mobile. Đorđe je sertifikovani Scrum Master, od strane Scrum Alliance (krovne organizacije za Scrum u svetu). Neke od kompanija u kojima je radio su PSTech, Endava, Cisco, Humanity, Puzzle Software, Telenor i Red Lark.

Inspriše ga formiranje timova, pomaganje ljudi koji imaju tehničko znanje da se prilagode na radnu saradnju i rad u dinamičkom okruženju. Takođe, voli da radi na sinhornizaciji između timova u skaliranim sredinama. U slobodno vreme pomaže ljudima koji su na početku karijere u planiranju profesionalnog razvoja.

15.03.2017.

Prijave seminarskih radova

Na sledećem linku se nalazi formular za prijavu timova koji žele da rade seminarski: prijava

Rok za prijavu je 28.3.2018. Teme se ne mogu prijavljivati nakon naznačenog roka.

Više informacija o seminarskim radovima možete naći ovde .

13.03.2018.

Vežbe u prvoj nedelji

U prvoj nedelji nastave će biti održane vežbe.

18. 02. 2018.

Početak semestra

Svim studentima želimo uspešan početak letnjeg semestra školske 2017/18. godine!

15. 02. 2018.

Matematički fakultet, Univerzitet u Beogradu
školska 2017/18. godina