Programiranje na visokoj razini apstrakcije
Prikazani su podaci za akademsku godinu: 2024./2025.
Opis predmeta
Metode kao objekti prvog reda. Lijeno izračunavanje.
Pobrojivi objekti i iteratori.
Obrada podatkovnog toka kompozicijom iteratora.
Zadavanje iteratora i kolekcija u sažetom skupovnom zapisu.
Rukovanje pobrojivim objektima.
Čiste funkcije i popratni učinci funkcija.
Pakiranje i raspakiravanje argumenata.
Umatanje funkcija. Bezimene funkcije. Kontekstne funkcije.
Dekoratori i memoizacija. Generatorske funkcije.
Razredi kao objekti prvog reda.
Deskriptori i svojstva. Metarazredi.
Preduvjeti
osnove programiranja u Pythonu, osnove objektno orijentiranog programiranja
Studijski programi
Sveučilišni diplomski
Izborni predmeti (1. semestar) (3. semestar)[FER3-HR] Automatika i robotika - profil
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Elektroenergetika - profil
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Elektronika - profil
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Računalno inženjerstvo - profil
Izborni predmeti
(1. semestar)
(3. semestar)
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Računarska znanost - profil
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Znanost o mrežama - profil
Izborni predmeti
(1. semestar)
(3. semestar)
[FER3-HR] Znanost o podacima - profil
Izborni predmeti
(1. semestar)
(3. semestar)
Ishodi učenja
- objasniti prednosti implicitnog polimorfizma u dinamičkim jezicima
- primijeniti metode kao punopravne objekte
- objasniti prednosti lijenog izračunavanja
- objasniti elemente iteratorskog protokola
- primijeniti umatanje funkcija za ostvarivanje lijenog izračunavanja
- ocijeniti prednosti generatora u odnosu na klasične programske tehnike
Oblici nastave
Predavanja
Predavanja će se održavati u trajanju od 2 sata tjedno.
Samostalni zadaciSamostalni zadatci rješavat će se kao priprema i u okviru laboratorijskih vježbi.
LaboratorijLaboratorijske vježbe će se održavati u četiri ciklus a po 2 školska sata.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 50 % | 20 % | 50 % | 20 % | ||
Međuispit: Pismeni | 0 % | 35 % | 0 % | |||
Završni ispit: Pismeni | 30 % | 45 % | ||||
Ispit: Pismeni | 50 % | 80 % |
Tjedni plan nastave
- Definicija klasa: polja. metode i konstruktori, Podklase. nasljeđivanje i prekrivanje metoda, Sustavi modula
- Dinamičko upućivanje: definicija poziva metode, Podtipovi
- Razredi, metode i funkcije kao prvorazredni objekti
- Korištenje klasa prikupljanja. iteratora i ostlih komponenti iz zajedničke biblioteke
- Ugnježdene i unutarnje klase i funkcije kao prvorazredni objekti
- Popratni efekti i izračunavanje bez stanja. Odloženo izračunavanje i beskonačni tokovi
- Funkcije višeg reda (preuzimanje i vraćanje funkcija)
- Međuispit
- Ugnježdene i unutarnje klase i funkcije kao prvorazredni objekti
- Idiomi funkcijskog programiranja (map, reduce/fold, filter)
- Odloženo izračunavanje i beskonačni tokovi
- Odloženo izračunavanje, beskonačne strukture, strogost. Upravljačke apstrakcije (obrada iznimaka, continuations, monads)
- Obrambeno programiranje (e.g. sigurno programiranje, obrada iznimaka)
- Metaprogramiranje (makro programiranje, generativno programiranje, razvoj temeljen na modelima)
- Završni ispit
Literatura
Izvedba
ID 222725
Zimski semestar
5 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Seminar
0 Auditorne vježbe
8 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja
Ocjenjivanje
88 izvrstan
75 vrlo dobar
62 dobar
50 dovoljan