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) 22.09.2016 (2h) Presentazione del corso (slides: pdf). Introduzione: Ciclo di sviluppo di codice algoritmico (slides: pdf).
  • 2) 23.09.2016 (3h) Richiami di Java - parte I (slides: pdf). Focus su: struttura di controllo switch, istruzioni break e continue, modificatori fondamentali, inizializzatore statico, inizializzatore d'istanza.
    Esercitazione su modificatori fondamentali, inizializzatori d'istanza e statico: le classi Tempo e Tempo2.
  • 3) 29.09.2016 (2h) Richiami di Java - parte II (slides: pdf). Focus su classi astratte.
  • 4) 30.09.2016 (3h) Classi astratte. Oltre le classi: Le interfacce (slides: pdf).
    Esercitazione: L'interfaccia Ordinabile - ordinamento di array di punti e di array di interi.
  • 5) 6.10.2016 (2h) La libreria standard (slides: pdf). La classe Object ed i metodi equals() e toString(). L'interfaccia Comparable. Le classi wrapper.
    Esercitazione: L'interfaccia Comparable - ordinamento di array di interi e di stringhe.
  • 6) 7.10.2016 (3h) Esercitazione: classi astratte ed interfacce.
    Le classi String e StringBuffer (slides: pdf). Il Java Collections Framework: generics (slides: pdf).
  • 7) 11.10.2016 (2h - recupero) Il Java Collections Framework: Le interfacce Iterator, Iterable e Collection. Gli iteratori e il ciclo for-each (slides: pdf).
  • 8) 13.10.2016 (2h) Il Java Collections Framework (continua): L'interfaccia List; Strutture dati elementari: tecniche per rappresentare collezioni di oggetti; Le classi ArrayList e LinkedList (slides e esercitazione: pdf/java).
  • 9) 14.10.2016 (3h) Esercitazione: epressione algebrica ad una variabile rappresentata come lista di termini.
    Le liste concatenate. La classe SinglyLinkedList (introduzione): una classe giocattolo (slides: pdf).
  • 10-11) 20-21.10.2016 (5h) Le liste concatenate (continua). Implementazione della classe SinglyLinkedList ed esercitazione (SinglyLinkedList.java).
  • 12) 02.11.2016 (2h) ADT stack e queue. Interfacce Stack e Queue e relative implementazioni in Java mediante array e liste (slides e codice java: 12-ADT-Stack-Queue.rar).
    La notazione javadoc e suo esempio di uso nell'implementazione del ADT stack (Cenni).
  • 13) 04.11.2016 (3h) Esercitazione preparatoria per la prima prova parziale.
  • Prima prova parziale 08.11.2016
  • 14) 16.11.2016 (2h) Correzione della I prova parziale. Ordinamento di oggetti generici basato sull'uso delle interfacce Comparable e Comparator (introduzione).
  • 15) 18.11.2016 (3h) Ordinamento di array di oggetti generici basato sull'uso delle interfacce Comparable e Comparator. Uso di Collections.sort() e Arrays.sort(). Esercitazione.
    Richiami sugli algoritmi di ordinamento insertionSort, selectionSort, mergeSort, quicksort e relativa implementazione (array di interi). (Rif. codice java).
  • 16) 23.11.2016 (2h) Ordinamento di array di oggetti generici (continua): Richiami sull'algoritmo bubbleSort e relativa implementazione; implementazione iterativa di mergesort e quickSort. Esercitazione: Misura delle prestazioni degli algoritmi di ordinamento di array di interi. Ordinamento e riduzione di una lista di termini (completamento della lezione 9 del 14.10.2016 ). (Rif. codice java).
  • 17) 25.11.2016 (3h) Alberi binari: definizione e proprietà; l'interfaccia BinaryTree, le classi BinaryNode e LinkedBinaryTree. Visite di alberi binari: visite ricorsive in profondità (preorder, inorder, postorder); visita in ampiezza.
  • 18) 29.11.2016 (2h) La classe LinkedBinaryTree (continua): visite di alberi binari; visite iterative in profondità (preorder, inorder, postorder) (Rif. codice java).
    Heap binari. La classe BinaryHeap.
  • 19) 01.12.2016 (2h - recupero) La classe BinaryHeap (continua). Costruzione top-down e bottom-up di uno heap. Heapsort. Esercitazione. (Rif. codice java).
  • 20) 02.12.2016 (3h) L'interfaccia Queue e la classe PriorityQueue.
    Esercitazione su BinaryNode e LinkedBinaryTree, PriorityQueue (Rif. codice java).
  • 21) 07.12.2016 (2h) Alberi binari di ricerca (BST): definizione e proprietà; Le interfacce Set e SortedSet e la classe TreeSet (Rif. slides e codice java).
    Alberi di ricerca bilanciati: Alberi 2-3-4 bilanciati e Alberi Red-Black (Introduzione).
  • 22) 14.12.2016 (2h) Alberi 2-3-4 bilanciati e Alberi Red-Black (continua): scomposizione di 4-nodi; algoritmo di inserimento top-down con rotazioni. (Rif. slides). Esercitazione: costruzione di un albero 2-3-4 bilanciato.
  • 23) 16.12.2016 (3h) L'interfaccia Map e la classe treeMap (Rif. slides e codice java).
    Esercitazione preparatoria per la seconda prova parziale.
  • 24) 22.12.2016 (2h) Grafi (richiami di teoria): definizioni e terminologia; visite in ampiezza ed in profondità.
    La classe Network: iteratori breadth-first e depth-first (Rif. slides e codice java).
    Algoritmi per grafi (facoltativo): verifica della connessione; costruzione di un albero dei cammini minimi a sorgente singola (Dijkstra): il metodo getShortestPath(); costruzione di un minimo albero ricoprente (Prim): il metodo getMinimumSpanningTree().
    Esercitazione preparatoria per la seconda prova parziale.



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 and Algorithm Analysis in Java. Author: M. A. Weiss
Data Structures & Problem Solving Using Java. Author: M. A. Weiss
In evidenza
  • 07.09.2017 Le prove orali di entrambi i moduli di ASDL si svolgeranno martedì 12 settembre alle ore 9:30 (aula da definirsi).
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, anche nello stesso giorno. Se obbligatorio, per non perdere il voto conseguito nella prova scritta, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto.
    Gli studenti che intendono svolgere la/le prova/e orale/i di Teoria (Proietti) e/o Laboratorio (Melideo) sono pregati di prenotarsi per email contattando i docenti interessati.

  • 06.09.2017 Risultati del VI appello di LASD del 5 Settembre 2017.

  • 07.07.2017 Risultati del V appello di LASD del 4 luglio 2017.
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, volendo anche nello stesso giorno. Se obbligatorio, per non perdere il voto conseguito nella prova scritta, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto.
    Le prove orali di entrambi i moduli di ASDL si svolgeranno martedì 11 luglio 2017 alle ore 10:00 (aula da definirsi).
    Gli studenti che intendono svolgere la/le prova/e orale/i di Teoria (Proietti) e/o Laboratorio (Melideo) sono pregati di prenotarsi per email contattando i docenti interessati.

  • 23.06.2017 Le prove orali di entrambi i moduli di ASDL si svolgeranno martedì 27 Giugno 2017 alle ore 10:30 (aula da definirsi).
    Gli studenti che intendono svolgere la/le prova/e orale/i di Teoria (Proietti) e/o Laboratorio (Melideo) martedì 27 p.v. sono pregati di prenotarsi per email contattando i docenti interessati.

  • 23.06.2017 Risultati del IV appello di LASD del 20 giugno 2017.
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, volendo anche nello stesso giorno. Se obbligatorio, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto.
  • 18.02.2017 Risultati del III appello di LASD del 14 Febbraio 2017.
    Le prove orali di entrambi i moduli di ASDL (Melideo, Proietti) si svolgeranno martedì 21 Febbraio 2017 alle ore 11:00 (aula da definirsi).
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, volendo anche nello stesso giorno. Se obbligatorio, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto. Gli studenti che intendono svolgere la prova orale di Laboratorio martedì 21 p.v. sono pregati di prenotarsi per email contattando la docente.
    Gli studenti che intendono svolgere la prova orale di Teoria martedì 21 p.v. sono pregati di prenotarsi attraverso questo foglio doodle.
  • 06.02.2017 Risultati del II appello di LASD del 02 Febbraio 2017.
    Le prove orali di Laboratorio si svolgeranno martedì 07 Febbraio 2017 alle ore 10:00, aula A1.6 del Blocco 0. Le prove orali di Teoria si svolgeranno lo stesso giorno, alle ore 11, aula A1.6 del Blocco 0.
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, volendo anche nello stesso giorno. Se obbligatorio, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto.
    Gli studenti che intendono svolgere la prova orale di Laboratorio martedì 07 p.v. sono pregati di prenotarsi per email contattando la docente.
    Gli studenti che intendono svolgere la prova orale di Teoria martedì 07 p.v. sono pregati di prenotarsi attraverso questo foglio doodle.
  • 28.01.2017 Rinvio II appello esame del 31.01.2017 In ottemperanza alla delibera di sospensione delle attività didattiche deliberata dalla Rettrice, il II appello della prova scritta di ASDL di martedì 31 gennaio è rinviato a giovedì 2 febbraio alle ore 11, aula A1.6 del Blocco 0. Per particolari esigenze si prega di contattare direttamente i docenti del modulo di interesse per email.
  • 19.01.2017 Le prove orali di Laboratorio e di Teoria del I appello si svolgeranno martedì 24 Gennaio 2017, ore 11:00, secondo Piano Blocco Zero.
    Gli studenti che hanno superato entrambe le prove scritte, e che intendono svolgere la/e prova/e orale/i martedì 24 p.v., sono pregati di prenotarsi per email contattando i docenti interessati.
    Si ricorda che l'orale di Laboratorio (obbligatorio o facoltativo) deve essere sostenuto prima di quello di Teoria, volendo anche nello stesso giorno. Se obbligatorio, l'orale di Laboratorio deve essere svolto nel medesimo appello dello scritto.
  • 19.01.2017 Risultati della II prova parziale di ASDL del 17 gennaio 2017.
    Risultati della I appello d'esame di ASDL del 17 gennaio 2017.
    Tutti gli studenti sono invitati a prendere visione del compito il giorno dello svolgimento degli orali. La mancata presa di visione dello stesso comporta l'accettazione del voto conseguito.
  • 12.01.2017 Risultati della II prova parziale di ASDL del 10 gennaio 2017.
  • 09.01.2017 Svolgimento II prova parziale In considerazione delle sollecitazioni pervenute a seguito delle avverse condizioni meteo, si rende noto che il secondo parziale di "Algoritmi e Strutture Dati con Laboratorio" previsto per il giorno 10/01/2017 alle ore 11.00 in Aula A1.6 si svolgerà regolarmente. Si avvisa inoltre che, al fine di non penalizzare coloro i quali abbiano difficoltà a raggiungere L'Aquila nella giornata di domani, viene contestualmente fissata una prova suppletiva per il secondo parziale per il giorno 17/01/2017 alle ore 11.00 in Aula A1.6, in contemporanea quindi con il primo appello d'esame. Resta inteso che ciascuno studente che abbia maturato il diritto a svolgere la seconda prova parziale può prendere parte ad una ed una sola delle predette prove
  • 20.12.2016 Scambio lezioni Teoria-Laboratorio Si avvisa che la lezione del modulo di Teoria (Proietti) di giovedì 22/12/2016, ore 11.30 Aula A1.6, è anticipata a mercoledì 21/12/2016, ore 11.30 Aula A1.6, in sostituzione della lezione del modulo di Laboratorio (Melideo). Corrispondentemente, la lezione del modulo di Laboratorio è posticipata a giovedì 22/11/2016, ore 11.30 Aula A1.6. Se necessario, previa comunicazione della docente a lezione, la lezione di laboratorio potrà proseguire nel pomeriggio alle ore 14:30 presso l'aula C1.10 Coppito 2.
  • 27.11.2016 Orario settimana 28.11.2016 - 02.12.2016 Come comunicato a lezione, si ricorda che la prossima settimana le lezioni seguiranno il seguente orario: martedì 29.11 ore 11:30-13:30 (A1.6), giovedì 1.12 ore 14:30-16:30 (lezione di recupero, aula C1.10 Coppito 2), venerdì 2.12 ore 10:30-13:30 (A1.6).
    Su richiesta degli studenti la lezione di venerdì 9.12 è sospesa. Se necessario sarà recuperata giovedì 22.12 alle ore 14:30-16:30 presso l'aula C1.10 Coppito 2.
  • 15.11.2016 Risultati del I parziale di ASDL del 8 novembre 2016.
  • 11.11.2016 Risultati della prova scritta di recupero per fuoricorso del 8 novembre 2016.
  • 04.11.2016 La I prova parziale di ASDL si svolgerà martedì 8 novembre alle ore 11:30 in Aula A1.6 (approssimativamente alle ore 11:30-12:10 la prova di teoria, a seguire la prova di laboratorio).
  • 07.10.2016 La lezione di ASD-modulo di Teoria (prof. Proietti) di martedì 11 ottobre (ore 11.30-13:30) è annullata. Al suo posto si svolgerà una lezione del modulo di Laboratorio.
  • Risorse
    Errata Corrige
    • --