Diario e materiale delle lezioni

Nota: Quando necessario sono forniti i riferimenti a testi integrativi/alternativi ad [A] o materiale didattico (slides, codice) fornito dalla docente. Il materiale integrativo non sostituisce i contenuti del libro di testo, bensì è fornito, quando possibile, con l'intenzione di aiutare lo studente a seguire le lezioni e a colmare lacune derivanti da eventuali assenze. E' importante precisare che esso non è esente da errori ed imperfezioni. La collaborazione degli studenti che vorranno segnalarmeli non solo è benvenuta, ma auspicata.
  • 1) 28.09.2015 Presentazione del corso (slides: pptx pdf). Introduzione: Ciclo di sviluppo di codice algoritmico (slides: pptx pdf).
    (rif. [B] §§ 1.1--1.3)
  • 2) 30.09.2015 Richiami di Java - parte I (slides: pptx pdf).
    Focus su: struttura di controllo switch, istruzioni break e continue, modificatori fondamentali, inizializzatori d'istanza e statico.
  • 3) 05.10.2015 Esercitazione: le classi Tempo e Tempo2 su modificatori fondamentali, inizializzatori d'istanza e statico.
    Richiami di Java - parte II (slides: pptx pdf). Focus su classi astratte.
  • 4) 07.10.2015 Oltre le classi: Le interfacce (slides: pptx pdf) (rif. [B] §1.4.1).
    Esercitazione: L'interfaccia Ordinabile: ordinamento di array di punti.
  • 5) 12.10.2015 Esercitazione: L'interfaccia Ordinabile: ordinamento di array di interi (versione 1).
    Le librerie standard (slides: pptx pdf). L'interfaccia Comparable. Esercitazione: L'interfaccia Comparable: ordinamento di array di interi (versione 2).
    Classi wrapper. Esercitazione: L'interfaccia Comparable e la classe Integer: ordinamento di array di interi (versione 3).
    Classi String e Scanner (Slides: pptx pdf). Esercitazione: L'interfaccia Comparable e la classe String: ordinamento di array di stringhe.
    (rif. [B] §§ 1.4.2--1.4.4).
  • 6) 14.10.2015 Il Java Collections Framework (slides: pptx pdf). I tipi parametrici. Le interfacce Iterator, Iterable e Collection. Gli iteratori e il ciclo for-each.
    (rif. [B] §§1.4.6, 1.4.7)
  • 7) 19.10.2015 Il Java Collections Framework (continua) (slides: pptx pdf). L'interfaccia List; Strutture dati elementari: tecniche per rappresentare collezioni di oggetti (strutture indicizzate e strutture collegate) (rif. [B] §§2.1--2.3); Le classi ArrayList e LinkedList.
    Esercitazione di riepilogo su: inizializzatori, classi String e Scanner, liste.
  • 8) 26.10.2015 Le liste concatenate. La classe SinglyLinkedList: una classe giocattolo. (SinglyLinkedList.java versione parziale).
  • 9-10) 28.10.2015 (4h) Le liste concatenate (continua). Esercitazione: SinglyLinkedList.java.
    ADT stack e queue (slides: pptx pdf) (rif. [B] §§2.4-2.5). Interfacce Stack e Queue e relative implementazioni in Java mediante array e liste.
    La notazione javadoc e suo esempio di uso nell'implementazione del ADT stack.
  • 11) 02.11.2015 Applicazioni ADT stack: conversione di un'espressione da forma infissa a forma postfissa; valutazione di un'espressione postfissa Il linguaggio Postscript e relativi esempi di file PS. (Rif. §4.3, Algoritmi in Java, R. Sedgewick, terza ed. Addison-Wesley).
    Ordinamento di array: Richiami sugli algoritmi di ordinamento insertionSort, selectionSort, bubbleSort, mergeSort e relativa implementazione (array di interi).
  • 12) 04.11.2015 Ordinamento di array (continua): Implementazione iterativa del mergesort; richiami sull'algoritmo quickSort e relative implementazioni ricorsive e iterative. Esercitazione: Misura delle prestazioni degli algoritmi di ordinamento di array di interi (Rif. 11-12-ArraySorts.rar).
  • 13) 09.11.2015 Ordinamento di array di oggetti generici basato sull'uso delle interfacce Comparable e Comparator. Uso del metodo Collections.sort(). Esercitazione.
    (Rif. 13-generic-ArraySorting.rar)
  • 14) 11.11.2015 Ordinamento di liste collegate semplici di oggetti generici basato sull'uso delle interfacce Comparable e Comparator.
  • 15-16) 18.11.2015 (4h) Ordinamento di liste collegate semplici (continua).
    Esercitazione preparatoria per la prima prova parziale.
  • 17) 30.11.2015 Alberi binari: definizione e proprietà; l'interfaccia BinaryTree, le classi BinaryNode e LinkedBinaryTree. Visite di alberi binari: visite ricorsive in profondità (preorder, inorder, postorder).
  • 18) 02.12.2015 Alberi binari (continua): visita in ampiezza di un albero binario. Esercitazione: visite iterative in profondità; calcolo dell'altezza di un albero binario. (Rif. 17-18-BinaryTree.rar).
  • 19) 09.12.2015 Correzione della I prova parziale.
    Alberi binari (continua). Esercitazione: costruzione di un albero binario basata su una lista; test dei pricipali metodi. (Rif. 19-BinaryTree(continua).rar).
  • 20) 10.12.2015 La struttura dati heap. La classe BinaryHeap. Costruzione top-down e bottom-up di uno heap. Heapsort.
    (Rif. [B] §4.3, 20-BinaryHeap-heapSort.rar)
  • 21) 14.12.2015 Heap binari (continua): L'interfaccia Queue e la classe PriorityQueue. Alberi binari di ricerca (BST): definizione e proprietà; Le interfacce Set e SortedSet e la classe TreeSet.
    (Rif. 21-PriorityQueue-TreeSet.rar)
  • 22) 16.12.2015 Alberi di ricerca bilanciati: Alberi 2-3-4 bilanciati e Alberi Red-Black.
    (Rif. 22-Alberi bilanciati.pptx, 22-Alberi bilanciati.pdf)
  • 23) 21.12.2015 Alberi binari di ricerca : realizzazione della classe BinarySearchTree.
    (Rif. [A] §§11.1.2, 23-BST.rar)
  • 24) 11.01.2016 l'interfaccia Map e la classe treeMap (Rif. 24-Map.rar (ver .pptx), 24-JCF-Map.pdf (ver .pdf)).
  • 25) 13.01.2016 Grafi: definizioni e terminologia; rappresentazione di grafi. Visite in ampiezza (breadth-first iterator) ed in profondità (depth-first iterator). La classe Network (Rif. lez25-Grafi-Iparte.rar (ver .pptx), lez25-Grafi-Iparte.pdf (ver .pdf)).
  • 26) 18.01.2016 Algoritmi per grafi: iteratori in ampiezza ed in profondità, verifica della connessione, costruzione di un minimo albero ricoprente (Prim) e di un albero dei cammini minimi a sorgente singola (Dijkstra).
    La classe Network (continua). Il metodo getShortestPath(). (Rif. lez26-Grafi-IIparte.rar (ver .pptx), lez26-Grafi-IIparte.pdf (ver .pdf)).
  • 27) 21.01.2015 La classe Network (continua). Il metodo getMinimumSpanningTree(). Esercitazione preparatoria per la seconda prova parziale. (Rif. lez27-esercitazione).



