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
Audiotehnologije i elektroakustika (profil)
Izborni predmeti (1. semestar)
Automatika i robotika (profil)
Izborni predmeti (1. semestar)
Elektroenergetika (profil)
Izborni predmeti (1. semestar)
Elektroničko i računalno inženjerstvo (profil)
Izborni predmeti (1. semestar)
Elektronika (profil)
Izborni predmeti (1. semestar)
Elektrostrojarstvo i automatizacija (profil)
Izborni predmeti (1. semestar)
Informacijsko i komunikacijsko inženjerstvo (profil)
Izborni predmeti (1. semestar)
Komunikacijske i svemirske tehnologije (profil)
Izborni predmeti (1. semestar)
Programsko inženjerstvo i informacijski sustavi (profil)
Izborni predmeti (1. semestar)
Računalno inženjerstvo (profil)
Izborni predmeti (1. semestar)
Računalno modeliranje u inženjerstvu (profil)
Izborni predmeti (1. semestar)
Računarska znanost (profil)
Izborni predmeti (1. semestar)
Znanost o mrežama (profil)
Izborni predmeti (1. semestar)
Znanost o podacima (profil)
Izborni predmeti (1. 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
R3 Engleski jezik
R1 E-učenje
30 Predavanja
8 Laboratorijske vježbe