You are in: Home » Teaching » Algoritmi e Strutture Dati 2015-2016

Algoritmi e Strutture Dati moduli 2-3
Laurea in Informatica per il Management, Università di Bologna, AA 2015/2016

[ Avvisi | Programma e libri di testo | Modalità d'esame | Risposte a domande frequenti (FAQ) | Progetti | Orario delle lezioni | Lucidi delle lezioni | Appelli d'esame ]

Avvisi

Questa edizione del corso è conclusa. A partire dall'anno accademico 2016/2017 il modulo 2 del corso di Algoritmi e Strutture Dati sarà tenuto dal prof. Gianluigi Zavattaro.

10/2/2017
È disponibile il testo con traccia di alcune soluzioni del compito del 9 febbraio 2017. Gli studenti iscritti all'esame dovrebbero aver ricevuto notifica via mail della pubblicazione dei voti (in caso contrario contattatemi).

Descrizione del corso, programma e libri di testo

Questa è la pagina del corso di Algoritmi e Strutture Dati moduli 2-3, corso di laurea in Informatica per il Management, AA 2015/2016, Università di Bologna.

Il corso è annuale e diviso in due moduli da 6 CFU:

Nel corso verranno trattati i seguenti argomenti:

Testo adottato

Dispensa di esercizi svolti

Altri testi di consultazione

Altro materiale

Modalità d'esame (leggere con attenzione)

Risposte a domande frequenti (FAQ)

  1. È sufficiente studiare sui lucidi per superare l'esame?
    Ritengo di no. I lucidi sono pensati per accompagnare le spiegazioni a lezione, non per sostituire il libro di testo.
  2. Quali sono i capitoli da studiare?
    Le parti del libro trattate a lezione sono indicate nel calendario delle lezioni. Si presti attenzione al fatto che la numerazione dei capitoli fa riferimento alla seconda edizione del libro, che è quella in mio possesso.
  3. C'è qualche consiglio per superare al meglio l'esame?
    Per superare l'esame del corso suggerisco di (1) studiare la teoria sul libro, eventualmente aiutandosi con i lucidi delle lezioni; (2) fare quanti più esercizi possibile (senza guardare prima le soluzioni!); (3) provare a implementare in Java qualcuna delle soluzioni agli esercizi (ricordate Confucio: Se ascolto dimentico; se vedo ricordo; se faccio capisco).
  4. Ci sono esempi di esercizi simili a quelli che vengono proposti all'esame?
    Sì, gli esercizi presenti nella dispensa sono quasi interamente tratti da esami degli anni passati.
  5. C'è il salto di appello?
    No. Se pero' si verificherà l'effetto assalto alla diligenza da parte di studenti palesemente impreparati, ci riserviamo la possibilità di verbalizzare su AlmaEsami anche i voti insufficienti e ritirati, come previsto dal regolamento didattico di Ateneo. Questi comunque non fanno media e non compaiono in eventuali certificazioni degli esami sostenuti, ma restano visibili su almaEsami.
  6. Cosa devo fare per accettare il voto della prova scritta?
    Le istruzioni sono riportate tra le modalità d'esame. Per accettare il voto non si deve fare nulla; per rifiutare il voto è necessario darne comunicazione ai docenti entro la data indicata nella mail di notifica di pubblicazione dei risultati. Tutti i voti non esplicitamente rifiutati si considerano accettati.
  7. Intendo superare l'esame svolgendo i progetti. Posso evitare lo studio della teoria?
    No. La discussione dei progetti sarà quasi esclusivamente basata su domande di teoria. Un orale insufficiente comporta il non superamento della prova.
  8. Verranno assegnati altri progetti oltre a quelli alla fine dei due moduli?
    No.
  9. Mi "devo" laureare. Posso fare un appello straordinario / orale integrativo?
    No.
  10. Ho superato il primo progetto ma non il secondo (o viceversa). Posso recuperare la parte mancante?
    Sì. È possibile recuperare il progetto mancante sostenendo la prova scritta solo sulla parte relativa al modulo corrispondente. Nel testo degli esami saranno indicati chiaramente gli esercizi da svolgere per chi deve recuperare uno dei progetti.
  11. Non ho svolto/superato nessuno dei due progetti. Posso svolgere solo la parte di compito relativa a uno dei due moduli, e recuperare la parte mancante in un appello successivo?
    No, chi non ha superato nessuno dei due progetti deve necessariamente svolgere l'intero compito scritto, su tutto il programma, nello stesso appello.
  12. Posso consultare libri/appunti durante lo scritto?
    Sì, durante la prova scritta è possibile consultare libri o appunti, purché stampati su carta. Non è consentito l'uso di alcun dispositivo elettronico.
  13. [New] Non ho consegnato/superato i progetti del modulo 1, ma vorrei consegnare quelli dei moduli 2-3. Posso sostenere lo scritto al primo appello?
    Si puo' sostenere uno scritto parziale se e solo se vale una delle condizioni seguenti: si ha una valutazione sufficiente per il progetto dell'altra parte, oppure si intende consegnare il progetto entro una delle due scadenze, oppure si è in attesa di discutere un progetto già consegnato. Se la discussione del progetto ha esito negativo o il progetto non viene consegnato eventuali valutazioni precedenti positive dello scritto vengono perse, e lo scritto va rifatto per intero. Ricordiamo invece che i progetti valutati positivamente restano validi per tutto l'anno accademico 2015-2016, a prescindere dall'esito delle prove scritte di recupero che lo studente abbia sostenuto o sostenga in futuro.
  14. [New] Ho scoperto errori nel mio codice dopo la scadenza per la consegna. Posso riconsegnare? Alternativamente, posso ritirarmi dalla prima consegna e rimandare il codice entro la seconda scadenza?
    La risposta è negativa a entrambe le domande. È ammessa al più una consegna dei progetti, esattamente come se si trattasse di una prova scritta.

