Parallel and distributed systems

Type: Normative

Department: applied mathematics

Curriculum

SemesterCreditsReporting
82Setoff

Lectures

SemesterAmount of hoursLecturerGroup(s)
828Ihor MakarPMp-42

Laboratory works

SemesterAmount of hoursGroupTeacher(s)
828PMp-42Ihor Makar, Associate Professor V. M. Biletskyj

Course description

The approaches to architecture the cloud-based applications for low latency, high availability, fault tolerance and performance are considered.

The main focus is on designing and building massively parallel applications and distributed algorithms at scale.

Students will build the distributed system ‘from scratch,’ starting from designing the parallel and distributed algorithm, ending at the stage of deployment to cloud.

Along the way, you’ll learn the following modern technologies:
– Apache Zookeeper;
– Apache Kafka;
– MongoDB;
– HAProxy;
– JSON;
– Java HTTP Server and Client;
– Protocol Buffers;
– Azure Cloud etc.

Recommended Literature

1. Martin Klepmann Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, O’Reilly, 2017. –611p.

2. Martin Fowler Patterns of Enterprise Application Architecture. Addison Wesley, 2002, ISBN: 978-0-321-12742-6
3. Unmesh Joshi Patterns of Distributed Systems, Addison-Wesley Professional, 2023. – 416p.
4. Jake Brutlag Speed Matters for Google Web Search, googlesearch.blog-spot.co.uk, June 22, 2009
5. Andre Medeiros ZooKeeper’s atomic broadcast protocol: Theory and practice, 2012
http://www.tcs.hut.fi/Studies/T-79.5001/reports/2012-deSouzaMedeiros.pdf
6. Michael Pogrebinsky Distributed Systems & Cloud Computing with Java, Udemy Course‚ https://www.udemy.com/course/distributed-systems-cloud-computing-with-java/
7. Martin Klepmann Lecture Series at University of Cambridge:

8. Michael Pogrebinsky The Complete Cloud Computing Software Architecture Patterns‚ https://everymatrix.udemy.com/course/the-complete-cloud-computing-software-architecture-patterns/
9. MIT Course materials 6.824 Distributed Systems (Spring 2020)‚ https://www.classcentral.com/course/youtube-mit-6-824-distributed-systems-spring-2020-53357/classroom
10. Vivek Sarkar Distributed Programming in Java, Coursers Course, https://www.coursera.org/learn/distributed-programming-in-java?specialization=pcdp
11. Lukasz Antoniak Building Modern Distributed Systems with Java, Udemy Course‚
https://www.udemy.com/course/building-modern-distributed-systems-with-java/

Силабус:

Завантажити силабус