- Understand nature of distributed systems.
- Understand basic concepts of distributed systems.
- Understand basic building blocks: concepts and algorithms.

- Understand how to use building blocks to develop distributed systems.
- Being able to understand, analyze, evaluate and use current distributed systems middleware.