L'insegnamento si propone di fornire allo studente dei metodi per la creazione di strumenti di supporto alle decisioni nelle attivita', imprenditoriali e non, pubbliche e private integrando modelli e metodi di analisi what-if (simulazione) e what-best (ottimizzazione).

Il corso ha lo scopo di fornire nozioni avanzate per il progetto, l'analisi ed il confronto di algoritmi. Un ulteriore obiettivo del corso e' quello di far conoscere tecniche di programmazione che sono state studiate per affrontare problemi non trattabili, eventualmente fornendo soluzioni approssimate o risposte solo probabilmente corrette.

Viene inoltre richiesto agli studenti di preparare un seminario da presentare ai compagni.

La preparazione del seminario intende da una parte stimolare lo studente a cercare e selezionare documentazione sull’argomento proposto, dall’altra a porsi l’obiettivo di rendere fruibile l’argomento ai compagni attraverso una presentazione sufficientemente tecnica, anche se non troppo dettagliata, che ne evidenzi gli aspetti più  interessanti.

L’insegnamento fornisce una conoscenza di base dei principi di progettazione e dei fondamenti dello sviluppo delle applicazioni mobili, e presenta lo sviluppo su piattaforma Android, su piattaforma iOS, e cross-platform. Viene inoltre presentato il paradigma “aggregate programming” per programmare sistemi distribuiti (come ad es. insiemi di dispositivi mobili) specificando il comportamento globale e derivando automaticamente i comportamenti locali.