CSE5306: Distributed Systems, Fall 2017

Time: TTh 3:30PM - 4:50PM
Location: LS 424
Instructor: Dr. Jia Rao
Course discussion website on Piazza
Office: ERB 649
Office Hours: T
Th 2:00PM - 3:00PM, or by appointment.
TA: Yong Zhao, ERB 413, email: yong.zhao@uta.edu
TA Office Hours: M/W 2:00PM - 3:00PM


  • 11/01: Project-2 is released. The due date is Nov. 14, 11:59pm on Blackboard.

  • 10/08: Midterm exam is re-scheduled to Oct. 19, in class.

  • 10/08: Homework-1 is released. The due date is Oct. 17 in class.

  • 09/15: Project-1 and its code template are released. The due date is Oct. 1, 11:59pm on Blackboard.

  • 08/21: Welcome to CSE5306: Distributed Systems. Course website is online !

Course Description

Distributed systems help programmers aggregate the resources of many networked computers to construct highly available and scalable services. With the recent advances in cloud computing, a specialized form of distributed computing, and the proliferation of mobile devices, the frontier of computing at the edge of networks, it is important to understand the fundamental concepts and learn the design and implementation techniques of distributed systems. However, building a highly efficient, scalable, and reliable distributed system is challenging due to the complexity large-scale networked systems, including hardware heterogeneity, dynamic network topology, unreliable network interconnection, and the ever growing user needs of multitenancy.

This course is designed to provide students with the understanding of fundamentals of distributed systems. In this course, we will first introduce the basics of distributed computing, including distributed architectures, processes and threads, communication, naming, synchronization, consistency and replication, fault tolerance, and later move onto the discussions of representative distributed systems, such as distributed computing systems and file systems. Upon completion of this course, students are expected to be familiar with the fundamentals of distributed computing, be able to analyze and evaluate the performance of distributed systems, to write simple distributed programs, and to understand the inherent tradeoffs of distributed system design.


  • CSE 3320: Operating Systems, CSE 4344: Computer Networks.

  • Knowledge of UNIX/Linux systems, high-level languages C and Java.

  • If you want to take the class without the prerequisites, you have the get the permission from the instructor. If approved, if is your responsibilities to make up for the required background


  • Title: Distributed Systems: Principles and Paradigms

  • Author: Andrew S. Tanenbaum, Maarten Van Steen

  • Publisher: Prentice Hall; 2nd edition (2007)

  • ISBN: 0132392275

  • This course may include additional readings from technical papers