Progetti

Sono disponibili le specifiche dei progetti dei moduli 2-3. L'archivio contiene sia le specifiche (in formato pdf) degli esercizi, sia i dati di input/output da utilizzare per controllare le proprie implementazioni.

Sono previste due date per la consegna: entro le ore 12:00 (mezzogiorno) di venerdì 10 giugno 2016 (prima consegna) oppure entro le 12:00 (mezzogiorno) di venerdì 1 luglio 2016 (seconda consegna). Ciascuno studente può consegnare al più una volta.

Orario delle lezioni (modulo 2)

Algoritmi e Strutture Dati—Orario del modulo 2, secondo ciclo
Secondo ciclo (Modulo 2)
Giovedì 14:00—16:00, aula M1 Mineralogia
Venerdì 11:30—14:30, aula Ercolani 1

Lucidi delle lezioni

Modulo 1 (Donatiello)

I lucidi del modulo 1 sono disponibili sulla pagina del prof. Donatiello

Modulo 2 (Marzolla Lanese)

Nota: I lucidi non sono da considerare come sostitutivi né del testo di riferimento né della frequenza alle lezioni. In particolare, lo studio sul libro di testo è fondamentale per la comprensione degli argomenti. I lucidi sono quelli utilizzati nel precedente anno accademico, e verrano aggiornati prima delle lezioni. Si presti attenzione al fatto che la numerazione dei capitoli fa riferimento alla seconda edizione del libro, che è quella in mio possesso.

25/2/2016
Introduzione al modulo 2
[ODP] [PDF]
26/2/2016, 3/3/2016
Strutture Merge-Find (Cap. 10.2 Unione di insiemi disgiunti (Merge-Find) del libro di testo, escluso 10.2.4 Compressione dei percorsi)
[ODP] [PDF]
31/3/2016
Tecniche algoritmiche: Divide et Impera (Cap. 12 Divide et impera del libro di testo)
[ODP] [PDF]
Materiale
  • Implementazioni degli algoritmi per il problema del sottovettore di somma massima mostrati a lezione:
    • Implementazione Java dell'algoritmo O(n3) [vecsum.java]
    • Implementazione Java dell'algoritmo divide-et-impera O(n log n) [vecsumdi.java]
