Diario delle lezioni 2002-03
Lezioni del 2001-02
In corsivo le esercitazioni in laboratorio

| data |
28/4/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
2 |
| argomenti |
- Introduzione al corso
- Definizione di algoritmo e di struttura dati
- Modello di analisi dei costi
 | costi uniformi |
 | dimensione dell'input |
 | analisi di caso peggiore |
|
| listati |
|
| riferimenti |
 | [1] Sez. 2.8 |
 | trasparenze "Introduzione e modello di analisi"
(1-18) |
|
| siti web |
|
| commenti |
|
torna all'elenco delle lezioni

| data |
29/4/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
4 |
| argomenti |
- Modello di analisi dei costi
 | riepilogo |
 | analisi asintotica |
 | operazione dominante |
 | notazione asintotica |
Analisi dell'InsertionSort
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
5/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
6 |
| argomenti |
- Esempi di analisi asintotica di caso peggiore in funzione della
dimensione dell'input
- Discussione sulla dimensione dell'input
- Metodologia di progetto di algoritmi "divide et impera"
- Merge-sort: algoritmo ed analisi
- Equazioni di ricorrenza
- Generalità sui tipi astratta di dati (ADT)
- Specifica Java attraverso interfacce degli ADT
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
6/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
8 |
| argomenti |
- Array e Vector
- Cenno agli iteratori (interfaccia Iterator)
- Cenno al concetto di collezione
- Interfacce Collection, Set,
List
- Liste e loro implementazioni
 | liste collegate, array, Vector |
Discussione operazioni su liste
Confronto costi operazioni su liste collegate, array, array ordinati
ADT Pila: generalità ed operazioni
|
| esercizi svolti |
|
| esercizi proposti |
- ricerca binaria: codice e costo
- algoritmo per riconoscimento di stringhe parenteticamente corrette
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
8/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
10 |
| argomenti |
- ADT Pila: implementazioni
 | tramite Vector e tramite LinkedList |
Algoritmo per riconoscimento di stringhe parenteticamente corrette
ADT Coda: generalità ed operazioni
ADT Coda: implementazioni
 | tramite array circolare e LinkedList |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
12/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
12 |
| argomenti |
- Presentazione classi Stack e Queue della "asd_library"
- Definizione ADT albero
- Terminologia di riferimento
- Rappresentazione con liste collegate
- Operazioni
- Rappresentazione del singolo nodo
- interfaccia Tree
- Algoritmi su alberi e loro analisi
 | livello di un nodo |
 | altezza di un albero |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
- ADT Stack
ADT Queue
|
| commenti |
Il libro di testo non contiene dettagli su
alberi generici |
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
13/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
14 |
| argomenti |
- visite di alberi
- visite in profondità (algoritmi ricorsivi)
 | preordine |
 | inordine |
 | postordine |
visita in ampiezza
analisi degli algoritmi di visita
alberi binari
rappresentazione di alberi binari
ADT in Java
visite di alberi binari
 | preordone |
 | inordine |
 | postordine |
 | ampiezza |
analisi degli algoritmi di visita
alberi binari rappresentati tramite array
 | vantaggi |
 | svantaggi |
|
| esercizi svolti |
|
| esercizi proposti |
algoritmo
per la visita di un labirinto |
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
15/5/2003 |
| tipo |
lab |
| #ore |
2 |
| #ore tot |
2 |
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
vedi pagina
laboratorio |
| siti web |
|
torna all'elenco delle lezioni

| data |
19/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
16 |
| argomenti |
- considerazioni su eliminazione della ricorsione
- eliminazione ricorsione sull'algoritmo di visita in preordine di un
albero
- considerazioni di costo
- concetto di chiave
- chiavi in Java e interface Comparable
- alberi binari di ricerca (BST)
- rappresentazione dei nodi
- operazioni sui BST
- ricerca iterativa e ricorsiva nei BST
- costo della ricerca nei BST (caso peggiore)
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
20/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
18 |
| argomenti |
- ricerca nei BST: analisi di caso medio (distribuzione uniforme)
- ricerca predecessore e successore nei BST: algoritmi e costi
- inserimento in un BST: algoritmo e costo
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
22/5/2003 |
| tipo |
lab |
| #ore |
2 |
| #ore tot |
4 |
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
vedi pagina
laboratorio |
| siti web |
|
torna all'elenco delle lezioni

