Message Area
Distributed Systems
[[Syllabus]] [[Course Material]] [[Reading List]] [[Assignments]] [[Announcements]]
CSE 586/486
Tue/Thu 9:30AM - 10:50AM, 114 HOCH\noffice hours: Tue/Thu 11am-12pm\nWe will use Piazza as a social Q&A web service for classrooms.\n\n----\nThis course introduces concepts and mechanisms in the design and analysis of\ndistributed programs (including programming logic for distributed programs,\nglobal time and global state, distributed algorithms for consensus and\ncoordination, problems in fault-tolerant distribution, distributed data\nstructures). The course will also review several state-of-the-art real-world\ndistributed systems, especially datacenter and cloud computing systems.\n\nThe approach used in the course is to focus on fundamental problems in abstract\nform, develop and formally specify distributed algorithms, and emphasize\nreasoning about correctness and reliability.\n\nThe reference textbook for the course (Paolo Sivilotti, Introduction to Distributed Systems, 2005) is available as a pdf download at [[Course Material]].\nSeveral other reading materials (mostly research papers from the literature) will also be assigned.\n\n!!Topics\n# Introduction, Syntax and semantics for distributed programs, temporal logic\n# Safety and progress properties\n# Proof of program properties\n# Time: logical clocks, State: distributed snapshots\n# Mutual exclusion, Dining philosophers\n# Consensus, Paxos\n# Fault-tolerance, replication, rollback recovery\n# Byzantine agreement, Self-stabilization\n# Programming support for distributed systems\n# Data center computing and cloud computing \n# CAP theorem and NOSQL systems\n# Distributed/WAN storage systems\n\n!! Grading\n* %20 Assignments (No late homework!) + Unannounced quizzes\n* %20 TLA+ projects\n* %25 Midterm (closed book)\n* %35 Final (closed book, final will be inclusive of the midterm content)\n\n!!TAs\nTBA\n
The reference textbook for the course is available as a pdf download:\n[[Paolo Sivilotti, Introduction to Distributed Systems, 2005|CSE586/book.pdf]]\n----\n[[additional reference for week 1|CSE586/logicHandout.pdf]]\n[[Cheatsheet for propositional logic|CSE586/cheatsheetPropositionalLogic.pdf]]\n----\nRead Chapter 2,3 from the book.\n[[Coffee bean problem|CSE586/can.pdf]]\n[[handout for program correctness|CSE586/correctness.pdf]] (courtesy of Anish Arora)\n----\nRead Chapter 9, 10 from the book.\n[[Notes on global snapshot from Anish Arora|CSE586/snapshot.pdf]]\n----\n[[Notes on leader election and fault-tolerance from Anish Arora|CSE586/ft.pdf]]\n----\n[[Paxos presentation|CSE586/consensus-murat.pdf]]\n----\n[[Notes on faults and fault-tolerance|CSE586/faults-spec.pdf]]\n----\n[[Stabilizing tree protocol|CSE586/stabtree.pdf]]\n---\n[[Reading list]]
* We will switch to Piazza for announcements. Stay tuned.\n* The reference textbook for the course is available as a pdf download:\n[[Paolo Sivilotti, Introduction to Distributed Systems, 2005|CSE586/book.pdf]]\n\n