LM Ingegneria Informatica – Piano di studi

Il piano degli studi consente di scegliere in maniera flessibile tra insegnamenti inquadrati in vari percorsi di studio.  Il percorso di studi si conclude con lo svolgimento di una tesi di laurea magistrale su attività connesse alla ricerca dipartimentale o relative a tirocini in azienda.

Obbligatori

Il corso ha come obiettivi l’apprendimento di conoscenze che riguardano i modelli più diffusi per rappresentare formalmente la computazione e l’acquisizione dell’abilità di formalizzazione applicata alla analisi di una computazione. Vengono introdotti  concetti di base dei modelli di calcolo e delle risorse di calcolo, il concetto di linguaggio formale come rappresentazione matematica di un problema e le nozioni di computabilità, decidibilità e trattabilità di un problema.

L’insegnamento permette di acquisire le i fondamenti della Ricerca Operativa, ed in particolare le tecniche di ottimizzazione per problemi di tipo lineare e di tipo combinatorio, applicandole ad esempi di interesse applicativo. Gli studenti avranno le competenze per classificare un modello matematico di decisione utilizzando tecniche di programmazione lineare, programmazione lineare intera, e di analisi della complessità computazionale di un problema.

Il corso fornisce conoscenze di base sulle moderne reti di calcolatori, sia dal punto di vista pratico che teorico, compresi gli strumenti matematici essenziali per la progettazione e l’analisi delle prestazioni della rete.  Alcuni degli argomenti trattati sono l’architettura di Internet, i principali protocolli di rete (e.g., HTTP), il ruolo e le funzionalità dei dispositivi fondamentali della rete Internet (e.g., DHCP, DNS, etc.).

In questo insegnamento si studiano le metodologie di progettazione e realizzazione di un’applicazione distribuita per la gestione e la permanenza nel tempo di dati strutturati. Vengono presentati i modelli concettuali e logici, le metodologie di analisi e progettazione, i linguaggi formali per realizzare base di dati reale che utilizza un sistema di gestione di basi di dati relazionale.

Il corso ha come obiettivo la comprensione delle problematiche relative allo sviluppo di un sistema operativo e l’apprendimento delle soluzioni utilizzate abitualmente. Tra gli argomenti trattati ci sono il ruolo di un sistema operativo e la sua organizzazione interna, la programmazione concorrente e i costrutti di sincronizzazione e la gestione delle risorse. Vengono inoltre forniti esempi di sistemi in uso (e.g., Linux) e cenni di sistemi real-time.

A scelta

This course is offered in English only. The aim of this course is to provide the fundamentals and basic principles of the machine learning problem as well as to introduce the most common algorithms for supervised learning (e.g., regression and classification) and for unsupervised learning (e.g., clustering and PCA). The supervised learning methods covered include linear models, SVM, neural networks, and deep learning. The course includes hands-on experience with real data.

This course is offered in English only. In this course students learn fundamental algorithmic techniques for the effective and efficient processing of large datasets. Moreover, through a number of practical activities, they acquire skills regarding the development of applications in Apache Spark, which is one of the most popular and widely adopted programming frameworks for big data computing. The topics covered include clustering, association analysis, graph analytics, and similarity/diversity search.

L’obiettivo dell’insegnamento prevede l’acquisizione delle conoscenze fondamentali della geometria proiettiva, della capacità di elaborare le immagini sviluppando un senso critico sull’utilizzo delle varie tecniche. Gli studenti saranno in grado di progettare e sviluppare software per l’analisi automatizzata di immagini e di visione artificiale sfruttando il linguaggio di programmazione C++ e librerie open source.

