Distributed Systems
In the course Distributed Computation (CD), we worked on several projects, some of them classic Distributed Systems problems, in order to familiarize ourselves with developing this kind of system and learn to implement one.
All the projects were developed in Python.
Chat Program
Our first assignment was to implement a simple client/server socket communication channel.
Although this is not a complex Distributed System in itself, this project allowed us to familiarize with Python socket communication and prepared us to develop bigger systems.
The code is available here
Load Balancer
This assignment now involved implementing several load balancing algorithms.
Further explanation and code can be found here
CHORD
This involved implementing the CHORD algorithm in Python.
Explanation and code is here
Drive-Through
One of the bigger projects we implemented simulated a Drive-Through restaurant, where work was dynamically assigned to individual worker threads.
Further explanation and code is available here
Drive-Through P2P
Finally, we implemented the same simulated Drive-Through problem, now using a peer-to-peer algorithm.
More explanation (including a report) and code is available here
This last project was made with Tomás Costa