Questa funzione ti consente di visualizzare il tuo percorso formativo, se la tua immatricolazione è avvenuta in anni precedenti

Curricula per l'anno 2025 - Engineering in Computer Science and Artificial Intelligence - Ingegneria Informatica e Intelligenza Artificiale (33515)

Curriculum unico

1º anno

InsegnamentoSemestreCFUSSDLingua
10599896 | DEPENDABLE DISTRIBUTED SYSTEMS9ING-INF/05ENG

Obiettivi formativi

OBIETTIVI GENERALI
Il corso ha come obiettivo principale quello di fornire le conoscenze di base per la progettazione e lo sviluppo di un sistema distribuito che sia in grado di soddisfare i principali requisiti di dependability (e.g., affidabilità, disponibilità del servizio, integrità dei dati, confidenzialità delle informazione etc.).

OBIETTIVI SPECIFICI
- Conoscenza e comprensione
I sistemi distribuiti sono alla base di qualsiasi applicazione informatica moderna e pertanto devono essere progettati e sviluppati tenendo in considerazione i principali requisiti non funzionale in grado garantire la qualità del servizio erogato a fronte di guasti, malfunzionamenti e intrusioni nel sistema.
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 analizzeranno i principali modelli di sistema e le astrazioni di base per la comunicazione e la sincronizzazione, si introdurranno le primitive di base per la costruzione di un middleware, si forniranno i concetti di base di un sistema peer-to-peer con alcuni esempi di sistemi reali tra cui i var tipi di ledger e blockchain. Infine, verranno presentate agli studenti tecniche di base per l'analisi della dependability (modelli analitici e modelli di simulazione) che consentano di valutare il sistema stesso e la sua capacità di soddisfare i livelli di dependability e di qualità del servizio imposti dalle specifiche del sistema stesso.

- 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.
Infine, lo studente sarà in grado di svolgere un'analisi delle dependability del sistema stesso e di svolgere un'analisi comparativa tra diverse soluzioni.

- 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 con requisiti di dependability.

10600393 | CYBERSECURITY9ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.

1. Fornire una visione complessiva della sicurezza informatica, intesa come disciplina tecnica e culturale, essenziale nella società digitale contemporanea.
2. Formare professionisti consapevoli, in grado di valutare criticamente la sicurezza di sistemi, applicazioni e infrastrutture informatiche, anche in contesti reali e complessi.
3. Coltivare una mentalità progettuale orientata alla sicurezza, sensibilizzando alla necessità di integrare protezione, riservatezza, autenticità e resilienza fin dalle prime fasi dello sviluppo di tecnologie.
4. Promuovere l’autonomia nello studio e nella ricerca, fornendo strumenti concettuali e metodologici per approfondire temi avanzati o emergenti nel campo della cybersecurity.

Obiettivi Specifici.

1. Comprendere i fondamenti della sicurezza informatica, con particolare attenzione a:
• Crittografia simmetrica e asimmetrica
• Integrità e autenticazione dei messaggi
• Firme digitali e loro standard (PAdES, CAdES, XAdES, JAdES)

2. Studiare i protocolli e i sistemi di sicurezza reali, inclusi:
• HTTPS, IPsec, TLS/SSL, SSH
• Autenticazione tramite password, biometria, Kerberos, certificati X.509
• Sicurezza del sistema email
• Metodologie e sistemi per la sicurezza di rete

3. Analizzare minacce e modelli di attacco, sviluppando:
• Capacità di individuare vulnerabilità
• Comprensione delle tecniche di attacco e difesa
• individuare i pattern di attacco più comuni con particolare riferimento alle applicazioni web

4. Approfondire l’uso di generatori di numeri casuali sicuri, fondamentali per crittografia e protocolli.

5. Applicare la teoria alla pratica, mediante:
• Homework ed esercitazioni
• Progetti e tesi (per studenti interessati)

6. Sviluppare un pensiero critico rispetto alla sicurezza delle tecnologie digitali moderne.

- Conoscenza e Comprensione:

Al termine del corso, lo studente avrà acquisito una solida conoscenza dei principi fondamentali della sicurezza informatica, con particolare riferimento ai modelli teorici e agli strumenti pratici per garantire riservatezza, integrità, autenticazione e disponibilità delle informazioni. In particolare, sarà in grado di:
• comprendere il funzionamento e i limiti dei principali algoritmi crittografici, sia simmetrici che asimmetrici;
• riconoscere e valutare le minacce alla sicurezza nei sistemi di comunicazione, nei protocolli di rete e nelle applicazioni;
• analizzare i meccanismi di autenticazione, gestione delle identità e firme digitali, anche alla luce dei relativi standard internazionali;
• comprendere le architetture di sicurezza nei diversi livelli dello stack protocollare, inclusi HTTPS, TLS, IPsec, SSH e Kerberos.
• conoscere le pratiche di riferimento per la progettazione di stack applicativi sicuri.

La comprensione sarà supportata sia da esempi tratti dal mondo reale sia da attività applicative e discussioni critiche, in modo da favorire una visione sistemica e aggiornata del tema.

- Applicare conoscenza e comprensione:
Lo studente sarà in grado di applicare in modo efficace i concetti e gli strumenti acquisiti per analizzare, progettare e valutare soluzioni di sicurezza in ambito informatico. In particolare, sarà capace di:

• identificare vulnerabilità nei protocolli di comunicazione e nei sistemi informatici;
• selezionare e implementare tecniche crittografiche appropriate a specifici contesti applicativi;
• configurare e valutare protocolli di autenticazione, sistemi di gestione delle identità e infrastrutture di chiave pubblica (PKI);
• analizzare scenari reali di attacco e difesa, formulando strategie di mitigazione e miglioramento della sicurezza;
• comprendere e utilizzare standard e strumenti per la firma digitale e la protezione dei dati in transito e in archiviazione.

Le competenze applicative saranno sviluppate attraverso esercitazioni pratiche, analisi di casi studio e discussioni guidate su vulnerabilità e incidenti noti.

- Capacità critiche e di giudizio:
Al termine del corso, lo studente avrà sviluppato la capacità di analizzare criticamente problemi di sicurezza informatica, valutando in modo autonomo le soluzioni possibili alla luce dei vincoli tecnici, normativi ed etici. In particolare, sarà in grado di:
• riflettere sulle implicazioni dell’adozione (o mancata adozione) di misure di sicurezza nei sistemi digitali;
• confrontare approcci e tecnologie di sicurezza, valutandone efficacia, scalabilità e sostenibilità;
• formulare giudizi motivati su progetti e architetture di sistemi sicuri, tenendo conto di contesti reali e multidisciplinari;
• riconoscere i limiti delle tecnologie esistenti e la necessità di aggiornamento continuo in un settore in rapida evoluzione.

Il corso stimola il pensiero critico attraverso l’analisi di casi studio, discussioni su incidenti reali, e riflessioni sull’etica e la responsabilità nella progettazione di sistemi sicuri.

- Capacità comunicative:
Lo studente acquisirà la capacità di comunicare in modo chiaro, preciso e appropriato contenuti, problemi e soluzioni relativi alla sicurezza informatica, sia a interlocutori specialisti che non specialisti. In particolare, sarà in grado di:
• descrivere e motivare l’adozione di tecnologie e protocolli di sicurezza con linguaggio tecnico accurato;
• esporre in modo comprensibile rischi, contromisure e implicazioni della cybersecurity anche a stakeholder non tecnici (ad esempio in ambito aziendale, legale o istituzionale);
• partecipare attivamente a discussioni critiche su casi di attacco e difesa, anche in contesti collaborativi o interdisciplinari;
• redigere brevi report tecnici e documentazione chiara su configurazioni, analisi e risultati di laboratorio.

Il corso favorisce queste abilità attraverso esercitazioni orali, discussioni collettive, stesura di elaborati e interazione con materiali divulgativi e scientifici.

- Capacità di Apprendimento:
Al termine del corso, lo studente avrà sviluppato solide capacità di apprendimento autonomo e continuo, indispensabili per aggiornarsi in un ambito, come quello della sicurezza informatica, in costante evoluzione tecnologica e normativa.

In particolare, sarà in grado di:
• reperire e comprendere in modo critico documentazione tecnica, articoli scientifici e standard internazionali in materia di cybersecurity;
• approfondire autonomamente temi avanzati o emergenti (es. nuove vulnerabilità, protocolli post-quantum, normative sulla privacy);
• applicare strategie di studio flessibili per affrontare l’eterogeneità delle fonti (manuali, specifiche, white papers, codici di condotta);
• affrontare con metodo e spirito critico progetti di ricerca o sviluppo in sicurezza, anche in ambito accademico o professionale.

Il corso stimola l’apprendimento indipendente attraverso compiti aperti, letture consigliate, accesso a risorse online e un approccio orientato alla risoluzione di problemi reali.

1022858 | MACHINE LEARNING6ING-INF/05ENG

Obiettivi formativi

General Objectives.

The objectives of this course are to present a wide spectrum of Machine Learning methods and algorithms, discuss their properties, convergence criteria and applicability. The course will also present examples of successful application of Machine Learning algorithms in different application scenarios.The main outcome of the course is the capability of the students of solving learning problems, by a proper formulation of the problem, a proper choice of the algorithm suitable to solve the problem and the execution of experimental analysis to evaluate the obtained results.

Specific Objectives.

Knowledge and understanding:
Providing a wide overview of the main machine learning methods and algorithms for classification, regression, and unsupervised learning learning problems. All the problems are formally defined and theoretical bases as well as technical and implementation details are provided, in order to understand the proposed solutions.

Applying knowledge and understanding:
Solving specific machine learning problems starting from training data, through a proper application of the studied methods and algorithms. The development of small projects to be developed at home allows students to apply the acquired knowledge.

