Insegnamento | CFU | SSD | Ore Lezione | Ore Eserc. | Ore Lab | Ore Studio | Attività | Lingua | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1044419 -
DISTRIBUTED SYSTEMS AND COMPUTER AND NETWORK SECURITY
(obiettivi)
DISTRIBUTED SYSTEMS
- Conoscenza e comprensione I sistemi distribuiti sono alla base di qualsiasi applicazione informatica moderna. Il corso si propone l'obiettivo principale di fornire agli studenti una chiara caratterizzazione della concorrenza in un sistema distribuito considerando le caratteristiche di tale sistema come guasti, latenza variabile nelle comunicazioni e assenza di un clock globale. Successivamente si analizzano i principali modelli di sistema e le astrazioni di base per la comunicazione e la sincronizzazione. Infine si forniranno i concetti di base di un sistema peer-to-peer con alcuni esempi di sistemi reali. - Applicare conoscenza e comprensione Lo studente sarà in grado di progettare sistemi e algoritmi distribuiti al di sopra di diversi modelli di sistema da quelli sincrono, asincrono e parzialmente sincrono capendo impossibilità e limitazione nelle prestazioni. Inoltre avrà la capacita di astrarre sistemi e piattaforme reali in modelli astratti più facili da trattare. - Capacità critiche e di giudizio Lo studente sarà in grado di valutare e comparare diverse soluzioni per la realizzazione di applicazioni distribuite. Sarà, inoltre, in grado valutare gli opportuni trade-off in considerazione dei vari aspetti che caratterizzano l'ambiente specifico in cui l'applicazione andrà in esercizio. - Capacità comunicative Lo studente acquisirà la terminologia propria del settore. - Capacità di apprendimento Lo studente apprenderà tecniche e metodologie di base per la progettazione e lo sviluppo di sistemi e applicazioni distribuite. COMPUTER AND NETWORK SECURITY Obiettivi generali Fornire i concetti necessari a: (a) comprendere il significato di sicurezza delle informazioni e di sicurezza delle infrastrutture e delle reti; (b) abilitare lo studente a fare analisi delle caratteristiche fondamentali di sicurezza di una rete/infrastruttura; (c) fornire gli strumenti fondamentali per le attività di progettazione e assessment delle soluzioni realizzate su rete in presenza di esigenze di sicurezza delle informazioni. Le metodologie e le nozioni includono la crittografia, il controllo degli accessi, protocolli e architetture di sicurezza, firewall. Obiettivi specifici Capacità di - riconoscere in fase di analisi/progettazione i requisiti di confidenzialità, integrità, autenticità, autenticazione e non ripudio, individuando strumenti idonei a garantirli; - supportare il processo di analisi e definizione di politiche di sicurezza a livello di organizzazione; - valutare criticamente infrastrutture ed applicazioni rispetto alle specifiche di sicurezza; - valutare la presenza di vulnerabilità rilevanti nelle infrastrutture e nelle applicazioni; - studiare e comprendere standard di sicurezza. Conoscenza e comprensione Conoscenza della crittografia di base. Comprensione dei meccanismi di certificazione e firma digitale. Comprensione delle minacce cyber derivanti dall'interazione con il web ed internet in generale Applicare conoscenza e comprensione Selezionare ed usare standard di cifratura efficaci e sicuri. Selezionare ed usare standard di fingerprinting di documenti efficaci e sicuri. Usare firme digitali. Scegliere meccanismi di autenticazione sicuri. Capacità critiche e di giudizio: Essere in grado di valutare l'adeguatezza delle misure di sicurezza IT impiegate da una piccola/media impresa. Capacità comunicative: Essere in grado di interagire agevolmente ed efficacemente con specialisti di domini industriali e ICT per tutte le problematiche connesse alla sicurezza delle informazioni. Saper motivare valutazioni e requisiti. Capacità di apprendimento: Saper leggere e comprendere documenti con standard tecnici e materiali relativi alla divulgazione di nuove minacce IT.
-
D'AMORE FABRIZIO
(programma)
Parte I. Sistemi distribuiti
- Introduzione ai sistemi distribuiti - Astrazioni di base (Computazioni distribuite, astrazione di processi, Astrazione delle comunicazioni, Assunzioni di sincronia, Astrazione del Tempo) - Sincronizzazione dei clock fisici - Comunicazione Broadcast (Best Effort Broadcast, Broadcast affidabile, Broadcast uniforme e affidabile, Broadcast probabilistico) - Consenso (Consenso regolare, Risultato di Impossibilità FLP, Consenso uniforme, Algoritmo di Paxos) - Primitive di comunicazione ordinate - Memorie condivise - Replicazione software - CAP Theorem e le sue applicazioni - Tolleranza a guasti Bizantini - Sistemi - Publish/subscribe - Distributed Ledgers Parte II. Computer and network security Information security and cybersecurity. Cryptography and its role for the information security. Communication model, attack models, adversarial models. Terminology. Symmetric cryptography: perfect cyphers, stream ciphers (Vernam), block ciphers. Review on discrete mathematics: modular arithmetic, groups, fields, Galois fields; Fermat and Euler theorems. Rijndel and AES. Modes of operations. Key whitening, 3DES. MAC techniques: CBS-MAC, unkeyed hashing, keyed hashing. Birthday attack. SHA families. HMAC. Public key cryptography: Diffie-Hellman and its security; details on RSA; attacks to RSA; real RSA. Cryptographically secure pseudo-random number generators. Authentication and non-repudiation: digital signatures. ElGamal, DSS. Authentication: challenge-respinse models, trusted third parties, Needham-Schroeder, Kerberos, digital certificates (X509) and certificate authorities. Lamport hashes and one-time passwords. EKE family. Security protocols: IPsec, TLS, SSH. Firewalls: classifications and examples. Iptables. Secret sharing (Shamir). Access control: DAC vs. MAC models. HRU, BLP. Parte I. Sistemi distribuiti
(Date degli appelli d'esame)
Testi adottati - C. Cachin, R. Guerraoui and L. Rodrigues. Introduction to Reliable and Secure Distributed Programming, Springer, 2011 Suggeriti - George Coulouris, Jean Dollimore and Tim Kindberg, Gordon Blair "Distributed Systems: Concepts and Design (5th Edition)". Addison - Wesley, 2012. Parte II. Computer and network security Textbook Charlie Kaufman, Radia Perlman, Mike Speciner. Network Security: Private Communication in a Public World, 2/E. ISBN-10: 0130460192 • ISBN-13: 9780130460196 ©2002 • Prentice Hall • Cloth, 752 pp Published 01 May 2002 Other useful books/sources William Stallings. Cryptography and Network Security: Principles and Practice, International EditionPrinciples and Practice. 6th Edition Jun 2013, Book with access code, 756 pages ISBN13: 9780273793359 ISBN10: 0273793357 Ross J. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems, 2nd Edition ISBN: 978-0-470-06852-6, 1080 pages, April 2008 Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Handbook of Applied Cryptography. ISBN: 0-8493-8523-7. Publisher: CRC Press, 2001 (old course)
-
BONOMI SILVIA
(programma)
- Introduzione ai sistemi distribuiti
- Astrazioni di base (Computazioni distribuite, astrazione di processi, Astrazione delle comunicazioni, Assunzioni di sincronia, Astrazione del Tempo) - Sincronizzazione dei clock fisici - Comunicazione Broadcast (Best Effort Broadcast, Broadcast affidabile, Broadcast uniforme e affidabile, Broadcast probabilistico) - Consenso (Consenso regolare, Risultato di Impossibilità FLP, Consenso uniforme, Algoritmo di Paxos) - Primitive di comunicazione ordinate - Memorie condivise - Replicazione software - CAP Theorem e le sue applicazioni - Tolleranza a guasti Bizantini - Sistemi - Publish/subscribe - Distributed Ledgers - C. Cachin, R. Guerraoui and L. Rodrigues. Introduction to Reliable and Secure Distributed Programming, Springer, 2011
Suggeriti - George Coulouris, Jean Dollimore and Tim Kindberg, Gordon Blair "Distributed Systems: Concepts and Design (5th Edition)". Addison - Wesley, 2012. |
12 | ING-INF/05 | 48 | 72 | - | - | Attività formative caratterizzanti | ENG | ||||||||||||||||||||||||||||||||||||
1044417 -
ALGORITHM DESIGN
(obiettivi)
L'obiettivo del corso è quello di introdurre i concetti fondamentali della progettazione di algoritmi per problemi polinomiali e problemi computazionali difficili. Il corso presenterà i concetti di base di progettazione di algoritmi per problemi di flusso nelle reti e problemi di matching. Tecniche generali come greedy e programmazione e dinamica saranno applicate a problemi di cammino minimo, spanning tree, knapsack. Algoritmi di approssimazione saranno presentati per problemi computazionali difficili come TSP, vertex cover set cover, sat, scheduling. Particolare enfasi sarà data ai metodi basati sulla programmazione lineare e gli algoritmi randomizzati. Infine , il corso introdurrà i principali problemi computazionali in teoria dei giochi.
-
LEONARDI STEFANO
(programma)
Argomenti di base e avanzati di progetto di algoritmi seguendo principalemente il libro di Kleinberg e Tardos.
-- Network flow: Ford and Fulkerson, Max Flow - Min Cut, scaling algorithm. Applications of network flow. -- Matching in bipartite graphs and marriage theorem. Stable Matchings. -- Greedy Algorithms: Interval Scheduling, Interval Partitioning. -- Dynamic Programming: weighted Interval scheduling, knapsack, Bellman-Ford. -- Basic concepts of approximation algorithms: simple examples, PTAS. -- Linear programs and LP-based approximation: LP rounding, randomized rounding, primal-dual scheme -- Randomised algorithms -- Computational Game Theory: games efficiency of Equilibria and Price of Anarchy. Prior 1. Jon Kleinberg and Eva Tardos. Algorithm Design. Cambridge University Press.
(Date degli appelli d'esame)
|
6 | ING-INF/05 | 24 | 36 | - | - | Attività formative caratterizzanti | ENG | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
Insegnamento | CFU | SSD | Ore Lezione | Ore Eserc. | Ore Lab | Ore Studio | Attività | Lingua | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1022797 -
DATA MANAGEMENT
(obiettivi)
Obiettivi generali:
L'obiettivo del corso è l'indagine sui concetti di base dei sistemi di gestione dei dati, facendo riferimento in particolare al modello relazionale. Vengono affrontate diverse questioni fondamentali relative alla teoria e alla progettazione di sistemi di gestione dei dati relazionali, tra cui controllo della concorrenza, ripristino, organizzazioni di file e indici, elaborazione delle query, OLAP e OLTP. È richiesta una buona conoscenza dei fondamenti di strutture di programmazione, linguaggi di programmazione e database (SQL, modello di dati relazionali, modello di dati Entità-Relazione, progettazione di database concettuali e logici). Conoscenza e comprensione: Lo studente avrà una buona conoscenza di come funziona un sistema di gestione dei dati, di come è strutturato e di come è progettato. Inoltre, lo studente acquisirà conoscenza dell'architettura di un sistema di gestione di database e dei suoi moduli principali (gestore delle transazioni, gestore di recupero, analizzatore di query). Lo studente acquisirà inoltre una buona conoscenza di come progettare l'organizzazione fisica delle relazioni (file e indici) e di come funziona l'ottimizzatore di query di un sistema di gestione dati. Applicare conoscenza e comprensione: Gli studenti saranno in grado di progettare il proprio sistema di gestione dei dati, incluso il modulo di controllo della concorrenza, il modulo di ripristino, il modulo per i metodi accesso ai file e l'ottimizzatore di query. Capacità critiche e di giudizio: Lo studente sarà in grado di valutare le caratteristiche e la qualità di un sistema di gestione dei dati e sarà in grado di scegliere la tecnica giusta per gestire la concorrenza, il recupero e l'elaborazione delle query in contesti applicativi specifici. Capacità comunicativa: Gli studenti acquisiranno una buona conoscenza su come illustrare gli algoritmi e le tecniche alla base di un moderno Data Manager. Capacità di apprendimento: Lo studente sarà in grado di comprendere qualsiasi nuova architettura e approccio alla gestione dei dati che si affermerà in futuro.
-
LENZERINI MAURIZIO
(programma)
1. Architecture of a database management system 2. Transaction management - the notion of transaction - concurrency control 3. Recovery management - classification of failures - techniques for recovery 4. Physical design - physical organization of a relational database - principles of physical organization 5. Query evaluation - general principles - evaluation of relational operators 6. XML and relational databases - XML, DTD; XML Schema, XQuery - relational representation of XML documents
R. Ramakrishnan, J. Gehrke. Database Management Systems. McGraw-Hill, 2004
(Date degli appelli d'esame)
|
6 | ING-INF/05 | 24 | 36 | - | - | Attività formative caratterizzanti | ENG | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1022891 -
SOFTWARE ENGINEERING
(obiettivi)
Il corso analizza il processo di sviluppo del software e presenta le
metodologia, gli standard di qualità, le metriche e le tecniche comunemente usate per la stima economica, la pianificazione ed il test di applicazioni software di qualità professionale. Al fine di interpretare correttamente le misure utilizzate nel contesto dell'assicurazione della qualità del software, il corso presenta le nozioni di base della teoria della misura e della verifica di esperimenti tramite l'analisi della varianza.Risultati di apprendimento attesi: Alla fine del corso lo studente sarà in grado di: -scegliere un modello per lo sviluppo di una applicazione software, stimarne il costo, pianificare le attività di progetto, progettare i test ed indicare delle metriche per l'assicurazione qualità, nonchè valutare la significatività statistica di esperimenti basati sulla raccolta di campioni numerici.
-
MECELLA MASSIMO
(programma)
Il programma di dettaglio corrisponde a quanto svolto a lezione (inclusi i seminari) e trattato nei riferimenti fondamentali indicati per ciascuna lezione. In termini generali il programma include:
- Introduzione e concetti di base (standardizzazione dei processi software, processi software, metodologie agili e programmazione estrema, gestione dei progetti) - Metodi per il test - Economia del software (punti funzione, COCOMO II) - Fondamenti della teoria della misura (definizioni e panoramica sui concetti di base delle statistiche, qualità delle metriche, errori sistematici e casuali, statistiche inferenziali, analisi della varianza (ANOVA)) - Qualità del software (errori più comuni e fattori di qualità, ISO 25010, DREC) - Programmazione e tecnologie distribuite (SOA, architetture di micro-servizi, sistemi di messaggistica, ecc.) Slide e materiale distribuito dal docente
(Date degli appelli d'esame)
Eventuali testi e/o articoli indicati durante le lezioni a seconda degli argomenti |
6 | ING-INF/05 | 24 | 36 | - | - | Attività formative caratterizzanti | ENG | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- -
A SCELTA DELLO STUDENTE
|
6 | 24 | 36 | - | - | Attività formative a scelta dello studente (art.10, comma 5, lettera a) | ENG |
Insegnamento | CFU | SSD | Ore Lezione | Ore Eserc. | Ore Lab | Ore Studio | Attività | Lingua | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- -
A SCELTA DELLO STUDENTE
|
6 | 24 | 36 | - | - | Attività formative a scelta dello studente (art.10, comma 5, lettera a) | ENG |
Insegnamento | CFU | SSD | Ore Lezione | Ore Eserc. | Ore Lab | Ore Studio | Attività | Lingua | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AAF1788 -
SEMINARS IN ADVANCED TOPICS IN COMPUTER SCIENCE ENGINEERING
(obiettivi)
Obiettivi generali:
L'obiettivo del corso è offrire agli studenti una serie di seminari, tenuti da un insieme di docenti e/o esperti nelle singole tematiche, sui più recenti trend nella ricerca e nella pratica dell'ingegneria informatica. Obiettivi specifici: Conoscenza e comprensione: Apprendere le ultime soluzioni della ricerca e dei prodotti commerciali del mondo ICT Applicare conoscenza e comprensione: Essere in grado di comparare soluzioni avanzate e prodotti commerciali Capacità critiche e di giudizio: Essere in grado di capire le differenze metodologiche tra le tematiche di ricerca nel campo ICT Capacità comunicative: Le attività seminariali del corso permettono allo studente di essere in grado di lavorare in un gruppo di progettisti multidisciplinare. Capacità di apprendimento: Apprendere le differenze metodologiche tra le tematiche di ricerca nel campo ICT permette agli studenti di apprendere le basi dell’innovazione tecnologica.
-
CICIANI BRUNO
(programma)
lista dei seminari cambia di anno in anno
Slide dei singoli seminari, articoli, ecc. distribuiti volta per volta
(Date degli appelli d'esame)
-
NAPOLI CHRISTIAN
(programma)
Italiano:
Il corso "ELECTIVE IN ARTIFICIAL INTELLIGENCE" è strutturato in quattro moduli principali: Introduzione e Presentazione del Corso: In questo modulo, verranno presentati gli obiettivi del corso, le aspettative e le risorse disponibili. Gli studenti riceveranno una panoramica delle principali tematiche che saranno trattate durante il corso, con un'introduzione ai concetti fondamentali di intelligenza artificiale, Machine Learning e Deep Learning. Preprocessing e Trasformazione del Dominio per il Machine Learning Avanzato: Questo modulo esplorerà le tecniche di preprocessing dei dati essenziali per la costruzione di modelli di apprendimento automatico efficaci. Verranno trattati argomenti come la normalizzazione, la standardizzazione, la gestione dei dati mancanti e le tecniche di trasformazione del dominio. Gli studenti impareranno a preparare i dati in modo da migliorare le prestazioni dei modelli. Machine Learning Avanzato e Deep Learning: In questo modulo, verranno approfonditi concetti avanzati di Machine Learning, incluse tecniche di ottimizzazione e regolarizzazione. Inoltre, si esploreranno in dettaglio le architetture di Deep Learning, come le reti neurali convoluzionali, ricorrenti e le reti neurali profonde, con applicazioni pratiche in diversi settori. Deep Learning Geometrico: L'ultimo modulo sarà dedicato al Deep Learning Geometrico, un campo emergente che unisce la geometria e l'apprendimento automatico. Gli studenti esploreranno come utilizzare grafi e altre strutture geometriche per costruire modelli di apprendimento in grado di catturare informazioni strutturali complesse. Verranno discussi casi d'uso avanzati e applicazioni in contesti reali. "Deep Learning" di Ian Goodfellow, Yoshua Bengio, e Aaron Courville - Questo testo fornisce una base solida sui concetti di Deep Learning, coprendo sia gli aspetti teorici che pratici, ed è considerato un riferimento fondamentale nel campo.
"Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges" di Michael M. Bronstein, Joan Bruna, Yann LeCun, Arthur Szlam, e Pierre Vandergheynst - Questo libro esplora l'intersezione tra la geometria e il Deep Learning, fornendo una panoramica approfondita delle tecniche di Deep Learning Geometrico. "Pattern Recognition and Machine Learning" di Christopher M. Bishop - Un testo essenziale per comprendere i fondamenti del Machine Learning avanzato e le tecniche di riconoscimento di pattern, utilizzato come riferimento per molte delle metodologie trattate nel corso. Materiale didattico fornito dal docente - Dispense, articoli scientifici e risorse aggiuntive saranno resi disponibili agli studenti per integrare lo studio e approfondire argomenti specifici trattati durante il corso. |
6 | 24 | 36 | - | - | Ulteriori attività formative (art.10, comma 5, lettera d) | ENG | |||||||||||||||||||
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
AAF1028 -
PROVA FINALE
(obiettivi)
La prova finale consiste nella presentazione e discussione di un attività progettuale e di una relazione, supervisionata da un docente, nella quale lo studente dimostra di aver raggiunto una padronanza delle metodologie proprie dell'Ingegneria Informatica e/o della loro applicazione.
|
30 | 50 | - | 90 | - | Per la prova finale e la lingua straniera (art.10, comma 5, lettera c) | ENG |