Distributed and Concurrent Algorithms
To provide an understanding of the fundamental concepts and principles of distributed systems and concurrent algorithms.
To develop a strong foundation in the design and analysis of algorithms that run in a distributed or concurrent setting.
To teach students how to identify and solve problems in real-world applications using distributed and concurrent algorithms.
To prepare students for research and development in the field of distributed and concurrent algorithms.
To provide hands-on experience in implementing and evaluating distributed and concurrent algorithms through laboratory projects and programming assignments.
The following are the short list of course references (but not all)
Introduction to Distributed Algorithms by Gerard Tel.
Distributed Systems: Principles and Paradigms by Andrew Tanenbaum and Maarten van Steen.
Distributed Algorithms by Nir Shavit and Nancy Lynch.
Concurrent Systems: An Integrated Approach to Operating Systems, Database and Distributed Systems by Jean Bacon and Morris Sloman.
The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit.
Distributed and Concurrent Algorithms by Mahmmoud Mahdi (Draft v1.7.2)
Note: This is just a expected curriculum, and the specific content and objectives may change. Additionally, some topics may need to be covered in more depth, while others may need to be covered more briefly, based on the needs and skills of students.