| Distributed Computing (5 ECTS) |
Wprowadzenie do systemów rozproszonych. Modele komunikacji (message passing, RPC, gRPC) i protokoły. Czas, porządkowanie i synchronizacja (zegary Lamporta, wektorowe). Algorytmy rozproszone (wybór lidera). Spójność danych i replikacja (kompromis CAP). Odporność na uszkodzenia i tolerancja błędów. Rozproszone przechowywanie danych (NoSQL, DHT). Platformy obliczeń rozproszonych (klastry, chmura, Docker, Kubernetes). Paradygmaty programowania rozproszonego (MapReduce, mikrousługi). |
Umie zidentyfikować problem wymagający użycia systemu rozproszonego. Potrafi zaprojektować system rozproszony dla potrzeb obliczeń. Potrafi programować w języku wyższego poziomu na potrzeby systemów rozproszonych. |
| Sustainable Software Engineering at Scale (5 ECTS) |
Wybrane metody inżynierii oprogramowania. Zrównoważona inżynieria oprogramowania. Skalowanie procesu IO na wiele zespołów. Nowoczesne metryki stosowane w IO. Automatyzacja w IO. Najnowsze wyzwania i trendy. |
Potrafi pozyskać i wyselekcjonować informacje na temat najnowszych trendów w IO. Potrafi zaprojektować i optymalizować proces IO obejmujący wiele zespołów. Potrafi automatyzować proces integracji oraz wdrażania oprogramowania. Poprawnie dobiera metody IO do uwarunkowań biznesowych i technicznych. |