Il corso si propone di fornire le metodologie e gli strumenti per la programmazione concorrente, ponendo l'enfasi sui vari modelli cui i linguaggi fanno riferimento e sugli strumenti tipici di ogni modello.

Un secondo obiettivo è l'introduzione allo studio di algoritmi per ambienti distribuiti. A tal fine viene  discusso e analizzato un insieme di algoritmi distribuiti "classici" per ambienti a rete.