News in evidenza

  • Precorsi per le matricole a.a. 2026/2027

    Si informa che anche per l’a.a. 2026/2027 la Scuola Politecnica e delle Scienze di Base organizza i precorsi rivolti alle future matricole, con inizio previsto il 1 settembre 2026. L'iniziativa ha l’obiettivo di offrire un primo supporto agli studenti in ingresso, favorendo l’avvio del percorso universitario e il consolidamento delle conoscenze utili per affrontare con maggiore consapevolezza le discipline del primo anno.

    Leggi tutto...  
  • Apertura delle Immatricolazioni per l'a.a. 2026/2027

    Le immatricolazioni (iscrizioni) ai Corsi di Laurea Triennale e Magistrale in Informatica per l'anno accademico 2026/2027 saranno possibili a partire dal 16 luglio per il Corso di Studi Triennale e a partire dal 1 settembre per il Corso di Studi Magistrale. Le immatricolazioni saranno possibili fino al 31 ottobre 2026, a meno di proroghe.

    Leggi tutto...  

Titolo insegnamento in inglese: Algorithm design

Lingua: italiano

Insegnamento: Algoritmi e Strutture Dati I

Anno di corso: II

CFU: 6

Semestre: 2

Docenti:

  • Massimo Benerecetti 

Insegnamenti propedeutici previsti

Algoritmi e strutture dati I, Laboratorio di Algoritmi e Strutture Dati

Obiettivi Formativi

Il corso intende fornire un'introduzione alle tecniche avanzate di progettazione degli algoritmi, alla complessità computazionale e alla trattabilità dei problemi. Vengono, in particolare, presentate le principali tecniche di dimostrazione di correttezza, esaminate le tecniche di progettazione greedy e di programmazione dinamica, con applicazioni alla soluzione di vari problemi di ottimizzazione, di compressione dei dati e problemi su grafi pesati. Vengono introdotte le classi di complessità P e NP e il concetto di NP-completezza e di riduzione tra problemi. Vengono infine presentate tecniche di progettazione ed analisi di algoritmi approssimati e di algoritmi randomizzati.

Contenuti

Il problema della correttezza degli algoritmi: dimostrazioni per induzione, dimostrazioni di correttezza di algoritmi ricorsivi.
 
Tecniche di progettazione di algoritmi: introduzione agli algoritmi greedy ed alla programmazione dinamica per la soluzione di problemi di ottimizzazione (ad es., problema dello zaino intero e frazionario, percorsi minimi su grafi pesati, i codici di Huffman, problemi di scheduling). Introduzione alla Teoria della Complessità: problemi trattabili e non trattabili, le principali classi di complessità (P e NP), il concetto di riduzione polinomiale tra problemi e il concetto di NP-completezza, esempi di problemi NPcompleti e dimostrazioni di NP-completezza. Introduzione all'intrattablita' computazionale. Introduzione agli algoritmi approssimati; fattore di approssimazione; esempi di algoritmi approssimati per problemi du grafi. Introduzione agli algoritmi randomizzati. Progettazione ed analisi di algoritmi randomizzati per problemi di scheduling e problemi su grafi.
 

Modalità didattiche

Lezioni frontali. Esercitazioni.

Modalità di esame

L'esame si articola in prova scritta e orale.

La prova scritta è a risposta libera.