Italiano
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduzione agli algoritmi e strutture dati (terza edizione), McGrawHill, ISBN 9788838665158
L’obiettivo formativo per lo studente è che raggiunga i seguenti risultati di apprendimento:
*Conoscenza e capacità di comprensione*
Il corso intende fornire le conoscenze metodologiche e applicative relative all’analisi e alla progettazione di algoritmi ottimali e strutture dati efficienti. Vengono in particolare studiate diverse tecniche di progettazione di algoritmi come la tecnica del divide et impera, la programmazione dinamica e la programmazione greedy; vengono altresì presentate le strutture dati fondamentali quali liste, code, pile, alberi binari di ricerca, tabelle hash, heap, grafi (con relativi algoritmi fondamentali).
*Capacità di applicare conoscenza e comprensione*
Al termine del corso di insegnamento, lo studente anche con l’aiuto di casi di studio concreti svolti in laboratorio, sarà in grado di analizzare e sviluppare algoritmi per la risoluzione di problemi fondamentali.
nessuno
Lezioni, esercitazioni
*Conoscenza e capacità di comprensione*
La verifica dei risultati di apprendimento sarà effettuata tramite una o più prove scritte ed un colloquio finale (quest’ultimo è facoltativo e/o a discrezione del docente).
La valutazione finale, espressa in trentesimi, tiene conto sia delle prove scritte preliminari che del colloquio di esame.
*Capacità di applicare conoscenza e comprensione*
Durante le prove d’esame si verifica la capacità degli studenti di applicare le conoscenze fornite dal corso al fine di essere in grado di analizzare e progettare strutture dati ed algoritmi efficienti.
E-mail del docente: luca.moscardelli@unich.it
Giorni ed orario di ricevimento studenti: controllare la pagina del docente su cleii.unich.it
Il corso di Algoritmi e strutture dati introduce gli studenti all’analisi e alla progettazione di algoritmi ottimali e strutture dati efficienti. Vengono in particolare studiate diverse tecniche di progettazione di algoritmi come la tecnica del divide et impera, la programmazione dinamica e la programmazione greedy; vengono altresì presentate le strutture dati fondamentali quali liste, code, pile, alberi binari di ricerca, tabelle hash, heap, grafi (con relativi algoritmi fondamentali).
• Introduzione; Notazione asintotica; Tecnica del divide et impera e metodi di risoluzione delle ricorrenze.
• Algoritmi di ordinamento e loro analisi: algoritmi quadratici; merge sort; quick sort; limite inferiore ad algoritmi basati su confronti; counting sort e radix sort.
• Strutture dati elementari e operazioni: liste, pile, alberi radicati.
• Strutture dati: alberi binari di ricerca, tabelle Hash, Heap; heapsort.
• Tecniche di progettazione algoritmica: programmazione dinamica e algoritmi greedy
• Grafi: rappresentazione; visite; minimo albero ricoprente (Kruskal e Prim); cammini minimi (Dijkstra e Floyd-Warshall)
SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551
SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371
email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693