1/4/2016
Esercizi divide-et-impera
7/4/2016
Tecniche Algoritmiche: algoritmi greedy (Cap. 14 del libro di testo)
[ODP] [PDF]
8/4/2016
Esercizi su tecniche greedy
14/4/2016, 15/4/2016, 21/4/2016
Tecniche algoritmiche: programmazione dinamica (Cap. 13 del libro di testo)
[ODP] [PDF]
Materiale
  • Implementazioni degli algoritmi per il problema del sottovettore di somma massima mostrati a lezione:
    • versione Java dell'algoritmo O(n3) [vecsum.java]
    • versione Commodore Basic v2.0 per C64 dell'algoritmo O(n) basato sulla programmazione dinamica [vecsum.bas]; per eseguire il programma con l'emulatore VICE è necessario usare il file in formato .prg [vecsum.prg] (sotto Linux usare il comando x64 vecsum.prg)
  • Implementazione in Java dell'algoritmo dello zaino [Zaino.java, esempio di file di input dati-zaino.txt]
  • Descrizione dell'algoritmo Seam Carving; suggerisco a chi è interessato di leggere anche l'articolo originale che descrive l'algoritmo: Seam Carving for Context-Aware Image Resizing
  • Implementazione in Java dell'algoritmo del resto basato sulla programmazione dinamica [Resto.java, esempio di file di input dati-resto.txt]
  • Implementazione in Java dell'algoritmo di calcolo della distanza di Levenshtein [Levenshtein.java]
22/4/2016
Esercizi su programmazione dinamica
28/4/2016
Esercizi su grafi
29/4/2016
Minimum Spanning Trees (Cap. 14.3 del libro di testo)
[ODP] [PDF]
5/5/2016
Esercizi su Spanning Trees
6/5/2016
Cammini di costo minimo (Cap. 11 del libro di testo, escluso 11.8)
[ODP] [PDF]
12/5/2016
Esercizi cammini di costo minimo
13/5/2016, 19/5/2016
Macchine di Turing
[ODP] [PDF]
20/5/2016
Esercizi su Macchine di Turing
20/5/2016
Calcolabilità e complessità
[ODP] [PDF]
26/5/2016
Simulazione d'esame

Appelli d'esame

Nota: è obbligatorio iscriversi tramite AlmaEsami; le liste di iscrizione chiudono alcuni giorni prima dell'appello per consentire l'organizzazione in base al numero effettivo di iscritti.

Appelli d'esame di Algoritmi e Strutture Dati, AA 2015/2016
Sessione estiva (Giugno-Luglio 2016)
I 16/6/2016 ore 10:00-13:00 aula Ercolani 2
II 30/6/2016 ore 10:00-13:00 aula Ercolani 2
[Testo e traccia di alcune soluzioni]
III 18/7/2016 ore 10:00-13:00 aula Ercolani 2
[Testo e traccia di alcune soluzioni]
Sessione autunnale (Settembre 2016)
I 15/9/2016 ore 10:00-13:00 aula Ercolani 2
[Testo e traccia di alcune soluzioni]
Sessione invernale (Gennaio-Febbraio 2017)
I 12/1/2017 ore 10:00-13:00 aula Ercolani 1
[Testo e traccia di alcune soluzioni]
II 9/2/2017 ore 10:00-13:00 aula Ercolani 1
[Testo e traccia di alcune soluzioni]
This page validates as XHTML 1.0 strict This page validates as CSS Check the accessibility of this page with WAVE
This page was last updated on February 10 2017 informativa sulla privacy