Unibo Logo

Algoritmi e Strutture Dati

Docente: Alberto Montresor
alberto.montresor@unitn.it

 Home
 Informazioni generali
Materiale didattico

Introduzione

Obiettivi del corso

Il corso ha lo scopo di presentare i concetti fondamentali dell'algoritmica, ovvero quella branca dell'informatica che riguarda la definizione e la progettazione degli algoritmi, l'analisi della loro correttezza ed efficienza, la dimostrazione delle loro limitazioni e complessità e lo studio dei dati da essi elaborati.

Verranno presentati algoritmi per risolvere alcuni dei problemi fondamentali (quali ordinamento e selezione), strutture dati elementari (quali pile, code, alberi, grafi, etc.), strutture dati avanzate (alberi red-black, heap, tabelle hash, etc.). Infine, particolare enfasi verrà dedicata alle metodologie di progettazione di algoritmi (programmazione dinamica, metodo greedy, divide et impera, backtracking, etc.) e all'analisi degli algoritmi (notazione asintotica, ricorrenze, etc.).

Prerequisiti

Si assume che lo studente conosca i concetti presentati nei corsi di Analisi, Matematica Discreta 1-2, Programmazione 1-2, più qualche elemento di calcolo delle probabilità.

Mailing list

Il corso è dotato di una mailing list.

Annunci

Lezioni

  1. 23/2, Introduzione al corso, Introduzione
  2. 24/2, Introduzione, Analisi di algoritmi - Parte 1

Anno precedente

  1. 25/2, Analisi di algoritmi - Parte 2
  2. 28/2, Analisi di algoritmi - Parte 3, Funzioni di complessità - Parte 1
  3. 02/3, Funzioni di complessità - Parte 2
  4. 07/3, Esercitazione 1
  5. 09/3, Funzioni di complessità - Parte 3
  6. 10/3, Tipi di dato e strutture di dati, Strutture dati elementari
  7. 11/3, Alberi
  8. 14/3, Alberi binari di ricerca
  9. 18/3, Esercitazione
  10. 21/3, Esercitazione
  11. 23/3, Grafi - 1
  12. 24/3, Grafi - 2
  13. 25/3, Tabelle hash (Guerrieri)
  14. 28/3, Esercitazione
  15. 30/3, Strutture dati speciali
  16. 31/3, Scelta della struttura dati
  17. 01/4, Divide-et-impera
  18. 04/4, Esercitazione
  19. 06/4, Programmazione dinamica 1
  20. 07/4, Programmazione dinamica 2
  21. 08/4, Algoritmi "avanzati"
  22. 11/4, Esercitazione pre-compito (L)
  23. 13/4, Greedy 1
  24. 14/4, Greedy 2
  25. 15/4, Esercitazione (Guerrieri)
  26. 18/4, Esercitazione pre-compito
  27. 20/4, Greedy 3
  28. 21/4, Esercitazione - domande
  29. 27/4, Backtrack
  30. 28/4, Esercitazione pre-compito (L)
  31. 29/4, Esercitazione pre-compito
  32. 02/5, Primo mid-term (L)
  33. 04/5, Ricerca locale 1
  34. 05/5, Ricerca locale 2
  35. 06/5, Correzione mid-term
  36. 11/5, Esercitazione (Guerrieri)
  37. 12/5, Esercitazione (Guerrieri)
  38. 16/5, Esercitazione
  39. 18/5, Algoritmi probabilistici
  40. 19/5, Problemi intrattabili
  41. 23/5, Esercitazione
  42. 25/5, Esercitazione
  43. 27/5, Secondo mid-term (L)