You are here: Home » Degree programme.

Tecnologia

Corso di Laurea Magistrale in INGEGNERIA INFORMATICA

Dipartimento di Ingegneria "Enzo Ferrari"



  • Course in brief
  • Admission requirements
  • Prospects
  • Overview
  • Learning outcomes
  • Contacts

Study plan

Perché iscriversi?
Il Corso di Laurea Magistrale in Ingegneria Informatica introduce agli aspetti più innovativi del settore ICT sia dal punto di vista teorico che pratico. I nostri laureati vengono formati ad affrontare sia le complesse problematiche poste dai grandi centri produttivi internazionali che le sfide particolari del territorio emiliano tradizionalmente legato all'automazione ed all'industria automobilistica. Per le sue caratteristiche, si inquadra inoltre perfettamente all'interno dei percorsi STEM (science, technology, engineering and mathematics) la cui richiesta da parte del mercato di lavoro è in continuo aumento.

Cosa si studia
Il Corso di Laurea Magistrale in Ingegneria Informatica si articola in quattro percorsi: Artificial Intelligence Engineering - Applications, Artificial Intelligence Engineering - Large Scale, Cloud and Cybersecurity, Data Engineering and Analytics. Almeno un insegnamento per percorso viene erogato in lingua inglese e i percorsi in Intelligenza Artificiale hanno tutti gli obbligatori erogati in lingua inglese.

Entrambi i percorsi in Artificial Intelligence Engineering partono dalla formazione su machine learning, deep learning, visione artificiale e sistemi intelligenti. Poi, per il percorso Applications, si affrontano l'uso e la progettazione di sistemi robotici, di oggetti e sensori in IoT e le applicazioni dell'IA in bioinformatica. Per il percorso Large Scale si va dai sistemi ad agenti distribuiti, all'elaborazione di dati multimediali e alle tecnologie per l'IA su supercalcolatori.

Il percorso Cloud e Cybersecurity è orientato allo studio e allo sviluppo di sistemi sicuri e connessi alla rete. In particolare, affronta temi che spaziano dalla gestione e sicurezza delle reti informatiche ai sistemi operativi, dallo sviluppo di applicazioni per piattaforme distribuite e edge, alla progettazione di sistemi embedded e real-time.

Il percorso Data Engineering and Analytics forma professionisti esperti nella gestione, manipolazione ed analisi di grandi quantità di dati. Gli argomenti trattati spaziano dalla progettazione del software alla business intelligence, dalla gestione e analisi dei big data, fino all'analisi di testi e grafi, quali le reti sociali.

Cosa si diventa
I nostri laureati sono in grado di ideare, pianificare, progettare e gestire sistemi informatici complessi e innovativi, con forti competenze in tecnologie avanzate sia informatiche che, più in generale ICT. Gli ambiti professionali tipici per un laureato magistrale in Ingegneria Informatica sono quelli dell'innovazione e dello sviluppo della produzione, della progettazione avanzata, della pianificazione e della programmazione, della gestione di sistemi complessi, sia nella libera professione sia nelle imprese di servizi o manifatturiere, ad esempio elettroniche, meccaniche, ceramiche e biomedicali, oltre che nelle amministrazioni pubbliche.
Inoltre il laureato magistrale potrà anche proseguire gli studi approfondendo ulteriormente la sua preparazione in Master universitari di secondo livello o in un Dottorato di Ricerca, in particolare nell'area dell'Ingegneria dell'Informazione.

Conoscenze richieste per l´accesso;

