Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 16
Tipo: A scelta dello studente
Crediti: 8
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale
Crediti: 13
Tipo: Altro

ALGORITMI E STRUTTURE DATI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2019/2020
Anno di corso: 
1
Anno accademico di erogazione: 
2019/2020
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
8
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
72
Prerequisiti: 

Nozioni base di programmazione

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

Esame scritto, consistente in:
- esercizi che richiedono sviluppo di un algoritmo per la soluzione di un problema assegnato
- simulazione su input specifici degli algoritmi presentati a lezione
- domande aperte relative alle nozioni teoriche presentate a lezione
Sono previste anche due prove parziali in sostituzione dell'esame completo, ognuna delle quali relativa solo ad una parte degli argomenti presentati a lezione.

Valutazione: 
Voto Finale

Obiettivi formativi

Progettare e implementare algoritmi efficienti, scegliendo in modo opportuno le tecniche di programmazione e le strutture dati da utilizzare

Contenuti

Metodologie di base per progettare algoritmi e analizzarne l’efficienza. Strutture dati fondamentali: definizioni e utilizzo

Programma esteso

Introduzione: Algoritmo, problema, istanza. Analisi di algoritmi: Valutazione dei tempi di esecuzione, caso pessimo, ottimo e medio.
Programmazione ricorsiva e approccio Divide-et-Impera: Mergesort e Quicksort
Valutazione del tempo di esecuzione di algoritmi ricorsivi: equazioni di ricorrenza
Altri algoritmi di ordinamento: Ordinamento in tempo lineare
Introduzione: tipi astratti di dati e strutture dati.
Strutture dati statiche (Array) e dinamiche (Liste).
Pile e code
Alberi Binari e Alberi Binari di Ricerca
Heap e heapsort, code con priorita'.

Bibliografia consigliata

T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli Algoritmi e Strutture dati, Ed. Mc. Graw Hill
Materiale integrativo (lucidi ed esercizi) disponibili sul sito e-learning.

Metodi didattici

Lezioni frontali, esercitazioni e approfondimenti in laboratorio. Attivita' di studio individuali supportate da materiali didattici in E-learning.