Programiranje na visokoj razini apstrakcije

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.

Ishodi učenja

  1. objasniti prednosti implicitnog polimorfizma u dinamičkim jezicima
  2. primijeniti metode kao punopravne objekte
  3. objasniti prednosti lijenog izračunavanja
  4. objasniti elemente iteratorskog protokola
  5. primijeniti umatanje funkcija za ostvarivanje lijenog izračunavanja
  6. ocijeniti prednosti generatora u odnosu na klasične programske tehnike

Oblici nastave

Predavanja

Laboratorij

Tjedni plan nastave

  1. Definicija klasa: polja. metode i konstruktori, Podklase. nasljeđivanje i prekrivanje metoda, Sustavi modula
  2. Dinamičko upućivanje: definicija poziva metode, Podtipovi
  3. Klase. metode i funkcije kao prvorazredni objekti
  4. Korištenje klasa prikupljanja. iteratora i ostlih komponenti iz zajedničke biblioteke
  5. Ugnježdene i unutarnje klase i funkcije kao prvorazredni objekti
  6. Odloženo izračunavanje i beskonačni tokovi
  7. (en) Higher-order functions (taking and returning functions)
  8. Međuispit
  9. Ugnježdene i unutarnje klase i funkcije kao prvorazredni objekti
  10. (en) Functional idioms (map, reduce/fold, filter)
  11. Odloženo izračunavanje i beskonačni tokovi
  12. Obrambeno programiranje
  13. Klase. metode i funkcije kao prvorazredni objekti
  14. Završni ispit

Studijski programi

Sveučilišni diplomski
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)
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)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)

Literatura

(.), Kalafatić, Zoran; Pošćić, Antonio; Šegvić, Siniša; Šribar, Julijan. Python za znatiželjne. Zagreb : Element, 2016,

Za studente

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