| | | corso | | | |
Algoritmi e Strutture Dati: internet e web
(Corso di Laurea in Informatica (quinquennale))
Codice: | 4I111 | Crediti: | 6 | Semestre: | 1 | Sigla: | ASW | |
Docente
Roberto Grossi
Tel. 0502212793Prerequisiti
Conoscenze di base degli algoritmi e delle strutture di dati,
dell'architettura degli elaboratori, di calcolo delle
probabilità, e delle reti di calcolatori.
Obiettivi di apprendimento
Esporre le basi teoriche e le strutture dati fondamentali su cui
poggiano alcuni degli algoritmi utilizzati in Internet e nel World
Wide Web, illustrando alcuni esempi di algoritmi impiegati nei sistemi
software attualmente disponibili.
Descrizione
Un crescente numero di applicazioni informatiche vedono il World Wide
Web e Internet come una sorgente di informazioni e/o una risorsa di
calcolo su cui progettare i propri strumenti software. Il corso si
propone di esporre le basi teoriche, le tecniche di base e le
strutture di dati fondamentali su cui poggiano alcuni degli algoritmi
utilizzati in Internet, in particolare per:
- Gestione e spedizione efficiente di pagine Web (Prof. L. Pagli)
- Protezione crittografica dell'informazione (Prof. F. Luccio)
- Indicizzazione di testi e motori di ricerca (Prof. R. Grossi)
- Compressione e motori di ricerca avanzati
(Prof. P. Ferragina)
Il corso è diviso in quattro parti di 10 ore ciascuna. Si
prevede di illustrare alcuni esempi di algoritmi impiegati nei sistemi
software attualmente disponibili su Internet.
English Description
To present the theoretical principles and the fundamental data
structures on which Internet algorithms are based, with reference to:
- Page management and routing in the Web.
- Cryptographic protection.
- Text indexing and search engines.
- Compression and advanced search engines.
To illustrate some examples of algorithms used in the software systems
presently available for Internet.
Programma
- Parte I - Gestione e spedizione efficiente di pagine Web
(L. Pagli - 10 ore)
- Ripasso sulle gerarchie di memoria e sui problemi di
paginazione. Analisi di competitività.
- Algoritmi randomizzati. Sequenze di richieste con località di
riferimenti.
- Web caching.
- Internet routing.
- Altri tipi di routing.
- Parte II - Protezione crittografica dell'informazione
(F. Luccio - 10 ore)
- Ripasso sulle classi P e NP e sui problemi NP-ardui.
Introduzione alla crittografia. One-time pad.
- Data Encription Standard.
- Cifrari a chiave pubblica e RSA.
- RSA (continuazione).
- Applicazioni: SSL e Smart Card.
- Parte III - Indicizzazione di testi e motori di ricerca
(R. Grossi - 10 ore)
- Modelli e parametri per le informazioni testuali.
- Strutture di dati per la costruzione di indici testuali (I).
- Strutture di dati per la costruzione di indici testuali (II).
- Algoritmi di ricerca per la risoluzione delle interrogazioni.
- Gestione delle ricerche nel Web: ranking, crawling, ecc.
- Parte IV - Compressione e motori di ricerca avanzati
(P. Ferragina - 10 ore)
- Entropia: definizione e teorema principale. Compressione di
interi.
- Run-length encoding e Move-to-Front encoding. Huffman e
Arithmetic coding.
- Compressione Lempel-Ziv (LZ77, LZ78, LZW): gzip.
- Compressione Burrows-Wheeler: bzip.
- Compressione e liste invertite: Altavista vs. Glimpse.
Ore lezione: | 25 | Ore esercitazione: | 15 | | | |
Bibliografia
Modalità di esame
Scritto e orale
Ulteriore pagina web del corso: