Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/01078.jsonl.gz/1394

Algoritmi e Strutture Dati 1
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