Produkcijski razvoj u Pythonu

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

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

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