Making judgements:
Ability of evaluating performance of a machine learning system using proper metrics and evaluation methodologies.

Communication skills:
Ability of writing a technical report describing the adopted solution, thus showing abilities in communicating results obtained from the application of the acquired knowledge in solving a specific problem. Being exposed to examples of communication by discussing results obtained in practical cases. By working in team for home projects, students will learn how to effectively communicate at a technical level.

Learning skills:
By acquiring the basic vocabulary and the fundamentals of Machine Learning, students will develop the required skills to autonomously access specialised literature and learn new approaches and techniques, useful to carry out home projects. More in general, the course provides the basics required to successfully learn more advanced ML topics, such as Deep Learning and NLP, typically offered in advanced academic courses.

10600392 | ARTIFICIAL INTELLIGENCE6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali.

Il corso introduce ai fondamenti dell’Intelligenza Artificiale, ponendo particolare enfasi sul ragionamento automatico e sul sequential decision-making.
Gli studenti acquisiranno familiarità con i principali formalismi e approcci per la rappresentazione della conoscenza e il ragionamento, sia in contesti statici che dinamici.
Apprenderanno inoltre le basi dei metodi di decisione per domini deterministici, non deterministici, avversari e stocastici.

Obiettivi specifici.

Conoscenza e capacità di comprensione:
Gli studenti acquisiranno le basi della Rappresentazione della Conoscenza per sistemi statici e dinamici tramite approcci formali: logica proposizionale e del primo ordine, situation calculus, MDP.
Verranno studiati i principali problemi logici (valutazione, soddisfacibilità, validità, implicazione logica) e le tecniche base per la loro risoluzione (DPLL, metodo dei tableaux).
L’obiettivo è comprendere l’importanza del modello formale e degli approcci indipendenti dal dominio come strumenti fondamentali per risolvere automaticamente i problemi.
Gli studenti apprenderanno come modellare un dominio di pianificazione tramite il linguaggio PDDL e come risolvere problemi di pianificazione in scenari deterministici, non deterministici, avversari e stocastici.
Saranno introdotte le principali tecniche di ricerca nello spazio degli stati: ricerca non informata, ricerca euristica, best-first search, ricerca A*, AND-OR search.
Per gli scenari stocastici verranno apprese Policy Evaluation e Policy Iteration.

Capacità di applicare conoscenza e comprensione:
Gli studenti impareranno ad astrarre e modellare formalmente scenari del mondo reale rappresentandoli come domini statici o dinamici, così come a identificare e formalizzare problemi reali. Saranno inoltre in grado di applicare le tecniche acquisite durante il corso per risolvere i problemi modellati.
Comprendendo come modellare e risolvere problemi, gli studenti acquisiranno la capacità di progettare e implementare semplici sistemi di ragionamento per una varietà di scenari e problemi reali.

Autonomia di giudizio:
Gli studenti saranno in grado di valutare l’adeguatezza e la qualità di un formalismo di rappresentazione rispetto a diverse classi di problemi e di selezionare la tecnica di soluzione più adeguata.

Abilità comunicative:
Il corso fornirà agli studenti le nozioni e il vocabolario di base per interagire efficacemente con i propri pari e con esperti del settore.
Le abilità comunicative orali saranno stimolate attraverso l’interazione durante le lezioni, mentre quelle scritte saranno sviluppate tramite l’analisi di esercizi e la risposta a domande aperte nella prova finale.

Capacità di apprendimento:
Il corso fornirà agli studenti gli strumenti essenziali per accedere alla letteratura specialistica. In questo modo, potranno rafforzare e ampliare in autonomia le proprie competenze.
Oltre a tali capacità di apprendimento, gli studenti acquisiranno competenze avanzate di modellazione e di problem solving in generale.

AAF2141 | LABORATORY OF ADVANCED PROGRAMMING3ENG

Obiettivi formativi

Obiettivi generali.
Il corso propone un'introduzione a varie tecnologie di sviluppo software, anche distribuito, che potenzialmente possono essere utilizzate in altri corsi del percorso formativo. Inoltre vengono applicate, attraverso lo sviluppo di un progetto in gruppo, le moderne metodologie e tecniche di sviluppo software agile.

Obiettivi specifici.
Conoscenza e comprensione:
Programmazione di servizi Web in Java e Python. Programmazione di sistemi distribuiti con chiamate bloccanti e non bloccanti. SCRUM e metodi agili. Virtualizzazione e dockerizzazione.

Applicare conoscenza e comprensione:
Essere in grado di progettare una applicazione costituita da diversi componenti e microservizi.

Capacità critiche e di giudizio:
Essere in grado di valutare la qualità di una applicazione anche in termini di differenti scelte architetturali e di distribuzione.

Capacità comunicative:
Le attività progettuali e la presentazione del progetto in modalità pitch e con demo funzionante permettono allo studente di essere in grado di comunicare/condividere i requisiti di una applicazione software di media complessità, nonché le scelte progettuali e le metodologie di progettazione e sviluppo di tale applicazione.

Capacità di apprendimento:
Oltre alle classiche capacità di apprendimento fornite dallo studio del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

10620852 | USER-DRIVEN SOFTWARE ENGINEERING6ING-INF/05ENG

Obiettivi formativi

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.

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à
-valutare la significatività statistica di esperimenti basati sulla raccolta di campioni numerici.

1022797 | DATA MANAGEMENT6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
L'obiettivo del corso è l'indagine sui concetti di base dei sistemi di gestione dei dati, facendo riferimento sia al modello relazionale, sia a modelli NoSQL. 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 diversi modelli di dati, anche NoSQL, 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 diversi modelli di dati utilizzati nel mondo reale e dei relativi sistemi di gestione dei dati. Inoltre 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.

1044417 | ALGORITHM DESIGN6ING-INF/05ENG

Obiettivi formativi

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.

A SCELTA DELLO STUDENTE6ENG

Obiettivi formativi

Fra le altre attività formative sono previsti 12 CFU sono a scelta dello studente.

Caratterizzanti ING-INF/05
Insegnamenti affini ed integrativi

2º anno

InsegnamentoSemestreCFUSSDLingua
AAF2536 | ADVANCED TOPICS IN COMPUTER SCIENCE AND ARTIFICIAL INTELLIGENCE3ENG

Obiettivi formativi

Il corso offre allo studente la possibilità di approfondire le proprie conoscenze attraverso una serie di seminari su argomenti di ricerca nel campo della Computer Science e dell'Intelligenza Artificiale.
Il corso prevede lo studio di argomenti avanzati, anche con l'approfondimenti attraverso articoli scientifici relativi agli sviluppi più recenti nel settore e l'intervento in aula di ricercatori e studiosi della materia.

A SCELTA DELLO STUDENTE6ENG

Obiettivi formativi

Fra le altre attività formative sono previsti 12 CFU sono a scelta dello studente.

AAF1028 | PROVA FINALE30ENG

Obiettivi formativi

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.

Caratterizzanti ING-INF/05
Insegnamenti affini ed integrativi

Gruppi opzionali

Lo studente deve acquisire 12 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFUSSDLingua
1038133 | FORMAL METHODS6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:

L'obiettivo del corso è lo studio e l'approfondimento della qualità più importante del software: la correttezza. Lo studio della correttezza verrà affrontato con riferimento ad aspetti concettuali e realizzativi affrontando la modellazione e la verifica sia di aspetti statici che di aspetti dinamici. Gli argomenti vengono trattati dando enfasi ad aspetti metodologici e ad aspetti sperimentali utilizzando varie forme di logica (logica del prim'ordine, logiche dinamiche e logiche temporali) e vari strumenti per la verifica automatica.
Risultati di apprendimento attesi: Alla fine del corso lo studente dovrebbe avere acquisito tecniche e metodi per la dimostrazione della correttezza dei programmi e degli schemi concettuali.

Obiettivi specifici:

Conoscenza e comprensione:
I principali fondamentali dei metodi formali. L'uso di specifiche rigorose e formali e la loro verifica. Principi fondanti della logica per l'informatica, verifica formale di proprieta' dei dati e dei processi.

Applicare conoscenza e comprensione:
Essere in grado di affrontare l'analisi di correttezza di programmi attraverso metodi rigorosi e formali, sia relativamente ad aspetti relativi ai dati che ai processi.

Capacità critiche e di giudizio:
Essere in grado di valutare il rigore di una data argomentazione di correttezza dei programmi. Orientarsi nella scelta degli strumenti concettuali forniti dalla logica e i metodi formali per la verifica di proprieta' sia statiche che dinamiche.

Capacità comunicative:
Le attività di gruppo in classe e le esercitazioni del corso permettono allo studente di essere in grado di comunicare/condividere le conoscenze acquisite e confrontarsi con gli altri sui temi del corso.

Capacità di apprendimento:
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

10606829 | INTERNET-OF-THINGS ALGORITHMS AND SERVICES6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.
Il corso è rivolto principalmente a rivolto principalmente a ingegneri informatici e mira a fornire le competenze di base per progettare, implementare e testare un sistema pervasivo, vale a dire un sistema che consenta agli utenti di accedere ai servizi d'interesse sempre ed ovunque. Discuteremo le tecnologie, i protocolli, le funzionalità e algoritmi per realizzare un sistema pervasivo in grado di fornire servizi specifici (ad esempio servizi per gli utenti mobili, servizi per l'internet degli oggetti, ecc) soggetto ai vincoli tipici dei collegamenti wireless e alle risorse limitate del dispositivi che lo compongono (es. vincoli di energia, mobilità, rumore, potenza della CPU limitato, larghezza di banda limitata, ecc)