Per l'accesso al Corso di Laurea Magistrale in Ingegneria Informatica si richiede il possesso di uno fra i seguenti titoli conseguiti presso un'Università italiana, o altro titolo di studio conseguito all'estero e ritenuto ad essi equivalenti: Laurea o Diploma Universitario di durata triennale, Laurea Specialistica o Laurea Magistrale, di cui al DM 509/1999 o DM 270/2004, Laurea quinquennale (ante DM 509/1999). Le conoscenze richieste per l'accesso sono, oltre a quelle relative alle materie di base (Matematica, Fisica, Informatica) tipiche dell'Ingegneria, quelle caratterizzanti l'Ingegneria Informatica con particolare riferimento alle conoscenze tipiche dei Sistemi dell'Elaborazione delle Informazione. È auspicabile inoltre che l'allievo abbia una conoscenza di base anche nella più ampia area dell'Ingegneria dell'Informazione e che quindi, in particolare, abbia una conoscenza basilare dell'Elettronica, delle Telecomunicazioni e dei Controlli Automatici. In particolare, per i candidati con titolo di studio italiano, i requisiti curriculari necessari per l'accesso verranno soddisfatti dal possesso di 90 CFU, acquisiti in qualunque corso universitario, nei settori MAT/xx, FIS/xx, INF/01, ING-INF/xx e L-LIN/12. La ripartizione dei CFU tra i settori è dettagliata nel regolamento didattico del corso di studi. I requisiti curriculari dei candidati con titolo di studio straniero necessari per l'accesso saranno valutati da una commissione nominata dal Consiglio del Corso di Studio attraverso l'analisi del curriculum degli studi presentato. Un'apposita Commissione valuta la necessità di eventuali integrazioni curriculari prevedendo, in caso di percorsi non perfettamente coerenti con i requisiti richiesti, un percorso integrativo che deve comunque esaurirsi prima della verifica della preparazione personale. La verifica della personale preparazione è obbligatoria per l'iscrizione al corso e viene effettuata tramite la verifica del voto di laurea o della media pesata dei voti della precedente carriera come descritto in dettaglio nel regolamento didattico del corso di studi. Nella verifica della personale preparazione verrà richiesta la conoscenza della lingua inglese ad un livello non inferiore al B2 del Quadro comune europeo di riferimento per la conoscenza delle lingue e qualora questa conoscenza non fosse soddisfatta, le competenze linguistiche richieste dovranno essere acquisite prima del conseguimento del titolo finale.

Modalità di ammissione

Come deliberato dal Consiglio dei Corsi di Studio in Ingegneria Informatica, gli studenti devono preventivamente possedere i seguenti requisiti curriculari: almeno 90 CFU complessivamente acquisiti con un numero minimo di CFU per SSD raccolti nei seguenti gruppi:
- MAT/xx, FIS/xx = 30 CFU
- INF/01, ING-INF/xx = 57 CFU (di cui INF/01 + ING-INF/05 >=30)
- L-LIN/12 = 3 CFU
La preparazione si ritiene adeguata inoltre se lo studente ha conseguito un voto di laurea pari o superiore a 85/110.
In caso di titolo di studio straniero il voto finale deve essere superiore ai 2/3 del massimo previsto o, in mancanza di tale indicazione, la media pesata dei voti deve essere superiore ai 2/3 del massimo previsto.

Data analyst e progettista di applicazioni software

Function in a job context:

Il Data Analyst e progettista di applicazioni software conosce le metodologie più recenti di sviluppo delle applicazioni, ed è in grado di applicarle nella pianificazione, progettazione e sviluppo di applicazioni software complesse. I moderni sistemi possono infatti essere dotati di una componente di interfaccia utente (web, mobile o tradizionale), di una logica di business complessa e di una larga base di dati; utilizzano piattaforme (hardware e sistemi operativi) disponibili e in genere standard, e si compongono tramite l'integrazione e adattamento di componenti software disponibili sul mercato o create ad hoc. L'interazione e l'interoperabilità di queste componenti richiede una forte attenzione in fase di scelta e progettazione de componenti. Forti competenze di analisi di dati sono poi necessarie per analizzare i requisiti dei sistemi e dei processi di analisi dei dati, progettare sistemi e processi informatici per l'estrazione, la memorizzazione e l'analisi di grandi moli di dati eterogenei, sviluppare processi informatici per l’analisi dei dati, e utilizzare per questo anche tecniche e algoritmi di machine learning e data mining. Gli ambiti applicativi sono quelli delle applicazioni di alto livello a supporto del funzionamento operativo e dei sistemi direzionali di aziende, organizzazioni, e pubblica amministrazione.

Skills associated with function:

