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 è  7yrntte 

      Cercate il teams usando il codice 265SM. 

      Docente: Luca Bortolussi, stanza 3.33 Via Economo, lbortolussi@units.it

      Tutor: Gloria Pietropolli, Via Economo, gloria.pietropolli@units.it

                  Francesca Randone, francesca.randone@units.it

      Repository GitHub del corso: TBA

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

      Video: i video delle lezioni sono disponibili sul Team del corso. 

    • Introduzione

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

    • Nozioni di base

      modello RAM.

    • Notazione asintotica

      Complessità algoritmica e notazione asintotica. 

    • Ordinamento

      binary search, insertion sort, selection sort, bubble sort, merge sort.

    • Tutorato 1 - 04 ottobre 2024

    • Ordinamento e ricorsione 

      merge sort, equazioni ricorsive

    • HW 1 - 11 ottobre 2024

      Scadenza per la consegna: 28 Ottobre 2024

    • Opened: Friday, 18 October 2024, 12:00 AM
      Due: Monday, 28 October 2024, 12:00 AM
    • Heapsort

      Code di priorità, heap,  heapsort

    • Tutorato - Esercizi di Ordinamento

    • Opened: Monday, 28 October 2024, 12:00 AM
      Due: Monday, 11 November 2024, 12:00 AM
    • Quicksort

      Quicksort, correttezza e complessità di partition. complessità nel caso medio

    • Lower bound dell'ordinamento e ordinamento lineare
      lower bound per ordinamento a confronti, counting sort, radix sort, bucket sort

    • Mediane e Selezione

      Select, quick_select, median of medians

    • Strutture dati fondamentali
      Liste concatenate, doppiamente concatenate, array circolari, pile e code, dizionari

    • Tutorato 8 Novembre 2024

      Esempi di induzione, Esercizi su algoritmi di ordinamento

    • Alberi binari di ricerca
      Definizione, Inserimento, cancellazione, massimo, successore

    • Splay Tree
      Splay Tree, rotazioni. 

    • Alberi AVL, Red Black Trees

      Alberi AVL, alberi di Fibonacci, altezza degli alberi AVL Inserimento e cancellazione in alberi AVL, alberi rosso neri, dynamic select

    • Lezione 14 - 13 novembre 2023 - analisi ammortizzata
      metodo dell'aggregazione, del banchiere, del potenziale. Analisi ammortizzata degli alberi splay. 

    • Tabelle di hash

      tabelle di hash, chaining, funzioni di hash

    • Hash con open addressing

      Open addressing, funzioni di probing (lineare, quadratico e double hashing), costo medio della ricerca 

    • Tutorato 29 novembre 2024

      Correzione provetta intermedia ed esercizio su alberi binari di ricerca. 

    • HW 3 - 29 novembre 2024

    • Opened: Monday, 2 December 2024, 12:00 AM
      Due: Monday, 16 December 2024, 12:00 AM
    • Tutorato 6 Dicembre 2024

      Esercizi su alberi AVL, analisi ammortizzata e hashing.

    • Introduzione ai grafi e visita in ampiezza
    • visita in profondità

      visita in profondità, proprietà di DFS, algoritmo di Tarjan.

    • Bellman-Ford e Dijkstra

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

    • Tutorato 13 Dicembre 2024

      Esercizi su grafi.

    • Programmazione dinamica

      Programmazione dinamica, longest common subsequence

    • Programmazione dinamica e grafi

      LCS, Edit Distance

    • HW4

    • Opened: Monday, 23 December 2024, 12:00 AM
      Due: Monday, 6 January 2025, 11:59 PM
    • 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 regolarmente 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 2 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.