Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
1022797 -
DATA MANAGEMENT
(obiettivi)
Obiettivi generali: L'obiettivo del corso è l'indagine sui concetti di base dei sistemi di gestione dei dati, facendo riferimento in particolare al modello relazionale. Vengono affrontate diverse questioni fondamentali relative alla teoria e alla progettazione di sistemi di gestione dei dati relazionali, tra cui controllo della concorrenza, ripristino, organizzazioni di file e indici, elaborazione delle query, OLAP e OLTP. È richiesta una buona conoscenza dei fondamenti di strutture di programmazione, linguaggi di programmazione e database (SQL, modello di dati relazionali, modello di dati Entità-Relazione, progettazione di database concettuali e logici).
Conoscenza e comprensione: Lo studente avrà una buona conoscenza di come funziona un sistema di gestione dei dati, di come è strutturato e di come è progettato. Inoltre, lo studente acquisirà conoscenza dell'architettura di un sistema di gestione di database e dei suoi moduli principali (gestore delle transazioni, gestore di recupero, analizzatore di query). Lo studente acquisirà inoltre una buona conoscenza di come progettare l'organizzazione fisica delle relazioni (file e indici) e di come funziona l'ottimizzatore di query di un sistema di gestione dati.
Applicare conoscenza e comprensione: Gli studenti saranno in grado di progettare il proprio sistema di gestione dei dati, incluso il modulo di controllo della concorrenza, il modulo di ripristino, il modulo per i metodi accesso ai file e l'ottimizzatore di query.
Capacità critiche e di giudizio: Lo studente sarà in grado di valutare le caratteristiche e la qualità di un sistema di gestione dei dati e sarà in grado di scegliere la tecnica giusta per gestire la concorrenza, il recupero e l'elaborazione delle query in contesti applicativi specifici.
Capacità comunicativa: Gli studenti acquisiranno una buona conoscenza su come illustrare gli algoritmi e le tecniche alla base di un moderno Data Manager.
Capacità di apprendimento: Lo studente sarà in grado di comprendere qualsiasi nuova architettura e approccio alla gestione dei dati che si affermerà in futuro.
-
LENZERINI MAURIZIO
( programma)
1. Architecture of a database management system 2. Transaction management - the notion of transaction - concurrency control 3. Recovery management - classification of failures - techniques for recovery 4. Physical design - physical organization of a relational database - principles of physical organization 5. Query evaluation - general principles - evaluation of relational operators 6. XML and relational databases - XML, DTD; XML Schema, XQuery - relational representation of XML documents
R. Ramakrishnan, J. Gehrke. Database Management Systems. McGraw-Hill, 2004
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1022891 -
SOFTWARE ENGINEERING
(obiettivi)
Il corso analizza il processo di sviluppo del software e presenta le metodologia, gli standard di qualità, le metriche e le tecniche comunemente usate per la stima economica, la pianificazione ed il test di applicazioni software di qualità professionale. Al fine di interpretare correttamente le misure utilizzate nel contesto dell'assicurazione della qualità del software, il corso presenta le nozioni di base della teoria della misura e della verifica di esperimenti tramite l'analisi della varianza.Risultati di apprendimento attesi: Alla fine del corso lo studente sarà in grado di: -scegliere un modello per lo sviluppo di una applicazione software, stimarne il costo, pianificare le attività di progetto, progettare i test ed indicare delle metriche per l'assicurazione qualità, nonchè valutare la significatività statistica di esperimenti basati sulla raccolta di campioni numerici.
-
MECELLA MASSIMO
( programma)
Il programma di dettaglio corrisponde a quanto svolto a lezione (inclusi i seminari) e trattato nei riferimenti fondamentali indicati per ciascuna lezione. In termini generali il programma include:
- Introduzione e concetti di base (standardizzazione dei processi software, processi software, metodologie agili e programmazione estrema, gestione dei progetti) - Metodi per il test - Economia del software (punti funzione, COCOMO II) - Fondamenti della teoria della misura (definizioni e panoramica sui concetti di base delle statistiche, qualità delle metriche, errori sistematici e casuali, statistiche inferenziali, analisi della varianza (ANOVA)) - Qualità del software (errori più comuni e fattori di qualità, ISO 25010, DREC) - Programmazione e tecnologie distribuite (SOA, architetture di micro-servizi, sistemi di messaggistica, ecc.)
Slide e materiale distribuito dal docente Eventuali testi e/o articoli indicati durante le lezioni a seconda degli argomenti
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
Gruppo opzionale:
Insegnamenti Caratterizzanti - 4 Insegnamenti a scelta - (visualizza)
|
24
|
|
|
|
|
|
|
|
1038133 -
FORMAL METHODS
(obiettivi)
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.
-
DE GIACOMO GIUSEPPE
( programma)
Introduzione ai metodi formali nel software. Uso di logiche per esprimere specifiche e proprietà statiche e dinamiche: logica del prim'ordine, query al prim'ordine, query congiuntive. Analisi e verifica di aspetti statici. Sintassi e semantica formale dei diagrammi concettuali, quali diagrammi delle classi UML e diagrammi Entità Relazione, verifica di proprietà statiche. Uso di logica del prim'ordine per il ragionamento automatico su tali diagrammi. Interrogazioni su diagrammi UML. Query answering di query congiuntive (e unioni di query congiuntive). Analisi e verifica di aspetti dinamici. Semantica operazionale astratta dei programmi: semantica di valutazione (intera computazione) e semantica di transizione (singolo passo della computazione). Precondizioni, postcondizioni e invarianti di un programma. Correttezza parziale e totale, Hoare Logic. Programmi reattivi/interattivi (a stati finiti) reattivi come sistemi di transizione (cf. semantica di transizione), astrazione. Punti fissi, teorema di Knaster-Tarski su least e greatest fixpoint, approssimanti di least e greatest fixpoint. Verifica di proprietà dinamiche e temporali su sistemi di transizione: Safeness, Liveness, Fairness, Strong Fairness. Logiche temporali per la verifica: LTL, CTL, CTL*, mu-calculus. Model checking per CTL. Model checking per mu-calculus. Model checking per LTL.
Dispense del corso, disponibili presso il sito del corso: http://www.dis.uniroma1.it/~degiacom/didattica
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1038134 -
HUMAN COMPUTER INTERACTION
(obiettivi)
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.
-
CATARCI TIZIANA
( programma)
Concetti introduttivi Principi di usabilita’ La progettazione user-centered Modellazione dell’utente Task analysis Modellazione del dialogo persona-calcolatore Modelli del Sistema Tecniche di valutazione Tecnologie di supporto
A. Dix. et al. Human-Computer Interaction. Pearson/Prentice Hall, 2003 (terza edizione). Slide del corso
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1044414 -
ADVANCED OPERATING SYSTEMS AND VIRTUALIZATION
(obiettivi)
Obiettivi generali:
Gli obiettivi del corso Advanced Operating Systems and Virtualization sono legati all'acquisizione di metodologie teoriche e pratiche legate alla progettazione ed allo sviluppo di sistemi operativi moderni. Gli argomenti trattati sono calati all'interno dell'architettura hardware x86, con l'obiettivo di fornire allo studente competenze facilmente spendibili su architetture di elaborazione moderne e largamente diffuse. Le idiosincrasie dell'architettura x86 consentono di introdurre concetti legati alla portabilità del codice dei sistemi operativi e della loro modularizzazione interna, permettendo quindi di applicare i concetti e le competenze di più alto livello anche su altre architetture. Il caso di studio è il kernel Linux, di cui verranno mostrati gli internals di un numero non minimale di sottosistemi e relative strutture dati. In questo modo, lo studente potrà imparare le best practice per la progettazione e lo sviluppo di sistemi operativi.
Durante tutto il corso, in maniera trasversale, verranno mostrati in maniera teorica e pratica aspetti legati alla sicurezza interna ed esterna dei sistemi operativi. In questo modo, lo studente avrà la possibilità di accrescere le proprie competenze in termini di sicurezza, potendo anche arrivare all'identificazione dei correnti limiti delle politiche di sicurezza dei sistemi, ed eventualmente di ragionare su modalità per estendere le stesse.
Il corso ha anche come obiettivo quello di mostrare le tecniche e le metodologie atte a supportare la virtualizzazione di sistemi, sia sfruttando facility hardware che supporti software.
La realizzazione di un progetto in tecnologia C che estenda l'attuale implementazione del kernel Linux permetterà agli studenti anche di migliorare le proprie competenze di programmazione in C.
Obiettivi specifici:
Conoscenza e comprensione: Lo studente acquisirà la capacità di leggere e comprendere il codice sorgente del kernel Linux. Questa capacità riflette la conoscenza degli aspetti teorici legati al funzionamento dei sistemi operativi, e delle necessità di sviluppo legate alle moderne architetture hardware.
Applicare conoscenza e comprensione: Lo studente sarà in grado di progettare ed implementare nuovi sottosistemi all'interno del kernel Linux.
Capacità critiche e di giudizio: Lo studente sarà in grado di valutare la qualità di un implementazione di un sistema software complesso, dal punto di vista della correttezza, delle performance e degli standard di sicurezza.
Capacità comunicative: Lo studente sarà in grado di realizzare documentazioni di qualità elevata di sistemi software complessi e di utilizzare strumenti di sviluppo collaborativo. Inoltre, lo studente acquisirà proprietà di linguaggio tali da descrivere problematiche di correttezza e performance di sistemi software complessi.
Capacità di apprendimento: Lo studente sarà in grado di leggere e comprendere sistemi software complessi e di identificare possibili problematiche di sicurezza. Questo consentirà di progettare e realizzare nuovi sistemi software complessi, di identificare politihche di mitigazione di attacchi, di studiare in maniera autonoma il funzionamento di altri sistemi software complessi.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1022780 -
CAPACITY PLANNING
(obiettivi)
Obiettivi generali:
Obiettivo del corso è fornire le metodologie per la modellazione e valutazione degli impianti di elaborazione, relativamente al dimensionamento in fase di progettazione e al tuning in fase di esercizio. Il corso si propone di rendere disponibili gli strumenti necessari a un ingegnere per operare delle scelte tra più soluzioni architetturali, in considerazione sia delle prestazioni che del costo. Preliminarmente alle suddette metodologie vengono forniti gli elementi architetturali necessari al perfezionamento delle conoscenze sulle infrastrutture di elaborazione distribuite ad alte prestazioni, ad alta affidabilità e disponibilità. Risultati di apprendimento attesi: Alla fine del corso gli studenti saranno in grado di dimensionare un sistema di elaborazione con l'obiettivo di soddisfare i Service Level Agreement (SLA) fissati, SLA basati sia su indici tipici delle prestazioni che della dependability.
Obiettivi specifici:
Conoscenza e comprensione: Tecniche di tolleranza ai guasti, modellazione di sistemi di elaborazione per valutare la dependability e le prestazioni dei sistemi di elaborazione
Applicare conoscenza e comprensione: Essere in grado di progettare e dimensionare un sistema di elaborazione complesso.
Capacità critiche e di giudizio: Essere in grado di valutare la qualità di un sistema di elaborazione e verificarne la capacità a soddisfare le esigenze dei clienti e dei gestori.
Capacità comunicative: Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di lavorare in un gruppo di progettisti multidisciplinare.
Capacità di apprendimento: L’identificazione di modelli di sistemi reali permette agli studenti di apprendere in profondità da una parte le interazioni dei suoi componenti e dall’altra di capire il valore della rappresentazione dei sistemi di elaborazione.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
1038137 -
WEB INFORMATION RETRIEVAL
(obiettivi)
Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di collezioni di dati di grandi dimensioni. 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 di grandi dimensioni; - 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 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.
-
BECCHETTI LUCA
( programma)
Il corso si propone di presentare le metodologie e le tecnologie fondamentali dell’Information Retrieval e della progettazione dei motori di ricerca nel World Wide Web. Gli argomenti che sono affrontati sono i seguenti:
Information Retrieval: Indicizzazione ed interrogazione di basi documentali.Ranking di documenti, modello vettoriale e valutazione della qualita' di un sistema di IR.Motori di ricerca: Architettura, Crawling, Ranking ed approfondimenti, Metaranking, Grafo del Web. Classificazione e Clustering: Classificazione dei testi; Classificazione Vettoriale; Clustering. Esercitazioni di laboratorio riguardanti l’implementazione di strategie di indicizzazione, crawling e ranking. Servizi: personalizzazione, raccomandazione, advertising
Christopher D. Manning, Prabhakar Raghavan, Heinrich Schueze Introduction to Information Retrieval, Cambridge University Press, 2008 Articoli scientifici e materiale on line proposto dal docente
(Date degli appelli d'esame)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10589747 -
INTERNET OF THINGS
(obiettivi)
Il corso è 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)
-
CHATZIGIANNAKIS IOANNIS
( programma)
The course introduces emerging application scenaria, studies characteristic design approaches of Pervasive systems and networks, examines essential algorithmic techniques and performance limits and provides the foundations for engineer algorithms in open-design.
The course is organized in the following parts: - Part 1: Internet of Things: STM NUCLEO fast prototyping platform (Atollic TrueStudio development framework). IoT Lab for very large scale open real-world testbed. Riot-OS open-sources operating system. Machine-to-machine Communication (6LowPan - RPL, COAP, MQTT). Low-Power Wide-Area Networks (LPWAN - LoRa, The Things Network). Securing the Internet of Things (TinyDTLS). - Part 2: ''Intelligent Environments": Design aspects of Intelligent Environments. Experience/Interaction design. Ubiquitous Computing. Participatory sensing. Delay-Tolerant Networking. Sociable Smart Cities. - Part 3: "Programming Tools": Operating Systems and Embedded Solutions (AWS FreeRTOS, Arm Mbed, Zerynth). Back-end Infrastructure and Middleware (VerneMQ, InfluxDB, API.AI). Cloud Services (AWS IoT, IBM Watson Internet of Things, NodeRED, Blynk). Hardware Prototyping Platforms (Genuino 101, Particle, Estimote, Sensoro, AltBeacon).
Interconnecting Smart Objects with IP - The Next Internet By: Jean-Philippe Vasseur & Adam Dunkels
The Internet of Things: Key Applications and Protocols By: Olivier Hersent, David Boswarthick, Omar Elloumi
From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence By:Jan Holler , Vlasios Tsiatsis , Catherine Mulligan , Stefan Avesand , Stamatis Karnouskos , David Boyle
(Date degli appelli d'esame)
-
VITALETTI ANDREA
( programma)
Il programma dell'insegnamento è disponibile sul sito http://ichatz.me/Site/InternetOfThings2021 ed è diviso in moduli Module 1: Designing Applications for the Internet of Things. Module 2: Embedded Operating Systems and Hardware Platforms. Module 3: Networks, Protocols, Security. Module 4: Performance Evaluation. Module 5: Data, Analytics, Privacy.
Tutto il materiale necessario è chiaramente indicato su http://ichatz.me/Site/InternetOfThings2021
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10596250 -
DIGITAL ENTREPRENEURSHIP
(obiettivi)
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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
|
Gruppo opzionale:
Insegnamenti affini ed integrativi - 1 insegnamento a scelta - (visualizza)
|
6
|
|
|
|
|
|
|
|
10593010 -
ARTIFICIAL INTELLIGENCE II
|
|
1044398 -
INTERACTIVE GRAPHICS
(obiettivi)
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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1038137 -
WEB INFORMATION RETRIEVAL
(obiettivi)
Obiettivi generali:
Conoscenza dei principali scenari applicativi di interesse nell'analisi di collezioni di dati di grandi dimensioni. 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 di grandi dimensioni; - 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 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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1038133 -
FORMAL METHODS
(obiettivi)
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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1044414 -
ADVANCED OPERATING SYSTEMS AND VIRTUALIZATION
(obiettivi)
Obiettivi generali:
Gli obiettivi del corso Advanced Operating Systems and Virtualization sono legati all'acquisizione di metodologie teoriche e pratiche legate alla progettazione ed allo sviluppo di sistemi operativi moderni. Gli argomenti trattati sono calati all'interno dell'architettura hardware x86, con l'obiettivo di fornire allo studente competenze facilmente spendibili su architetture di elaborazione moderne e largamente diffuse. Le idiosincrasie dell'architettura x86 consentono di introdurre concetti legati alla portabilità del codice dei sistemi operativi e della loro modularizzazione interna, permettendo quindi di applicare i concetti e le competenze di più alto livello anche su altre architetture. Il caso di studio è il kernel Linux, di cui verranno mostrati gli internals di un numero non minimale di sottosistemi e relative strutture dati. In questo modo, lo studente potrà imparare le best practice per la progettazione e lo sviluppo di sistemi operativi.
Durante tutto il corso, in maniera trasversale, verranno mostrati in maniera teorica e pratica aspetti legati alla sicurezza interna ed esterna dei sistemi operativi. In questo modo, lo studente avrà la possibilità di accrescere le proprie competenze in termini di sicurezza, potendo anche arrivare all'identificazione dei correnti limiti delle politiche di sicurezza dei sistemi, ed eventualmente di ragionare su modalità per estendere le stesse.
Il corso ha anche come obiettivo quello di mostrare le tecniche e le metodologie atte a supportare la virtualizzazione di sistemi, sia sfruttando facility hardware che supporti software.
La realizzazione di un progetto in tecnologia C che estenda l'attuale implementazione del kernel Linux permetterà agli studenti anche di migliorare le proprie competenze di programmazione in C.
Obiettivi specifici:
Conoscenza e comprensione: Lo studente acquisirà la capacità di leggere e comprendere il codice sorgente del kernel Linux. Questa capacità riflette la conoscenza degli aspetti teorici legati al funzionamento dei sistemi operativi, e delle necessità di sviluppo legate alle moderne architetture hardware.
Applicare conoscenza e comprensione: Lo studente sarà in grado di progettare ed implementare nuovi sottosistemi all'interno del kernel Linux.
Capacità critiche e di giudizio: Lo studente sarà in grado di valutare la qualità di un implementazione di un sistema software complesso, dal punto di vista della correttezza, delle performance e degli standard di sicurezza.
Capacità comunicative: Lo studente sarà in grado di realizzare documentazioni di qualità elevata di sistemi software complessi e di utilizzare strumenti di sviluppo collaborativo. Inoltre, lo studente acquisirà proprietà di linguaggio tali da descrivere problematiche di correttezza e performance di sistemi software complessi.
Capacità di apprendimento: Lo studente sarà in grado di leggere e comprendere sistemi software complessi e di identificare possibili problematiche di sicurezza. Questo consentirà di progettare e realizzare nuovi sistemi software complessi, di identificare politihche di mitigazione di attacchi, di studiare in maniera autonoma il funzionamento di altri sistemi software complessi.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1022780 -
CAPACITY PLANNING
(obiettivi)
Obiettivi generali:
Obiettivo del corso è fornire le metodologie per la modellazione e valutazione degli impianti di elaborazione, relativamente al dimensionamento in fase di progettazione e al tuning in fase di esercizio. Il corso si propone di rendere disponibili gli strumenti necessari a un ingegnere per operare delle scelte tra più soluzioni architetturali, in considerazione sia delle prestazioni che del costo. Preliminarmente alle suddette metodologie vengono forniti gli elementi architetturali necessari al perfezionamento delle conoscenze sulle infrastrutture di elaborazione distribuite ad alte prestazioni, ad alta affidabilità e disponibilità. Risultati di apprendimento attesi: Alla fine del corso gli studenti saranno in grado di dimensionare un sistema di elaborazione con l'obiettivo di soddisfare i Service Level Agreement (SLA) fissati, SLA basati sia su indici tipici delle prestazioni che della dependability.
Obiettivi specifici:
Conoscenza e comprensione: Tecniche di tolleranza ai guasti, modellazione di sistemi di elaborazione per valutare la dependability e le prestazioni dei sistemi di elaborazione
Applicare conoscenza e comprensione: Essere in grado di progettare e dimensionare un sistema di elaborazione complesso.
Capacità critiche e di giudizio: Essere in grado di valutare la qualità di un sistema di elaborazione e verificarne la capacità a soddisfare le esigenze dei clienti e dei gestori.
Capacità comunicative: Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di lavorare in un gruppo di progettisti multidisciplinare.
Capacità di apprendimento: L’identificazione di modelli di sistemi reali permette agli studenti di apprendere in profondità da una parte le interazioni dei suoi componenti e dall’altra di capire il valore della rappresentazione dei sistemi di elaborazione.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10589747 -
INTERNET OF THINGS
(obiettivi)
Il corso è 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)
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
1038134 -
HUMAN COMPUTER INTERACTION
(obiettivi)
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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10596250 -
DIGITAL ENTREPRENEURSHIP
(obiettivi)
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.
|
6
|
ING-INF/05
|
36
|
24
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
|
- -
A SCELTA DELLO STUDENTE
|
6
|
|
36
|
24
|
-
|
-
|
Attività formative a scelta dello studente (art.10, comma 5, lettera a)
|
ENG |