Il Data Analyst e progettista di applicazioni software ha la capacità di svolgere analisi dei requisiti, progettare sistemi e processi di analisi dei dati, grazie alla conoscenza dei sistemi distribuiti e delle basi di dati relazionali e NoSQL utilizzati per raccogliere, memorizzare e analizzare grandi moli di dati eterogenei, alla capacità di risoluzione di problemi data-driven, alla conoscenza delle metodologie e dei linguaggi di programmazione utilizzati per realizzare applicazioni in ambito big data, e alla conoscenza di algoritmi di machine learning e data mining utilizzati per l'analisi dei dati. Inoltre è in grado di svolgere analisi dei requisiti di un sistema complesso, valutare soluzioni alternative rispetto a requisiti funzionali e non funzionali (affidabilità, ergonomia, prestazioni, costo), definire l'architettura e progettare sistemi software, valutare e scegliere linguaggi e tecnologie di sviluppo, selezionare librerie e componenti software, effettuare la verifica ed il test del software.

Job oppotunities:

Dipartimenti IT di aziende medio-grandi e della pubblica amministrazione
Società di consulenza informatica e non.
Società di sviluppo software.

Analista e progettista di sicurezza, sistemi distribuiti, rete e cloud

Function in a job context:

L'ingegnere informatico magistrale analista e progettista di sicurezza, sistemi distribuiti, rete e cloud progetta e realizza sistemi informatici complessi basati su calcolatori e dispositivi interconnessi in rete, quali sistemi aziendali, sistemi di operatori di telecomunicazioni e service provider, sistemi di Edge computing e IoT (Internet of Things). Può operare a diversi livelli, a partire da quello infrastrutturale (per esempio, progettazione e dimensionamento di reti informatiche aziendali), fino a quello delle applicazioni (progettazione e sviluppo di sistemi software che operano su reti internet, intranet e piattaforme cloud e/o edge computing). Si occupa di analisi dei rischi di un sistema IT o di una specifica applicazione, della definizione di un'architettura di sicurezza per proteggere i dati e/o i sistemi dai rischi considerati inaccettabili, della supervisione dell'implementazione e della gestione dell'architettura di sicurezza e della verifica periodica dell'architettura e suo eventuale adeguamento.

Skills associated with function:

L'ingegnere informatico magistrale analista e progettista di sicurezza, sistemi distribuiti, rete e cloud possiede conoscenze di sistemi distribuiti, degli attacchi esistenti, delle debolezze degli elementi hardware/software di rete, e delle componenti di sicurezza tecniche ed organizzative. Grazie a teli competenze è in grado di:
- definire le specifiche dei requisiti e dell'architettura del sistema,
- scegliere i componenti hardware e software,
- definire le specifiche e realizzare nuovi componenti da integrare,
- identificare e risolvere le problematiche prestazionali e di scalabilità in sistemi complessi,
- garantire il soddisfacimento dei requisiti di sistema e di utente che caratterizzano i sistemi distribuiti,
- analizzare e quantificare i rischi di un sistema IT, sia sulla carta che tramite prove sperimentali
- valutare diverse architetture IT in funzione della loro maggiore o minore esposizione ai rischi,
- definire architettura di sicurezza per proteggere sistemi esistenti o in corso di sviluppo,
- fornire linee-guida di sicurezza agli architetti applicativi, agli sviluppatori software ed ai gestori dei sistemi IT,
- valutare per un sistema IT il soddisfacimento dei requisiti di sicurezza imposti da legislazioni nazionali o internazionali,
- identificare specifiche esigenze di sicurezza e protezione dei sistemi distribuiti.

Job oppotunities:

- Dipartimenti IT di aziende medio-grandi
- Società di consulenza informatica e non
- Società operanti in ambito cloud e edge computing
- Integratori di sistemi IoT
- Realtà di supporto per Industria 4.0
- Operatori di telecomunicazioni e service provider
- Organismi di controllo e certificazione
- Studi di terzo ciclo e master universitari di secondo livello.

Specialista in Intelligenza Artificiale

Function in a job context:

