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
  • Programiranje ograničenja kroz Python constraint
  • Komponentno programiranje kroz JavaFX
  • Konkurentno programiranje i odgovarajući mehanizmi konkurentnog programiranja kroz Javu
  • 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

Predispitne obaveze (45 poena):

  • prvi test: 10 poena (teorija)
  • drugi test: 10 poena (teorija)
  • kolokvijum: 25 poena (zadaci)

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) i na završnom ispitu minimum 30% na praktičnom delu, od čega minimum 15% na C++u i minimum 15% na Javi.

Primeri

  • Primer zadataka za kolokvijum (OVDE)
  • Primer praktičnog dela završnog ispita (OVDE)

Programski jezici - uvod

Skript programiranje, programiranje ograničenja

Konkurentno programiranje

Parametarski polimorfizam

  • Parametarski polimorfizam. Generičko programiranje kroz C++.
    Slajdovi. Tekst.

Programski jezik Lua

  • Gostujuće predavanje: Programski jezik Lua.
    Slajdovi.

ČAS 1

ČAS 2

ČAS 3

ČAS 4

ČAS 5

ČAS 6

ČAS 7

ČAS 8

ČAS 9

ČAS 10

  • Konkurentno programiranje. Paralelizacija zadataka. Grafički korisnički interfejs. Zadaci. Rešenja.

ČAS 11

ČAS 12

ČAS 13

Vežbanje za ispit

Literatura za predavanja

  • Materijali i slajdovi sa predavanja i vežbi
  • 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 2.7
  • biblioteka python-constraint
  • Java JDK 1.8
  • Eclipse
  • G++

Primeri, školska 2016/17.

Septembar 1 - rezultati

Rezultate ispita možete pogledati ovde. Studenti koji nisu ostvarili prag na osnovu nekog od uslova, obeleženi su crvenom bojom.
Rezultati su uneti i u Hipatiju. Ukoliko primetite neku grešku, obavezno je javite što pre.
Uvid u teoriju i upis ocena: ponedeljak, 17.09. u 10:30h (kabinet 716).

14.9.2018.

Jun 1 - rezultati

Rezultate ispita možete pogledati ovde. Studenti koji nisu ostvarili prag na osnovu nekog od uslova, obeleženi su crvenom bojom. Rezultati su uneti i u Hipatiju. Ukoliko primetite neku grešku, obavezno je javite.

Uvid za praktični: javiti se mejlom asistentkinji zaključno sa nedeljom, 1.7.
Uvid za teoriju i upis ocena: ponedeljak, 2.7. u 9:40h (kabinet 716). Proveriti još jednom termin pre dolaska zbog mogućeg pomeranja termina za pola sata ili sat vremena.

28.6.2018.

Termin za upis ocena

Dodatni termin za upis ocena: ponedeljak 26. februar u 11h (kabinet 716 ili zbornica).

Ocene se mogu upisati i radovi iz teorije se mogu pogledati u ponedeljak 19. februara u 11h u kabinetu 716. Da studenti ne bi gubili nastavu, mogu da na pauzi između 11h i 11:15h ostave profesorki svoj indeks i da dođu po indeks na narednoj pauzi.

16.2.2018.

Januar 2 - rezultati

Rezultate ispita možete pogledati ovde. Rezultati su uneti i u Hipatiju. Ukoliko primetite neku grešku, obavezno je javite.

Uvid za teoriju: javiti se mejlom.
Uvid za praktični: javiti se mejlom.
Napomena: Termin za upis ocena će biti objavljen za vikend.

15.2.2018.

Januar 2 - Izmena termina

Termin i mesto održavanja: nedelja, 11.02.2018. na Trgu, sa početkom u 13:30, umesto u 9:00 kako stoji u rasporedu.

06.02.2018.

Januar 1 - rezultati

Rezultate ispita možete pogledati ovde. Rezultati su uneti i u Hipatiju. Ukoliko primetite neku grešku, obavezno je javite.

Uvid za teoriju: javiti se mejlom.
Uvid za praktični: nedelja, 4.2. u 16:30 (716) ili se javiti mejlom.

1.2.2018.

Praktični deo ispita - Januar 1

Termin i mesto održavanja: ponedeljak, 29.01.2018. u 13h, Trg.

26.01.2018.

Ispit - Januar 1

Termin i mesto održavanja: četvrtak, 25.01.2018. u 9h, Trg.
Prvo se radi teorijski deo ispita, a nakon toga praktični deo na računarima.
    Oblasti po zadacima
  1. Java - konkurentno (paralelizacija podataka) + komponentno (jednostavan GUI u Scene Builder-u)
  2. Java - konkurentno (paralelizacija zadataka) + GUI (korišćenje klasa JPanel, JFrame i metoda za crtanje paint)
  3. C++ - šablonske klase
  4. C++ - šablonske funkcije, funkcije višeg reda, funkcionali, STL