10612389 | COMPUTATIONAL COMPLEXITY6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
Il corso propone: (1) lo studio di un approccio moderno alla complessità computazionale, (2) la comprensione del concetto di computazioni algoritmiche in presenza di risorse di calcolo limitate e (3) la classificazione dei problemi matematici in base alle risorse necessarie e sufficienti per risolverli algoritmicamente. Si affronta lo studio e la comprensione di problemi fondazionali dell'Informatica e della Matematica come P vs NP e altri problemi affini su altri classi di complessità . Il focus del corso è orientato a studiare problemi intrattabili con risorse computazionali limitate: il fine è quello di acquisire le principiali tecniche matematiche per dimostrare che certi problemi non possono essere risolti con risorse computazionali limitate.

Obiettivi specifici:
Conoscenza e comprensione:
Classificazione dei problemi matematici in base alla risorse e ai modelli di calcolo necessari e sufficienti per risolverli algoritmicamente efficientemente: tempo di esecuzione, memoria, randomness, non determinismo, parallelismo.
Tecniche per la dimostrazione che alcuni problemi sono intrattabili avendo a disposizione risorse computazionali limitate.

Applicare conoscenza e comprensione:
Dotare lo studente delle capacita di problem solving applicato a problemi computazionali principalmente sotto due aspetti: (1) Pensare e descrivere una la soluzione di un problema ad alto livello descrivendone le idee portanti e le motivazioni di efficacia per la soluzione; (2) essere in grado di dettagliare e scrivere matematicamente soluzioni precedentemente descritte ad alto livello.

Capacità critiche e di giudizio:
Essere in grado di valutare la qualità e la correttezza di soluzioni a problemi di natura computazionale.

Capacità comunicative:
Descrivere e presentare correttamente problemi di natura computazionale e loro soluzioni matematiche a vari livelli: (1) brevi presentazioni orali della durata di 30 minuti; (2) presentazioni orali matematicamente dettagliate della durata di una o due ore; (3) scrittura scientifica di report con la soluzione di un problema.

Capacità di apprendimento:
Approfondimento autonomo di alcuni argomenti presentati nel corso, lavoro di gruppo, applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

10620853 | GENERATIVE ARTIFICIAL INTELLIGENCE6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali
Al termine del corso, gli studenti avranno una solida comprensione e capacità pratica nell'ambito del Generative AI, essenziale per affrontare e risolvere problemi complessi di intelligenza artificiale generativa.

Obiettivi Specifici
Conoscenza e Comprensione:
Acquisire una comprensione approfondita dei principi di generazione di immagini e testi.
Apprendere le strutture e i meccanismi dei modelli generativi basati su tecniche di diffusione e su tecniche autoregressive

Capacità Critiche e di Giudizio:
Valutare criticamente le prestazioni dei modelli di generative AI e di come queste vengono utilizzati in ambiti reali.
Analizzare le sfide relative alla robustezza nei modelli di generative AI e sviluppare soluzioni efficaci.

Capacità Comunicative:
Presentare e discutere i risultati dei progetti di generative AI, dimostrando competenza nell'uso di strumenti avanzati come Diffusion Models e Transformers.

Capacità di Apprendimento:
Sperimentare con tecnologie emergenti nel campo del deep learning, come LLM, Vision LM, Diffusion Models, Flow-based Model, etc..
Applicare le conoscenze teoriche in progetti pratici per affrontare problemi reali.

1052057 | VISUAL ANALYTICS6ING-INF/05ENG

Obiettivi formativi

L'obbiettivo del corso è di fornire una introduzione alle tecniche di Information Visualization e Visual Analytics correntemente utilizzate. In particolare, verranno analizzate le metodologie di visualizzazione di dati puramente numerici (tabelle, diagrammi) e le tecniche di rappresentazione (mapping di attributi del dataset rappresentato in attributi visuali), fornendo le competenze pratiche per implementarle in d3.js e integrarle con soluzioni algoritmiche standard di Visual Analytics. Successivamente, verranno introdotte le tecniche di dimensionality reduction, con particolare attenzione a PCA, MDS e t-SNE, presentando soluzioni pratiche in Python. Infine, verrà introdotto il problema della presentazione delle tecniche descritte, acquisendo competenze su come superare limiti di spazio e di tempo nelle visualizzazioni, e fornendo indicazioni sulle principali tecniche di interazione.

1038138 | DATA MINING6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di
collezioni di dati appartenenti a spazi euclidei o meno, possibilmente di elevata dimensionalità.
Conoscenza e comprensione delle tecniche elementari.
Conoscenza e comprensione dei principali problemi metodologici e di analisi posti dalla
dimensione crescente dei dati.
Conoscenza delle principali tecniche di soluzione e dei principali strumenti
a disposizione per implementarle.
Comprensione degli aspetti teorici e fondazionali delle principali tecniche per
l'analisi di collezioni di dati di grandi dimensioni
Capacità di tradurre le nozioni acquisite in programmi per la soluzione di problemi
specifici.
Conoscenza delle principali tecniche di valutazione e loro applicazione a scenari specifici.

Obiettivi specifici:
Capacità di:
- individuare le tecniche più adatte a un problema di analisi di dati, in particolare ad elevata dimensionalità;
- implementare la soluzione proposta, individuando gli strumenti più adatti a
raggiungere lo scopo tra quelli disponibili;
- progettare e realizzari scenari sperimentali per valutare le soluzioni proposte
in condizioni realistiche;

Conoscenza e comprensione:
- conoscenza dei principali scenari applicativi;
- conoscenza delle principali tecniche di analisi;
- comprensione dei presupposti teorici e metodologici alla base delle tecniche principali
- conoscenza e comprensione delle principali tecniche e indici di valutazione
delle prestazioni

Applicare conoscenza e comprensione:
- essere in grado di tradurre esigenze applicative in problemi concreti di analisi
dei dati;
- essere in grado di identificare gli aspetti del problema, se presenti, che potrebbero rendere
la dimensione (o dimensionalità) dei dati un fattore critico;
- essere in grado di individuare le tecniche e gli strumenti più adatti alla soluzione dei
problemi concreti di cui sopra;
- essere in grado di stimare a priori, almeno qualitativamente, la scalabilità delle
soluzioni proposte;

Capacità critiche e di giudizio:
Essere in grado di valutare, anche sperimentalmente, l'efficacia, l'efficienza e la scalabilità
delle soluzioni proposte
Capacità comunicative:
Essere in grado di descrivere in modo efficace le specifiche di un
problema e di comunicare ad altri le scelte adottate e le motivazioni sottostanti a
tali scelte.

Capacità di apprendimento:
Il corso consentirà lo sviluppo di capacità di approfondimento autonomo
su argomenti del corso o ad essi correlati. Metterà lo studente nelle condizioni
di individuare e consultare in modo critico manuali avanzati o letteratura scientifica
per affrontare scenari nuovi oppure per applicare tecniche alternative a scenari noti.

1041706 | KNOWLEDGE REPRESENTATION AND SEMANTIC TECHNOLOGIES6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:

Conoscere i linguaggi di riferimento delle tecnologie semantiche attuali, in particolare le famiglie dei linguaggi di rappresentazione della conoscenza basate sul concetto di classe (class-based) e sul concetto di regola (rule-based), e le principali tecniche di ragionamento per tali linguaggi. Conoscere le tecnologie semantiche standard basate su tali formalismi di rappresentazione della conoscenza, in particolare i linguaggi RDF e OWL, con l'obiettivo di progettare e gestire una base di conoscenza ontologica. Conoscere gli elementi di base della rappresentazione di azioni e ragionamento su azioni.

Obiettivi specifici:

Conoscenza e comprensione:
Le logiche descrittive, i principali formalismi per la rappresentazione della conoscenza basati sul concetto di classe, e i linguaggi basati su regole, con particolare riferimento a Datalog e alcune sue estensioni. I principali standard Web per le tecnologie semantiche, in particolare i linguaggi RDF, SPARQL e OWL.

Applicare conoscenza e comprensione:
Essere in grado di progettare una base di conoscenza, scegliendo il formalismo e le tecnologie di gestione più appropriati per il contesto applicativo in esame.

Capacità critiche e di giudizio:
Essere in grado di valutare gli aspetti semantici salienti di una base di conoscenza e di una applicazione basata sulla conoscenza. Essere in grado di scegliere la migliore tecnologia disponibile per il processamento di una base di conoscenza.

Capacità comunicative:
Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di comunicare e condividere i requisiti di una applicazione che richiede la costruzione e la gestione di una base di conoscenza e/o l'uso delle tecnologie semantiche standard.

Capacità di apprendimento:
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

1044408 | LARGE-SCALE DATA MANAGEMENT6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
L'obiettivo del corso è di comunicare agli studenti i concetti di base della gestione dei sistemi informativi a larga scala. Verranno esaminati in dettaglio due argomenti specifici, vale a dire i modelli informativi per la gestione dei Big Data e l'integrazione delle informazioni.
Entrambi gli argomenti sono estremamente rilevanti nella società basata sui dati, in cui praticamente tutti i sistemi informativi di organizzazioni di dimensioni ragionevoli devono sia gestire grandi set di dati sia interagire con diverse fonti di dati.

Obiettivi specifici:
Studiare i modelli di dati utilizzati nella gestione di Big Data, in particolare i modelli di dati NoSQL, che includono i modelli di dati basati su colonne, su coppie chiave-valore e su documenti, e acquisire familiarità con le nozioni e le tecniche per l'integrazione delle informazioni.

Conoscenza e comprensione:
Dopo il corso lo studente avrà una buona conoscenza delle differenze e delle somiglianze tra il modello relazionale e le varie classi di modelli di dati NoSQL. Inoltre, gli studenti capiranno le questioni teoriche relative all'integrazione e allo scambio dei dati e avranno una buona conoscenza delle varie architetture dei sistemi di integrazione delle informazioni.

Applicare conoscenza e comprensione:
Gli studenti saranno in grado di progettare il proprio repository Big Data utilizzando uno dei modelli di dati adottati nella pratica, di scegliere un'architettura appropriata per l'integrazione delle informazioni e di costruire e mantenere un sistema di integrazione delle informazioni strutturato in base all'architettura scelta.

