11929 - ALGORITMI E STRUTTURE DATI (M-Z)

Scheda insegnamento

Anno Accademico 2017/2018

Conoscenze e abilità da conseguire

Al termine del corso, lo studente conosce: - gli algoritmi per risolvere problemi computazionali di base su strutture dati elementari; - le tecniche di base per calcolare il costo computazionale degli algoritmi; - le classi di complessità computazionale P, NP e NP-hard. In particolare, lo studente è in grado di: - progettare algoritmi efficienti per risolvere semplici problemi computazionali; - stimare in ordine di grandezza il costo computazionale degli algoritmi; - analizzare la complessità computazionale di problemi computazionali di base; - dare una valutazione circa l'efficienza e la correttezza di un algoritmo; - elaborare e presentare un progetto per la risoluzione di problemi computazionali di base.

Programma/Contenuti

-matematica discreta elementare per calcolare gli ordini di grandezza;

- Algoritmi di ordinamento;

- Mediano e selezione;

- Strutture dati elementari: pile, code, alberi, grafi

- algoritmi di visita su grafi

- algoritmi di base su grafi

-classi P e NP

-problemi NP-Hard

Testi/Bibliografia

T. Cormen, C. Leiserson, R. Rivest. Introduction to algorithms. MIT Press.

Metodi didattici

Lezioni frontali ed eserciitazioni in aula.

Modalità di verifica dell'apprendimento

Esame scritto e orale. Progetto.

Strumenti a supporto della didattica

Dispense a cura del docente

Orario di ricevimento

Consulta il sito web di Vittorio Maniezzo

Consulta il sito web di Francesco Strappaveccia