Course
Course Catalog URL:
Identifier:
COM S 4540
Professor(s):
Last Updated: Fall 2024
- Credits and contact hours: 3 credits, 3 contact hours
- Instructor’s or course coordinator’s name: Wensheng Zhang
- Text book, title, author, and year: No textbook required
- Other supplemental materials: Distributed Systems: Principles and Paradigms, Fourth edition, Andrew Tanenbaum and Maarten Van Steen, 2024; Systems Programming: Designing and Developing Distributed Applications, R. Anthony; Distributed Systems: Principles and Paradigms, Second edition, Andrew Tanenbaum and Maarten Van Steen, 2007; Distributed Systems: Concepts and Design, 5th Edition, G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair
Specific course information
- Brief description of the content of the course: This course covers practical and theoretical issues of the design and implementation of distributed systems, which includes distributed computing paradigms, communication, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and blockchain.
- Prerequisites or co-requisites: COM S 3110; COM S 3520 or CPRE 3080
- Required, elective, or selected elective? Selected Elective
Specific goals for the course
- Specific outcomes of instruction:
- Describe the role of middleware in distributed systems
- Understand the client-server architecture and the peer-to-peer architecture
- Understand how RPC and RMI work.
- Describe algorithms for recording consistent global state, electing a coordinator for a group of processes, and implementing mutual exclusion in distributed systems.
- Differentiate between client centric and data centric consistency models.
- Identify the security challenges faced by distributed systems and understand various security solutions.
- Implement distributed applications using socket API.
Brief list of topics to be covered
- Introduction
- Architectures
- Inter-Process Communication and Socket Programming
- Naming
- Synchronization
- Consistency and Replication
- Fault Tolerance
- Security
- Blockchain