Capacità critiche e di giudizio:
Lo studente sarà in grado di valutare i requisiti per un sistema di gestione di Big Data e sarà in grado di scegliere il giusto modello di dati e l'infrastruttura adeguata. Analogamente, lo studente sarà in grado di comprendere i requisiti per uno specifico sistema di integrazione delle informazioni e scegliere gli approcci e le tecniche appropriate per la progettazione di una soluzione di alta qualità.

Capacità comunicativa:
Gli studenti acquisiranno una buona conoscenza su come illustrare i
risultati di un processo di progettazione, sia nel contesto della
gestione dei Big Data, sia nel contesto dei sistemi di integrazione
delle informazioni.

Capacità di apprendimento:
Lo studente sarà in grado di comprendere qualsiasi nuova architettura e
approccio alla gestione dei Big Data e all'integrazione delle
informazioni che diventeranno popolari in futuro.

10600447 | MALWARE ANALYSIS6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.
Gli odierni scenari legati alla cyber security ci testimoniano la sempre più pervasiva presenza di software malevolo utilizzato per perpetrare attacchi informatici. Il corso si propone di fornire agli studenti le conoscenze, i metodi e gli strumenti di base per analizzare, identificare, categorizzare e comprendere il comportamento dei software malevoli. Il corso adotterà un approccio pratico, con una importante componente di applicazione a casi reali.

Obiettivi Specifici.
Conoscenza e comprensione:
Conoscenza di caratteristiche e funzionalità distintive del software malevolo.

Applicare conoscenza e comprensione:
Capacità di analizzare staticamente e dinamicamente una istanza di software untrusted potenzialmente malevolo. Capacità applicata di individuare e di valutare differenti funzionalità di una istanza di software untrusted tramite metodi e strumenti di reverse-engineering.

Capacità critiche e di giudizio:
Capacità di interpretare in chiave potenzialmente malevola le risultanze delle attività di analisi e di reverse engineering di un software untrusted.

Capacità comunicative:
Essere in grado di esporre i risultati dell’analisi tecnica in forma di un report nello spirito di quanto realizzano i professionisti del settore.

Capacità di apprendimento:
Le modalità di svolgimento del corso stimolano lo studente all’approfondimento autonomo delle metodologie esposte nelle lezioni teoriche e pratiche verticali su ciascun tema. Le applicherà a istanze complesse di software che esercitano una pluralità di tecniche e funzionalità.

10620854 | MOBILE, EDGE AND CLOUD COMPUTING6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.

Il corso approfondisce l'integrazione tra mobile computing edge computing e cloud computing, con aspetti architetturali e software per la realizzazione di sistemi distribuiti moderni, scalabili e adattativi, includendo lo sviluppo di applicazioni mobili che sfruttano feature come i sensori dei dispositivi mobili e integrano moderne librerie di Machine Learning e servizi cloud. Inoltre, il corso analizza tecniche di bilanciamento del carico, offloading e ottimizzazione delle risorse, e la gestione dei carichi di lavoro in scenari distribuiti.

Obiettivi Specifici.

Conoscenza e capacità di comprensione:
Il corso mira a fornire le conoscenze necessarie per comprendere:
(i) le specificità delle app mobili rispetto alle app desktop;
(ii) i principali pattern di progettazione per le app mobili;
(iii) le principali problematiche legate alla sicurezza delle applicazioni per dispositivi mobili;
(iv) l’utilizzo dei principali servizi cloud di backend e del paradigma di edge/fog computing;
(v) le metodologie di progettazione e sviluppo di semplici servizi di backend dispiegati su piattaforme cloud o edge;
(vi) la classificazione dei modelli di servizio cloud.

Capacità di applicare conoscenza e comprensione:
Lo studente sarà in grado di progettare, sviluppare e testare applicazioni native per il sistema operativo Android che interagiscono con servizi cloud, utilizzando i principali strumenti ufficiali di sviluppo, progettazione e testing.
Inoltre, dovrà essere in grado di progettare, sviluppare e testare semplici servizi backend da dispiegare su piattaforme cloud o edge a supporto delle applicazioni mobili.

Autonomia di giudizio:
In base alle competenze acquisite, lo studente dovrà essere in grado di valutare i vantaggi gli svantaggi delle tecnologie con cui è possibile sviluppare app (applicazioni native, ibride e web based), valutare/ scegliere in modo ottimale e critico le funzionalità di supporto cloud per il funzionamento di applicazioni mobili; giudicare la fattibilità, complessità e le implicazioni di nuove possibili applicazioni, anche indicate da terzi. Inoltre, dovrà essere in grado di aggiornarsi autonomamente in base alle possibili future tecnologie relative ad app mobili o servizi cloud.

Abilità comunicative:
Lo studente dovrà essere in grado di motivare le scelte tecnologiche, metodologiche ed architetturali ad altre persone del settore, nonché di presentare, anche a persone non esperte, il funzionamento e le caratteristiche di possibili nuove applicazioni

Capacità di apprendimento:
Per stimolare la capacità di apprendimento verranno effettuati esercitazioni pratiche sui diversi argomenti trattati e verrà richiesto di usare criticamente informazioni disponibili per specifici problemi su varie piattaforme di discussione (es. Stack Overflow, siti ufficiali, blog, etc.)

1052222 | PLANNING AND REASONING6ING-INF/05ENG

Obiettivi formativi

Questo corso introduce i concetti relativi alla pianificazione automatica e ai
meccanismi di ragionamento logico dell'intelligenza artificiale. Lo scopo del
corso e' quello di permettere allo studente di usare i sistemi esistenti di
pianificazione automatica e di capire i loro meccanismi interni, in modo da
poterli sfruttare nel modo migliore ed eventualmente estendere a fronte di
problemi specifici. Inoltre, lo studente verrà messo in condizione di
comprendere i fondamenti teorici alla base dei meccanismi di ragionamento
logico usati in intelligenza artificiale.

10596250 | DIGITAL ENTREPRENEURSHIP6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali:

L'obiettivo del corso è fornire a studenti con una formazione prevalentemente tecnologica gli strumenti principali per progettare un attività di imprendtioria digitale

Obiettivi specifici

Il corso fornisce agli studenti le principali competenze complementari per sviluppare un progetto di imprenditoria digitale e si articola in quattro sezioni principali:
1) la formazione volta ad acquisire le metodologie e le tecniche lean per progettare. La formazione sarà ispirata ai concetti del design thinking con l'obiettivo di chiarire e valutare la fattibilità tecnica del progetto, la sostenibilità in termini di business e la desiderabilità da parte di uno specifico target di utenza.
2) Come presentare il progetto. Il pitch
3) Esperienze di successo presentate da imprenditori e/o ricercatori
4) Attività progettuali in cui gli studenti metteranno alla prova le competenze acquisite nel corso nella progettazione di un attività imprenditoriale digitale.

Conoscenza e comprensione:

Lo studente alla fine del corso conoscerà le tecniche, i processi e le metodologie princiapli per limitari i rischi connessi all'avvio di un progetto di imprenditoria digitale

Applicare conoscenza e comprensione:

Il corso è caratterizzato da un approccio sperimentale "impara facendo" ispirato alle moderne teorie del design thinking. Le competenze acquisite verranno dimostrate nella realizzazione del progetto finale.

Capacità critiche e di giudizio:

Le capacità critiche e di giudizio verranno principalmente sviluppate attraverso l'attività progettuale ed il confronto permanente all'iterno del gruppo, tra i gruppi di progetto e con gli istruttori. L'approccio lean costringerà gli studenti ad una continuo esercizio critico con l'obiettivo di analizzare incrementalmnte pregi e difetti delle soluzioni proposte uscendo fuori dalla comfort zone dell'ambito tecnologico.

Capacità comunicative:

Gli studenti dovranno essere in grado di presentare in modo conciso, ma efficace i risultati raggiunti attraverso l'esposizione di un Pitch

Capacità di apprendimento:

Il corso ha l'obiettivo di cambiare la mentalità degli studenti in modo che l'esigenza di confrontarsi col mondo esterno in modo strutturato, non limitandosi a considerare i soli aspetti di carattere tecnologico, diventi una consuetudine capace di proiettarli con maggiore consapevolezza in attività di carattere imprenditoriale.

10616532 | ECONOMICS AND COMPUTATION6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
Il corso presenterà un'ampia panoramica di argomenti all’intersezione di informatica, scienza dei dati ed economia, sottolineando l’efficienza, la robustezza e le applicazioni ai mercati online emergenti. Introdurrà i principi della teoria algoritmica dei giochi e della progettazione dei meccanismi economici, della progettazione algoritmica del mercato, nonché dell'apprendimento automatico nei giochi e nei mercati. Dimostrerà applicazioni a casi di studio nella ricerca sul Web e nella pubblicità online, nell'economia delle reti, nei dati, nelle criptovalute e nei mercati dell'intelligenza artificiale.

Obiettivi specifici:
Conoscenza e comprensione:
I principi algoritmici e matematici dell’economia alla base della progettazione e del funzionamento di mercati online efficienti e robusti. L'applicazione di questi principi in esempi concreti di mercati online.

Applicare conoscenza e comprensione:
Essere in grado di progettare e analizzare algoritmi per concrete applicazioni dei mercati online rispetto ai requisiti di efficienza e robustezza.
Capacità critiche e di giudizio:
Essere in grado di valutare la qualità di un algoritmo per applicazioni nel mercato online, discriminando gli aspetti di modellizzazione da quelli legati all'implementazione algoritmica e di sistema.

Capacità comunicative:
Capacità di comunicare e condividere le scelte di modellazione e i requisiti di sistema, nonché i risultati dell'analisi dell'efficienza degli algoritmi del mercato online.

Capacità di apprendimento:
Il corso stimola gli studenti ad acquisire capacità di apprendimento al crocevia tra informatica, economia e applicazioni del mercato digitale, compresi i diversi linguaggi utilizzati in questi campi.

10616533 | GRAPH MINING AND APPLICATIONS6ING-INF/05ENG

Obiettivi formativi

Il corso presenterà modelli e algoritmi per l'analisi di grafi con applicazioni in vari ambiti. L'obiettivo alla fine del corso è che gli studenti conoscano algoritmi e framework che possano consentire loro di analizzare dati grafici di grandi dimensioni.

Lo studente deve acquisire 12 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFUSSDLingua
10616534 | INFORMATION TECHNOLOGIES FOR SMART MANUFACTURING6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.
- Conoscenza dei principali scenari applicativi di interesse per le tecnologie di Smart Manufacturing;
- Conoscenza delle tecnologie impiegate in ambito Smart Manufacturing comprese quelle per: (a) programmazione a basso livello dei macchinari, (b) trasmissione di dati su reti industriali, (c) sviluppo di soluzioni di Intelligenza Artificiale (Computer Vision, Symbolic Artificial Intelligence, Machine and Deep Learning);
- Capacità di progettare e sviluppare soluzioni pratiche in ambito Smart Manufacturing;
- Comprendere l'integrazione dei sistemi di smart manufacturing nel moderno Big Data Continuum;
- Comprendere lo stack tecnologico utilizzato in ambito industriale e la necessità di integrarlo in soluzioni di più alto livello;

Obiettivi specifici.
Capacità di:
- individuare le tecniche più adatte per sviluppare una soluzione di smart manufacturing che soddisfi un bisogno industriale;
- implementare la soluzione proposta, individuando gli strumenti più adatti a raggiungere lo scopo tra quelli disponibili;
- progettare e realizzare scenari sperimentali per valutare le soluzioni proposte in condizioni realistiche;

Conoscenza e comprensione:
- conoscenza dei principali scenari applicativi;
- conoscenza delle principali tecniche di analisi;
- comprensione dei presupposti teorici e metodologici alla base delle tecniche principali
- conoscenza e comprensione delle principali tecniche e indici di valutazione delle prestazioni

Applicare conoscenza e comprensione:
- essere in grado di tradurre esigenze applicative in problemi concreti di smart manufacturing;
- essere in grado di individuare le tecniche e gli strumenti più adatti alla soluzione dei problemi concreti di cui sopra;
- essere in grado di stimare a priori, almeno qualitativamente, la scalabilità delle soluzioni proposte;

Capacità critiche e di giudizio:
Essere in grado di valutare, anche sperimentalmente, l'efficacia, l'efficienza e la scalabilità delle soluzioni proposte

Capacità comunicative:
Essere in grado di descrivere in modo efficace le specifiche di un problema e di comunicare ad altri le scelte adottate e le motivazioni sottostanti a tali scelte.

Capacità di apprendimento:
Il corso consentirà lo sviluppo di capacità di approfondimento autonomo su argomenti del corso o ad essi correlati. Metterà lo studente nelle condizioni di individuare e consultare in modo critico manuali avanzati o letteratura scientifica per affrontare scenari nuovi oppure per applicare tecniche alternative a scenari noti.

1027171 | NETWORK INFRASTRUCTURES 6ING-INF/03ENG

Obiettivi formativi

Obiettivi Generali:
Il corso presenta i concetti di base, i protocolli e le architetture delle attuali infrastrutture di rete. Particolare attenzione è dedicata alla rete di accesso a larga banda larga e alle reti wireless di nuova generazione. Verranno trattate tecnologie quali l’ xDSL, PON, LTE, 5G, SDH, OTN, SDN. Inoltre si presenterà come configurare ed analizzare reti IP e relativi protocolli a vari livelli (di rete ed applicativi) mediante la piattaforma Netkit. Aspetti specifici su Netkit riguarderanno: l’istradamento dinamico, il DNS, l’SSH, le VPN, Firewall e aspetti di sicurezza.

Obiettivi specifici:

A) Conoscenza e capacità di comprensione
- Conoscenze sulle principali infrastrutture di rete sia cablate (in rame ed in fibra) che in tecnologie wireless. Capacità di comprensione dei requisiti per la pianificazione di una infrastruttura di rete per servizi digitali di nuova generazione con enfasi sulla qualità di servizio e sicurezza.

B) Capacità di applicare conoscenza e comprensione
- Essere in grado di risolvere problemi di pianificazione ed analisi di infrastrutture digitali e relativi requisiti, inseriti in contesti applicativi differenti (larga banda, wireless LTE e 5G, Software Defined Networks e IoT).

C) Autonomia di giudizio
-Essere in grado, integrando le conoscenze a livello di rete e applicative, di capire la complessità di una infrastruttura di rete e il tipo di servizio che questa puo’ offrire; essere in grado di analizzare il funzionamento e le prestazioni di differenti protocolli di rete.

D) Abilità comunicative
- Le attività progettuali e le esercitazioni di laboratorio del corso permettono allo studente di essere in grado di discutere casi d’uso di piattaforme di rete in contesi applicativi differenti e di presentarne le potenzialità, i limiti e le prestazioni.

E) Capacità di apprendimento
- Le attività progettuali ed il laboratorio netkit stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche di rete apprese durante il corso.

1023235 | ROBOTICS I6ING-INF/04ENG

Obiettivi formativi

Obiettivi generali
Il corso fornisce strumenti di base per il controllo dei sistemi robotici: analisi cinematica, pianificazione e programmazione dei movimenti di robot manipolatori in ambienti industriali e di servizio.

Obiettivi specifici

Conoscenza e comprensione:
Lo studente apprenderà il funzionamento dei componenti di attuazione e sensoriali dei robot, i metodi di base per la modellistica, l'analisi e il controllo cinematico di manipolatori robotici, nonché gli algoritmi per la pianificazione delle traiettorie di moto.

Applicare conoscenza e comprensione:
Lo studente sarà in grado di analizzare le strutture cinematiche dei robot di tipo industriale e di progettare algoritmi e moduli per la pianificazione e il controllo della movimentazione.

Capacità critiche e di giudizio:
Lo studente sarà in grado di individuare le caratteristiche funzionali di un sistema robotico con riferimento al tipo di compito industriale o di servizio,
di analizzarne la complessità di realizzazione, le possibili prestazioni e le eventuali debolezze.

Capacità comunicative:
Il corso mette in grado lo studente di presentare le principali problematiche applicative e le soluzioni tecniche riguardanti l'impiego dei robot.

Capacità di apprendimento:
Il corso mira a creare attitudini di apprendimento autonomo orientate all'analisi e alla soluzione di problemi connessi all'uso dei robot.

1022870 | NEURAL NETWORKS6ING-IND/31ENG

Obiettivi formativi

Obiettivi generali:
Il corso è una overview generale sulle reti neurali, sia dal punto di vista metodologico che pratico. Gli studenti acquisiranno una forte competenza teorica e pratica su come le reti neurali funzionano e sono implementate, con particolare attenzione sui componenti più usati, e sulle attuali limitazioni.

Obiettivi specifici:
Dal punto di vista teorico, rivedremo il paradigma generale per la costruzione di modelli differenziabili che possono essere ottimizzati end-to-end con la discesa al gradiente. Successivamente, esamineremo i componenti essenziali per progettare architetture in grado di lavorare su immagini (convoluzioni), sequenze (recurrent layer) ed insiemi (transformers). L'ultima parte del corso si concentrerà su una selezione di importanti argomenti di ricerca, tra cui le reti neurali su grafi, l'apprendimento continuo e i modelli generativi.

Conoscenza e comprensione:
Alla fine del corso, lo studente avrà una ottima conoscenza di come le reti neurali funzionano in pratica, con la capacità di implementare nuovi componenti da zero, riutilizzare modelli esistenti o progettare nuove architetture per problemi al di là della panoramica del corso.

Abilità critiche e di giudizio:
Ci si aspetta che lo studente sia in grado di analizzare un nuovo problema che richiede l'apprendimento automatico e progettare la soluzione appropriata basata su una rete neurale, comprendendone sia i punti di forza che i limiti.

Abilità comunicative:
Il corso favorirà le abilità comunicative in termini di capacità di descrivere (in modo tecnico e non tecnico) la matematica alla base dei modelli, nonché di scrivere codice chiaro e comprensibile per la loro implementazione.

Abilità di apprendimento:
Al di là degli argomenti del corso, lo studente sarà in grado di studiare autonomamente nuovi argomenti di ricerca e di navigare la letteratura scientifica, oltre a saper comprendere punti di forza e debolezze delle attuali librerie software.

1044398 | INTERACTIVE GRAPHICS6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:

Far acquisire allo studente le basi della programmazione in grafica 3D con particolare enfasi sulle tecniche di animazione e visualizzazione interattiva. In particolare gli argomenti trattati includono: Fondamenti della grafica computerizzata, rendering interattivo e animazione, la pipeline grafica, trasformazioni, visualizzazioni, rasterizzazione, illuminazione e shading, texture-mapping, tecniche di animazione basate su keyframes, simulazioni fisiche, sistemi di particelle ed animazione di personaggi. Verrà inoltre fornita un’introduzione alla computazione su hardware specializzato per la grafica (GPGU).

Obiettivi specifici:

Far acquisire allo studente familiarità con le tecniche matematiche alla base della grafica 3D, oltre che la capacità di programmare ambienti complessi ed interattivi in grafica 3D usando la libreria OpenGL o una delle sue varianti

Conoscenza e comprensione:

