Il corso si propone di fornire le metodologie e gli strumenti per la
programmazione concorrente, ponendo l'enfasi
soprattutto sui vari modelli cui i linguaggi fanno riferimento e sugli
strumenti tipici di ogni modello. Lo studio di questi modelli riguarda
principalmente i costrutti per esprimere la concorrenza dei processi e
le loro possibili interazioni. L'analisi
viene effettuata adottando un insieme di esempi che coprono un'area
significativa di applicazioni e confrontando varie soluzioni
nell'ambito di uno stesso modello e tra i
vari modelli. Un secondo obiettivo è l'introduzione delle
problematiche connesse al disegno
di algoritmi implementati su componenti distribuite. Tali problematiche
vengono illustrate mediante la descrizione e l'analisi di alcuni
algoritmi distribuiti "classici" per ambienti a rete.