| Description | Teaching Team | Lectures | Papers | Evaluation |


CSE 232: Distributed Systems

University of California, Santa Cruz,  Spring 2025

Distributed System of Slugs! (This image was generated by OpenAI ChatGPT.)
Distributed System of Slugs! (This image was generated by OpenAI ChatGPT.)


Description

Distribution is ubiquitous in modern computing systems. For example, today’s telephone systems, banking systems, global information systems, and aircraft and nuclear power plant control systems all depend critically on distributed algorithms. Robust distributed algorithms should offer reliability and security despite process failures, network disconnections, or even malicious attacks on processes. This course will introduce fundamental distributed computing problems and provides a collection of applicable algorithms. It also presents formal specification and rigorous reasoning about distributed algorithms. The course follows a modular and layered approach to the implementation of distributed abstractions. It covers reliable broadcast, causal broadcast, total-order broadcast, distributed shared memory, consensus variants including blockchain consensus, atomic commit and terminating reliable broadcast, and replicated systems. The course considers processes that are subject to crashes and also malicious attacks by non-cooperating processes.

In this course, we will have both lectures by the instructor, and presentations by students. The presenter presents a paper or related papers and leads the discussion.

Textbook:


Teaching Team:

Office hours:


Lectures

We may have multiple lectures on a topic. Please read the slides and suggested reading before the lectures.

In order to best observe the animations in the slides, view them in the “Single page” view rather than “Continuous scroll” view.

The class is automatically recorded and you can view the recordings in the class channel on Yuja.

  1. Introduction
  2. Reliable Broadcast
  3. Causal Broadcast
  4. Shared Memory, Regular
  5. Shared Memory, Atomic
  6. Consensus and Quorums
  7. Total order Broadcast
  8. Atomic Commit
  9. Bitcoin
  10. Randomized consensus
  11. Terminating Reliable Broadcast
  12. View Synchronous Communication
  13. Byzantine Broadcast
  14. Byzantine Consensus
  15. Coordination Synthesis

Papers for presentation


Evaluation

We post the assignments on Canvas and you submit your solutions on Gradescope.

Academic Integrity

One of the joys of university life is socializing and working with your classmates. We want you to make friends with each other and discuss the material. That said, I expect all assignments (code, write-ups, and tests) to be your own original work. If you work together with a classmate on an assignment, please mention this, e.g. in the comments of your code. If you use a figure you didn’t create in a write-up, then it needs a citation. Please review the university’s policy on plagiarism. This class has a zero-tolerance policy on cheating. Please don’t do it.

As a final note on cheating: the economic condition facing computer science graduates is volatile in the near future. It is crucial that you benefit from your time at the university, and learn the concepts thoroughly. If you cheat, you will not be able to stand out from others who put in the effort when it comes time to find a job. Cheating will have a devastating impact on your own career opportunities. Just don’t do it.

We are in an exciting time for AI, especially for tools like Github co-pilot and LLMs (e.g., ChatGPT). These tools have incredible potential and they are improving every day. However, the educational community has not had sufficient time to understand their impact on learning objectives. This class has been designed to be taken without the use of AI tools. They are not allowed to be used in the course. If we suspect abuse, then we may implement random audits of assignments, where you will be asked to explain your implementation in detail. If you are interested in seeing how these tools can help, please feel free to use them after you have submitted a non-AI version of the homework.