Lo specialista in Intelligenza Artificiale ricopre ruoli scientifici, tecnici e/o manageriali di alto profilo in contesti che richiedono la conoscenza approfondita delle discipline dell'Ingegneria Informatica con particolare riferimento ai sistemi basati sull'intelligenza artificiale. Può operare nell'ambito della ricerca, progettazione, dello sviluppo, dell'ingegnerizzazione, della produzione, dell'innovazione, dell'esercizio e della manutenzione, della gestione di soluzioni e tecnologie di intelligenza artificiale, e la loro utilizzazione in settori che spaziano dall' automazione di processi complessi aziendali, la mobilità, la gestione dei servizi al cittadino, la finanza, la salute e l'ambiente.

Skills associated with function:

Lo specialista in Intelligenza Artificiale possiede le competenze per:
1) pianificare e realizzare progetti di innovazione e sviluppo di prodotti nel settore dell'Ingegneria dell'Informatica ed in particolare nell'ambito dell'Intelligenza Artificiale, a partire dalla definizione delle specifiche, per arrivare alla progettazione, alla definizione degli strumenti e delle tecnologie produttive e di servizi, al collaudo ed alla certificazione;
2) operare in settori produttivi e di servizi in continuo mutamento che richiedono un'elevata specializzazione nei metodi e negli strumenti dell'intelligenza artificiale, capaci quindi di affrontare la progettazione, la realizzazione, l'adattamento e la gestione di prodotti e servizi altamente innovativi;
3) muoversi in contesti interdisciplinari e di favorire l'innovazione nel contesto lavorativo che sia nei settori operativi aziendali oppure nei centri di ricerca e sviluppo;
4) fornire le sue competenze a supporto delle strutture tecnico-commerciali di aziende che operano nel settore dell'intelligenza artificiale o affine.

Job oppotunities:

Grazie ad una offerta formativa che privilegia una significativa attività di laboratorio in vari domini applicativi ed industriali, gli sbocchi occupazionali tipici dello specialista in Intelligenza Artificiale sono pertinenti sia ai settori operativi aziendali, sia ai centri di ricerca e sviluppo, in particolare:
- imprese di progettazione, sviluppo, ingegnerizzazione, produzione ed esercizio di soluzioni e sistemi intelligenti e le loro applicazioni;
- imprese manifatturiere, aziende agro-alimentari, aziende operanti in ambito civile, settori di amministrazioni pubbliche e imprese di servizi in cui sono utilizzati sistemi informatici basati sull'intelligenza artificiale;
- imprese interessate all'acquisizione, il trattamento, l'elaborazione e la trasmissione dell'informazione (dati, voce, immagini e video);
- industrie per l'automazione e la robotica, aziende manifatturiere che utilizzano sistemi e impianti per l'automazione di processo;
- imprese operanti nell'ambito del progetto e dello sviluppo di sistemi embedded e di piattaforme digitali per sistemi autonomi ed intelligenti;
- aziende di settori diversi, che necessitano di competenze per lo sviluppo e l'utilizzo di sistemi basati sull'intelligenza artificiale a supporto dell'organizzazione interna, della produzione e della commercializzazione;
- imprese nell'ambito dei servizi e del terziario avanzato, operanti in particolare negli ambiti della progettazione, fornitura, manutenzione di servizi forniti tramite reti telematiche, internet e web;
- aziende produttrici e/o utilizzatrici di componenti e sistemi informatici;
- aziende fornitrici di strutture e servizi per sistemi e reti informatiche;
- società di ingegneria del software;
- centri di ricerca e sviluppo, sia pubblici che privati;
- studi di terzo ciclo e master universitari di secondo livello.

Il corso prepara alla professione di (codifiche ISTAT)

  1. Analisti e progettisti di software (2.1.1.4.1)
  2. Analisti di sistema (2.1.1.4.2)
  3. Analisti e progettisti di applicazioni web (2.1.1.4.3)
  4. Specialisti in reti e comunicazioni informatiche (2.1.1.5.1)
  5. Analisti e progettisti di basi dati (2.1.1.5.2)
  6. Amministratori di sistemi (2.1.1.5.3)
  7. Specialisti in sicurezza informatica (2.1.1.5.4)
  8. Ingegneri progettisti di calcolatori e loro periferiche (2.2.1.4.2)