l corso si propone di fornire un quadro teorico per la progettazione e l’utilizzo efficiente dei sistemi di calcolo parallelo, con applicazioni ai multiprocessori, alle schede grafiche (GPU), ai sistemi riconfigurabili (FPGA), e ai sistemi di supercalcolo.  Le tematiche principali affrontate sono: progettazione ed analisi di algoritmi paralleli, analisi di architetture parallele, programmazione parallela (con attivita` di laboratorio), ottimizzazione congiunta di algoritmo e architettura nella realizzazione mediante circuiti integrati.

Il corso presenta le tecniche fondamentali di alcuni approcci significativi all’interno dell’Intelligenza Artificiale per la soluzione di problemi difficili. In particolare, vengono presentate tecniche di ricerca in uno spazio di soluzioni, sistemi con vincoli, vincoli soft, tecniche di pianificazione, di rappresentazione e manipolazione di conoscenza con e senza incertezza, teoria delle decisioni, tecniche di ragionamento con preferenze e aggregazione di preferenze in contesti multi-agente anche in presenza di incertezza.

The course exploits basic signal analysis knowledge that the student is assumed to have acquired from previous studies to explore advanced concepts in the field of digital signal processing. The course will review Z-transform, linear time-invariant systems, FIR/IIR filters, to investigate the design and usage of digital filters, interpolation/decimation of digital signals, frequency analysis of digital signals. Practical application examples, useful in many areas of information engineering, will be provided.

In questo insegnamento vengono fornite le basi per la comprensione delle norme della famiglia ISO 9000 e delle corrispondenti implicazioni evidenziando le azioni necessarie sia in ambito aziendale per ottenere la certificazione corrispondente, sia in ambito personale per conseguire la patente europea della qualità. Gli studenti acquisiranno le nozioni di base sull’organizzazione di imprese ai fini della gestione in regime di qualità totale.

This course is offered in English only.  In this course you will learn methodologies for statistical analysis and data mining of high-throughput genomic data, and how to apply these methodologies to real data using algorithms and software tools. The topics covered include methods for selection of differentially expressed genes and SNP associated to different phenotypes, clustering and classification for genomic data. The course includes lab lectures using the R language.





Secondo Anno

A scelta

L’insegnamento fornisce una conoscenza approfondita delle metodologie di progetto per sistemi distribuiti, con particolare riferimento alle questioni relative alla gestione della eterogeneità, alla scalabilità, alla condivisione di risorse, alla sicurezza, alla tolleranza ai guasti ed al controllo della concorrenza. Con questo insegnamento, gli studenti acquisiscono le abilità nel saper sviluppare e valutare un progetto di sistema distribuito o di una qualunque sua parte.

L’insegnamento permette di acquisire le competenze per la progettazione, realizzazione e valutazione di motori di ricerca, strumenti fondamentali per il reperimento di informazioni. Oltre ad introdurre i concetti fondamentali per la rappresentazione dell’informazione in formato digitale, agli studenti verranno presentati i modelli avanzati di indicizzazione e di reperimento delle informazioni, le metodologie di valutazione sperimentale dell’efficacia dei motori di ricerca, e le possibili applicazioni.

In questo corso gli studenti acquisiscono competenze avanzate nell’ambito del progetto e dell’analisi di algoritmi. I principali argomenti trattati: algoritmi e schemi di approssimazione per problemi intrattabili, algoritmi di teoria dei numeri e applicazioni crittografiche dell’intrattabilità e una vasta panoramica sulle di tecniche di randomizzazione per il progetto e l’analisi di algoritmi efficienti.

Questo insegnamento fornisce le conoscenze teoriche e pratiche riguardanti il funzionamento di un compilatore di un linguaggio di programmazione, nei suoi principali aspetti: lessicale, sintattico e semantico. In particolare, si acquisiranno le competenze essenziali per l’apprendimento di tecniche di traduzione da un linguaggio di programmazione ad alto livello ad un linguaggio macchina e si svilupperanno le soft skills necessarie al lavoro di gruppo per poter progettare e realizzare un semplice compilatore.

L’insegnamento intende fornire le basi per la rappresentazione ed elaborazione dell’informazione audio e musicale, con particolare riferimento agli ambiti applicativi più importanti come ad esempio la realtà virtuale, e la creazione artistica di contenuti multimediali. Gli studenti acquisiranno le conoscenze fondamentali dalla modellazione dei segnali audio e delle sorgenti acustiche ai metodi di conservazione dei documenti audio.

The course gives the fundamental principles of radio communication in terms of channel behavior and technological exploitation, detailing the contexts of physical layer (PHY), channel access (LINK), and networking procedures (NET). The student will become knowledgeable about modern centralized and distributed wireless systems such as IEEE 802.11 (a/g/n/h) and Wireless Sensor Networks (IEEE 802.15.4). Also, (s)he will get to know related packet-based application-layer / network coding.

In questo corso gli studenti imparano a tradurre un problema biologico in un problema matematico basato su grafi, alberi e stringhe e studiano i principali algoritmi per l’analisi di sequenze biologiche. Tra gli argomenti trattati ricadono gli algoritmi per la ricerca e scoperta di motivi funzionali e strutturali in sequenze biologiche e algoritmi per la soluzione di problemi specifici in ambito di genome rearrangement, DNA assembly, evoluzione delle specie, metagenomica.

L’insegnamento corso consente di acquisire una capacità di lettura dei principali processi operativi aziendali che riguardano: il rapporto con il mercato, lo sviluppo di nuovi prodotti e servizi, i processi produttivi, la gestione della qualità del prodotto e del servizio, la gestione del personale. Gli studenti acquisiranno i criteri fondamentali di analisi di investimenti di natura tecnica ed industriale.

This is a theoretical course intended to provide knowledge of the main mathematical tools and modeling techniques for the study of telecommunication networks and networking protocols. The students will get to know the theoretical basics of Markov chains, renewal processes, queueing theory and traffic models. These instruments will be further applied to the analysis of datalink and networking protocols.

Game theory is the science of analyzing multi-objective multi-agent problems (i.e., “games”). This involves the games we usually play for fun in our everyday life, but in a more serious context is applied to resource competition, distributed management, efficient allocation over multi-user systems and/or communication networks. This course teaches all the basic concepts, as well as some advanced ones, of game theory. Also, it applies them to scenarios of interest for ICT.

In modern communication systems, securing against malicious behavior is a primary issue, and must be part of the design since the beginning, rather than a patch added as a belated measure. The class introduces fundamental notions and tools in information security, with a focus on the solutions, attacks, and countermeasures that can be deployed at the different layers in modern communication networks. The know-how acquired by the student will also be tested through some practical applications.

In questo insegnamento verranno fornite le conoscenze specifiche sul concetto di informazione geografica e della progettazione dei sistemi per la sua gestione e fruizione. Verranno presentate agli studenti le conoscenze di base su cartografia e sistemi di localizzazione, le norme di riferimento e delle buone pratiche, e i principi di progettazione e realizzazione di sistemi di informazione territoriale.

L’insegnamento fornisce agli studenti le conoscenze di elementi di visione robotica, dei principi di locomozione dei sistemi robotici autonomi, e delle tecniche algoritmiche per la pianificazione del moto e della collision avoidance. Verranno presentate le caratteristiche della robotica di servizio rispetto alla robotica manufatturiera, e le tecniche di programmazione in tempo reale mediante i linguaggi C++ e Python per la simulazione per robotica autonoma.

L’obiettivo dell’insegnamento è imparare le metodologie per la progettazione e sviluppo di applicazioni Web, sperimentandole tramite la realizzazione di una applicazione Web effettiva. Gli studenti acquisiranno una solida competenza riguardante il Web Engineering, le conoscenze delle caratteristiche e funzionamento di applicazioni Web 1.0 e Web 2.0, e le capacità di sviluppare un progetto reale utilizzando il linguaggio di programmazione Java, le Java servlet e le principali tecnologie Web.

L’insegnamento permette di approfondire le tecniche più avanzate di programmazione matematica e fornisce le capacità di progettare ed implementare in modo efficace algoritmi avanzati per problemi di ottimizzazione combinatoria. In particolare, gli studenti acquisiranno la di implementare modelli ed algoritmi di programmazione lineare intera, usando software dedicato (IBM ILOG CPLEX)

This course provides knowledge of the concepts of the “IoT” and “Smart cities,” describing their scientific and market trends, as well as the application of these paradigms in practical ICT context. The students will learn about some key platforms and standards (ZigBee, 6LoWPAN, WiFi, Bluetooth Low Energy, SigFox, Lo-Ra), and will review their applications for home automation, industrial applications, autonomous driving, urban monitoring, privacy and security.

L’insegnamento permette di sviluppare attitudini e competenze per l’innovazione e l’imprenditorialità e onsente agli studenti di acquisire le competenze necessarie per realizzare un progetto di innovazione sia dal punto di vista imprenditoriale (creazione di nuova impresa) sia da un punto di vista manageriale (gestione dell’innovazione). 

Stage o Tirocinio

Al termine del percorso formativo, è prevista un’attività formativa da 3 cfu a completamento del lavoro di preparazione della tesi.

Tesi

Lo studente, al termine del percorso formativo, elabora una prova finale su un argomento a scelta riguardante un’attività di progettazione, sviluppo o ricerca, sotto la supervisione di un docente relatore. Il peso di questa attività formativa è pari a 18 cfu.