The first lecture will take place Monday, 20th of April 2020 at 2pm ct. Please note that all exercises start in week 2 as well!
The students will learn to understand the basic concepts of non-sequential and distributed programming with shared memory and message exchange. They can then structure distributed programs with processes/threads/active objects in a suitable way and avoid undesired non-deterministic effects and jamming through suitable synchronization procedures. You will know and understand the security risks that can arise in non-sequential programs and can use methods to avoid them. The students will be shown how they can formally specify properties of processes and threads and verify them exemplarily.
Students will be able to distinguish relevant interaction paradigms such as client/server and peer-to-peer, to classify their own applications according to these paradigms and to construct distributed systems on the basis of interprocess communication and remote calls. You will learn design, structure and implement web applications, customer/service provider applications, peer-to-peer applications and develop distributed systems using suitable middleware.