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: 16
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: 
2014/2015
Anno di corso: 
1
Anno accademico di erogazione: 
2014/2015
Tipo di attività: 
Obbligatorio
Crediti: 
8
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
76
Prerequisiti: 

Nozioni base di programmazione

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

Esame scritto e orale

Valutazione: 
Voto Finale

Obiettivi formativi

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

Contenuti

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

Programma esteso

1 "Introduzione: Algoritmo, problema, istanza.
Analisi di algoritmi: Valutazione dei tempi di esecuzione, caso pessimo, ottimo e medio."

2 Programmazione ricorsiva e approccio Divide-et-Impera: Mergesort e Quicksort

3 Valutazione del tempo di esecuzione di algoritmi ricorsivi: equazioni di ricorrenza

4 Altri algoritmi di ordinamento: Ordinamento in tempo lineare

5 "Introduzione: tipi astratti di dati e strutture dati.
Strutture dati statiche (Array) e dinamiche (Liste)."

6 Pile e code

7 Alberi Binari e Alberi Binari di Ricerca

8 "Heap e heapsort, code con priorita'.
Tabelle hash."

Bibliografia consigliata

T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli Algoritmi e Strutture dati, Ed. Mc. Graw Hill

Metodi didattici

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