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

Curricula per l'anno 2024 - Engineering in Computer Science - Ingegneria Informatica (30430)

Curriculum unico

1º anno

InsegnamentoSemestreCFULingua
1044417 | ALGORITHM DESIGN6ENG

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.

10599896 | DEPENDABLE DISTRIBUTED SYSTEMS9ENG

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. 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 | CYBERSECURITY9ENG
1022891 | SOFTWARE ENGINEERING6ENG

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.Risultati di apprendimento attesi: Alla fine del corso lo studente sarà in grado di:
-scegliere un modello per lo sviluppo di una applicazione software,
stimarne il costo, pianificare le attività di progetto, progettare i
test ed indicare delle metriche per l'assicurazione qualità, nonchè
valutare la significatività statistica di esperimenti basati sulla
raccolta di campioni numerici.

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.

1022797 | DATA MANAGEMENT6ENG

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.

10599898 | ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING9ENG

Obiettivi formativi

Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di collezioni di dati appartenenti a spazi euclidei o non di elevata dimensionalità.
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 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.

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
Insegnamenti affini ed integrativi - 1

2º anno

InsegnamentoSemestreCFULingua
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 - 1

Gruppi opzionali

Lo studente deve acquisire 18 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1038133 | FORMAL METHODS6ENG

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.

1038134 | HUMAN COMPUTER INTERACTION6ENG

Obiettivi formativi

Obiettivi Generali:
Obiettivo del corso è la presentazione dei principi fondamentali della interazione persona-calcolatore e dell’usabilità dei sistemi interattivi. Gli argomenti verranno trattati da vari punti di vista, coprendo aspetti teorici, metodologici, tecnologici ed applicativi, con riferimento sia alla situazione esistente, che ad aspetti avanzati in via di sviluppo. Alcuni aspetti avanzati dell’interazione, quali ambienti cooperativi, sistemi immersivi, interfacce intelligenti, ecc., vengono trattati in modo seminariale. Alla fine del corso lo studente dovrebbe aver acquisito non soltanto le conoscenze teoriche sulla materia, ma anche le tecniche e gli strumenti metodologici sufficienti per affrontare e condurre a termine il progetto di un sistema interattivo secondo un punto di vista centrato sull’utente finale (user-centered design).

Obiettivi specifici:
Conoscenza e comprensione:
Metodologia di progettazione del software centrata sull’utente finale (user-centered design, UCD). In particolare, nel corso verranno analizzate tecniche avanzate per la raccolta ed analisi dei requisiti, modelli degli obiettivi (goals) e compiti (tasks) dell’utente, modelli dell’interazione e del sistema, tecniche e metodologie per la valutazione di usabilità.

Applicare conoscenza e comprensione:
Comprendere i concetti di interazione persona-calcolatore (o strumento in genere) e di usabilità. Essere in grado di condurre un progetto completo di sistema interattivo seguendo la metodologia UCD.

Capacità critiche e di giudizio:
Essere in grado di valutare l’usabilità di un sistema interattivo e la sua adeguatezza rispetto a compiti ed obiettivi degli utenti finali e dei committenti.

Capacità comunicative:
Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di comunicare/condividere i requisiti di un sistema interattivo, nonché le scelte progettuali e le metodologie di progettazione e sviluppo.

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.

10606829 | INTERNET-OF-THINGS ALGORITHMS AND SERVICES6ENG

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)

1044415 | MOBILE APPLICATIONS AND CLOUD COMPUTING6ENG

Obiettivi formativi

Conoscenza e capacità di comprensione.

Il corso mira a fornire le conoscenze necessarie per la comprensione: (i) delle specificità delle app mobile rispetto a app desktop; (ii) dei principali pattern di progettazione per le app mobili; (iii) le principali problematiche legate alla sicurezza; (iv) dell’utilizzo dei principali servizi cloud di backend per applicazioni mobili; (v) delle metodologie di progettazione e sviluppo di semplici servizi di backend dispiegati su cloud; (vi) della classificazione dei modelli di servizio cloud

Capacità di applicare conoscenza e comprensione.

Lo studente dovrà essere in grado di progettare, sviluppare e testare applicazioni native per sistemi operativi android che interagiscano con servizi cloud usando i principali strumenti di sviluppo, test e progettazione ufficiali. Lo studente dovrà essere inoltre in grado di progettare/sviluppare e testare propri semplici servizi dispiegati su piattaforme cloud, di supporto alle 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.)

1052057 | VISUAL ANALYTICS6ENG

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 MINING6ENG

Obiettivi formativi

L'obiettivo del corso è duplice. In primo luogo, esso presenterà la teoria principale dietro l'analisi dei dati. In secondo luogo, sarà hands-on e alla fine gli studenti potranno acquisire familiarità con varie state-of-the-art strumenti e tecniche per l'analisi dei dati. Useremo Python per scaricare i dati così come le ricche biblioteche machine-learning, l'ambiente R per l'elaborazione statistica, e il quadro MapReduce per l'estrazione di dati su larga scala.

1041706 | KNOWLEDGE REPRESENTATION AND SEMANTIC TECHNOLOGIES6ENG

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 MANAGEMENT6ENG

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.

1044406 | BIG DATA COMPUTING6ENG

Obiettivi formativi

Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di collezioni di dati appartenenti a spazi euclidei o non di elevata dimensionalità.
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 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.

10600447 | MALWARE ANALYSIS6ENG

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à.

10596250 | DIGITAL ENTREPRENEURSHIP6ENG

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.

10600449 | ADVANCED INFORMATION SYSTEMS SECURITY AND BLOCKCHAIN6ENG
10616532 | ECONOMICS AND COMPUTATION6ENG

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 APPLICATIONS6ENG

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 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1027171 | NETWORK INFRASTRUCTURES 6ENG

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 I6ENG

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 NETWORKS6ENG

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.

1041411 | MARKETING AND INNOVATION MANAGEMENT6ENG

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 del Marketing e della Gestione dell’Innovazione. In particolare, il corso ha l’obiettivo di far comprendere agli studenti: le principali forze dell’ambiente di marketing; il sistema delle informazioni di marketing; i comportamenti d’acquisto dei consumatori e delle imprese; le fasi e gli strumenti per la formulazione e l’implementazione di una strategia di marketing; 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 marketing e di innovazione tecnologica alla luce dei concetti appresi durante il corso.

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

CAPACITÀ APPLICATIVE. Grazie al corso lo studente sarà in grado di formulare un piano di marketing, valutare criticamente le strategie di marketing e di innovazione tecnologica di un’impresa, 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 marketing e innovazione tecnologica. Inoltre, lo studente svilupperà la capacità di analisi critica del marketing e della gestione dell’innovazione.

ABILITÀ DI COMUNICAZIONE. Alla fine del corso lo studente sarà in grado di illustrare i concetti del marketing e della gestione dell’innovazione utlizzando 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.

10600453 | PROJECT MANAGEMENT6ENG

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.

1047220 | BIOINFORMATICS6ENG

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.

1052058 | LABORATORY OF NETWORK DESIGN AND CONFIGURATION6ENG

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.

10606936 | PROGRAMMABLE NETWORKS6ENG

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.

10616549 | ADVANCED CRYPTOGRAPHY6ENG
Lo studente deve acquisire 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1044398 | INTERACTIVE GRAPHICS6ENG

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 VISION6ENG

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.

10612389 | COMPUTATIONAL COMPLEXITY6ENG

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.

10606830 | INTERNET-OF-THINGS NETWORKS AND PROTOCOLS6ENG
10616534 | INFORMATION TECHNOLOGIES FOR SMART MANUFACTURING6ITA

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.

1052222 | PLANNING AND REASONING6ENG

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.

1052218 | PROBABILISTIC ROBOTICS6ENG

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 MINING6ENG

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 GOVERNANCE6ENG

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

10600428 | DEEP LEARNING6ENG

Obiettivi formativi

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

Obiettivi Specifici
Conoscenza e Comprensione
Acquisire una comprensione approfondita dei principi di apprendimento supervisionato e non supervisionato.
Apprendere le strutture e i meccanismi delle reti neurali, sia superficiali che profonde.
Capacità Critiche e di Giudizio
Valutare criticamente le prestazioni dei modelli di deep learning, integrando tecniche di regolarizzazione e compressione.
Analizzare le sfide relative alla robustezza al rumore nei modelli di deep learning e sviluppare soluzioni efficaci.
Capacità Comunicative
Presentare e discutere i risultati dei progetti di deep learning, dimostrando competenza nell'uso di strumenti avanzati come Pytorch e HuggingFace.
Capacità di Apprendimento
Sperimentare con tecnologie emergenti nel campo del deep learning, come CNN, Resnets, Transformers, modelli geometrici e equivarianti, nonché approcci di apprendimento autodiretto e meta-apprendimento.
Applicare le conoscenze teoriche in progetti pratici per affrontare problemi reali.

1054962 | SECURE COMPUTATION6ENG

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 PROCESSING6ENG