1047630 -
HUMAN COMPUTER INTERACTION ON THE WEB
(obiettivi)
Obiettivi generali Il corso di sistemi informativi analizza differenti tipologie di sistemi informativi e come esse possono contribuire al successo degli obiettivi di un’azienda; permette di comprendere gli approcci e i modelli da usare per valutare la qualità dei processi, del software e dei servizi ICT; e fornisce le conoscenze di base per pianificare, gestire e controllare i progetti IT.
Obiettivi specifici
• Conoscenza e comprensione – Modello funzionale e struttura informativa dei processi aziendali – esigenze di integrazione e requisiti di controllo dei dati dei sistemi informatici aziendali – sistemi e tecnologie per sviluppare e mantenere un e-business di successo – principali settori di applicazione dei sistemi di informazione in vari settori di mercato – organizzazione IT e modelli di valutazione della qualità IT – conoscenze di base di contesto, tecniche/metodologie e soft skill per la gestione dei progetti ICT
• Applicazione di conoscenze e comprensione – Analizzare le diverse tipologie di requisiti in relazione a differenti categorie di utenti (stakeholder) di sistemi informativi – Selezionare l’appropriato modello per valutare la qualità dei processi ICT, del prodotto software e dei servizi ICT – Sviluppare uno studio di fattibilità selezionando l’appropriata architettura applicativa e tecnologica – Preparare, per un semplice progetto ICT, un piano di sviluppo nel rispetto dei vincoli di tempo, costi, qualità e definendo l’appropriata organizzazione – Controllare un progetto ICT in corso, applicando le tecniche di project management – Comprendere a valutare le lezioni apprese nei precedenti progetti
Capacità critiche e di giudizio: Gli studenti, mediante test e case study, acquisiranno competenze nella comprensione dei tipi di sistemi informativi, nell’uso dei modelli di quality management e nella pianificazione e gestione di un progetto.
Capacità comunicative: Gli studenti, costituiti in team, saranno coinvolti in attività finalizzate alla realizzazione di un piano di comunicazione di un progetto basato su un case study, che sarà mostrato ai colleghi spiegando le ragioni delle scelte adottate.
Capacità di apprendimento: La capacità di apprendimento sarà stimolata attraverso la preparazione di uno studio di fattibilità contenente: [a] la definizione dei requisiti del tipo di sistema informativo più adatto; [b] la definizione dei requisiti tecnici e di qualità; [c] la pianificazione di un progetto di implementazione del sistema informativo.
-
PANIZZI EMANUELE
( programma)
Questo corso tratta i principi di diverse tecnologie interattive, coinvolgendo la comunicazione sul web. Quindi, dopo un riepilogo degli argomenti di base di HCI, analizzeremo l'interazione in diversi contesti: mobile, indossabile, IoT, chatbots e messaggistica, auto, ecc.
Argomenti di questo corso:
Interfacce e interazione utente Post-WIMP: • interfaccia utente indossabile • UX per IoT • interfacce conversazionali: chatbot, interfaccia utente vocale • interazione tangibile • UI tattile / tattile • UI gestuale e dell'intero corpo • realtà virtuale e aumentata, interfaccia utente 3D • zoom UI, 10 piedi UI, display bifocali Dispositivi indossabili
Metodologie e strumenti HCI: • interazione implicita sensibile al contesto • teoria delle attività • gamification • pensiero progettuale
Casi studio: • social computing e progettazione di sistemi socio-tecnici • HCI in macchina • interazione uomo-robot (HRI)
Assegnazione e discussione di progetti-lavori.
• Alan Dix – Janet Finlay – Gregory Abowd – Russell Beale “HUMAN-COMPUTER INTERACTION”, 3rd edition http://dl.acm.org/citation.cfm?id=1203012.
• The Encyclopedia of Human-Computer Interaction, 2nd Ed., https://www.interaction- design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1038141 -
NATURAL LANGUAGE PROCESSING
(obiettivi)
Obiettivi generali: I fondamenti dell'elaborazione del linguaggio naturale.
Obiettivi specifici: L'elaborazione del linguaggio naturale al livello di: morfologia, parte del discorso, sintassi, semantica, pragmatica. Traduzione automatica.
Conoscenza e comprensione: Conoscenza e comprensione delle tecniche algoritmiche e di apprendimento automatica per l'elaborazione del linguaggio naturale.
Applicare conoscenza e comprensione: Essere in grado di applicare le tecniche di elaborazione del linguaggio naturale mediante homework e un progetto.
Capacità critiche e di giudizio: Capacità di comprendere e identificare soluzioni efficaci ai problemi dell'elaborazione del linguaggio naturale.
Capacità comunicative: Capacità di illustrare il progetto sviluppato.
Capacità di apprendimento: Capacità di apprendere e applicare nuove tecniche di elaborazione del linguaggio naturale sia basate su quelle illustrate nel corso sia basate su approcci innovativi.
-
NAVIGLI ROBERTO
( programma)
The course introduces a field of Artificial Intelligence which deals with the automatic processing of natural language. Topics include: language modeling, smoothing techniques, morphological analysis, part-of-speech tagging, syntactic parsing, semantic analysis (word sense disambiguation and induction, semantic role labeling), machine translation and other applications.
- Yoav Goldberg. Neural Network Methods for Natural Language Processing, Morgan & Claypool, 2017. - Jacob Eisenstein. Introduction to Natural Language Processing, MIT Press, 2019. - Jurafsky and Martin. Speech and Language Processing, Prentice Hall, 2009.
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1041870 -
WEB AND SOCIAL INFORMATION EXTRACTION
(obiettivi)
Obiettivi generali: Il corso introduce architetture e algoritmi per l’estrazione di informazioni dal web, analizzando sia i motori di ricerca Web sia i social network on-line.
Obiettivi specifici: Architettura di sistemi di Information retrieval, Estrazioni di informazioni dal Web, Analisi di reti sociali, sistemi di raccomandazione.
Conoscenza e comprensione: Gli studenti impareranno come implementare un sistema di recupero delle informazioni. Impareranno anche come analizzare e tracciare il comportamento degli utenti sui social network.
Applicazione di conoscenza e comprensione: Gli studenti sperimenteranno con Lucene, twitter API, Maven Core e librerie grafiche.
Autonomia di giudizio: Gli studenti saranno in grado di comprendere le categorie di problemi che possono essere risolti in modo efficiente con quali metodi e a quali condizioni.
Abilità comunicative: Queste saranno valutate durante gli esami scritti e la reportistica del progetto.
Capacità di apprendimento successivo: Gli studenti riceveranno una solida base per approfondire ulteriormente i metodi più avanzati, sia nell’ambito delle rete sociali che del web mining.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10593236 -
DEEP LEARNING AND APPLIED ARTIFICIAL INTELLIGENCE
(obiettivi)
Obiettivi generali Acquisire familiarità con tecniche avanzate di machine learning supervisionato e non supervisionato; acquisire competenze di modellazione di problemi complessi attraverso tecniche di deep learning, e saperle applicare a contesti applicativi diversi.
Obiettivi specifici Gli argomenti includono: reti neurali profonde, il loro addestramento e l'interpretazione dei risultati; reti convoluzionali e architetture prominenti; teoria del deep learning con particolare riferimento a questioni di convergenza; utilizzo di framework esistenti per l'implementazione di tecniche avanzate di machine learning; autoencoders; attacchi avversari.
Conoscenza e comprensione: Conoscenza sul funzionamento delle reti neurali e loro interpretazione matematica come approssimatori universali. Comprensione dei limiti e delle potenzialità di modelli avanzati di machine learning.
Applicazione di conoscenza e comprensione Progettazione, implementazione, messa in esercizio e analisi di architetture di deep learning per risolvere problemi complessi in disparati ambiti applicativi.
Autonomia di giudizio Essere in grado di valutare le prestazioni di diverse architetture, e di valutare la capacità di generalizzazione delle stesse.
Abilità comunicative Essere in grado di comunicare con chiarezza la formulazione di un problema di apprendimento avanzato e la sua implementazione, la sua applicabilità in contesti realistici, nonchè di motivare le scelte architetturali e di regolarizzazione.
Capacità di apprendimento successivo: Essere in grado di apprendere tecniche alternative e più complesse quali i modelli generativi basati su traporto ottimo, le trasformate di scattering e lo studio del probilo energetico delle reti neurali. Essere in grado di implementare tecniche esistenti in maniera efficiente, robusta e affidabile.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
|
1047614 -
ADVANCED SOFTWARE ENGINEERING
(obiettivi)
Obiettivi generali: Il corso si propone di presentare un approccio tramite metodi formali, tipicamente basati su trasformazioni di modelli, allo sviluppo di sistemi software di media complessità (tipicamente applicazioni Enterprise).
Obiettivi specifici: Il corso formerà gli studenti su: 1. Fondamenti di metamodellazione 2. Fondamenti di trasformazioni di modelli 3. Linguaggi specifici al dominio.
Conoscenza e comprensione: Gli studenti apprenderanno le nozioni fondamentali per la modellazione indipendente dalla piattaforma a partire dalle specifiche dei requisiti e come utilizzare gli strumenti di trasformazione per ottenere implementazioni di codice (parziale) che soddisfino i requisiti.
Applicazione di conoscenza e comprensione: Gli studenti saranno in grado di utilizzare alcuni dei linguaggi e degli strumenti più popolari nel campo della modellazione dei sistemi e della trasformazione dei modelli e li utilizzeranno per sviluppare applicazioni a vari livelli di complessità.
Autonomia di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse alternative nel campo della modellazione di sistema, in particolare per quanto riguarda la modellazione di dominio.
Abilità comunicative: Gli studenti impareranno a documentare le loro scelte, anche attraverso l'uso di strumenti di generazione della documentazione, in particolare sfruttando notazioni diagrammatiche.
Capacità di apprendimento: La padronanza dei concetti di modello formale e di trasformazione di modello, nonché la familiarità con ambienti di sviluppo software che integrino queste nozioni, permetterà agli studenti di proseguire nell'esplorazione e nell'apprendimento di linguaggi e approcci basati su questi concetti.
-
BOTTONI PAOLO GASPARE
( programma)
Il corso si struttura in quattro parti principali
1. Fondamenti di metamodellazione (10 ore) a. Modelli e metamodellazione. b. Il metamodello di UML.
2. Fondamenti di trasformazioni di modello (16 ore) a. Trasformazioni orizzontali b. Trasformazioni verticali c. Linguaggi per trasformazioni di modelli c1. QVT c2. Trasformazioni di grafi
3. Linguaggi specifici al dominio: (8 ore) a. Metamodello per linguaggi specifici al dominio b. Modelli di caratteristiche e linee di prodotto software
4. Utilizzo di strumenti: (20 ore) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio
Le restanti ore saranno dedicate ad affrontare collettivamente problematiche di carattere generale emergenti dallo svolgimento dei progetti.
Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model-Driven Software Engineering in Practice, Morgan & Claypool, USA, 2012. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Designing Data Intensive Web Applications, Morgan Kauffman, 2003 Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, Simon Helsen, Model-Driven Software Development: Technology, Engineering, Management, Wiley 2006
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1041764 -
BIG DATA COMPUTING
(obiettivi)
Obiettivi generali Il corso si propone di introdurre le principali tecniche algoritmiche e di programmazione nell’analisi di big data, affrontando una varietà di problemi di data mining in modelli di calcolo adatti alla gestione di grandi quantità di dati.
Obiettivi specifici
Conoscenza e comprensione: Al termine del corso gli studenti avranno una comprensione dettagliata dei modelli di programmazione per l'analisi di dati distribuiti su cluster di computer, nonché di modelli computazionali avanzati per l'elaborazione di enormi quantità di dati (ad esempio, streaming di dati, parallelismo in stile MapReduce e algoritmi efficienti in memoria secondaria).
Capacità di applicare conoscenza e comprensione: gli studenti saranno in grado di progettare e analizzare algoritmi per l’analisi di big data in diversi scenari, sapranno scrivere codice efficiente e scalabile tenendo conto delle caratteristiche architetturali delle moderne piattaforme di calcolo (inclusi i sistemi distribuiti), e sapranno lavorare sfruttando una varietà di sistemi software adatti al processamento di big data (tra cui Hadoop).
Capacità critiche e di giudizio: gli studenti saranno in grado di capire i paradigmi di calcolo più adatti in scenari differenti, valutando vantaggi e svantaggi di ciascun modello computazionale e affrontando le sfide che si presentano nella progettazione e implementazione di una varietà di applicazioni.
Capacità di comunicare: gli studenti saranno in grado di comunicare in modo efficace, riassumendo in modo chiaro le idee principali nella progettazione di sistemi e algoritmi per l’analisi di big data e presentando informazioni tecniche accurate.
Capacità di studio autonomo: obiettivo del corso è quello di toccare una varietà di tecniche il più possibile ampia, introducendo pratiche standard e argomenti di ricerca all'avanguardia in questo settore e consentendo quindi agli studenti di estendere le conoscenze acquisite in modo indipendente, anche in base all’evoluzione tecnologica.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1047634 -
INTERNET OF THINGS
(obiettivi)
Obiettivi generali: Il corso illustra gli aspetti metodologici, teorici e pratici relativi alla progettazione di reti wireless e Internet delle cose. Il corso prevede un laboratorio.
Obiettivi specifici Introduzione alle reti wireless, architetture e protocolli usati nelle reti cellulari info al 5G e nei sistemi Internet delle cose, analisi delle soluzioni di ricerca relative ad alcune delle sfide per la realizzazione dei sistemi internet delle cose (abbattimento del consumo energetico, integrazione del mondo IoT e della robotica, sicurezza delle informazioni).
Struttura sintetica del corso: - Introduzione alle reti radio - Dai sistemi cellulari 2G al 5G - Protocolli per sensing systems: protocolli di MAC, routing, localizzazione e sincronizzazione - Verso l'Internet delle cose: caratteristiche e problematiche, protocolli standard e tecnologie, scelte progettuali per diversi ambiti verticali, sfide ancora aperte - Aspetti avanzati dell'IoT: zero-power IoT; aspetti di sicurezza; uso di blockchain in applicazioni IoT; ottimizzazione di sistemi mediante tecniche di machine learning; integrazione di robotica e IoT systems (esempio dell'Internet of Underwater Things). -Lab di programmazione IoT
Conoscenze e comprensione: Alla fine del corso lo studente saprà leggere e comprendere articoli scientifici, documenti tecnici e standard del settore; avrà compreso i trade-off prestazionali associati a diverse scelte progettuali. Sarà quindi in grado di progettare futuri sistemi wireless e IoT. Avrà fatto prime esperienze pratiche relative alla programmazione e valutazione sperimentale di tali sistemi.
Applicazione di conoscenza e comprensione: Gli studenti saranno in grado di partecipare alla progettazione di futuri sistemi e applicazioni IoT e di sistemi 5G.
Capacità di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse scelte progettuali alternative selezionando la migliore per ogni specifico scenario applicativo e tipo di tecnologia.
Capacità di comunicazione: Gli studenti impareranno ad analizzare e presentare articoli scientifici, idee di ricerca o soluzioni tecniche di settore, descrivendole in modo sintetico ed accurato, con un linguaggio tecnico adeguato.
Capacità di apprendimento: Gli studenti acquisiranno sia competenze teoriche che pratiche relative alla progettazione dei sistemi wireless e IoT, che li metteranno in grado di proseguire l'approfondimento di questi argomenti.
-
PETRIOLI CHIARA
( programma)
- Introduzione ai sistemi wireless - Mobile ad hoc networks - Reti di sensori e attuatori - RFID and backscattering - Reti di droni - Protocolli MAC e di routing - Problematiche legate all'energia - Verso Internet of Things: standards, questioni aperte - Internet of Things sottomarine - LAB: programmazione e/o simulazione di sistemi IoT
Articoli e altri materiali (capitoli di libro, standard...) forniti durante il corso
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
|
1047614 -
ADVANCED SOFTWARE ENGINEERING
(obiettivi)
Obiettivi generali: Il corso si propone di presentare un approccio tramite metodi formali, tipicamente basati su trasformazioni di modelli, allo sviluppo di sistemi software di media complessità (tipicamente applicazioni Enterprise).
Obiettivi specifici: Il corso formerà gli studenti su: 1. Fondamenti di metamodellazione 2. Fondamenti di trasformazioni di modelli 3. Linguaggi specifici al dominio.
Conoscenza e comprensione: Gli studenti apprenderanno le nozioni fondamentali per la modellazione indipendente dalla piattaforma a partire dalle specifiche dei requisiti e come utilizzare gli strumenti di trasformazione per ottenere implementazioni di codice (parziale) che soddisfino i requisiti.
Applicazione di conoscenza e comprensione: Gli studenti saranno in grado di utilizzare alcuni dei linguaggi e degli strumenti più popolari nel campo della modellazione dei sistemi e della trasformazione dei modelli e li utilizzeranno per sviluppare applicazioni a vari livelli di complessità.
Autonomia di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse alternative nel campo della modellazione di sistema, in particolare per quanto riguarda la modellazione di dominio.
Abilità comunicative: Gli studenti impareranno a documentare le loro scelte, anche attraverso l'uso di strumenti di generazione della documentazione, in particolare sfruttando notazioni diagrammatiche.
Capacità di apprendimento: La padronanza dei concetti di modello formale e di trasformazione di modello, nonché la familiarità con ambienti di sviluppo software che integrino queste nozioni, permetterà agli studenti di proseguire nell'esplorazione e nell'apprendimento di linguaggi e approcci basati su questi concetti.
-
BOTTONI PAOLO GASPARE
( programma)
Il corso si struttura in quattro parti principali
1. Fondamenti di metamodellazione (10 ore) a. Modelli e metamodellazione. b. Il metamodello di UML.
2. Fondamenti di trasformazioni di modello (16 ore) a. Trasformazioni orizzontali b. Trasformazioni verticali c. Linguaggi per trasformazioni di modelli c1. QVT c2. Trasformazioni di grafi
3. Linguaggi specifici al dominio: (8 ore) a. Metamodello per linguaggi specifici al dominio b. Modelli di caratteristiche e linee di prodotto software
4. Utilizzo di strumenti: (20 ore) a. AGG (Attributed Graph Grammars) b. EMF (Eclipse Modeling Framework) c. WebRatio
Le restanti ore saranno dedicate ad affrontare collettivamente problematiche di carattere generale emergenti dallo svolgimento dei progetti.
Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model-Driven Software Engineering in Practice, Morgan & Claypool, USA, 2012. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Designing Data Intensive Web Applications, Morgan Kauffman, 2003 Markus Völter, Thomas Stahl, Jorn Bettin, Arno Haase, Simon Helsen, Model-Driven Software Development: Technology, Engineering, Management, Wiley 2006
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1041764 -
BIG DATA COMPUTING
(obiettivi)
Obiettivi generali Il corso si propone di introdurre le principali tecniche algoritmiche e di programmazione nell’analisi di big data, affrontando una varietà di problemi di data mining in modelli di calcolo adatti alla gestione di grandi quantità di dati.
Obiettivi specifici
Conoscenza e comprensione: Al termine del corso gli studenti avranno una comprensione dettagliata dei modelli di programmazione per l'analisi di dati distribuiti su cluster di computer, nonché di modelli computazionali avanzati per l'elaborazione di enormi quantità di dati (ad esempio, streaming di dati, parallelismo in stile MapReduce e algoritmi efficienti in memoria secondaria).
Capacità di applicare conoscenza e comprensione: gli studenti saranno in grado di progettare e analizzare algoritmi per l’analisi di big data in diversi scenari, sapranno scrivere codice efficiente e scalabile tenendo conto delle caratteristiche architetturali delle moderne piattaforme di calcolo (inclusi i sistemi distribuiti), e sapranno lavorare sfruttando una varietà di sistemi software adatti al processamento di big data (tra cui Hadoop).
Capacità critiche e di giudizio: gli studenti saranno in grado di capire i paradigmi di calcolo più adatti in scenari differenti, valutando vantaggi e svantaggi di ciascun modello computazionale e affrontando le sfide che si presentano nella progettazione e implementazione di una varietà di applicazioni.
Capacità di comunicare: gli studenti saranno in grado di comunicare in modo efficace, riassumendo in modo chiaro le idee principali nella progettazione di sistemi e algoritmi per l’analisi di big data e presentando informazioni tecniche accurate.
Capacità di studio autonomo: obiettivo del corso è quello di toccare una varietà di tecniche il più possibile ampia, introducendo pratiche standard e argomenti di ricerca all'avanguardia in questo settore e consentendo quindi agli studenti di estendere le conoscenze acquisite in modo indipendente, anche in base all’evoluzione tecnologica.
-
TOLOMEI GABRIELE
( programma)
Introduzione - Il fenomeno "Big Data" - Infrastruttura - Distributed File Systems (HDFS) - MapReduce (Hadoop) - Spark - PySpark + Google Colaboratory
Apprendimento non-supervisionato: Clustering - Similarità - Algoritmi: K-means - Esempio: Clustering di documenti testuali
Riduzione della dimensionalità - Feature Extraction - Algoritmi: Principal Component Analysis (PCA) - Esempio: PCA + Riconoscimento cifre
Apprendimento supervisionato - Fondamenti di apprendimento automatico - Regressione/Classificazione - Algoritmi: Linear Regression/Logistic Regression/Random Forest - Esempi: - Linear Regression - Predizione prezzo vendita case - Logistic Regression/Random Forest - Predizione sottoscrizione offerta bancaria
Sistemi di Raccomandazione - Content-based vs. Collaborative filtering - Algoritmi: k-NN, Matrix Factorization (MF) - Esempio: Sistema di Raccomandazione di Film (MovieLens)
Analisi di Grafi - Link Analysis - Algoritmi: PageRank - Esempio: Ranking (di un estratto) del Google Web Graph
Analisi di dati real-time - Streaming Data Processing - Esempio: Twitter Hate Speech Detector
- Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047205 -
CLOUD COMPUTING
(obiettivi)
Obiettivi generali : Il Cloud Computing è divenuto una delle fondamentali tecnologie dell’informazione, fornendo elevata scalabilità ed elasticità nella fornitura di applicazioni distribuite (aziendali e scientifiche). Alla fine del corso gli studenti avranno gli strumenti per comprendere l’impatto del Cloud Computing in un ambiente aziendale (e non) e le implicazioni tecnologiche nello sviluppo di applicazioni Cloud, specificatamente applicazioni per la memorizzazione e l’elaborazione di big data.
Obiettivi specifici Alla fine del corso, gli studenti avranno acquisito gli strumenti per: - usare le tecnologie di virtualizzazione a livello di sistema e a livello di applicazione - usare tecnologie IaaS e PaaS - progettare architetture virtualizzate - fare il deployment di applicazioni Cloud - valutare costi e prestazioni di sistemi Cloud
Conoscenza e comprensione: Alla fine del corso, gli studenti avranno acquisito la conoscenza relativa ai fattori che hanno influenzato la diffusione del Cloud Computing, alle tecnologie di virtualizzazione, alle architetture Cloud (autoscaling, load balancing, monitoring, high availability), ai sistemi di memorizzazione dei dati nel Cloud Alla fine del corso, gli studenti saranno capaci di comprendere i principi di funzionamento delle soluzioni basate su Cloud (design and operation) e di comprendere problemi di ricerca applicata relativi alle soluzioni basate su Cloud
Applicazione di conoscenza e comprensione: Alla fine del corso, gli studenti saranno capaci di - spiegare i principi del Cloud Computing - spiegare le principali tecnologie Cloud - risolvere problemi che richiedono l’uso delle tecnologie Cloud e del design e deployment di architetture virtualizzate e di applicazioni Cloud - valutare le prestazioni e i costi di soluzioni basate su Cloud
Autonomia di giudizio: Nel corso gli studenti svilupperanno abilità di pensiero critico nel campo del Cloud Computing
Abilità comunicative: Alla fine del corso gli studenti saranno capaci di comunicare le nozioni imparate a personale tecnico e manageriale.
Capacità di apprendimento successivo: Dopo il corso, gli studenti avranno acquisito la conoscenza per seguire corsi avanzati di Cloud Computing e di tecnologie big data.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047629 -
GRAPH THEORY
(obiettivi)
Obiettivi generali Acquisire una conoscenza di base dei risultati e tecniche classiche in Teoria dei Grafi e una familiarità con le linea principale di ricerca corrente in Teoria dei Grafi.
Obiettivi specifici:
Conoscenza e comprensione: Al termine del corso gli studenti posseggono la capacita’ di scrivere e organizzare le dimostrazione matematiche per risolvere problemi in Teoria dei Grafi.
Applicazione di conoscenza e comprensione: Al termine del corso, gli studenti sono in grado di estrarre un algoritmo efficiente da una dimostrazione costruttive e per iniziare una progetto indipendente di ricerca in Teoria dei grafi.
Autonomia di giudizio: Lo studente alla fine del corso deve essere in grado di scegliere autonomamente qual’e’ la tecnica piu’ adatta da applicare per risolvere un problema in Teoria dei Grafi e valutare se la dimostrazione e’ completa.
Abilita’ comunicative: Lo studente acquisirà la capacità di scrivere e presentare un dimostrazione matematica rigorosa tramite la tecniche di induzione, per assurdo, e analizzando un controesempio minimo.
Capacita’ di apprendimento: La capacita’ di scegliere i risultati e tecniche appropriate per confrontare un problema aperto in Teoria dei Grafi.
-
WOLLAN PAUL JOSEPH
( programma)
La Teoria dei Grafi é un campo della Combinatoria con numerose applicazioni sia alla matematica che all'informatica. Si tratta di un'area di ricerca recente che, a parte pochi risultati classici, si é sviluppata negli ultimi decenni e molte sono ancora le domande alle quali bisogna rispondere. I risultati sono spesso intuitivi e le dimostrazioni sono eleganti e basate su ragionamenti di tipo visivo e deduttivo. Ciò si traduce in algoritmi pratici e efficienti. Questo corso offre una introduzione generale all'area e ai concetti e alle idee della ricerca attuale.
Gli argomenti trattati riguardano le categorie seguenti:
Concetti di base: alberi, cammini, cicli e connetività; algortimo di Kruskal; cicli Hamiltoniani e condizioni sufficienti per la loro esistenza; cicli Euleriani e caratterizzazione dei grafi Euleriani; sottigrafi, contrazioni e eliminazioni di lati, minori di grafi. Connetività generale e Teorema di Menger; Max/flow min cut e algoritmi.
Strutture in grafi: Matchings in grafi bipartiti (Teorema di König e Hall), Teorema di Tutte per matchings in grafi generici; Teorema di Dilworth. Grafi planari: teorema di Kuratowski, dualità planare. Teoria dei grafi estrema, Teorema di Turan su sottografi completi. Introduzione alla teorai di Ramsey ed esistenza dei numeri di Ramsey.
Decomposizione di grafi: decomposizione a blocchi di grafi, la decomposizione "ear" di grafi 2-connessi e caratterizzazione di grafi 3-connessi.
Proprietà dei grafi: Colorazione di grafi, Teorema dei 5 colori, colorazione dei lati, Teorema di Brook e Teorema di Vizing.
Graph Theory da Reinhard Diestel
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047630 -
HUMAN COMPUTER INTERACTION ON THE WEB
(obiettivi)
Obiettivi generali Il corso di sistemi informativi analizza differenti tipologie di sistemi informativi e come esse possono contribuire al successo degli obiettivi di un’azienda; permette di comprendere gli approcci e i modelli da usare per valutare la qualità dei processi, del software e dei servizi ICT; e fornisce le conoscenze di base per pianificare, gestire e controllare i progetti IT.
Obiettivi specifici
• Conoscenza e comprensione – Modello funzionale e struttura informativa dei processi aziendali – esigenze di integrazione e requisiti di controllo dei dati dei sistemi informatici aziendali – sistemi e tecnologie per sviluppare e mantenere un e-business di successo – principali settori di applicazione dei sistemi di informazione in vari settori di mercato – organizzazione IT e modelli di valutazione della qualità IT – conoscenze di base di contesto, tecniche/metodologie e soft skill per la gestione dei progetti ICT
• Applicazione di conoscenze e comprensione – Analizzare le diverse tipologie di requisiti in relazione a differenti categorie di utenti (stakeholder) di sistemi informativi – Selezionare l’appropriato modello per valutare la qualità dei processi ICT, del prodotto software e dei servizi ICT – Sviluppare uno studio di fattibilità selezionando l’appropriata architettura applicativa e tecnologica – Preparare, per un semplice progetto ICT, un piano di sviluppo nel rispetto dei vincoli di tempo, costi, qualità e definendo l’appropriata organizzazione – Controllare un progetto ICT in corso, applicando le tecniche di project management – Comprendere a valutare le lezioni apprese nei precedenti progetti
Capacità critiche e di giudizio: Gli studenti, mediante test e case study, acquisiranno competenze nella comprensione dei tipi di sistemi informativi, nell’uso dei modelli di quality management e nella pianificazione e gestione di un progetto.
Capacità comunicative: Gli studenti, costituiti in team, saranno coinvolti in attività finalizzate alla realizzazione di un piano di comunicazione di un progetto basato su un case study, che sarà mostrato ai colleghi spiegando le ragioni delle scelte adottate.
Capacità di apprendimento: La capacità di apprendimento sarà stimolata attraverso la preparazione di uno studio di fattibilità contenente: [a] la definizione dei requisiti del tipo di sistema informativo più adatto; [b] la definizione dei requisiti tecnici e di qualità; [c] la pianificazione di un progetto di implementazione del sistema informativo.
-
PANIZZI EMANUELE
( programma)
Questo corso tratta i principi di diverse tecnologie interattive, coinvolgendo la comunicazione sul web. Quindi, dopo un riepilogo degli argomenti di base di HCI, analizzeremo l'interazione in diversi contesti: mobile, indossabile, IoT, chatbots e messaggistica, auto, ecc.
Argomenti di questo corso:
Interfacce e interazione utente Post-WIMP: • interfaccia utente indossabile • UX per IoT • interfacce conversazionali: chatbot, interfaccia utente vocale • interazione tangibile • UI tattile / tattile • UI gestuale e dell'intero corpo • realtà virtuale e aumentata, interfaccia utente 3D • zoom UI, 10 piedi UI, display bifocali Dispositivi indossabili
Metodologie e strumenti HCI: • interazione implicita sensibile al contesto • teoria delle attività • gamification • pensiero progettuale
Casi studio: • social computing e progettazione di sistemi socio-tecnici • HCI in macchina • interazione uomo-robot (HRI)
Assegnazione e discussione di progetti-lavori.
• Alan Dix – Janet Finlay – Gregory Abowd – Russell Beale “HUMAN-COMPUTER INTERACTION”, 3rd edition http://dl.acm.org/citation.cfm?id=1203012.
• The Encyclopedia of Human-Computer Interaction, 2nd Ed., https://www.interaction- design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047634 -
INTERNET OF THINGS
(obiettivi)
Obiettivi generali: Il corso illustra gli aspetti metodologici, teorici e pratici relativi alla progettazione di reti wireless e Internet delle cose. Il corso prevede un laboratorio.
Obiettivi specifici Introduzione alle reti wireless, architetture e protocolli usati nelle reti cellulari info al 5G e nei sistemi Internet delle cose, analisi delle soluzioni di ricerca relative ad alcune delle sfide per la realizzazione dei sistemi internet delle cose (abbattimento del consumo energetico, integrazione del mondo IoT e della robotica, sicurezza delle informazioni).
Struttura sintetica del corso: - Introduzione alle reti radio - Dai sistemi cellulari 2G al 5G - Protocolli per sensing systems: protocolli di MAC, routing, localizzazione e sincronizzazione - Verso l'Internet delle cose: caratteristiche e problematiche, protocolli standard e tecnologie, scelte progettuali per diversi ambiti verticali, sfide ancora aperte - Aspetti avanzati dell'IoT: zero-power IoT; aspetti di sicurezza; uso di blockchain in applicazioni IoT; ottimizzazione di sistemi mediante tecniche di machine learning; integrazione di robotica e IoT systems (esempio dell'Internet of Underwater Things). -Lab di programmazione IoT
Conoscenze e comprensione: Alla fine del corso lo studente saprà leggere e comprendere articoli scientifici, documenti tecnici e standard del settore; avrà compreso i trade-off prestazionali associati a diverse scelte progettuali. Sarà quindi in grado di progettare futuri sistemi wireless e IoT. Avrà fatto prime esperienze pratiche relative alla programmazione e valutazione sperimentale di tali sistemi.
Applicazione di conoscenza e comprensione: Gli studenti saranno in grado di partecipare alla progettazione di futuri sistemi e applicazioni IoT e di sistemi 5G.
Capacità di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse scelte progettuali alternative selezionando la migliore per ogni specifico scenario applicativo e tipo di tecnologia.
Capacità di comunicazione: Gli studenti impareranno ad analizzare e presentare articoli scientifici, idee di ricerca o soluzioni tecniche di settore, descrivendole in modo sintetico ed accurato, con un linguaggio tecnico adeguato.
Capacità di apprendimento: Gli studenti acquisiranno sia competenze teoriche che pratiche relative alla progettazione dei sistemi wireless e IoT, che li metteranno in grado di proseguire l'approfondimento di questi argomenti.
-
PETRIOLI CHIARA
( programma)
- Introduzione ai sistemi wireless - Mobile ad hoc networks - Reti di sensori e attuatori - RFID and backscattering - Reti di droni - Protocolli MAC e di routing - Problematiche legate all'energia - Verso Internet of Things: standards, questioni aperte - Internet of Things sottomarine - LAB: programmazione e/o simulazione di sistemi IoT
Articoli e altri materiali (capitoli di libro, standard...) forniti durante il corso
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1047636 -
MATHEMATICAL LOGIC FOR COMPUTER SCIENCE
(obiettivi)
Obiettivi generali: Il corso ha l'obiettivo di introdurre gli studenti ai risultati e ai metodi fondamentali della Logica Matematica con particolare attenzione alla loro applicazione nell'ambito dell'Informatica.
Obiettivi specifici: L'obiettivo del corso è duplice. In primo luogo si intende dotare lo studente di una conoscenza rigorosa e di una capacità di applicare quei risultati e metodi della Logica Matematica che trovano applicazione in numerose aree dell'Informatica. D'altra parte si intende offrire allo studente una strumenti e conoscenze fondamentali per intraprendere un percorso di ricerca in Informatica Teorica.
Conoscenza e comprensione: Il corso mira a dotare lo studente di una conoscenza rigorosa degli argomenti del corso attraverso lo studio delle dimostrazioni e la produzione di argomenti rigorosi nello svolgimento degli esercizi. Particolare attenzione è data alla motivazione concettuale, alla dimostrazione rigorosa e alla applicabilità dei risultati trattati nel corso.
Applicazione di conoscenza e comprensione: I metodi della logica matematica hanno un ruolo fondamentale in diverse aree dell'Informatica quali la Teoria della Complessità, la Teoria delle Basi di Dati, l'Intelligenza Artificiale. Si mira a stimolare nello studente la capacità di applicare in vari contesti dell'informatica i metodi e i risultati studiati.
Autonomia di giudizio: Viene stimolata la partecipazione attiva alle lezioni ed esercitata l'autonomia di giudizio attraverso l'assegnazione di esercizi e problemi.
Abilità comunicative: Lo studente può scegliere di dare l'esame finale in forma di presentazione seminariale davanti alla classe di un risultato concordato con il docente.
Capacità di apprendimento successivo: I metodi di analisi e formalizzazione acquisiti durante il corso trovano applicazione in diverse aree dell'Informatica. L'esercizio di formalizzazione e problem-solving durante il corso rinforza le capacità di apprendimento e acquisizione di nuove competenze.
-
CARLUCCI LORENZO
( programma)
Sintassi e Semantica della logica del primo ordine. Completezza e decidibilità di teorie. Eliminazione dei quantificatori. Teoria dei modelli finiti. Esprimibilità e non-esprimibilità di queries su database relazionali. Giochi di Ehrenfeucht-Fraissé. Completezza della logica del primo ordine. Teorema di Compattezza. Assiomatizzabilità e non assiomatizzabilità. Ultrafiltri e ultraprodotti. Teoremi di Incompletezza di Godel. Logica modale e logica della dimostrabilità. Modelli di Kripke. Cut-elimination. Gerarchia Aritmetica e gradi di insolubilità algoritmica. Teorema di Post. Analisi del contenuto algoritmico di teoremi di combinatoria. Complessità descrittiva: Teorema di Fagin.
Non vi è un manuale di riferimento. Il docente fornisce dispense dettagliate di tutti gli argomenti affrontati.
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10589557 -
METHODS IN COMPUTER SCIENCE EDUCATION: ANALYSIS
(obiettivi)
Obiettivi generali: Conoscere ed applicare le più recenti teorie e metodologie di insegnamento dell'Informatica nella scuola e nell'università. Il corso svilupperà una serie di use-cases relativi alle tecniche di insegnamento dell'Informatica.
Obiettivi specifici: • Analisi critica delle principali metodologie per l'insegnamento sviluppate nella ricerca in didattica dell'informatica, anche in riferimento allo specifico ruolo dell'insegnante, ai nodi concettuali, epistemologici, linguistici e didattici dell'insegnamento e apprendimento dell'informatica, ponendo in particolare l'accento sulla distinzione fra l'informatica come disciplina scientifica da una parte e le applicazioni dell'informatica dall'altra. • Esplicitazione del parallelismo fra metodologie informatiche e metodologie didattiche: tecniche di problem solving costruttivo; approccio epistemologico ai problemi; metodi cooperativi di sviluppo delle soluzioni.
Conoscenza e comprensione: Principi e metodi di costruzione di attività didattiche di C.S. nella scuola superiore e nell'università.
Applicazione di conoscenza e comprensione: Agli studenti verrà richiesto di scegliere e sviluppare alcuni moduli didattici per la Scuola superiore e l'Università.
Autonomia di giudizio: Lo studente sarà autonomo nello scegliere i moduli da sviluppare e nella loro fase di progetto e realizzazione.
Abilità comunicative: Gli studenti dovranno dimostrare di saper produrre moduli didattici di qualità, con una forte capacità di interessare e comunicare con precisione gli argomenti chiave della lezione da sviluppare.
Capacità di apprendimento successivo: La metodologia di progetto dei moduli didattici vista nel corso sarà facilmente applicabile ad altri tipi di corsi.
-
STERBINI ANDREA
( programma)
Il corso analizzerà con esempi pratici i principali ambienti di programmazione in uso in ambito nazionale e internazionale per l'insegnamento della Programmazione.
In particolare, il corso è organizzato come 6 unità, ciascuna dedicata all'analisi ed uso di un diverso ambiente di apprendimento della Programmazione, ciascuna composta da 4 lezioni: - 1 lezione per analizzare il learning environment e le corrispondenti primitive di programmazione - 1 lezione per analizzare esempi di unità didattiche realizzate con il learning environment - 1 lezione per suggerire e iniziare il progetto, assieme agli studenti, di una nuova attività didattica, preferibilmente in ambito interdisciplinare (p.es. Italiano, Latino, Fisica, Chimica, Matematica, Musica ...) - 1 lezione per presentare e discutere le unità didattiche costruite dagli studenti
In particolare, i principali ambienti di apprendimenti analizzati sono: - Scratch e Snap: programmazione visuale di semplici applicazioni desktop e giochi - OpenRoberta: programmazione visuale di semplici robot realizzati con i kit Lego Mindstorms EV3 - AppInventor: programmazione visuale di semplici applicazioni Android - NetLogo and LibreLogo: programmazione testuale di automi cellulari, simulazioni multi-agente e turtle-graphics - Alice: programmazione visuale di mondi e giochi 3D
Alla fine del corso verranno analizzati alcuni sistemi meno diffusi ma molto interessanti: - Flowgorithm: programmazione visuale tramite il disegno di flow-charts e generazione di applicazioni in diversi linguaggi di programmazione - Prolog: programmazione dichiarativa/logica con esempi di analisi e generazione di testi e/o musica - VPython: programmazione testuale di semplici oggetti e movimenti 3D
Il corso analizzerà le principale iniziative dedicate all'apprendimanto dell'Informatica in campo nazionale ed internazionale.
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1038141 -
NATURAL LANGUAGE PROCESSING
(obiettivi)
Obiettivi generali: I fondamenti dell'elaborazione del linguaggio naturale.
Obiettivi specifici: L'elaborazione del linguaggio naturale al livello di: morfologia, parte del discorso, sintassi, semantica, pragmatica. Traduzione automatica.
Conoscenza e comprensione: Conoscenza e comprensione delle tecniche algoritmiche e di apprendimento automatica per l'elaborazione del linguaggio naturale.
Applicare conoscenza e comprensione: Essere in grado di applicare le tecniche di elaborazione del linguaggio naturale mediante homework e un progetto.
Capacità critiche e di giudizio: Capacità di comprendere e identificare soluzioni efficaci ai problemi dell'elaborazione del linguaggio naturale.
Capacità comunicative: Capacità di illustrare il progetto sviluppato.
Capacità di apprendimento: Capacità di apprendere e applicare nuove tecniche di elaborazione del linguaggio naturale sia basate su quelle illustrate nel corso sia basate su approcci innovativi.
-
NAVIGLI ROBERTO
( programma)
The course introduces a field of Artificial Intelligence which deals with the automatic processing of natural language. Topics include: language modeling, smoothing techniques, morphological analysis, part-of-speech tagging, syntactic parsing, semantic analysis (word sense disambiguation and induction, semantic role labeling), machine translation and other applications.
- Yoav Goldberg. Neural Network Methods for Natural Language Processing, Morgan & Claypool, 2017. - Jacob Eisenstein. Introduction to Natural Language Processing, MIT Press, 2019. - Jurafsky and Martin. Speech and Language Processing, Prentice Hall, 2009.
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10589555 -
PRACTICAL NETWORK DEFENSE
(obiettivi)
Obiettivi generali: Il corso affronta i fondamenti delle metodologie e degli strumenti per la protezione delle reti di calcolatori. Particolare attenzione viene dedicata all'applicazione pratica delle nozioni apprese.
Obiettivi specifici: Il corso affronta le relazioni fra i meccanismi di funzionamento delle reti di calcolatori e gli attacchi informatici, i meccanismi per la possibile identificazione e soppressione degli attacchi e la relativa implementazione mediante l'uso di adeguate strategie di progettazione e di strumenti specifici.
Conoscenza e comprensione: Elencare le minacce più ricorrenti dovute all'uso di specifici protocolli all'interno delle reti di elaboratori. Spiegare i meccanismi più utilizzati dagli attaccanti maliziosi e dai progettisti di malware per compromettere la sicurezza di un sistema di elaboratori. Spiegare i meccanismi di base utilizzati per l'identificazione dei tentativi di intrusione negli elaboratori e nelle reti.
Applicazione di conoscenza e comprensione: Alla fine del corso gli studenti saranno in grado di realizzare il monitoraggio del traffico scambiato nelle reti, di applicare una policy di sicurezza, di realizzare una scansione delle stazioni all'interno di una rete di elaboratori e una ricerca delle vulnerabilità di una rete di elaboratori. Gli studenti svilupperanno la capacità di selezionare le regole appropriate per proteggere una rete mediante firewall, selezionare i meccanismi più appropriati per proteggere un sistema di elaboratori collegati tramite rete e di eseguire le scelte di progettazione più opportune per implementare una strategia di "difesa in profondità", usando reti isolate e strumenti dedicati (VPN,proxy e firewall).
Capacità di giudizio: Gli studenti svilupperanno le capacità di analisi necessarie per valutare diverse alternative durante il processo di progettazione di una rete di elaboratori, con particolare riferimento alla valutazione delle scelte architetturali e dei rischi che possono comportare e agli obiettivi di sicurezza che il sistema vuole perseguire.
Capacità comuncative: Gli studenti impareranno a documentare le loro scelte, anche attraverso l'uso di strumenti di generazione di rapporti automatizzati. Avranno anche acquisito la capacità di preparare presentazioni relative ad argomenti scientifici.
Capacità di proseguire l'apprendimento in modo autonomo: Le nozioni acquisite durante il corso forniranno agli studenti una solida base di conoscenza per poter ulteriormente approfondire gli aspetti più tecnici, esplorare le alternative non affrontate per motivi di tempo e per mantenersi autonomamente informati sui continui sviluppi e aggiornamenti della sicurezza informatica applicata alle reti.
|
6
|
INF/01
|
60
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1041870 -
WEB AND SOCIAL INFORMATION EXTRACTION
(obiettivi)
Obiettivi generali: Il corso introduce architetture e algoritmi per l’estrazione di informazioni dal web, analizzando sia i motori di ricerca Web sia i social network on-line.
Obiettivi specifici: Architettura di sistemi di Information retrieval, Estrazioni di informazioni dal Web, Analisi di reti sociali, sistemi di raccomandazione.
Conoscenza e comprensione: Gli studenti impareranno come implementare un sistema di recupero delle informazioni. Impareranno anche come analizzare e tracciare il comportamento degli utenti sui social network.
Applicazione di conoscenza e comprensione: Gli studenti sperimenteranno con Lucene, twitter API, Maven Core e librerie grafiche.
Autonomia di giudizio: Gli studenti saranno in grado di comprendere le categorie di problemi che possono essere risolti in modo efficiente con quali metodi e a quali condizioni.
Abilità comunicative: Queste saranno valutate durante gli esami scritti e la reportistica del progetto.
Capacità di apprendimento successivo: Gli studenti riceveranno una solida base per approfondire ulteriormente i metodi più avanzati, sia nell’ambito delle rete sociali che del web mining.
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10593236 -
DEEP LEARNING AND APPLIED ARTIFICIAL INTELLIGENCE
(obiettivi)
Obiettivi generali Acquisire familiarità con tecniche avanzate di machine learning supervisionato e non supervisionato; acquisire competenze di modellazione di problemi complessi attraverso tecniche di deep learning, e saperle applicare a contesti applicativi diversi.
Obiettivi specifici Gli argomenti includono: reti neurali profonde, il loro addestramento e l'interpretazione dei risultati; reti convoluzionali e architetture prominenti; teoria del deep learning con particolare riferimento a questioni di convergenza; utilizzo di framework esistenti per l'implementazione di tecniche avanzate di machine learning; autoencoders; attacchi avversari.
Conoscenza e comprensione: Conoscenza sul funzionamento delle reti neurali e loro interpretazione matematica come approssimatori universali. Comprensione dei limiti e delle potenzialità di modelli avanzati di machine learning.
Applicazione di conoscenza e comprensione Progettazione, implementazione, messa in esercizio e analisi di architetture di deep learning per risolvere problemi complessi in disparati ambiti applicativi.
Autonomia di giudizio Essere in grado di valutare le prestazioni di diverse architetture, e di valutare la capacità di generalizzazione delle stesse.
Abilità comunicative Essere in grado di comunicare con chiarezza la formulazione di un problema di apprendimento avanzato e la sua implementazione, la sua applicabilità in contesti realistici, nonchè di motivare le scelte architetturali e di regolarizzazione.
Capacità di apprendimento successivo: Essere in grado di apprendere tecniche alternative e più complesse quali i modelli generativi basati su traporto ottimo, le trasformate di scattering e lo studio del probilo energetico delle reti neurali. Essere in grado di implementare tecniche esistenti in maniera efficiente, robusta e affidabile.
-
RODOLA' EMANUELE
( programma)
- Fundamentals of ML review - Linear regression - Classification - Energy minimization - Maximum likelihood estimation - Optimization - Quasi-newton methods - Stochastic gradient descent - Automatic differentiation - Supervised, unsupervised and self-supervised learning - Representation, geometry, stability, variability - The curse of dimensionality in ML - Neural networks - Perceptron, multi-layer perceptron - Backpropagation - Properties of learnt representations - Training neural networks - Regularization - Activation functions - Weight initialization - Batch normalization - Hyperparameter optimization - Parameter updates - Dropout - Convolutional neural networks - Shift-invariance, co-variance and contra-variance - Weight sharing - Common architectures - Residual networks - Theory of deep learning - Convergence - Gradient flow - Open problems - Visualization, understanding and interpretability - Frameworks and libraries (language: Python) - Overview of DL frameworks (Keras, Tensorflow) - PyTorch - Transfer learning and domain adaptation - Recurrent networks, long-short time memory - Generative models - Autoencoders - Variational autoencoders - Generative adversarial networks - Geometric deep learning on non-Euclidean domains: - Graphs - Riemannian manifolds - Point clouds - Adversarial and universal attacks - Applications - Computer vision and graphics - Network and graph analysis (fake news detection, Netflix problem) - Audio synthesis
Data la natura altamente dinamica dell'area coperta da questo corso avanzato, non è previsto un testo unico di riferimento. Durante il corso verranno indicate e fornite di volta in volta le fonti sotto forma di articoli scientifici e capitoli di libri.
Come riferimento generale, i seguenti libri possono rivelarsi utili:
Deep Learning Ian Goodfellow, Yoshua Bengio, Aaron Courville MIT Press, 2016
Deep Learning with PyTorch Vishnu Subramanian Packt, 2018
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
36
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
|