Homework and Programming Assignments
There will be several homework and programming assignments. Homework serves as food for thought while programming assignments are to help the students in gaining hands on experiences in distributed systems design and implementation. Students should be ready for on-line demonstration when asked by the instructor.
Assignments
- Assignment 0: Think about the consequences of moving from centralized systems to distributed systems. Download and install Python, Ray, Dask, Spark and PySpark on your lab machines or with VirtualBox. Then try them out. (No need to turn in anything.)
- Assignment 1: The Byzantine Generals Problem. (Check the lecture note 03ArchModels.pdf(p.45) for more details.) Due date: Mar 19, 2024
- Assignment 2: Multi-threaded Server/Clients. (Check the lecture note 05Processes.pdf(p.81) for more details.) Due date: Apr 23, 2024
- Assignment 3: Python TCP, UDP, Client-Server and Multicasting. (Check the lecture note 06Communication.pdf(p.31) for more details.) Due date: May 14, 2024
- Assignment 4: RPC/RMI Exercises. (Check the lecture note 07bRMI.pdf(p.38) for more details.) Due date: June 4, 2024
- Assignment 5: Building Shared Message Board (Optional). (Check the lecture note 08IndirectComm.pdf(p.56) for more details.) Due date: June 18, 2024
Python Programming Resources
Spark Programming Resources
Other Programming Resources