ADVANCED COMPUTER SCIENCE - MOD. 2
- Anno accademico
- 2023/2024 Programmi anni precedenti
- Titolo corso in inglese
- ADVANCED COMPUTER SCIENCE - MOD. 2
- Codice insegnamento
- CM0604 (AF:441348 AR:245287)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6 su 12 di ADVANCED COMPUTER SCIENCE
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- ING-INF/05
- Periodo
- II Semestre
- Anno corso
- 1
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Risultati di apprendimento attesi
1. Conoscenza e comprensione:
Al termine del corso lo studente conoscerà le principali tecniche di sketching, streaming e strutture dati compresse.
2. Capacità di applicare conoscenza e comprensione:
Al termine del corso lo studente sarà in grado di applicare le tecniche algoritmiche apprese (sketching, streaming, strutture compresse) per risolvere problemi tipici di analisi e manipolazione di dati massivi.
3. Capacità di giudizio:
Al termine del corso lo studente sarà in grado di utilizzare le conoscenze acquisite per:
- Identificare l'algoritmo e la struttura dati più adatta a risolvere una determinata problematica nell'ambito dei massive data.
- Analizzare in modo rigoroso le performance di algoritmi randomizzati (runtime, approssimazione, probabilità di successo).
- Leggere e comprendere in modo indipendente articoli di ricerca nel settore.
- Implementare algoritmi esistenti e progettarne di nuovi.
Prerequisiti
- Algoritmi e strutture dati (complessità asintotica, strutture dati di base)
- Matematica discreta (aritmetica modulare)
Contenuti
- Introduzione. Basi di teoria dell'informazione (Worst-case Entropy, statistical entropy, compressione dati)
- strutture compresse per insiemi e stringhe (sorted integers, Elias-Fano, succinct bitvectors, wavelet trees)
- Compressed suffix array
- FM-index / r-index
- Indici per grafi e linguaggi regolari
(2) algoritmi e strutture dati lossy
2.1 Ripasso di teoria delle probabilità
- definizioni di base, concentration bounds
- Hashing
2.2 Filtri
- Bloom, counting bloom
- Quotient filters
2.3 Similarity-preserving sketching
- Rabin hashing, Shingling
- MinHash (Jaccard distance), permutazioni Min-wise.
- locality-sensitive hashing
- nearest neighbor search
2.4 Pattern matching su streams
- Pattern matching & streaming, algoritmo di Karp-Rabin
- Algoritmo di Porat-Porat's
- Estensioni ad approximate pattern matching (Hamming distance)
2.5 Sketching su streams
- Algoritmo di Morris
- Algoritmo di Flajolet-Martin, Algoritmo Bottom-k
- Algoritmi Tidemark, BJKST
- Frequent itemsets. Algoritmo di Misra-Gries
- Algoritmo Tug-of-war algorithm e dimensionality reduction
- Higher moments - Algoritmo AMS
- Algoritmo di Datar-Gionis-Indyk-Motwani e estensioni
Testi di riferimento
- Dispense del docente: https://arxiv.org/abs/2301.00754
- Chakrabarti, Amit, 2020. Data stream algorithms - lecture notes: https://www.cs.dartmouth.edu/~ac/Teach/data-streams-lecnotes.pdf
- Navarro, Gonzalo, 2016. Compact data structures: a practical approach. Cambridge University Press.
- slides del docente e articoli originali di ricerca