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: 8
Tipo: A scelta dello studente
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: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
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.