Il Corso di Laurea Magistrale in Ingegneria Informatica si propone di fornire le competenze relative al progetto, alla realizzazione e alla gestione di sistemi di elaborazione dell'informazione in ambito ICT (Information and Communication Technology). Rientrano negli obiettivi della Laurea Magistrale l'apprendimento dei fondamenti teorici, delle metodologie e delle tecnologie in grado di soddisfare le richieste presenti e future provenienti dalla Società dell'Informazione. Lo scopo è di consentire lo sviluppo di progetti e la realizzazione di prodotti caratterizzati da una forte innovazione ed adeguatezza per fare fronte alla rapida evoluzione che caratterizza l'area dell'Ingegneria Informatica.
I laureati magistrali in Ingegneria Informatica devono, in generale conoscere approfonditamente gli aspetti teorico-scientifici delle scienze di base dell'Ingegneria e soprattutto dell'Ingegneria Informatica per interpretare, descrivere e risolvere anche in modo innovativo, i problemi complessi dell'Ingegneria che possono richiedere anche un approccio interdisciplinare. Devono inoltre essere capaci di ideare, pianificare, progettare e gestire sistemi informatici, processi e servizi complessi e/o innovativi considerando anche le associate implicazioni economiche, sociali ed etiche. Il laureato magistrale dovrà essere in grado di promuovere l'innovazione tecnologica e, a tal fine, dovrà saper utilizzare fluentemente, in forma scritta e orale, la lingua inglese oltre l'italiano, con riferimento anche ai lessici disciplinari.
Il Corso di Laurea Magistrale in Ingegneria Informatica prevede di individuare all'interno dei percorsi previsti un corpo di insegnamenti fondamentali nelle seguenti area di apprendimento: big data, IOT, intelligenza artificiale e apprendimento automatico, progettazione del software, sistemi operativi, visione artificiale, multimedia, cloud computing, applicazioni distribuite, sicurezza informatica, sistemi Informativi e robotica.
A completamento degli insegnamenti fondamentali del percorso, il Corso di Laurea Magistrale in Ingegneria Informatica consente allo studente la possibilità di confezionarsi il proprio percorso formativo secondo le proprie aspirazioni professionali, effettuando scelte che possono portare il futuro laureato magistrale a meglio completare la propria preparazione.
Per completare la sua preparazione, lo studente dovrà individuare ulteriori insegnamenti, secondo percorsi formativi funzionali al raggiungimento degli obiettivi formativi del corso, garantendo che sia le attività formative affini ed integrative sia quelle a scelta libera dello studente dovranno essere coerenti con tale progetto formativo. Tali scelte riguarderanno quindi materie scientifiche, altre materie ingegneristiche e materie giuridiche, quali la ricerca operativa, la matematica discreta, le telecomunicazioni, il diritto del lavoro e l'economia, gli strumenti CAD e il quantum computing.
Il Corso di Laurea Magistrale di Ingegneria Informatica prevede, perciò, per raggiungere i sopraelencati obiettivi formativi, un solido percorso formativo culturale e metodologico sul quale si possono innestare percorsi personalizzati che permettono una formazione orientata alla immissione nel mondo del lavoro oltre che alla possibile prosecuzione degli studi in master universitari di II livello e/o in dottorati di ricerca.

Autonomia di giudizio

Ai futuri Ingegneri Informatici Magistrali viene richiesta:
- autonomia di giudizio nell'analizzare e progettare sistemi complessi, valutando l'impatto delle soluzioni informatiche nel contesto applicativo, sia relativamente agli aspetti tecnici che agli aspetti organizzativi e dimostrando di partecipare attivamente al processo decisionale in contesti anche interdisciplinari.
- autonomia di giudizio nel valutare le implicazioni economiche, sociali ed etiche associate alle soluzioni individuate.

Il Corso di Laurea Magistrale in Ingegneria Informatica si pone l'obiettivo di fornire allo studente gli opportuni strumenti metodologici ed operativi per consentirgli di affrontare con autonomia e obiettività di giudizio sia i problemi tipici della progettazione e realizzazione di sistemi informatici complessi, sia le sfide innovative che derivano dalla rapida evoluzione che caratterizza l'area dell'Ingegneria Informatica.
La verifica dei risultati attesi sopra indicati viene condotta sia nei singoli insegnamenti e, in particolare, in quelli del settore dei sistemi per l'elaborazione dell'informazione (ING-INF/05), che prevedono attività di laboratorio, sia nello svolgimento di un tirocinio o di una attività progettuale, sia nella prova finale.