Testo di riferimento:
[A] Algoritmi e strutture dati in Java. Autore: W. J. Collins (Ed. Maggioli)
Dettagli: CAP 1 (§§ 1.2, 1.3), CAP 2 (§§ 2.1--2.5), CAP 3 (§§ 3.1, 3.7, 3.8), CAP 5, §6.5, CAP 7 (§§ 7.1, 7.2), CAP 8 (§§ 8.1--8.3), CAP 9 (escluso §9.2.4), CAP 10, CAP 11 (escluso alberi AVL), CAP 12 (escluso Radix Sort), CAP 13 (§§ 13.1, 13.2, 13.5.0, 13.5.1), CAP 14 (§§ 14.1--14.4), CAP 16.

Testo consigliato:
[B] Progetto di algoritmi e strutture dati in Java. Autori: C. Demetrescu, U. Ferraro Petrillo, I. Finocchi, G. F. Italiano (Ed. McGraw-Hill)
Dettagli: CAP 1 (§§ 1.1--1.3, 1.4.1, 1.4.2--1.4.4, 1.4.6), CAP 2 (§§ 2.1--2.5); §4.3.

Altri testi (in inglese):
Data Structures and the Java Collections Framework. Author: W. J. Collins
Data Structures & Problem Solving Using Java. Author: M. A. Weiss
Data Structures and Algorithm Analysis in Java. Author: M. A. Weiss
In evidenza
  • 09.09.2016 Risultati delle prove scritte d'esame di ASDL-modulo di Laboratorio di martedì 6 settembre 2016.
    Le prove orali e/o verbalizzazioni si svolgeranno martedì 13 c.m. alle ore 12.00 (aula da definirsi).
    Si ricorda che l'orale di Laboratorio deve essere sostenuto prima di quello di Teoria. Nel caso la prova orale sia obbligatoria, essa deve essere svolta entro la sessione corrente. Tutti gli studenti sono invitati a prendere visione del compito. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 09.07.2016 Risultati delle prove scritte d'esame di ASDL-modulo di Laboratorio di giovedì 7 luglio 2016.
    Le prove orali e/o verbalizzazioni si svolgeranno martedì 12 c.m. alle ore 10.00 presso la Sala Riunioni dell'Edificio Alan Turing (ex Blocco Zero).
    Si ricorda che l'orale di Laboratorio deve essere sostenuto prima di quello di Teoria. Nel caso la prova orale sia obbligatoria, essa deve essere svolta entro la sessione corrente. Tutti gli studenti sono invitati a prendere visione del compito. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 27.06.2016 Risultati delle prove scritte d'esame di ASDL-modulo di Laboratorio di giovedì 23 giugno 2016.
    Le prove orali e/o verbalizzazioni si svolgeranno martedì 28 c.m. alle ore 10.00 (aula A1.4 del Blocco 0).
    Si ricorda che l'orale di Laboratorio deve essere sostenuto prima di quello di Teoria. Nel caso la prova orale sia obbligatoria, essa deve essere svolta entro la sessione corrente. Tutti gli studenti sono invitati a prendere visione del compito. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 19.04.2016 Risultati delle prove scritte d'esame di ASDL di Lunedì 18 Aprile 2016.
    Le prove orali e/o verbalizzazioni con il Prof. Proietti si svolgeranno domani 20.04.2016 alle ore 14.00 (aula da definirsi).
    Le prove orali di laboratorio e la revisione dei compiti si svolgeranno presso lo studio della docente domani alle ore 11.30.
    Si ricorda che l'orale di Laboratorio deve essere sostenuto prima di quello di Teoria. Nel caso la prova orale sia obbligatoria, essa deve essere svolta entro la sessione corrente. Tutti gli studenti sono invitati a prendere visione del compito. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 15.02.2016 Risultati delle prove d'esame di ASDL - modulo di Laboratorio di Giovedì 11 Febbraio 2016.
    Le prove orali e/o verbalizzazioni si svolgeranno Martedì 16.02.2016 ore 10.30 presso lo studio dei docenti (secondo piano del Blocco Zero).
    Si ricorda che l'orale di Laboratorio deve essere sostenuto prima di quello di Teoria. Nel caso la prova orale sia obbligatoria, essa deve essere svolta entro la sessione corrente.
    Tutti gli studenti sono invitati a prendere visione del compito, sempre domani, a partire dalle 9:30. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 02.02.2016 Risultati delle prove d'esame parziali e totali di ASDL - modulo di Laboratorio di Mercoledì 27 Gennaio 2016.
    Le prove orali e/o verbalizzazioni si svolgeranno Giovedì 04.02.2016 ore 10.30 presso lo studio dei docenti (secondo piano del Blocco Zero).

    NB: Per agevolare gli studenti che giovedì 4 febbraio saranno impegnati nello svolgimento della prova scritta di sistemi operativi, coloro che (non essendo obbligati) non intendono sostenere la prova orale di Laboratorio potranno eventualmente sostenere oggi la sola prova orale di Teoria presentandosi direttamente alle ore 12:30 presso lo studio del Prof. Proietti. In tale caso la mancata presa di visione del compito di Laboratorio, che non potrà avvenire prima di giovedì, comporterà ovviamente l'accettazione del voto conseguito.
    L'orale obbligatorio di Laboratorio potrà essere sostenuto anche al II appello, sempre prima di quello di Teoria (doodle).
  • 20.01.2016 Si avvisa che la lezione di oggi 20 gennaio sarà recuperata domani 21 pomeriggio, subito dopo la lezione di Teoria del Prof. Proietti.
  • 19.01.2016 Si avvisa che la lezione di LASD di mercoledì 20 gennaio è annullata.
  • 02.12.2015 I prova parziale di ASDL-modulo di Laboratorio del 24.11.2015: Traccia del I parziale e Risultati della prova.
  • 02.12.2015 Si avvisa che la lezione di LASD di lunedì 7 dicembre è annullata e sarà recuperata giovedì 10 dicembre, ore 11-13, aula A1.6, al posto della lezione di Sistemi Operativi (Prof. Cortellessa).
  • 26.11.2015 Risultati delle prove d'esame di ASDL (12 cfu) e LASD (6 cfu) del 24.11.2015.
    Le prove orali e/o verbalizzazioni si svolgeranno martedì 1 dicembre presso lo studio dei docenti (secondo piano del Blocco Zero): ore 15 laboratorio, ore 16 teoria.
  • 13.11.2015 Si ricorda che nella settimanda dal 23 al 27 novembre le lezioni sono sospese per consentire lo svolgimento delle prove parziali.
    La I prova parziale di ASDL si svolgerà martedì 24 novembre alle ore 10:30, aula A1.6 (Blocco Zero).
  • o6.11.2015 Si avvisa che lunedì 16 novembre, a causa della concomitante cerimonia di inaugurazione dell'anno accademico 2015/2016, le aule dell'edificio "Alan Turing" (Blocco 0) non potranno essere usate. Pertanto la lezione di LASD delle ore 14-16 è annullata. Per consentirne il recupero, la lezione di mercoledì 18 novembre avrà inizio alle ore 9:30 (Aula A1.6).
  • 12.10.2015 Si avvisa che mercoledì 21 ottobre in aula A1.6 si svolgerà la seduta di Laurea. A causa di questa concomitanza la lezione di LASD delle ore 11-13 è annullata. Per consentirne il recupero, la lezione di mercoledì 28 ottobre avrà inizio alle ore 9:30 (Aula A1.6).
Risorse
Errata Corrige
  • Rif. Lez. 8--10) SinglyLinkedList.java: il campo size non è statico.