Courses I teach/have taught:


Algorithms for Massive Data (Ca’ Foscari - CM0622)

Material:

2022/2023 programme:

  • 15/02/2023 - course intro, asymptotic notation [Nav, sec 1.5]
  • 17/02/2023 - basics of information theory [Nav, sec 2.1 - 2.5]
  • 01/03/2023 - Shannon-Fano, Huffman, variable length codes, bitvectors [Nav, sec 2.6 - 2.9, 4.1.1]
  • 03/03/2023 - zero-order compressed bitvector with access and rank [Nav, sec 4.1.1, 4.2, slides]
  • 04/04/2023 - very sparse bitvectors (Elias-Fano) [Nav 4.4, slides], intro to compressed indexing [slides]
  • 08/03/2023 - Compressed suffix array (CSA) [Nav 11.1, slides]
  • 10/03/2023 - Wavelet trees [Nav 6.2, slides] and Burrows-Wheeler transform [Nav 11.3.1, slides]
  • 11/03/2023 - FM index [NAV 11.2, slides]
  • 15/03/2023 - Recap of probability theory [Pre 1.1]
  • 17/03/2023 - Concentration bounds [Pre 1.2], Introduction to hashing [Pre 1.3]
  • 24/03/2023 - k-wise independent and universal hashing, hash tables [Pre 1.3]
  • 25/03/2023 - hash tables (cont) [Pre 1.3], Bloom filters [Pre 2.1]
  • 29/03/2023 - Counting Bloom filters [Pre 2.2]
  • 31/03/2023 - Quotient Filters [Pre 2.3]
  • 05/04/2023 - Rabin hashing [Pre 3.1], MinHash - min-wise permutations [Pre 3.2.1]
  • 07/04/2023 - minHash [Pre 3.2.2], sketching for Hamming distance [Pre 3.3], LSH [Pre 3.5]
  • 12/04/2023 - Locality-Sensitive Hashing (LSH), Nearest Neighbor Search (NNS) [Pre 3.5]
  • 14/04/2023 - Intro to streaming, cardinality estimation with MinHash, Reservoir sampling [Pre ch. 4 intro], [Dem-Fin ch. 8]
  • 19/04/2023 - Pattern matching on streams: Karp-Rabin, Porat&Porat [Pre 4.1.1, 4.1.2]
  • 21/04/2023 - Approximate pattern matching on streams (Hamming distance) [Pre 4.1.2]
  • 26/04/2023 - Probabilistic counting: Morris’ algorithm, Median trick [Pre 4.2]
  • 28/04/2023 - Cardinality estimation: idealized FM, bottom-k [Pre 4.3]
  • 03/05/2023 - Frequency estimation, Misra-Gries [Cha unit 1], second order moment, Tug-Of war, dimensionality reduction [Cha unit 7]
  • 05/05/2023 - Sum integers in a window: DGIM algorithm [Pre 4.4]


Compressed data structures (Ca’ Foscari)

link


Algorithms for massive data (University of Udine)

My notes on sketching and streaming algorithms. PhD in Computer Science, Mathematics, and Physics / School for Advanced Studies of the university of Udine, AA 2021/2022, 2022/2023, 2023/2024.


Programmazione e laboratorio (Ca’ Foscari)

link: Programmazione e laboratorio. Ca’ Foscari, Venezia, secondo semestre AA 2020/2021 - 2021/2022 - 2022/2023 - 2023/2024.


Data management (Ca’ Foscari)

link: Data management 2020/2021. Ca’ Foscari, Venezia, secondo semestre AA 2020/2021.


Informatica per i beni culturali (Ca’ Foscari)

links:


Informatica (LUISS)

link: Informatica. LUISS Guido Carli, Roma, secondo semestre AA 2019/2020.


Laboratorio di Fondamenti di Programmazione (Università di Pisa)

links:


Other:

  • International summer school on Compact data structures. Universidade da Coruña (Spain). July 30 - August 17, 2018, 6 ECTS. Lecturers: Travis Gagie and Nicola Prezza.

  • Compact data structures. PhD course. Technical University of Denmark (DTU), Kgs. Lyngby. September - December 2017.

  • Summer school: Aligning DNA sequences on compressed collections of genomes. The CODATA-RDA Research Data Science Applied workshops on Extreme sources of data, Bioinformatics and IoT/Big-Data Analytics, ICTP, Trieste. July 2017.

  • Laboratorio di Architettura degli Elaboratori. 3 ECTS. University of Udine. Fall 2015.

  • Laboratorio di Architettura degli Elaboratori. 3 ECTS. University of Udine. Fall 2014.

  • Sequence Analysis for Epigenomics. 2nd Bioinformatics Introductory Course, Polo d’Innovazione Genomica, Genetica e Biologia, Perugia.

CDS
Me, Travis, Gonzalo (and his book!), and our wonderful class at the Compact data structures summer school in Coruña (2018)