The course gives insight into important theoretical principles of distributed computing, including: system models for interaction and failure, interprocess communication, synchronization, time and global states, protocols for coordination and consensus (Paxos), distributed transactions, fault tolerance, consistency, and replication. The course also covers concrete systems and architectures for distributed systems: map-reduce, distributed hash tables, peer-to-peer systems, gossip-based systems, and distributed file and storage systems.
The course also includes a large programming project based on concepts and algorithms studied in class, in which the student must show how these can be implemented in practice.
The programming project in this course shall be implemented using the Go programming language.
Be familiar with important principles for design and implementation of distributed systems.
Be familiar with the most important system architectures for distributed systems.
Be familiar with important techniques for solving various problems in distributed systems.
- Be able to develop advanced distributed applications with fault tolerance properties. - Be able to perform independent research in distributed systems. - Be able to reason about problems that involve distributed components.
- Know how to develop distributed computer systems.
Mandatory programming assignments. Pass/Fail. Approval requires submitting your solution to our system for automated evaluation, followed by in-lab approval. All programming assignments must be passed to sit for the written exam.
Completion of mandatory lab assignments is to be made at the times and in the groups that are assigned. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the lab assignments at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.
Failure to complete the assigned labs on time or not having them approved will result in barring from taking the exam of the course.
There must be an early dialogue between the course coordinator, the student representative and the students. The purpose is feedback from the students for changes and adjustments in the course for the current semester.In addition, a digital course evaluation must be carried out at least every three years. Its purpose is to gather the students experiences with the course.