Distributed Systems
UB Catalog information for CSE 486 , CSE 586
This information is advisory only. The authoritative course description and requirements for a given semester are defined by the course syllabus.
Overview
This course is a cross-listed graduate/undergraduate course titled Distributed Systems for undergraduate students and Large-Scale Distributed Systems for graduate students. Both versions of the course are project-heavy.
Offerings
Spring 2018, Spring 2021, Spring 2023Current Offering: Spring 2018
Lecture | MWF 13:00-13:50, Cooke 121 |
---|---|
Office Hours |
M 10:00-11:00 W 14:30-15:30 |
TA Office Hours |
M 16:00-17:00 (Subhadeep) Tu 11:00-12:00 (Ali) W 12:00-13:00 (Asif) Th 12:00-13:00 (all) |
Syllabus
Lectures
Lecture | Date |
Introduction | 2018-01-29 |
The Internet in Two Lectures: Part 1 | 2018-01-31 |
The Internet in Two Lectures: Part 2 | 2018-02-02 |
Android Architecture and Development: Part 1 | 2018-02-05 |
Android Architecture and Development: Part 2 | 2018-02-07 |
Android Architecture and Development: Part 3 | 2018-02-09 |
Failure Detectors | 2018-02-12 |
Time and Synchronization | 2018-02-14 |
Logical Time | 2018-02-16 |
Global States | 2018-02-19 |
Reliable Multicast (Part 1) | 2018-02-21 |
Reliable Multicast (Part 2) (ISIS Slide) (pdf) (odp) | 2018-02-23 |
Reliable Multicast (Part 2 concluded) | 2018-02-25 |
Gossiping | 2018-02-28 |
No classes — Snow day! | 2018-03-02 |
Peer-to-Peer Architectures | 2018-03-05 |
Peer-to-Peer Architectures (finished) | 2018-03-07 |
Distributed Hash Tables (pdf) (odp) | 2018-03-09 |
Mid-Semester Review | 2018-03-12 |
Midterm Exam | 2018-03-14 |
Software Development for Coursework | 2018-03-16 |
Spring Break | 2018-03-19 |
Spring Break | 2018-03-21 |
Spring Break | 2018-03-23 |
Consensus | 2018-03-26 |
Mutual Exclusion (pdf) (odp) | 2018-03-28 |
Leader Election (pdf) (odp) | 2018-03-30 |
Paxos (pdf) (odp) | 2018-04-02 |
Finish, Paxos; Project 3 advice | 2018-04-04 |
Concurrency Control (part 1) (pdf) (odp) | 2018-04-06 |
Concurrency Control (part 2) (pdf) (odp) | 2018-04-09 |
Concurrency Control (part 3) (pdf) | 2018-04-11 |
Consistency (part 1) (pdf) | 2018-04-13 |
Consistency (part 2) (pdf) | 2018-04-16 |
Consistency (finish), Amazon Dynamo (pdf) (odp) | 2018-04-18 |
Finish Dynamo | 2018-04-19 |
The Domain Name System (pdf) (odp) | 2018-04-23 |
Content Distribution Networks (pdf) (odp) | 2018-04-25 |
Facebook Haystack and f4 (pdf) (odp) | 2018-04-27 |
Distributed Filesystems (pdf) | 2018-04-30 |
Remote Procedure Calls (pdf) (odp) | 2018-05-02 |
Security (part 1) (pdf) | 2018-05-07 |
Security (part 2) (pdf) | 2018-05-09 |
Course Conclusion (pdf) | 2018-05-11 |
Assignments
Assignment | Due |
Academic Integrity Quiz | 2018-02-09 23:59:00 (extended) |
Programming Assignment 1 | 2018-02-09 23:59:00 (extended) |
Programming Assignment 2A | 2018-02-23 11:59:00 |
Programming Assignment 2B | 2018-03-12 11:59:00 (extended) |
Programming Assignment 3 | 2018-04-13 11:59:00 |
Programming Assignment 4 | 2018-05-11 11:59:00 |
Prerequisites
Students are expected to have a thorough understanding of data structures and algorithms, Internet architecture and networking (including the TCP/IP protocol suite), and operating systems. In addition, students are expected to have done some systems programming (e.g., using threads and sockets). Students must either know Java or be capable of picking it up rapidly.
Text
The text for this course is Distributed Systems: Concepts and Design, Fifth Edition, by Coulouris, Dollimore, Kindberg, and Blair.
Course Structure
This is a project-heavy course. Students will be expected to implement several nontrivial applications on the Android platform. Projects will make up at least 50% of the final course grade, with the remainder being quizzes and midterm and final exams.
There are no graded homeworks for this course. Homeworks may be assigned to help students understand the material, and any material covered in homeworks may appear on exams or quizzes.
There are no scheduled quizzes for this course. In-class quizzes may be assigned as-needed at the instructor’s discretion.
Programming Assignments
All projects for this course must be buildable using gradle
under
Android Studio 3.0.1, and target Android SDK version 19. (SDK versions
23 and above use a fine-grained permission structure that makes
automated testing more difficult for our purposes, and newer SDKs are
much more resource-heavy in the emulator.) The provided starting code
will meet these requirements.
See Android Programming Assignments for additional guidelines on implementing the programming assignments for this course.