Search for contacts, projects,
courses and publications

Algoritmi e Strutture Dati 1

People

Carzaniga A.

Course director

Chiodini L.

Assistant

Description

OBIETTIVI

Gli algoritmi e le strutture dati sono fondamentali per l'informatica.

Si può dire che sono l'essenza dei sistemi informatici. Inoltre, l'efficienza di un sistema dipende in modo cruciale dall'efficienza degli algoritmi su cui si basa.  Più in genere, lo studio degli algoritmi fa comprendere a fondo la natura dei problemi e quindi di tutte le possibili soluzioni, indipendentemente dal linguaggio di programmazione o da altri aspetti implementativi.  Un obiettivo del corso è di imparare a sviluppare e analizzare algoritmi.  In pratica si tratta di risolvere problemi algoritmici. Un altro obiettivo è di conoscere alcuni algoritmi e strutture dati fondamentali.

 

CONTENUTO

Il corso copre le nozioni basilari di complessità asintotica (Big-O, Omega, Theta, ecc.), strategie generali quali divide-et-impera, greedy e dynamic programming, algoritmi di base quali ordinamento e ricerca, strutture dati basilari quali pile, code, liste, heap, alberi, e grafi, e i loro algoritmi di fondamentali.

 

IMPOSTAZIONE PEDAGOGICO-DIDATTICA

Lezioni teoriche accompagnate da numerosi esempi di programmazione algoritmica.

 

MODALITÀ D'ESAME

Esami scritti, uno durante il semestre, uno alla fine; più esercizi da risolvere a casa.

 

RIFERIMENTI BIBLIOGRAFICI

  • Introduzione agli algoritmi e strutture dati, Terza Edizione di Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest