1038133 | FORMAL METHODS | 1º | 1º | 6 | ENG |
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 INTERACTION | 1º | 2º | 6 | ENG |
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 SERVICES | 1º | 2º | 6 | ENG |
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 COMPUTING | 2º | 1º | 6 | ENG |
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 ANALYTICS | 2º | 1º | 6 | ENG |
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 MINING | 2º | 1º | 6 | ENG |
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 TECHNOLOGIES | 2º | 1º | 6 | ENG |
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 MANAGEMENT | 2º | 1º | 6 | ENG |
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 COMPUTING | 2º | 1º | 6 | ENG |
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 ANALYSIS | 2º | 1º | 6 | ENG |
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 ENTREPRENEURSHIP | 2º | 2º | 6 | ENG |
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 BLOCKCHAIN | 2º | 2º | 6 | ENG |
10616532 | ECONOMICS AND COMPUTATION | 2º | 2º | 6 | ENG |
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 APPLICATIONS | 2º | 2º | 6 | ENG |
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.
|