Abilità comunicative

Le abilità comunicative che sono richieste ad un futuro Ingegnere Informatico Magistrale riguardano in particolare la capacità di:
- interagire efficacemente con interlocutori sia non specialisti che specialisti di diversi settori applicativi al fine di comprenderne le specifiche esigenze per la realizzazione di sistemi complessi;
- descrivere a tali interlocutori in modo chiaro e comprensibile informazioni, idee, problemi e soluzioni oltre che aspetti tecnici;
- addestrare collaboratori, coordinare e partecipare a gruppi di progetto, pianificare e condurre la formazione nell'area dell'Ingegneria Informatica;
- comunicare sulle tematiche di interesse efficacemente e fluentemente, in forma scritta e orale, in inglese, oltre che in italiano, con riferimento anche ai lessici disciplinari e, se necessario, usando strumenti multimediali.

Tali abilità (in italiano) vengono accertate sia attraverso le prove scritte e/o orali previste nei singoli insegnamenti, sia nello svolgimento di un tirocinio o di una attività progettuale, e sia nella scrittura e presentazione della tesi di laurea magistrale durante la prova finale.
Per quanto riguarda invece le abilità comunicative in inglese, queste possono essere messe alla prova in vari modi: dal sostenimento di alcuni esami all'estero grazie alla possibilità offerte dal Programma Erasmus, attraverso le prove scritte e/o orali previste in alcuni insegnamenti erogati in inglese e dallo svolgimento all'estero di un tirocinio/attività progettuale e quindi dalla scrittura in inglese della tesi di laurea magistrale.

Capacità di apprendimento

Ad un futuro Ingegnere Informatico Magistrale viene richiesto di avere:
- capacità di apprendimento che consente di affrontare in modo efficace le mutevoli problematiche lavorative connesse con l'innovazione propria dell'area dell'Ingegneria Informatica.
- capacità di riconoscere la necessità di apprendimento autonomo durante tutto l'arco della vita, dato l'elevato tasso di innovazione tecnologica e metodologica nell'area dell'Ingegneria Informatica;
- capacità di acquisire in modo autonomo nuove conoscenze specialistiche dalla letteratura scientifica e tecnica del settore, sia nell'ambito delle tematiche approfondite nel proprio percorso formativo, sia in altri ambiti dell'Ingegneria Informatica;
- capacità di apprendimento approfondite che sono necessarie per intraprendere sia studi successivi come master universitari di II livello e/o dottorati di ricerca che ricerche scientifiche.

Tali capacità vengono verificate nell'ambito dei singoli insegnamenti, in particolare quelli che prevedono una componente seminariale, di ricerca bibliografica e di svolgimento di progetti sia individuali che di gruppo, oltre che nello svolgimento delle attività inerenti ad un tirocinio o una attività progettuale e nella preparazione e discussione della tesi di laurea magistrale.

Risultati di apprendimento attesi: conscenza e comprensione, capacita' di applicare conoscenza e comprensione

Artificial Intelligence Engineering

Conoscenza e comprensione

- Conoscere e comprendere le principali tecniche di pattern recognition e machine learning per l'analisi di dati di natura eterogenea.
- Conoscere e comprendere le tecniche della visione artificiale, in particolare per l'elaborazione di immagini e video.
- Conoscere e comprendere le caratteristiche dei sistemi industriali e dell'Internet of Things
- Conoscere e comprendere le metodologie di base nello spazio degli stati per l'analisi ed il controllo di sistemi dinamici.
- Conoscere e comprendere i principali modelli e tecnologie per la gestione di sistemi software distribuiti avanzati.

Capacita' di applicare conoscenza e comprensione