19.01.2018.

Rezultati drugog testa

Tabelu sa tekućim rezultatima predispitnih obaveza možete pogledati ovde. Poeni su upisani u Hipatiju, proverite. Poeni sa Vikipedije i domaćih zadataka su upisani u Hipatiju u okviru dela predispitnih obaveza, tamo gde je to bilo moguće. Ukoliko primetite neku grešku, obavezno je javite što pre. Studenti zainteresovani za uvid u radove potrebno je da se jave mejlom radi dogovora termina.

14.01.2018.

Tabela sa rezultatima

Tabelu sa tekućim rezultatima predispitnih obaveza možete pogledati ovde. Poeni sa Vikipedije i domaćih zadataka biće upisani u Hipatiju u okviru dela predispitnih obaveza, tamo gde je moguće ili će biti dodati u ispitne poene. Ukoliko primetite neku grešku, obavezno je javite.

29.12.2017.

Drugi test

Drugi test biće održan 10. 01. 2018. u terminu predavanja u salama jag3 i jag4. Studenti su podeljeni u dve grupe prema ovom spisku. Za prvu grupu, test će početi u 15:15. Za drugu grupu, test će početi u 15:45.

14.12.2017.

Nagradni zadaci - paralelizacija podataka

Kolege koje su osvojile dodatne poene:
  • Uroš Vučićević (zadatak 4.10)
  • Andrijana Čakarević (zadatak 4.11)
  • Darko Mićanović (zadatak 4.12)

13.12.2017.

Vežbe

Ove nedelje (14.12. i 15.12.) neće biti časova vežbi.

Termin nadoknade: 22.12. u 12h (704).

12.12.2017.

Predavanje 13. 12. 2017.

Gostujuće predavanje, firma RT-RK, početak u 16h
Skript programiranje: programski jezik Lua
Predavač: Stefan Pejić
Osnove programskog jezika Lua: osobine i primene.
Prevodilac LuaJIT: osobine JIT interpretatora i opis projekta prilagođavanja MIPS arhitekturi.

10.12.2017.

Odbrane seminarskih radova

Odbrane seminarskih radova biće organizovane u terminu predavanja 27. 12. 2017. godine. Odbrani će prisustvovati i predstavnici iz Vikimedije Srbije. Od studenata se očekuje da prikažu stranicu koju su napravili i da ispričaju najinteresantnije pojedinosti koje su naučili na temu jezika o kojem su pisali članak. Prezentacija teme treba da traje oko 5 minuta i potrebno je da izlažu svi članovi grupe. Redosled odbrana:
  1. Cobol - Vasja Brkić i Irena Maričić
  2. Pascal - Natalija Pavasović, David Aksović i Darko Mićanović
  3. Simula - Uros Vučićević, Marija Stanković, Slobodan Popović i Filip Vidojević
  4. Smalltalk - Marko Bekonja, Filip Božuta i Milica Galjak
  5. C++ - Anđela Perić, Bojana Bujaković i Kristina Miletić
  6. C# - Andjela Milanović, Maša Kilibarda i Tamara Despotović
  7. Java - Jovana Ribać, Teodora Macanović, Jovana Pavlović i Djordje Ćurković
  8. JScript - Milica Gajić, Milica Šehovac, Aleksandra Divljaković i Luka Kumburović
  9. Lua - Aleksandar Ivanović, Jelena Marković i Miloš Ivanović
  10. Rubi - Maja Nešović, Kristina Todorović i David Šćepanović

10.12.2017.

Nagradni zadaci

Nagradni zadaci iz oblasti paralelizacije podataka su pod rednim brojevima: 4.10, 4.11 i 4.12 (zbirka). Tačno rešenje zadatka donosi jedan dodatni poen.

Uputstvo: Rešenje se šalje putem mail-a sa studentskog alas naloga u zip formatu, pritom, ne slati ceo Java projekat, već samo datoteke koje sadrže Java kod rešenja.

Napomene: Jedan student može poslati rešenje samo jednog zadatka od ponuđenih. Prvi student koji pošalje tačno rešenje zadatka (važi za svaki zadatak pojedinačno) će dobiti dodatan poen. Rok za slanje rešenja zadataka je subota, 16.12. 12h.

10.12.2017.

Nagradni zadaci - komponentno

Kolege koje su osvojile dodatne poene:
  • Uroš Vučićević (zadatak 3.8)
  • Filip Vidojević (zadatak 3.9)
  • Slobodan Popović (zadatak 3.9)

Rok za slanje rešenja iz oblasti komponentnog programiranja je prošao.