Approfondimento del funzionamento di un sistema per la grafica 3D nelle sue componenti hardware e software. Conoscenza dello standard HTML5 e del linguaggio Javascript, applicazione della libreria WebGL e di alcune librerie di più alto livello. Comprensione delle problematiche di efficienza e qualità visiva delle applicazioni in grafica 3D

Applicare conoscenza e comprensione:

Sviluppo di applicazioni interattive sul web in grafica 3D.

Capacità critiche e di giudizio:

Capacità di comprendere le complessità tecniche nella realizzazione di applicazioni interattive in grafica 3D. Capacità di analisi critica delle soluzioni presenti sul mercato ed analisi di punti di forza e debolezza.

1052229 | COMPUTER VISION6ING-INF/05ENG

Obiettivi formativi

OBIETTIVI GENERALI
Il corso vuole introdurre lo studente ai concetti fondamentali della visione artificiale e alla costruzione di sistemi autonomi di interpretazione e ricostruzione di una scena tramite immagini e video. Il corso affronta elementi di base di geometria proiettiva ed epipolare, i metodi per la visione 3d e per la visione basata su più viste, e i metodi per la ricostruzione metrica e le metodologie di interpretazione di immagini e video. Inoltre il corso illustra le tecniche principali per il riconoscimento e la segmentazione di immagini e video basati sull’ apprendimento automatico.

OBIETTIVI SPECIFICI

Conoscenza e Comprensione.
Il corso stimola la curiosità degli studenti verso nuove metodologie per l’analisi e la generazioni di immagini e di video. Lo studente apprende nuovi concetti che gli permettono di acquisire una conoscenza di base della visione computazionale.

Applicare Conoscenza e Comprensione.
Gli studenti approfondiscono e apprendono linguaggi di programmazione per applicare la conoscenza acquisita. In particolare approfondiscono il linguaggio Python ed apprendono Tensorflow. Quest’ ultimo offre agli studenti la possibilità di programmare applicazioni di deep learning. Usano questa nuovissima tecnologia per realizzare un progetto di riconoscimento di elementi specifici in immagini e video.

Capacità critiche e di Giudizio.
Lo studente acquisisce la capacità di distinguere tra ciò che può realizzare con gli strumenti che ha appreso, come ad esempio generare delle immagini o riconoscere degli oggetti usando tecniche di deep learning, e ciò che è effettivamente richiesto per la realizzazione di un sistema automatico di visione. In tal modo è in grado di elaborare un giudizio critico sui sistemi di visione disponibili allo stato dell’arte e di valutare ciò che si può effettivamente realizzare e ciò che richiede ulteriori avanzamenti nella ricerca.

Capacità Comunicative.
La realizzazione del progetto, come parte del programma di esame, richiede che lo studente lavori e dia un contributo all’ interno di un piccolo gruppo di lavoro. Questo insieme alla soluzione di esercizi in classe, e alle discussioni sui temi più interessanti stimola le capacità comunicative dello studente.

Capacità di Apprendimento.
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

10606830 | INTERNET-OF-THINGS NETWORKS AND PROTOCOLS6INF/01ENG

Obiettivi formativi

The course will make students aware of the challenges behind the design, implementation and field use of Wireless system, sensing systems and the Internet of Things. The course will present both the theoretical foundations and practical aspects you need to know to develop such systems. Hands on lab experiences are associated to the course.

Part 1, Wireless networks

Fundamentals of wireless systems

Fundamental of ad hoc and cellular networks

Part 2, Internet of Things Core

Internet of Thigs applications, architectures, enabling technologies and protocols

Part 3, Emerging Technological Trends in Internet of Things

Zero power sensing systems: Wake Up Radio, energy harvesting, ...

ML based system optimization

Cyber physical systems for the Blue Economy

Part 4, From technologies to Applications

Internet of Things for smart planet and smart cities: practical examples of how to put the pieces together to implement real systems

Part 5 (Lab): Simulating, implementing and testing novel ideas on wireless networked systems and IoT systems

Performance evaluation of Internet of Things systems: How to model, what to model

Network simulators for Internet of Things

How to move from an idea to a validated idea to a solution

Lab: The course provides some lectures on C++ tailored to what needed to program simulators on Internet of Things systems.

For students with limited background on C/C++, recording of classes on C++ from previous courses will be shared so that you can get the needed background

10606936 | PROGRAMMABLE NETWORKS6ING-INF/03ENG

Obiettivi formativi

Obiettivi Generali.
Il corso si propone di fornire agli studenti una panoramica sulla programmabilità di rete, introducendo le principali architetture e tecnologie abilitanti.
Attraverso la didattica frontale ed esercitazioni pratiche, lo studente sarà in grado di configurare dispositivi di rete, progettare e realizzare applicativi di automazione della gestione di rete, sviluppare applicazioni di controllo e definire nuove logiche di processamento dei pacchetti.

Obiettivi Specifici.
Conoscenza e comprensione:
Conoscenza delle principali architetture a supporto delle reti programmabili, comprendendo le funzioni svolte dai diversi blocchi logici.

Applicare conoscenza e comprensione:
Capacità di progettare e sviluppare applicazioni di controllo di rete, di network automation e pipeline di processamento dei pacchetti.

Capacità critiche e di giudizio:
Essere in grado di analizzare criticamente il rapporto costi/benefici relativamente all'utilizzo di architetture di controllo centralizzate, approcci reattivi o pro-attivi, funzioni di rete fisiche o virtualizzate.

Capacità comunicative:
Tramite attività di gruppo svolte in aula e lo svolgimento del progetto d'esame, lo studente acquisirà la capacità di illustrare la logica di funzionamento delle diverse funzioni di rete sviluppate, oltre che spiegare come queste possano integrarsi con i vari elementi architetturali.

Capacità di apprendimento:
Il corso fornisce allo studente una visione strutturata e sistematica sui diversi punti di programmabilità di una infrastruttura di rete, oltre che delle architetture comunemente usate. Queste conoscenze consentiranno allo studente di comprendere facilmente il ruolo della network programmability anche in scenari applicativi non trattati nel corso.

1052058 | LABORATORY OF NETWORK DESIGN AND CONFIGURATION6ING-INF/03ITA

Obiettivi formativi

GENERALI
Lo scopo del corso è fornire agli studenti competenze pratiche per la realizzazione e la configurazione di una rete IP. Il corso consentirà di rivalutare in maniera critica i protocolli di rete studiati negli anni precedenti (indirizzamento IP, protocolli di routing, Ethernet, etc…) e di introdurre nuove tematiche (NAT, Virtual LAN, Access Control List, etc..). L’utilizzo di un emulatore di rete consentirà inoltre di configurare una rete IP implementando le tematiche studiate in uno scenario identico a quello di una rete reale; saranno inoltre introdotto specifiche procedure per la verifica del corretto funzionamento della rete (troubleshooting).

SPECIFICI
• Conoscenza e capacità di comprensione: conoscere i principali protocolli di rete per la realizzazione di una rete IP.
• Capacità di applicare conoscenza e comprensione: saper realizzare una rete IP funzionante tramite l’ausilio di un emulatore di rete che consente di configurare router IP e switch Ethernet.
• Autonomia di giudizio: capacità di effettuare opportune scelte progettuali in funzione delle specifiche richieste (network design)
• Abilità comunicative: (assente).
• Capacità di apprendimento: capacità di proseguire gli studi successivi riguardanti tematiche avanzate di networking.

1047220 | BIOINFORMATICS6ING-INF/06ENG

Obiettivi formativi

Obiettivi generali
Il corso si concentrerà sui metodi di data mining statistico e non supervisionato per la medicina. Gli studenti acquisiranno conoscenze biologiche di base, conoscenza dele principali banche dati biologiche e strumenti di analisi dati biologici, abilità bioinformatiche e familiarità con l'analisi di dati omici.

Obiettivi specifici:
Conoscenza e comprensione:
Gli studenti acquisiscono familiarità con i concetti biologici di base, con la programmazione R applicata alla bioinformatica, l'analisi di dati di espressione genica mediante l'uso di metodi statistici e non supervisionati per l'indagine di malattie complesse.

Applicare conoscenza e comprensione:
Essere in grado di portare a termine una analisi bioinformatica di base applicando le tecniche statistiche acquisite per identificare molecole modulate potenzialmente caratterizzanti un fenotipo di malattia.

Capacità critiche e di giudizio:
Essere in grado di valutare la qualità dell’analisi svolta, caratterizzando i risultati ottenuti tramite gli strumenti d’indagine forniti durante il corso e ricercare riscontri dei risultati ottenuti in letteratura.

Capacità comunicative:
Il corso prevede sessioni pratiche ed un’attività progettuale finale che consentiranno allo studente di essere in grado di comprendere, presentare e discutere adeguatamente risultati ottenuti da un’indagine bioinformatica di base portata avanti su reali casi di studio, nonché giustificare le scelte metodologiche e progettuali relative ad i parametri usati in tale analisi.

Capacità di apprendimento:
Le modalità di svolgimento del corso prevedono lezioni frontali che permetteranno di sviluppare le capacità di apprendimento fornite dallo studio teorico del materiale didattico, a cui si affiancheranno sessioni pratiche, in particolare attività di progetto su casi di studio reali di analisi dati molecolari relativi a diverse patologie, stimolando cosi lo studente sia all'approfondimento autonomo di alcuni argomenti presentati nel corso, sia all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

10600453 | PROJECT MANAGEMENT6ING-IND/35ENG

Obiettivi formativi

OBIETTIVI GENERALI
Il corso si pone l’obiettivo di illustrare e trasferire agli studenti i principi fondanti, gli ambiti di applicazione e gli strumenti fondamentali del Project Management (PM). A partire dal concetto di gestione integrata dei progetti verranno illustrate le metodologie di gestione delle variabili prestazionali di qualità, tempo e costo. In linea con i principali processi standard di Project Management si farà uso di una terminologia, quella della gestione dei progetti, ormai uniformatasi a livello internazionale.
Alla fine del corso lo studente sarà in grado di pianificare un progetto a partire dagli obiettivi di qualità, tempo e costo imposti dal cliente interno o esterno a un’azienda. Inoltre saprà analizzare criticamente un progetto in itinere o concluso proponendo sia miglioramenti organizzativi e gestionali che l’utilizzo di corrette metodologie di Project Management.