- Sapere applicare i principali algoritmi di classificazione di dati, di sequenze temporali di informazioni e di pattern complessi quali ad esempio le immagini e sapere applicare le principali tecniche di apprendimento automatico sia di tipo supervisionato che non supervisionato.
- Sapere trattare in modo automatico immagini/video e dati visuali, sapere comprendere una scena, ricercandone i contenuti, sapere trattare la visione 3D e sapere sviluppare applicazioni di visione robotica ed industriale, di videosorveglianza biometria ed analisi forense.
- Sapere analizzare e progettare sistemi in grado di comunicare con i nuovi dispositivi intelligenti.
- Sapere analizzare e progettare sistemi dinamici lineari, non lineari, continui, discreti, di tipo SISO (single-input and single-output) e MIMO (Multiple-input and multiple-output).
- Sapere progettare sistemi client-server basati su oggetti, sistemi a componenti autonomi (agenti) e sapere applicare le tecnologie per la mobilità.

Cyber Systems

Conoscenza e comprensione

- Conoscere e comprendere le metodologie per il progetto, realizzazione e testing di applicazioni su rete con elevati requisiti prestazionali e di affidabilità.
- Conoscere e comprendere le principali problematiche legate alla sicurezza dei sistemi, dei servizi e delle applicazioni basate su Internet.
- Conoscere e comprendere le metodologie e le tecnologie più adottate nel mondo del lavoro per il progetto e lo sviluppo di applicazioni Web moderne, basate su architetture parallele e distribuite.
- Conoscere e comprendere ogni livello/gestore di cui si compone un Sistema Operativo a livello di meccanismi di funzionamento e delle relative politiche.
- Conoscere e comprendere le principali problematiche legate alla sicurezza dei sistemi automotive, dei servizi e delle applicazioni basate su infrastrutture connesse.
- Conoscere e comprendere la relazione e le differenze tra Sistemi Embedded e Sistemi Real Time e le principali applicazioni dei Sistemi Embedded e Real Time.

Capacita' di applicare conoscenza e comprensione

- Sapere analizzare sistemi distribuiti su scala locale e geografica, anche a livello prestazionale, e sapere progettare server Web.
- Sapere analizzare le vulnerabilità dei sistemi, reti e applicazioni e le principali tipologie di attacco diretto e indiretto, sapere applicare le metodologie e i meccanismi per la difesa dei sistemi in rete e sapere progettare sistemi di rete sicuri.
- Sapere progettare applicazioni complesse su sistemi multi-livello, con replicazione dei componenti critici per motivi di prestazioni e di affidabilità.
- Sapere identificare le varie funzionalità di un Sistema Operativo, sapere valutare le scelte più opportune in base al suo utilizzo e sapere scrivere programmi concorrenti in ambiente globale, utilizzando il linguaggio di programmazione Java.
- Sapere analizzare un sistema per riconoscerne gli aspetti Real Time e/o Embedded e sapere progettare un Sistema Embedded e Real Time, riducendo il rischio e la gestione dei guasti e soddisfacendo vincoli di sicurezza ed efficacia.
- Sapere analizzare le vulnerabilità dei sistemi automotive, delle reti infrastrutturali e le principali tipologie di attacco diretto e indiretto.

Data Engineering and Analytics

Conoscenza e comprensione

- Conoscere e comprendere i maggiori trend tecnologici, scientifici e applicativi connessi con i big data e gli aspetti significativi di alcune piattaforme per l'analisi di dati.
- Conoscere e comprendere la tecnologia relazionale anche a livello delle tecniche implementative oltre che le nozioni di base dei database distribuiti.
- Conoscere e comprendere gli strumenti metodologici per l'impostazione, l'organizzazione e la gestione di progetti software di grandi dimensioni.
- Conoscere e comprendere le diverse tipologie dei sistemi informativi che possono essere presenti in azienda.
- Conoscere e comprendere le tecniche di gestione dei dati multimediali e dei relativi supporti architetturali.

Capacita' di applicare conoscenza e comprensione

- Sapere modellare problemi relativi all'analisi di dati e proporre approcci per la loro risoluzione e sapere utilizzare alcune importanti tecniche di analisi di dati e data mining.
- Sapere utilizzare le funzionalità più avanzate del linguaggio standard per DBMS relazionali (SQL92) e sapere progettare sistemi di data warehousing e database distribuiti.
- Sapere applicare le tecniche più avanzate di progettazione del software, con particolare attenzione agli aspetti di efficienza e di qualità del risultato e sapere stimare i tempi, i costi e le risorse da impiegare.
- Sapere analizzare e progettare un sistema informativo aziendale con particolare riferimento ai costi associati, i linguaggi del Semantic Web e le tecniche di Data Mining.
- Sapere sia applicare sia modificare gli algoritmi di compressione ed elaborazione dei dati multimediali.

