Programske paradigme i jezici
Laboratorijske vježbe
Opis predmeta
Studijski programi
Sveučilišni preddiplomski
Opće kompetencije
Studenti će usvojiti koncepte zajedničke za više programskih jezika i paradigmi, čime će se pojednostavniti buduće učenje novih jezika. Utvrdit će znanje objektne paradigme i studente uvesti u problematiku funkcijskog i deklarativnog programiranja. Steći će se i praktična znanja programiranja u različitim programskim jezicima.
Ishodi učenja
- razlikovati između različitih programskih paradigmi
- odabrati prikladnu programsku paradigmu za rješavanje specifičnog problema iz programskog inženjerstva
- baratati s barem po jednim jezikom iz imperativne, objektno-orijentirane i deklarativne paradigme
- klasificirati programske jezike ovisno o paradigmi kojoj pripadaju
- prepoznati istovrsne koncepte u različitim programskim jezicima i paradigmama
- koristiti adekvatne načine imenovanja i organizacije programskog koda
Oblici nastave
Izvođenje predavanja prema temama kolegija kroz 13 tjedana.
Provjere znanjaZnanje će se provjeravati međuispitom u sredini kolegija i završnim ispitom na kraju kolegija. Tijekom semestra bit će zadavane domaće zadaće.
Laboratorijske vježbeNa laboratorijskim vježbama studenti će raditi na vlastitim programskim rješenjima te demonstrirati njihovu ispravnost.
Pokusi na predavanjimaNa predavanjima će se studentima na interaktivan način prikazati rad u programskim jezicima različitih paradigmi.
Demonstracijske vježbeDemonstracijskim vježbama će se demonstrirati uporaba tehnologija za savladavanje problema iz laboratorijskih vježbi i iz inženjerske prakse.
KonzultacijeStudenti će na konzultacijama moći nadopuniti znanje po svim temama kolegija.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 0 % | 50 % | 0 % | 50 % | ||
Domaće zadaće | 0 % | 5 % | 0 % | 5 % | ||
Međuispit: Pismeni | 0 % | 15 % | 0 % | |||
Završni ispit: Pismeni | 0 % | 15 % | ||||
Završni ispit: Usmeni | 15 % | |||||
Ispit: Pismeni | 0 % | 30 % | ||||
Ispit: Usmeni | 15 % |
Napomena / komentar
Na usmenom ispitu studenti moraju dobiti minimalno 7,5 bodova za prolaz predmeta.
Tjedni plan nastave
- Apstraktni strojevi. Interpreter. Prevodilac. Izražajnost programskih jezika.
- Imena i okoline. Blokovi. Statički i dinamički doseg. Statičko i dinamičko upravljanje memorijom. Izvedba pravila dosega.
- Kontrolne strukture. Strukturirano programiranje. Rekurzija repa.
- Potprogrami. Funkcije višeg reda. Iznimke.
- Tipovi podataka. Statičko i dinamičko provjeravanje tipova. Složeni tipovi. Ekvivalencija tipova. Višeobličje. Automatsko određivanje tipova. Viseće reference. Sakupljači smeća. Apstraktni tipovi podataka. Skrivanje informacija. Moduli.
- Pokazno predavanje: kako pisati programski kôd.
- Vježba za ispit.
- Ispiti.
- Ispiti.
- Objektno orijentirana paradigma. Dinamički pronalazak metoda. Jednostruko i višestruko nasljeđivanje. Dinamičko prosljeđivanje metodama. Polimorfizam. Generici. Kovarijantno i kontravarijantno nadjačavanje.
- Pokazno predavanje: razvoj aplikacije u objektno-orijentiranom programskom jeziku.
- Funkcijska paradigma. Izračunavanje bez stanja. Strategije evaluacije. Podudaranje uzoraka. Osnove lambda računa.
- Pokazno predavanje: programiranje u funkcijskom programskom jeziku.
- Logička paradigma. Izračunavanje dedukcijom. Teorija unifikacije. Logičko programiranje s ograničenjima.
- Paralelizam. Povijesni pregled programskih jezika i paradigmi.