Il corso verte sulla discussione di problemi di ottimizzazione, in particolare di problemi di ottimizzazione combinatoria, con brevi cenni all'ottimizzazione continua. Si pone come obiettivo quello di familiarizzare lo studente con problemi di ottimizzazione che occorrono frequentemente in applicazioni pratiche, permettendogli di riconoscere la difficoltà del problema (attraverso alcune nozioni di complessità) e fornendogli gli strumenti per risolvere tali problemi.
l 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.