Discipline affini e integrative

Conoscenza e comprensione

- Conoscere e comprendere i concetti giuridici fondamentali inerenti ai riflessi dell'informatica sulla gestione del rapporto di lavoro.
- Conoscere e comprendere le nozioni matematiche fondamentali relative agli insiemi discreti, evidenziando le tecniche risolutive e dimostrative connesse con il loro studio.
- Conoscere e comprendere i metodi base e gli strumenti di misura di tipo elettrico ed elettronico.
- Conoscere e comprendere le tecnologie, i dispositivi di interconnessione e le principali infrastrutture di rete.
- Conoscere e comprendere il contesto applicativo derivante dallo svolgimento (per 6 mesi) di un tirocinio formativo o di una attività progettuale.
- Conoscere e comprendere le nozioni matematiche fondamentali che sono alla base dei sistemi e degli algoritmi di apprendimento automatico.

Capacita' di applicare conoscenza e comprensione

- Sapere applicare le conoscenze sulle implicazioni dell'introduzione dei sistemi informatici nelle imprese private e nelle pubbliche amministrazioni in termini di potenziale controllo sull'attività lavorativa, di ricadute sotto il profilo della tutela della privacy del lavoratore, di ricadute sotto il profilo della salute e di sicurezza dei lavoratori.
- Sapere applicare le nozioni relative a relazioni di equivalenza, numeri primi, problemi di fattorizzazione e aritmetica modulare e sapere applicare le principali tecniche risolutive delle relazioni ricorsive e gli elementi basilari della teoria dei grafi.
- Sapere, date le specifiche di sistema, scegliere un circuito a logica programmabile commerciale e saperlo programmare utilizzando un linguaggio di descrizione dell'hardware, sapere interpretare i risultati di una simulazione e sapere effettuare una analisi statica del timing ed interpretarne i risultati.
- Sapere applicare le nozioni relative alle principali infrastrutture di rete, in ambito locale, metropolitano e geografico, in tecnologia elettronica ed ottica.
- Sapere affrontare l'inserimento in una azienda o in un laboratorio di ricerca.
- Sapere applicare le nozioni relative alle varietà, alla fattorizzazione di matrici, alle immersioni in spazi altamente dimensionali, all'uso dei kernel nelle support vector machines.

Artificial Intelligence Engineering - Large scale

Conoscenza e comprensione

- Conoscere e comprendere le principali tecniche di pattern recognition e machine learning per l'analisi di dati di natura eterogenea.
- Conoscere e comprendere le tecniche della visione artificiale, in particolare per l'elaborazione di immagini e video.
- Conoscere e comprendere le tecniche di gestione dei dati multimediali e dei relativi supporti architetturali.
- Conoscere e comprendere i principali modelli e tecnologie per la gestione di sistemi software distribuiti avanzati.
- Conoscere e comprendere le problematiche e la struttura dei sistemi multithreaded e dei cluster per l'high performance computing.

Capacita' di applicare conoscenza e comprensione

- Sapere applicare i principali algoritmi di classificazione di dati, di sequenze temporali di informazioni e di pattern complessi quali ad esempio le immagini e sapere applicare le principali tecniche di apprendimento automatico sia di tipo supervisionato che non supervisionato.
- Sapere trattare in modo automatico immagini/video e dati visuali, sapere comprendere una scena, ricercandone i contenuti, sapere trattare la visione 3D e sapere sviluppare applicazioni di visione robotica ed industriale, di videosorveglianza biometria ed analisi forense.
- Sapere sia applicare sia modificare gli algoritmi di compressione ed elaborazione dei dati multimediali.
- Sapere analizzare e progettare sistemi dinamici lineari, non lineari, continui, discreti, di tipo SISO (single-input and single-output) e MIMO (Multiple-input and multiple-output).
- Sapere eseguire simulazioni e utilizzare librerie software su sistemi con numerose GPU e conoscere le metodologie di gestione di job su grandi strutture per l'HPC.

Course director:
Costantino GRANA