OBIETTIVI SPECIFICI
CONOSCENZA E COMPRENSIONE. Il corso permettera` la conoscenza e comprensione approfondita dei concetti e degli strumenti fondamentali della Gestione dei Progetti nei principali contesti applicativi: sviluppo nuovo prodotto/servizio, miglioramento dei processi organizzativi e gestione delle commesse. Lo studente imparerà a riconoscere e a padroneggiare le best practices del Project Management e ad applicarle in contesti reali.

CAPACITÀ APPLICATIVE. Grazie al corso lo studente sarà in grado di pianificare un progetto a partire dagli obiettivi di qualità, tempo e costo imposti dal cliente interno o esterno a un’azienda e gestirne la fase esecutiva attraverso un corretto monitoraggio delle attività e a valutarne i benefici sulla base delle aspettative dei principali stakeholders. Inoltre saprà analizzare criticamente un progetto in itinere o concluso proponendo sia miglioramenti organizzativi e gestionali che l’utilizzo di corrette metodologie di Project Management.

AUTONOMIA DI GIUDIZIO. Il corso porrà lo studente in condizione di saper scegliere, dato un progetto, la migliore metodologia risolutiva, attraverso la profonda comprensione dei requisiti e dei vincoli imposti dal contesto; inoltre lo studente svilupperà la capacità di analisi critica di un progetto.

ABILITÀ DI COMUNICAZIONE. Alla fine del corso lo studente sarà in grado di illustrare i concetti del Project Management utlizzando la terminologia consolidata a livello internazionale, di organizzare le informazioni e i dati di progetto secondo un format e un processo di reporting standardizzato e comprensibile ai professionisti, e presentare approfonditamente tutti gli aspetti di un progetto a un pubblico di specialisti e non specialisti.

CAPACITÀ DI APPRENDERE. Lo studente svilupperà capacità di studio autonome, di teamworking e di comprensione e valutazione critica dei progetti e delle diverse metodologie di Project Management.

10616549 | ADVANCED CRYPTOGRAPHY6INF/01ENG

Obiettivi formativi

Obiettivi Generali
Gli strumenti tradizionali di crittografia sono insufficienti per la
protezione dei dati negli scenari attuali. Gli obiettivi di questo
corso consistono nel presentare vari recenti strumenti e tecniche di
crittografia avanzata insieme con le loro applicazioni per ottenere
sicurezza e privacy già al momento della progettazione, aderendo al
principio della sicurezza e privacy by design nel Cyberspace. Il corso
fornisce contenuti sia teorici che pratici.

Obiettivi Specifici
Il corso utilizzerà la potenza degli schemi di firma avanzati delle
nozioni avanzate di cifratura, delle verifiable random functions, di
sistemi di prova interattivi e privacy-preserving, dei puzzle
crittografici. Particolare attenzione sarà data alle applicazioni
reali quali il voto elettronico, le aste, il contact tracing che
preserva la privacy, i pagamenti elettronici, le crittovalute, i
portafogli per la gestione delle identità, la cifratura end-to-end
negli scambi di messaggi, la disinformazione, la minimizzazione ed il
diritto all'oblio del GDPR, le librerie e gli strumenti pratici di
crittografia avanzata.

Conoscenza e comprensione:
-) Conoscenza delle proprietà di sicurezza degli strumenti avanzati di
crittografia.
-) Conoscenza delle principali assunzioni di complessità utilizzate
dagli strumenti avanzati di crittografia.
-) Conoscenza dei protocolli e degli schemi crittografici usati quotidianamente.
-) Comprensione delle proprietà teoriche e delle prestazioni concrete
degli strumenti avanzati di crittografia.

Applicazione della conoscenza e della comprensione:
-) Come selezionare e combinare insieme gli strumenti avanzati di
crittografia corretti per una certa applicazione.
-) Come analizzare la sicurezza ed efficienza di un sistema che fa uso
di strumenti avanzati di crittografia.

Autonomia di giudizio:
Gli studenti saranno in grado di valutare e giudicare l'effettiva
sicurezza di un sistema di elaborazione delle informazioni secondo un
realistico modello di minaccia.

Abilità comunicative:
Gli studenti impareranno ad argomentare ed illustrare la resilienza di
un sistema di elaborazione delle informazioni ad attacchi concreti.

Capacità di apprendimento:
Gli studenti otterranno le nozioni necessarie ad un più approfondito
studio dei temi del corso.

10616576 | INNOVATION MANAGEMENT6ING-IND/35ITA

Obiettivi formativi

OBIETTIVI GENERALI
Il corso si pone l’obiettivo di fornire agli studenti una conoscenza di base di concetti e strumenti utili nell’ambito della Gestione dell’Innovazione. In particolare, il corso ha l’obiettivo di far comprendere agli studenti: le forme, i modelli e le fonti dell'innovazione; i conflitti di standard e la definizione del disegno dominante; la scelta del tempo d'ingresso nel mercato; i meccanismi di protezione dell'innovazione; il processo di sviluppo di un nuovo prodotto; l’integrazione della sostenibilità ambientale nella strategia di marketing e nello sviluppo nuovo prodotto. Inoltre, attraverso l’analisi di una serie di casi di studio, il corso mira a far acquisire agli studenti una capacità di analisi critica che permetta loro di interpretare e spiegare il comportamento delle imprese e i risultati da esse ottenuti nell’ambito delle strategie di innovazione tecnologica alla luce dei concetti appresi durante il corso.

OBIETTIVI SPECIFICI
CONOSCENZA E COMPRENSIONE. Il corso permetterà la conoscenza e la comprensione dei principali concetti e degli strumenti fondamentali della Gestione dell’Innovazione. Lo studente imparerà a riconoscere e a padroneggiare le best practices e i fattori di successo della Gestione dell’Innovazione e ad applicarli in contesti reali.

CAPACITÀ APPLICATIVE. Grazie al corso lo studente sarà in grado di valutare criticamente le strategie di innovazione tecnologica di un’impresa, oltre a classificare i prodotti in base al loro impatto ambientale.

AUTONOMIA DI GIUDIZIO. Il corso porrà lo studente in condizione di saper scegliere, date le principali forze ambientali, le caratteristiche dell’impresa e dell’innovazione, le migliori strategie di innovazione tecnologica. Inoltre, lo studente svilupperà la capacità di analisi critica della gestione dell’innovazione.

ABILITÀ DI COMUNICAZIONE. Alla fine del corso lo studente sarà in grado di illustrare i concetti della gestione dell’innovazione utilizzando la terminologia ed i modelli consolidati a livello internazionale, di organizzare le informazioni e i dati secondo un format e un processo di reporting comprensibile ai professionisti.

CAPACITÀ DI APPRENDERE. Lo studente svilupperà capacità di studio autonome e di comprensione e valutazione critica delle strategie di marketing e di innovazione tecnologica e dei relativi strumenti.

10606827 | REINFORCEMENT LEARNING6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.
Il corso di Reinforcement Learning (RL) ha lo scopo di introdurre gli studenti alle tecniche fondamentali e avanzate del RL, un area di grande rilevanza nell'ambito dell'intelligenza artificiale e del machine learning. Gli studenti acquisiranno competenze per progettare e implementare algoritmi che permettano ai sistemi di apprendere e migliorare autonomamente attraverso l'esperienza, ottimizzando le loro decisioni in tempo reale.

Obiettivi Specifici.
Gli studenti esploreranno i concetti chiave del RL, come le politiche di decisione, i processi decisionali di Markov, l'apprendimento Q, e l'apprendimento profondo rinforzato. Impareranno a:
Modellare problemi complessi attraverso l'approccio del RL.
Sviluppare e implementare algoritmi come Q-learning e Deep Q-Networks (DQN).
Applicare tecniche di RL in scenari reali come robotica, giochi, etc.

Conoscenza e Comprensione:
Conoscenza approfondita degli algoritmi base e avanzati di RL.
Comprensione dei modelli di apprendimento basati su ricompensa e delle loro applicazioni pratiche.
Capacità di interpretare i risultati degli algoritmi di RL e di valutarne l'efficacia in diversi contesti.

Applicazione di Conoscenza e Comprensione:
Utilizzo di framework software come TensorFlow o PyTorch per implementare e testare algoritmi di RL.
Analisi di case studies e progetti di ricerca attuali per capire l'applicazione del RL nel mondo reale.
Sviluppo di prototipi funzionali che utilizzano RL per risolvere problemi specifici.

Autonomia di Giudizio:
Gli studenti svilupperanno la capacità di valutare criticamente gli algoritmi di RL, considerando la loro applicabilità, efficienza, e potenziali bias. Saranno anche in grado di scegliere l'algoritmo più adatto per un determinato problema.

Abilità Comunicative:
Gli studenti impareranno a comunicare efficacemente i concetti di RL, le decisioni di design degli algoritmi e i risultati ottenuti, sia a un pubblico tecnico che a non esperti, utilizzando una varietà di mezzi comunicativi.

Capacità di Apprendimento Successivo:
Questo corso preparerà gli studenti a perseguire studi avanzati e ricerca in RL, fornendo le basi necessarie per affrontare problemi aperti e innovare nel campo. Gli studenti saranno incentivati a contribuire attivamente alla comunità scientifica attraverso pubblicazioni, conferenze e collaborazioni.

1052218 | PROBABILISTIC ROBOTICS6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali:
Acquisire conoscenza sugli strumenti di base per la stima dello stato in sistemi robotici.
Essere in grado do applicare tali strumenti a casi di studio reali ed implementare
soluzioni funzionanti.
Valutare le prestazioni e la qualita' di uno stimatore dello stato.
Il corso alterna teoria e pratica. Nelle lezioni pratiche agli studenti e' richiesto
il completamento di frammenti di codice di un sistema che rappresenta casi pratici.

Obiettivi specifici:

Conoscenza e comprensione:
- Manipolazione di distribuzioni di probabilita'
- Basi sulle tecniche di filtraggio (hisrogram filters, Gaussian filters, particle filters)
- Modello generale di un sistema non lineare stazionario e dinamico
- Formulazione densa e sparsa di algoritmi di minimizzazione (Gauss-Newton, Levenberg Marquardt)
- Il problema della Data Association, e strumeni tipici per affrontarlo (RANSAC, euristiche)
- Casi di studio tipici per problemi di stima in robotics (Calibrazione, Localizzazione, Mappatura and SLAM)

Applicare conoscenza e comprensione:
- Essere in gradi di modellare un problema di stima ed adattare gli strumenti proposti al dominio specifico
- Svuluppare uno stimatore dello stato funzionante.

Capacità critiche e di giudizio:
- Individuare i pro ed i contro che presentano soluzioni diverse allo stesso problema.
- Individuare gli strumenti utilizzabili per approcciare i sotto-problemi di uno stimatore.
Lo sviluppo di tali capacita' e' ottenuto mediante lo sviluppo di un progetto sviluppato come parte dell'esame.

Capacità comunicative:
- Acquisire un linguaggio comune per descrivere e modellare gli stimatori dello stato e che supporti
un'interazione tra sviluppatori definendo un insieme di obiettivi e termini comuni.

Capacità di apprendimento:
Lo studente possiedera' capacita e conoscera' tecniche per affrontare problemi di stima dello stato generali.
Gli esempi nel dominio della navigazione autonoma presentati durante il corso servono come casi di studio.
Gli argomenti individuali appresi (Manipolazione di PDF , Filtering Designs, Minimizzazione), sono strumenti
prezioni per affrontare problemi che esulano tali casi specifici di studio.

10589744 | PROCESS MANAGEMENT AND MINING6ING-INF/05ENG

Obiettivi formativi

Obiettivi generali.
La corretta gestione dei processi rappresenta un elemento fondamentale per rendere le organizzazioni moderne più efficienti ed efficaci nella gestione del loro business. A tal scopo, questo corso introduce linguaggi, principi e metodi per la modellazione, l'analisi, l'innovazione ed il monitoraggio dei processi.

Il corso enfatizza il ruolo della modellazione concettuale (business process modeling) come strumento necessario per comprendere ed analizzare i processi di interesse in sistemi informativi di varia natura. Gli studenti del corso apprenderanno la modellazione dei processi attraverso lo standard internazionale BPMN (Business Process Model and Notation).

Il corso si focalizzerà sulla modellazione di processi di singole organizzazioni (orchestrazioni di processo) e processi che coinvolgono l'interazione fra organizzazioni multiple (coreografie di processo), investigando le tecniche formali necessarie per l'analisi e l'innovazione di tali processi.

Il corso fornirà inoltre le conoscenze di base per la progettazione, l'implementazione ed il monitoraggio di processi eseguibili con un sistema informativo aziendale.

Infine, il corso presenterà tecniche e strumenti per l'utilizzo delle recenti tecniche di process mining, che consentono la costruzione di modelli di processo (la cui struttura non è nota a priori) partendo dai log che memorizzano gli eventi concreti eseguiti dal processo reale.

Obiettivi specifici.
Conoscenza e comprensione:
Al termine del corso gli studenti:
- apprendono i principali metodi per condurre un progetto di BPM (Business Process Management);
- sono in grado di modellare un processo con lo standard BPMN;
- sono in grado di implementare ed eseguire un processo utilizzando un sistema informativo reale;
- conoscono gli algoritmi e le tecniche di process mining.

Applicare conoscenza e comprensione:
Gli studenti sono in grado di utilizzare gli strumenti metodologici e tecnologici adeguati per:
(i) modellare un processo in BPMN;
(ii) analizzarlo con tecniche quantitative;
(iii) eseguirlo e monitorarlo con un sistema informativo.

Capacità critiche e di giudizio:
Lo studente acquisice autonomia di giudizio nel proporre l’approccio più opportuno per realizzare un progetto di BPM.

Capacità comunicative:
Le attività progettuali e le lezioni del corso permettono allo studente di essere in grado di comunicare/condividere le scelte progettuali e le metodologie di progettazione e sviluppo di un processo di business.

Capacità di apprendimento:
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

1055061 | SECURITY GOVERNANCE6ING-INF/05ENG

Obiettivi formativi

Obiettivi Generali.
L’obiettivo principale dell'insegnamento è di fornire un’introduzione a tutte le tematiche relative alla gestione della cybersecurity, ai principali processi di sicurezza e al valore della misurabilità del livello di sicurezza.

Obiettivi Specifici.
Conoscenza e comprensione:
Verrà mostrato allo studente come il problema della cybersecurity sia verticale rispetto all'organizzazione aziendale e che per tanto la sua gestione ne impatta diversi livelli.
Verranno analizzati aspetti legati alle normative, ai regolamenti e agli standard sia Internazionali che Nazionali. Verrà poi discusso come, dal punto di vista metodologico, questi aspetti vengano recepiti e messi in atto attraverso la definizione di appositi framework per la gestione della cybersecurity.

Applicare conoscenza e comprensione:
Un altro aspetto fondamentale del corso sarà quello di fornire allo studente metodologie e strumenti per poter affrontare problemi aperti rispetto all'analisi, verifica e certificazione della cybersecurity.

Capacità critiche e di giudizio.
Lo studente acquisirà gli strumenti necessari per poter analizzare, valutare e comparare diverse situazioni e progettare le opportune contromisure per migliorare lo stato di sicurezza della realtà analizzata.

Capacità comunicative:
Lo studente apprenderà il linguaggio specifico del settore.

Capacità di apprendimento:
Lo studente sarà in grado di far proprie e riapplicare tutte le metodologie discusse durante il corso

1054962 | SECURE COMPUTATION6INF/01ENG

Obiettivi formativi

Obiettivi Generali
Lo scopo del corso è quello di fornire una panoramica sulle più avanzate tecniche crittografiche e le loro applicazioni.

Obiettivi Specifici
Gli studenti impareranno il concetto di computazione sicura, che consente ad una rete di giocatori malfidati, ognuno con il proprio input segreto, di eseguire un protocollo distribuito per valutare l'output di una funzione sui propri input in modo sicuro, cioè senza rivelare nulla oltre a quello che l'output della funzione rivela. La computazione sicura è un'astrazione di molte applicazioni importanti, incluso il voto elettronico, le aste digitali, le crittovalute, la conoscenza nulla, etc.

Conoscenza e Comprensione
-) Conoscenza di strumenti crittografici avanzati, incluso la conoscenza nulla, gli impegni digitali, e la cifratura pienamente omomorfa.
-) Conoscenza dei fondamenti della computazione sicura, in particolare come definire la sicurezza dei protocolli interattivi.
-) Comprensione dei principi di funzionamento dei libri mastri distribuiti e delle crittovalute.

Applicazione di Conoscenza e Comprensione
-) Come analizzare la sicurezza dei protocolli interattivi.
-) Come progettare protocolli interattivi sicuri.
-) Come programmare "contratti intelligenti" sicuri.

Autonomia di Giudizio
Gli studenti saranno in grado di valutare il livello di sicurezza delle applicazioni crittografiche avanzate.

Abilità Comunicative
Come descrivere la sicurezza dei protocolli interattivi per il voto digitale, le crittovalute, e la computazione sicura in generale.

Capacità di Apprendimento Successivo
Gli studenti interessati alla ricerca verranno a conoscenza di alcuni problemi aperti nell'area, ed otterranno le basi necessarie per studi più approfonditi in materia.

10606869 | MULTILINGUAL NATURAL LANGUAGE PROCESSING6INF/01ENG

Obiettivi formativi

Obiettivi Generali
Lo scopo del corso è quello di fornire una panoramica sulle tecniche più avanzate di elaborazione del linguaggio naturale e le loro applicazioni.

Obiettivi Specifici
Gli studenti impareranno i principi del trattamento automatico delle lingue, comprendendo come le macchine possono interpretare, generare e rispondere al linguaggio umano. Questo include temi come la rappresentazione delle parole, i word e i sense embedding, le architetture neurali per l'NLP, la traduzione automatica, e più in generale la generazione di testo.

Conoscenza e Comprensione
-) Conoscenza delle architetture di reti neurali, come le reti neurali ricorrenti e i Transformer, utilizzate per l'elaborazione del linguaggio naturale.
-) Conoscenza dei metodi di apprendimento supervisionato e non supervisionato in NLP.
-) Conoscenza delle tecniche di semantica computazionale lessicale e frasale.
-) Comprensione dei modelli di linguaggio per interpretare e generare testo.

Applicazione di Conoscenza e Comprensione
-) Come sviluppare modelli per la comprensione del linguaggio
-) Come sviluppare modelli per la generazione del linguaggio
-) Come utilizzare le architetture neurali per l'NLP

Autonomia di Giudizio
Gli studenti saranno in grado di valutare l'efficacia delle tecniche di NLP nelle diverse applicazioni.

Abilità Comunicative
Gli studenti saranno in grado di spiegare i principi e le tecniche di elaborazione del linguaggio naturale.

Capacità di Apprendimento Successivo
Gli studenti interessati alla ricerca scopriranno quali sono le principali sfide aperte nell'area dell'NLP, ottenendo le basi necessarie per studi più approfonditi in materia.