CSE 486/586

Spring 2017

Course Info
Practice Problems


This is a combined undergrad/grad course on distributed systems. The course covers fundamental techniques that underlie our industry's most critical distributed systems. Not only that, the course programming assignments provide practical experience on designing, implementing, and debugging a real distributed system. Upon completing this course, students will have intimate knowledge about how things should be distributed.

Administrative Information

Lectures: MWF 1:00pm - 1:50pm (Cooke 121)

Instructor: Steve Ko (UBITName: stevko)
Office: 113F Davis
Office Hours: MW 2 pm - 3 pm, F 12 pm - 12:50 pm

TA Office Hours: Please refer to our Piazza page.

Course Communication Platform

Piazza is the main platform for this course's announcements, Q&As, and discussions.


Main Textbook: Distributed Systems: Concepts and Design, 5th Edition (George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair)
Supplemental Textbook: Distributed Systems: Principles and Paradigms, 2nd Edition (Andrew Tanenbaum, Maarten Van Steen)


Data structures and algorithms, basic networking concepts (e.g., TCP/IP, routing protocols, etc.), basic OS concepts (e.g., processes, threads, synchronization, file systems, etc.), background in systems programming (pthread, socket, etc.)