Fondamenti teorici e progettuali per sistemi di calcolo distribuiti su più nodi. Il corso analizza i modelli di comunicazione (memoria condivisa vs scambio di messaggi), i problemi classici di elezione del leader, consenso, mutua esclusione e rilevamento dello stato globale. Vengono inoltre trattati i limiti di complessità e le tecniche di tolleranza ai guasti (Byzantine failures).