Corso di Algoritmi e strutture dati


Corso di laurea triennale di Informatica
Università degli Studi di Milano
Anno accademico 2011/2012

Turno unico diurno - Docenti: M. Goldwurm, V. Lonati (Laboratorio)



Fondamentale del secondo anno per la laurea triennale di Informatica
(Corso di 12 crediti)
Propedeuticità: i corsi di Programmazione, Matematica del discreto (consigliata), Matematica del continuo.
1. Programma del corso 5. Modalità d'esame
2. Corso di Laboratorio (V. Lonati). 6. Orario lezioni e ricevimento
3. Dispense e testi consigliati 7. Prossimi appelli
4. Esercizi e temi d'esame 8. Date degli appelli d'esame per l'a.a. 2011/2012

Risultati dell'ultima prova scritta
Ultimi temi d'esame (file ps , file pdf )

Modalità d'esame per il corso da 18 crediti (per gli studenti del precedente ordinamento)


Complementare per la laurea triennale di Informatica per le Telecomunicazioni
(Corso di 6 crediti)
1A. Programma (corso di 6 crediti) 2A. Modalità d'esame (corso di 6 crediti)



PROGRAMMA DEL CORSO


Prerequisiti svolti nei corsi del I anno: i principali costrutti di programmazione, le relazioni di equivalenza e di ordine, la notazione asintotica e le relative proprietà principali.


DISPENSE E TESTI CONSIGLIATI


ESERCIZI E TEMI D'ESAME

Alcuni metodi di soluzione degli esercizi e una raccolta di temi d'esame si possono trovare in

MODALITÀ D'ESAME

L'esame consiste nella realizzazione di un progetto in linguaggio C e in una prova orale. Progetto e orale possono anche essere sostenuti in appelli diversi, tuttavia la prova orale va sostenuta solo dopo aver svolto il progetto con giudizio positivo.
Ad ogni appello viene pubblicato il testo del progetto sul sito di Laboratorio, con la data di consegna e quella di discussione dei progetti presentati; viene inoltre stabilita la data della prova orale che è sempre successiva a quella di discussione dei progetti. Un progetto sufficiente sarà tenuto valido per 6 mesi per sostenere la prova orale. Gli studenti sono pregati di iscriversi mediante terminale all'appello prescelto anche per svolgere una sola delle due prove.

Modalità d'esame per il corso da 18 crediti

Gli studenti iscritti al vecchio ordinamento che devono sostenere l'esame da 18 crediti saranno tenuti a svolgere il progetto e una prova orale (non si prevede lo scritto). Il progetto si svolgerà con le stesse modalità previste per il corso da 12 crediti. La prova orale sarà inoltre particolarmente dedicata allo svolgimento di esercizi e alle proprietà delle classi P e NP previste nel programma degli anni precedenti.

ORARIO DELLE LEZIONI

Primo semestre.

Inizio delle lezioni Lunedì 3 Ottobre 2011. Fine delle lezioni prevista per il 20 Gennaio 2012.

Turno unico diurno


ORARIO DI RICEVIMENTO


Prof. Massimiliano Goldwurm, stanza P102 (primo piano), martedì ore 11-13 oppure su appuntamento (accordi da stabilirsi per e-mail da inviare all'indirizzo cognome at dsi dot unimi dot it).
Si segnala che i ricevimenti previsti per i giorni 14/2/2012 e 21/2/2012 sono sospesi.


PROSSIMO APPELLO

La prossima prova orale (appello SIFA del 13 febbraio 2012) si terrà il 21 febbraio 2012 alle ore 9.30 in auletta 5 presso il DSI di via Comelico.
Le date di pubblicazione e consegna dei progetti per l'appello in corso sono reperibili al sito Avvisi del Corso di Laboratorio
Si ricorda agli studenti che anche per svolgere la sola prova orale è necessario iscriversi all'appello corrispondente mediante terminale SIFA.


DATE DEGLI APPELLI D'ESAME PER L'A.A. 2011/2012

Le date di pubblicazione dei testi dei progetti sono reperibili al sito Avvisi del Corso di Laboratorio
Date di consegna dei progetti (che appaiono sul SIFA): 24/1, 13/2, 18/6, 9/7, 21/9, 10/1/2013.
Date delle prove orali (corrispondenti ai precedenti appelli): 30/1, 21/2, 28/6, 19/7, 27/9, 17/1/2013.


PROGRAMMA del corso di 6 crediti


Nozione intuitiva di problema e algoritmo. Problematiche di sintesi e analisi di un algoritmo e classificazione dei problemi. Modello di calcolo RAM e relativi criteri di costo uniforme e logaritmico. Nozioni matematiche: notazione asintotica, valutazione di somme ed equazioni di ricorrenza.
Strutture dati principali: vettori, liste, pile, code. Grafi, alberi e loro rappresentazioni. Algoritmi di attraversamento di alberi e grafi; visite in profondità e in ampiezza.
Algoritmi di ordinamento. Algoritmi Mergesort e Heapsort.
Strutture di dati astratte e implementazione efficiente. Alberi di ricerca binaria, alberi di ricerca bilanciati (alberi 2-3, B-alberi). Operazioni "union-find" su partizioni: algoritmi basati su alberi con bilanciamento e compressione.
Gli algoritmi greedy: schema generale. L'algoritmo di Kruskal. Il metodo Divide et impera: schema generale e analisi dei tempi di calcolo. L'esempio di Mergesort. Algoritmi di programmazione dinamica: calcolo dei cammini minimi nei grafi pesati.
Le classi P, NP, e i problemi NP-completi.

Modalità d'esame (corso di 6 crediti)

L'esame consiste in una prova orale. La data d'esame va concordata direttamente con il docente via e-mail. Non occorre iscriversi.


Ultimo aggiornamento: 10 Febbraio 2012