Section outline

    • Algoritmi e Strutture Dati

      Intelligenza Artificiale e Data Analytics

      In questa pagina, verranno linkati tutti i video delle lezioni, e messo a disposizione del materiale di studio, esercizi, etc.

      L'accesso ai video delle lezioni richiede di essere iscritti al teams del corso.

      Il codice per l'accesso è  l12bfmt 

      Cercate il teams usando il codice 265SM. 

      Docente: Luca Bortolussi, stanza 328 H2bis, lbortolussi@units.it

      Tutor: Gloria Pietropolli, H2bis, gloria.pietropolli@phd.units.it

      Ricevimento: previo appuntamento via email.

      Libri di testo: Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms (Introduzione agli algoritmi) 3rd edition. MIT Press (McGraw Hill per l’edizione italiana)

    • Lezione 0 - introduzione (05 ottobre 2021)

      nozione di algoritmo, complessità, insertion sort, algoritmo di Euclide

    • Lezione 1 - nozioni di base (07 ottobre 2021)

      modello RAM, calcolo della complessità, notazione asintotica.

    • Tutorato 1 - 08 ottobre 2021

    • Lezione 2 - algoritmi di ordinamento, parte I (12 ottobre 2021)

      notazione asintotica, ricerca binaria, insertion sort

    • Lezione 3 - 14 ottobre 2021 - ordinamento e ricorsione

      bubble sort, selection sort, merge sort, equazioni ricorsive

    • Tutorato 2 - 15 ottobre 2021

    • Lezione 4 - 19 Ottobre 2021 - ricorsione
      equazioni di ricorsione, sostituzione, albero di ricorsione e teorema dell'esperto

    • Lezione 10 - 16 Novembre 2021 - Strutture dati fondamentali
      Liste concatenate, doppiamente concatenate, array circolari, pile e code, dizionari

    • Lezione 11 - 17 Novembre 2021 - Alberi binari di ricerca
      Inserimento

    • Lezione 12 - 23 Novembre 2021 - Splay Tree
      Splay Tree, rotazioni. Alberi AVL, alberi di Fibonacci, altezza degli alberi AVL

    • Lezione 13 - 25 Novembre 2021 -  Alberi AVL

      Inserimento e cancellazione in alberi AVL

    • Lezione 14 - Alberi Rosso Neri e Dynamic Select. 
      Alberi rosso-neri, dynamic select su BST

    • Lezione 15 - 02 dicembre 2021 - analisi ammortizzata
      metodo dell'aggregazione, del banchiere, del potenziale. Analisi ammortizzata degli alberi splay. 

    • Tutorato 9 - 03 dicembre 2021

    • Lezione 18 - 10 dicembre 2021 - grafi e visita in ampiezza

      introduzione ai grafi, visita in ampiezza, correttezza e complessità. 

    • Lezione 19 - 14 dicembre 2021 - visita in profondità

      visita in profondità, proprietà di DFS.

    • Lezione 20- 16 dicembre 2021 - ordinamento topologico e componenti fortemente connesse

      componenti fortemente connesse, ordinamento topologico.

    • Lezione 21- 17 dicembre 2021 - Bellman-Ford e Dijkstra

      Cammini minimi in grafi pesati, Algoritmi di Bellman-Ford e Dijkstra.

    • Tutorato 11 - 17 dicembre 2021

    • Lezione 22 - 21 dicembre 2021 - programmazione dinamica

      Programmazione dinamica, longest common subsequence

    • Lezione 23 - 23 dicembre 2021 - programmazione dinamica e grafi

      Edit Distance, Algoritmo di Floyd-Varshall per all-pairs shortest path

    • Esercitazione - 14 gennaio 2022 - Programmazione Dinamica e Grafi

    • Esercizi su Programmazione Dinamica

    • L’esame avrà una parte scritta ed una orale, obbligatorie.

      • Scritto: risoluzione di problemi tipo quelli visti durante il corso.
      • Orale: domande sulla teoria e risoluzione di problemi, vale ±5 punti.
      • Provette: ci saranno due provette intermedie (a metà corso e alla fine). Chi le supera entrambe può saltare lo scritto (vale la media delle provette come voto dello scritto).
      • Homework: verranno dati settimanalmente alcuni esercizi per casa, sia problemi da risolvere che esercizi implementativi. Chi li consegna in tempo, in funzione del voto preso, avrà dei punti bonus allo scritto (massimo 3 punti, ma il passaggio da 29 a 30 costa due punti).
      • La lode si può prendere solo con l’orale, di norma con un voto sullo scritto di almeno 27.