Topic outline

  • General description

    The goal of this course is to introduce students to one of the most important principles of modern computing: distribution. This refers to the geographical separation of data and processing, driven by two main factors: 1- The actual need to align computing models with human requirements, making them more convenient to use without requiring users to move between locations to interact with systems. 2- The significant technological advancements over the past two decades, which have enabled the production of equipment and networks that efficiently achieve distribution. Additionally, upon completing this course, students are expected to be able to work with concepts related to distributed systems, particularly in the area of synchronization. Although the course does not include extensive practical components, it provides a deeper understanding of many programming mechanisms that students are currently using.