Produkcijski razvoj u Pythonu

Prikazani su podaci za akademsku godinu: 2023./2024.

Opis predmeta

Vještina uvodi upoznavanje s korištenjem interpretera u produkciji i velikim projektima. Prvi dio kolegija će pokriti arhitekturne izazove koji podrazumijevaju dugoročno održivu organizaciju koda, i specijalne izazove poput reaktivnog programiranja i podrške za praćenje evolucije modela. Drugi dio kolegija će pokriti arhitekturu interpretera, i pragmatično korištenje prednosti i izazove nametnute njegovim ograničenjima. Treći dio razmatra opcije i tehnike za efikasno proširenje interpretera modulima niže razine. Sve teme su na kraju zaokružene projektnim zadatkom koji će na praktični i zorni način demonstrirati teorijska izlaganja.

Studijski programi

Sveučilišni diplomski
Vještine - dipl.studij_FER3 - 1. semestar (1. semestar)
Vještine - dipl.studij_FER3 - 3. semestar (3. semestar)
Vještine - dipl.studij_FER3 - 1. semestar (1. semestar)
Vještine - dipl.studij_FER3 - 3. semestar (3. semestar)
Vještine - dipl.studij_FER3 - 1. semestar (1. semestar)
Vještine - dipl.studij_FER3 - 3. semestar (3. semestar)

Ishodi učenja

  1. opisati separaciju odgovornosti komponenti
  2. opisati organizaciju velikih projekata
  3. primijeniti asinhrono programiranje
  4. opisati paralelno izvršavanje u interpreter okolini
  5. demonstrirati nadogradnju intepretera sučeljima niže razine
  6. opisati model nasljeđivanja i metaprogramiranje
  7. primijeniti programiranje vođeno događajima i reaktivno programiranje

Oblici nastave

Predavanja

Predavanja i pozvana predavanja.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Seminar/Projekt 50 % 100 % 0 % 0 %

Tjedni plan nastave

  1. Arhitektura: razvoj vođen događajima, stohastične “UI” akcije
  2. Arhitektura: MVC, “undo”/”redo”
  3. Arhitektura: održavanje velikih količina izvornih kodova, pytest, predlaganje tipova, statički provjere
  4. Napredni Python: AST, prevođenje, glavna petlja interpretera, GC
  5. Napredni Python: MRO, metaprogramiranje
  6. Napredni Python: GIL, višedretvenost, višeprocesnost, asinkronost
  7. Proširivanje Pythona - C, ctypes, ref count, C++
  8. Međuispit
  9. Međuispit
  10. Proširivanje Pythona - numpy, scipy, efikasni računalni cjevovodi
  11. Proširivanje Pythona - Rust, PyO3
  12. Praktični Projekt- faza 1
  13. Praktični Projekt- faza 1
  14. Praktični Projekt- faza 1
  15. Završni ispit

Literatura

Luciano Ramalho (2021.), Fluent Python,
Robert Nystrom (2021.), Crafting Interpreters,
Michał Jaworski, Tarek Ziadé (2021.), Expert Python Programming, Packt Publishing Ltd

Za studente

Izvedba

ID 252446
  Zimski semestar
3 ECTS
R0 Engleski jezik
R1 E-učenje
24 Predavanja
0 Seminar
0 Auditorne vježbe
2 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja

Ocjenjivanje

izvrstan
vrlo dobar
dobar
dovoljan