10.12.2017.

Nagradni zadaci

Nagradni zadaci iz oblasti komponentnog programiranja su u pod rednim brojevima: 3.7, 3.8 i 3.9 (zbirka). Tačno rešenje zadatka donosi jedan dodatni poen.

Uputstvo: Rešenje se šalje putem mail-a sa studentskog alas naloga u zip formatu, pritom, ne slati ceo Java projekat, već samo datoteke koje sadrže Java i FXML kod rešenja.

Napomene: Jedan student može poslati rešenje samo jednog zadatka od ponuđenih. Prvih dvoje koji pošalju tačno rešenje zadatka (važi za svaki zadatak pojedinačno) će dobiti dodatne poene.

2.12.2017.

Kolokvijum - rezultati

Rezultate sa kolokvijuma možete pogledati ovde. Rezultati su uneti i u Hipatiju. Ukoliko primetite neku grešku, obavezno je javite.

Uvid u radove: četvrtak i petak u pauzi između vežbi ili se javiti mejlom.

30.11.2017.

Prvi test - rezultati

Poeni sa prvog testa su uneti u Hipatiju.

Uvid u radove: sreda, 29.11. u pauzi između predavanja.

26.11.2017.

Vikipedija - seminarski radovi

Po završetku seminarskog rada, javiti se kolegi Stakiću da pogleda članak i ukaže na izmene ukoliko su potrebne.

Napomena: rok za izradu seminarskog rada je 1. decembar.

26.11.2017.

Kolokvijum

Kolokvijum će biti održan 21. 11. od 9h do 11h na Trgu (sačekati na 4. spratu).

17.11.2017.

МАТФ 2017++

МАТФ 2017++ је такмичење које Математички факултет организује већ четврту годину. Намењено је ученицима средњих школа и студентима Математичког факултета, а могу се такмичити у програмирању (тимски) и математици (индивидуално).

Осим наведеног, студенти Математичког факултета могу представити своје радове на смотри радова.

Пријаве за такмичење из програмирања су отворене и трајаће до недеље 26.11.2017.

Пријаве за такмичење из математике су отворене и трајаће до недеље 03.12.2017.

Пријаве за смотру студентских радова су отворене и трајаће до недеље 03.12.2017.

Пријава и детаљи о такмичењу се могу пронаћи овде.

13.11.2017.

Prvi test

Prvi test biće održan 15. 11. u terminu predavanja u salama jag3 i jag4. Studenti su podeljeni u dve grupe prema ovom spisku. Spisak je napravljen na osnovu podataka u Hipatiji. Ukoliko neko nije na spisku, potrebno je što pre da se javi. Ukoliko bude više studenata koji nisu na spisku, biće organizovane tri grupe za polaganje i studenti će biti preraspoređeni (proverite još jednom termin i grupu dan pred test). Za prvu grupu, test će početi u 15:15. Za drugu grupu, test će početi u 15:45.

13.11.2017.

Promena učionice

Grupa 2 će ubuduće imati vežbe u DLAB-u umesto u 718. Termin ostaje isti, četvrtak od 9h do 11h.

8.11.2017.

Predavanje 13. 12. 2017.

Gostujuće predavanje, firma RTRK, početak u 16h
Skript programiranje: programski jezik Lua
Predavač: Stefan Pejić
Osnove programskog jezika Lua: osobine i primene.
Prevodilac LuaJIT: osobine JIT interpretatora i opis projekta prilagođavanja MIPS arhitekturi.

2.11.2017.

Prvi test

Prvi test biće održan 15. 11. u terminu predavanja. Studenti će biti podeljeni u dve ili tri grupe. Raspored grupa biće objavljen dan pred test.

2.11.2017.

Predavanje 1. 11. 2017.

Predavanje u sredu 1. 11. 2017. godine neće biti održano. Prva nadoknada, u trajanju od 45 minuta, biće održana u terminu 8. 11. 2017. odmah nakon časova predavanja. Termin druge nadoknade biće naknadno dogovoren.

30.10.2017.

Vikipedija - seminarski radovi

Napomena: rok za izradu seminarskog rada je 1. decembar.

25.10.2017.

Vikipedija

Gostujuće predavanje kolega iz Vikipedije biće održano u sredu 25. oktobra u 16h (u okviru drugog časa predavanja). Na ovom predavanju biće objašnjeno kako se koristi viki softver za pisanje viki članaka. Pozivaju se svi studenti da prisustvuju ovom predavanju, a posebno studenti koji su zainteresovani za izradu seminarskog rada u okviru kursa.

14.10.2017.

Promena termina vežbi za grupu 1

Novi termin vežbi za grupu 1 je petak, 10h-12h, DLAB.

11.10.2017.

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