| data |
26/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
20 |
| argomenti |
- eliminazione da un BST
- algoritmi e costi
- ADT dizionario
- operazioni sul dizionario
- alberi perfettamente bilanciati
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
27/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
22 |
| argomenti |
- alberi perfettamente bilanciati: prestazioni e limiti
- bilanciamento in altezza e alberi AVL
- alberi di Fibonacci
- altezza di un albero di Fibonacci
- altezza di un albero AVL
- discussione sui requisiti degli algoritmi di
inserimento/eliminazione
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
29/5/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
24 |
| argomenti |
- algoritmo di inserimento in AVL
- rotazione semplice, rotazione doppia
- costo inserimento in AVL
- algoritmo di eliminazione da AVL
- costo eliminazione da AVL
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
http://www.seanet.com/users/arsen/avltree.html
(animazione AVL)
(classi Java rilevanti, da
scaricare a partire dalla URL base
http://www.seanet.com/users/arsen:
BTApplet, BTData, BTNode, BTPanel, BTSprite, BTTool, BTTree, MODE, MSG,
SOUND; inoltre occorre scaricare le cartelle http://www.seanet.com/users/arsen/images/
e http://www.seanet.com/users/arsen/sounds/)
(non ci sei riuscito? clicca
qui)
|
torna all'elenco delle lezioni

| data |
3/6/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
26 |
| argomenti |
- coda di priorità
- heap
- rappresentazione degli heap
- operazioni sugli heap: inserimento, eliminazione e getFirst
- operazione heapify
- array2heap
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
 | [1] Sez. 6.9, 6.9.1, 6.9.2 |
 | heap
(1-27) |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
5/6/2003 |
| tipo |
lab |
| #ore |
2 |
| #ore tot |
6 |
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
vedi pagina
laboratorio |
| siti web |
|
torna all'elenco delle lezioni

| data |
9/6/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
28 |
| argomenti |
- algoritmo di Floyd
- analisi algoritmo di Floyd
- HeapSort e sua analisi
- SelectionSort e sua analisi
- sorting di elementi Comparable
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
10/6/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
30 |
| argomenti |
- quicksort e sua analisi
- lower bound
- alberi di decisione e lower bound del sorting
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
12/6/2003 |
| tipo |
lab |
| #ore |
2 |
| #ore tot |
8 |
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
vedi pagina
laboratorio |
| siti web |
|
torna all'elenco delle lezioni

torna all'elenco delle lezioni

| data |
17/6/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
34 |
| argomenti |
- cancellazione nelle tavole hash
- considerazioni sul fattore di carico delle tavole hash
- introduzione ai grafi
- definizioni e proprietà
- rappresentazioni dei grafi e loro proprietà
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
 | [1] Sez. 10.3, 8.1 |
 | grafi
(1-10) |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
23/6/2003 |
| tipo |
lez |
| #ore |
2 |
| #ore tot |
36 |
| argomenti |
- Visita DFS ricorsiva
- DFS iterativa
- significato delle marcature
- proprietà della DFS
- costo DFS
- DAG e ordini parziali
- definizione topological sort
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
 | [1] Sez. 8.2, 8.7 |
 | grafi
(11-25) |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
24/6/2003 |
| tipo |
|
| #ore |
|
| #ore tot |
|
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni

| data |
26/6/2003 |
| tipo |
|
| #ore |
|
| #ore tot |
|
| argomenti |
|
| esercizi svolti |
|
| esercizi proposti |
|
| listati |
|
| commenti |
|
| riferimenti |
|
| siti web |
|
torna all'elenco delle lezioni
|