Tipo di corso
Accesso
Durata
Sede
Lingue
Struttura di riferimento
Il Corso di Studio in breve.
Il percorso di studi mira a fornire:
- competenze per modellare processi e sistemi e sviluppare applicazioni software innovative in particolare in ambito scientifico;
- competenze per modellare processi e sviluppare applicazioni software per le imprese del tessuto aziendale che caratterizza il territorio, in particolare emiliano, con enfasi sulle applicazioni distribuite.
In particolare, il corso permette approfondimenti interessanti nell'ambito dei sistemi distribuiti, con particolare attenzione agli aspetti di Disegno del Software, Sicurezza, Integrazione e Scalable Data Science.
Info
prof. Marco Villani
tel. 059 2055252
marco.villani@unimore.it
prof. ssa Federica Mandreoli
tel. 059 2058321
federica.mandreoli@unimore.it
Piano di studi
Insegnamenti
Piani di studio
-
HIGH PERFORMANCE COMPUTING
9 crediti - 63 ore - Primo Ciclo Semestrale
-
METODOLOGIE DI SVILUPPO SOFTWARE
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
ALGORITMI DI OTTIMIZZAZIONE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
DIRITTO DELL'INFORMATICA E DELLE NUOVE TECNOLOGIE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
ELABORAZIONE DI DATI SCIENTIFICI
6 crediti - 42 ore - Primo Ciclo Semestrale
-
INTRODUCTION TO QUANTUM INFORMATION PROCESSING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PLATFORMS AND ALGORITHMS FOR AUTONOMOUS SYSTEMS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PRIVACY E TUTELA DEI DATI
6 crediti - 42 ore - Primo Ciclo Semestrale
-
TEORIA DEI GIOCHI: STRATEGIE E ALGORITMI
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
ALGORITMI DI CRITTOGRAFIA
6 crediti - 42 ore - Primo Ciclo Semestrale
-
COMPUTATIONAL AND STATISTICAL LEARNING
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
COMPUTER GRAPHICS
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
CRITTOGRAFIA APPLICATA
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
FONDAMENTI DI MACHINE LEARNING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
SISTEMI COMPLESSI
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
BIG DATA ANALYTICS
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
SICUREZZA INFORMATICA
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
SISTEMI EMBEDDED E REAL TIME
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
SVILUPPO DI SOFTWARE SICURO
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
ALGORITMI DI CRITTOGRAFIA
6 crediti - 42 ore - Primo Ciclo Semestrale
-
ALGORITMI DI OTTIMIZZAZIONE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
BIG DATA ANALYTICS
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
COMPUTATIONAL AND STATISTICAL LEARNING
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
CRITTOGRAFIA APPLICATA
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
DIRITTO DELL'INFORMATICA E DELLE NUOVE TECNOLOGIE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
ELABORAZIONE DI DATI SCIENTIFICI
6 crediti - 42 ore - Primo Ciclo Semestrale
-
FONDAMENTI DI MACHINE LEARNING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
INTRODUCTION TO QUANTUM INFORMATION PROCESSING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PLATFORMS AND ALGORITHMS FOR AUTONOMOUS SYSTEMS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PRIVACY E TUTELA DEI DATI
6 crediti - 42 ore - Primo Ciclo Semestrale
-
SICUREZZA INFORMATICA
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
SISTEMI COMPLESSI
6 crediti - 42 ore - Secondo Ciclo Semestrale
-
SISTEMI EMBEDDED E REAL TIME
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
SVILUPPO DI SOFTWARE SICURO
9 crediti - 63 ore - Secondo Ciclo Semestrale
-
ALGORITMI DISTRIBUITI
9 crediti - 63 ore - Primo Ciclo Semestrale
-
PROVA FINALE
24 crediti - 0 ore -
-
TIROCINIO
6 crediti - 0 ore - Secondo Ciclo Semestrale
-
AI-ASSISTED COMPUTER GRAPHICS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
CLOUD AND EDGE COMPUTING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
DEEP LEARNING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
IOT SYSTEMS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
KERNEL HACKING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
METODI PER IL CICLO DI VITA DEL SOFTWARE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PROGRAMMAZIONE MOBILE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
AI-ASSISTED COMPUTER GRAPHICS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
CLOUD AND EDGE COMPUTING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
DEEP LEARNING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
IOT SYSTEMS
6 crediti - 42 ore - Primo Ciclo Semestrale
-
KERNEL HACKING
6 crediti - 42 ore - Primo Ciclo Semestrale
-
METODI PER IL CICLO DI VITA DEL SOFTWARE
6 crediti - 42 ore - Primo Ciclo Semestrale
-
PROGRAMMAZIONE MOBILE
6 crediti - 42 ore - Primo Ciclo Semestrale
Ulteriori informazioni
Requisiti di accesso e modalità di ammissione
Conoscenze richieste per l'accesso.
L'ammissione al Corso di Laurea Magistrale in Informatica richiede il possesso di una laurea di primo livello o titolo equipollente, o di altro titolo di studio conseguito all'estero riconosciuto idoneo oltre al possesso di specifici requisiti curricolari e al superamento di una verifica, eventualmente mediante colloquio, della personale preparazione iniziale.
In particolare, sono necessarie competenze di matematica di base (settori MAT/01-MAT/09), di fisica di base (settori FIS/01-FIS/03) e informatica di base relative ai linguaggi di programmazione, all'algoritmica, ai sistemi operativi, e alle basi di dati (INF/01 e ING/INF/05).
Per l'accesso al corso di laurea magistrale è richiesto almeno uno dei seguenti requisiti curricolari:
1. Essere in possesso di un diploma di laurea di primo livello in una delle classi di seguito specificate:
- Classe 26 (Scienze e tecnologie informatiche) relativa al DM 509/1999;
- Classe L-31 (Scienze e tecnologie informatiche) relativa al DM 270/2004;
- Classe 9 (Ingegneria dell'informazione) relativa al DM 509/1999;
- Classe L-8 (Ingegneria dell'informazione) relativa al DM 270/2004;
ovvero di un diploma di laurea di durata almeno quadriennale in Scienze dell'Informazione, Informatica o Ingegneria Informatica ante DM 509/99, ovvero di un diploma di laurea rilasciato da Università straniera ritenuto equivalente ad uno qualsiasi dei titoli precedentemente elencati, conseguito con un voto finale compreso maggiore o uguale a 90/110.
2. Avere acquisito almeno 48 CFU nei seguenti settori scientifico-disciplinari: ING-INF/05, INF/01 (minimo 18 CFU tra ING-INF/05 e INF/01), MAT/01-MAT/09 (minimo 12 CFU tra tutti i settori MAT/*), FIS/01-FIS/03.
Inoltre, è richiesto che lo studente abbia acquisito almeno 3 CFU del settore L-LIN12 o sia in possesso di una certificazione internazionale ritenuta equivalente almeno al livello B1.
L'accesso al corso di laurea magistrale è subordinato a una verifica delle conoscenze e competenze richieste, valutate da una apposita commissione tramite analisi del curriculum e l'eventuale svolgimento di un colloquio.
Il colloquio ha come obiettivo di verificare la preparazione sui seguenti argomenti: conoscenza di almeno un linguaggio di programmazione, capacità di implementare programmi in un linguaggio, conoscenze di base sugli algoritmi, nozioni di uso di un sistema operativo, conoscenza della gestione di una base di dati, conoscenza di argomenti di matematica di base.
Nel caso di studenti con titoli di studio esteri, verrà svolta una valutazione ad hoc delle competenze acquisite durante il percorso di studi per verificare il possesso dei requisiti curricolari.
Modalità di ammissione.
L'ammissione al Corso di Laurea Magistrale in Informatica richiede il possesso di una laurea di primo livello o titolo equipollente, o di altro titolo di studio conseguito all'estero riconosciuto idoneo oltre al possesso di specifici requisiti curricolari e al superamento di una verifica, eventualmente mediante colloquio, della personale preparazione iniziale.
In particolare, sono necessarie competenze di matematica di base (settori MAT/01-MAT/09), di fisica di base (settori FIS/01-FIS/03) e informatica di base relative ai linguaggi di programmazione, all'algoritmica, ai sistemi operativi, e alle basi di dati (INF/01 e ING/INF/05).
Per l'accesso al corso di laurea magistrale è richiesto almeno uno dei seguenti requisiti curricolari:
1. Essere in possesso di un diploma di laurea di primo livello in una delle classi di seguito specificate:
- Classe 26 (Scienze e tecnologie informatiche) relativa al DM 509/1999;
- Classe L-31 (Scienze e tecnologie informatiche) relativa al DM 270/2004;
- Classe 9 (Ingegneria dell'informazione) relativa al DM 509/1999;
- Classe L-8 (Ingegneria dell'informazione) relativa al DM 270/2004;
ovvero di un diploma di laurea di durata almeno quadriennale in Scienze dell'Informazione, Informatica o Ingegneria Informatica ante DM 509/99, ovvero di un diploma di laurea rilasciato da Università straniera ritenuto equivalente ad uno qualsiasi dei titoli precedentemente elencati, conseguito se possibile con un voto finale compreso maggiore o uguale a 90/110.
2. Avere acquisito almeno 48 CFU nei seguenti settori scientifico-disciplinari: ING-INF/05, INF/01 (minimo 18 CFU tra ING-INF/05 e INF/01), MAT/01-MAT/09 (minimo 12 CFU tra tutti i settori MAT/*), FIS/01-FIS/03.
Inoltre, è richiesto che lo studente abbia acquisito almeno 3 CFU del settore L-LIN12 o sia in possesso di una certificazione internazionale ritenuta equivalente almeno al livello B1.
L'accesso al corso di laurea magistrale è subordinato a una verifica delle conoscenze e competenze richieste, valutate da una apposita commissione tramite analisi del curriculum e l'eventuale svolgimento di un colloquio.
Nel caso di studenti con titoli di studio esteri, nel colloquio verrà svolta una valutazione ad hoc delle competenze acquisite durante il percorso di studi per verificare il possesso dei requisiti curricolari.
Nel caso il candidato non soddisfi i requisiti curriculari, durante il colloquio vengono indicate specifiche aree da colmare. Se l'integrazione da effettuare è entro i 9 CFU è sufficiente un colloquio con la commissione di valutazione, altrimenti la commissione si può avvalere della collaborazione dei docenti del corso magistrale, segnalando al candidato alcuni esami da superare entro termini assegnati e comunque entro l'ultima data in cui è possibile effettuale l'iscrizione completa.
Profilo e sbocchi occupazionali
Competenze associate alla funzione.
Profilo Analista e sviluppatore di software
Le competenze richieste per svolgere le funzioni elencate precedentemente, sono:
- conoscenza dei modelli matematici e informatici per analizzare e descrivere processi e sistemi, anche complessi;
- conoscenza delle opportune metodologie e tecniche matematico-algoritmiche per affrontare problemi computazionalmente non banali;
- conoscenza delle metodologie e tecniche informatiche e matematiche per la gestione delle informazioni;
- conoscenza di un ampio spettro di metodologie e tecniche informatiche per sviluppare software;
- capacità di applicare tali conoscenze per la progettazione e lo sviluppo di sistemi e applicazioni informatici complessi, come ad esempio quelli distribuiti, concorrenti, socio-tecnici;
- capacità di auto-formazione continua;
- capacità di tipo comunicativo e organizzativo.
Funzione in contesto di lavoro.
Profilo Analista e sviluppatore di software
Il Corso di Laurea Magistrale in Informatica intende formare figure di alta professionalità nel campo informatico, che sappiano analizzare e comprendere i processi e i sistemi reali e complessi, siano essi naturali, artificiali, aziendali o sociali; che sappiano modellarli e che sappiano altresì progettare e sviluppare sistemi informatici innovativi, distribuiti, paralleli e concorrenti.
Sbocchi occupazionali e professionali previsti per i laureati.
Profilo Analista e sviluppatore di software
Gli sbocchi occupazionali e professionali previsti per i laureati magistrali saranno:
- Analista di sistemi e applicazioni informatici complessi e innovativi in imprese private di sviluppo software, in imprese del tessuto aziendale che caratterizza il territorio emiliano, in pubbliche amministrazioni, in aziende sanitarie, in enti di ricerca scientifica
- Progettista e sviluppatore di sistemi e applicazioni informatici complessi e innovativi in imprese private di sviluppo software, in imprese del tessuto aziendale che caratterizza il territorio emiliano, in pubbliche amministrazioni, in aziende sanitarie, in enti di ricerca scientifica
- Project manager di applicazioni software
- Libero professionista
- Imprenditore nell'ambito della produzione software
Obiettivi e percorso formativo
Descrizione obiettivi formativi specifici.
La Laurea Magistrale in Informatica ha come obiettivo la formazione di laureati magistrali con un alto livello di competenze informatiche e scientifiche spendibili sia in campo internazionale sia a livello del territorio. Il percorso di studi mira a fornire competenze per modellare processi e sistemi, e sviluppare applicazioni software anche complesse. I campi applicativi previsti sono in particolare l'ambito scientifico e l'ambito dello sviluppo software per le imprese del territorio.
Il laureato magistrale è in grado di effettuare l'analisi, la progettazione, lo sviluppo, e la
gestione di sistemi e applicazioni informatici per la generazione e l'elaborazione delle informazioni.
A questo scopo, gli studenti della Laurea Magistrale approfondiscono le conoscenze metodologiche e tecnologiche relative all'informatica.
La struttura del percorso di studi prevede un insieme di insegnamenti obbligatori che prevedono di approfondire le competenze di modellazione (sia matematica che informatica), di programmazione e di gestione dell'informazione. Di queste competenze verranno curati sia gli aspetti fondazionali sia gli aspetti applicativi.
È poi previsto un insieme di insegnamenti tra cui lo studente può scegliere quelli di maggiore interesse e che rispondono meglio alla sua vocazione professionale. Questo insieme contiene insegnamenti che specializzano ulteriormente le competenze sia nella direzione della modellazione e della applicazione dell'informatica nel campo scientifico, sia nella direzione dell'applicazione dell'informatica allo sviluppo nei campi delle imprese del territorio. Nel primo caso, gli insegnamenti forniscono competenze sui sistemi informatici complessi e sulle tecniche e gli strumenti per la elaborazione e la gestione delle informazioni, in particolare scientifiche; nel secondo caso, gli insegnamenti forniscono competenze per lo sviluppo industriale di software con particolare enfasi sulle applicazioni distribuite.
Il Corso secondo i Descrittori di Dublino
Abilità comunicative.
Il laureato magistrale esibisce delle capacità comunicative adeguate al suo livello di formazione per presentare il suo lavoro. In particolare:
- ha la capacità di presentare dati, idee, problemi e soluzioni su tematiche relative all'informatica, sia in forma scritta che orale;
- ha la capacità di sfruttare strumenti tecnologici per comunicare;
- ha la capacità di redigere report;
- ha la capacità di comunicare all'interno di un gruppo di lavoro;
- ha la capacità di gestire e coordinare progetti di gruppo.
Le suddette capacità sono sviluppate in particolare per la preparazione agli esami di profitto, in particolare quelli che richiedono lo sviluppo e la presentazione di un progetto, sia tramite elaborato scritto sia tramite discussione orale e uso di tecnologie appropriate. Anche la redazione di una tesi per la prova finale e la relativa esposizione sono una occasione di acquisizione delle capacità comunicative.
Autonomia di giudizio.
Il laureato magistrale esibisce una piena capacità di formulare giudizi autonomi e consapevoli sia sugli aspetti tecnici sia su quelli etici, organizzativi. In particolare:
- ha la capacità di rapportarsi con le controparti interpretandone le esigenze;
- ha la capacità di giudicare le tecnologie e gli strumenti informatici più adatti a ogni contesto, valutando le possibili alternative;
- ha la capacità di valutare tempi e modalità dello sviluppo del software;
- ha la capacità di comprendere le implicazioni etiche delle scelte progettuali e implementative e di esprimere giudizi su di esse;
- ha la capacità di giudicare la propria formazione e di adeguarla all'evoluzione del campo informatico.
Queste capacità vengono sviluppate attraverso le attività in laboratorio, i progetti personali e di gruppo, il tirocinio e la prova finale. Agli studenti vengono inoltre proposte fonti di informazione specifiche come ad esempio articoli e testi specialistici, anche in riferimento alle sempre crescenti implicazioni giuridiche ed etiche legate alla professione informatica.
La verifica dell'acquisizione di tali capacità avviene tramite gli esami degli insegnamenti, in particolare di quelli che prevedono un'attività progettuale nell'ambito delle discipline informatiche. La valutazione non si limita agli aspetti tecnici, ma riguarda anche il percorso decisionale che ha portato ai risultati dell'esame.
Capacità di apprendimento.
Il campo dell'informatica è in continua evoluzione e ai laureati magistrali viene chiesto di rimanere in continuo aggiornamento. Pertanto il laureato magistrale:
- ha la capacità di valutare la propria preparazione in relazione allo stato dell'arte delle tecnologie informatiche;
- ha la capacità di individuare le competenze mancanti per affrontare il lavoro che gli viene proposto;
- ha la capacità di fare formazione continua per colmare le lacune e mantenersi aggiornato;
- ha la capacità di sfruttare le fonti appropriate;
- ha la capacità di affrontare problemi sempre nuovi con un approccio scientifico e metodologico.
Le capacità di apprendimento sono conseguite durante il percorso di studio, grazie agli stimoli durante gli insegnamenti, allo studio individuale, alle modalità di esame che privilegia l'apprendimento concettuale rispetto a quello nozionistico, e infine allo svolgimento del tirocinio e la preparazione alla prova finale.
Le capacità di apprendimento sono valutate durante gli esami di profitto e la prova finale, richiedendo comprensione delle materie esposte. Viene richiesta anche autonomia nella ricerca di informazioni ulteriori, in particolare per lo sviluppo di progetti. La prova finale è una occasione in cui viene richiesto agli studenti di svolgere un lavoro originale in forte autonomia.
Conoscenza e comprensione.
Area Analisi e sviluppo di software
Il laureato magistrale:
- possiede conoscenze avanzate in settori dell'informatica quali la progettazione di algoritmi sequenziali e paralleli, la programmazione concorrente e distribuita, la sicurezza, la simulazione di sistemi, le tecnologie web, l'intelligenza artificiale. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Metodologie di sviluppo software, High performance computing, Sviluppo di software sicuro, Big Data Analytics, Sistemi Embedded e real-time, Fondamenti di machine learning, Sistemi complessi, Computational and statistical learning, Algoritmi di ottimizzazione, Platforms and Algorithms for Autonomous Systems, Algoritmi distribuiti, Kernel hacking, Programmazione mobile, Cloud and Edge Computing, Deep learning, IoT Systems, AI-assisted computer graphics, Teoria dei Giochi: Strategie ed Algoritmi, Tirocinio e Prova Finale
- conosce il funzionamento e le tecniche più avanzate ed innovative di memorizzazione e trattamento dati. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Sviluppo di software sicuro, Big Data Analytics, Algoritmi di crittografia, Crittografia applicata, Fondamenti di machine learning, Computational and statistical learning, Elaborazione di dati scientifici, Introduction to Quantum Information processing, Deep learning , Tirocinio e Prova Finale
- conosce i modelli architetturali, le principali problematiche, e gli aspetti peculiari dei sistemi distribuiti. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Metodologie di sviluppo software, High performance computing, Sicurezza informatica, Teoria dei Giochi: Strategie ed Algoritmi, Algoritmi distribuiti, Kernel hacking, Programmazione mobile, Cloud and Edge Computing, IoT Systems, Tirocinio e Prova Finale
- conosce i concetti e gli strumenti adatti per la produzione di software complesso, i principali stili architetturali per la progettazione e lo sviluppo di sistemi software orientati a specifici ambiti applicativi. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Metodologie di sviluppo software, High performance computing, Sviluppo di software sicuro, Big Data Analytics, Sistemi Embedded e real-time, Sicurezza informatica, Elaborazione di dati scientifici, Algoritmi di ottimizzazione, Platforms and Algorithms for Autonomous Systems, Kernel hacking, Deep learning , Metodi per il ciclo di vita del software, Tirocinio + prova finale
- possiede un buon background in aree scientifiche non strettamente informatiche. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Algoritmi di crittografia, Crittografia applicata, Fondamenti di machine learning, Sistemi complessi, Computational and statistical learning, Computer graphics, Privacy e tutela dei dati , Elaborazione di dati scientifici, Introduction to Quantum Information processing, Diritto dell'informatica e delle nuove tecnologie, Teoria dei Giochi: Strategie ed Algoritmi, Algoritmi di ottimizzazione, AI-assisted computer graphics, Tirocinio + prova finale
- è in grado di comprendere e dialogare con chi opera nella prospettiva del progresso scientifico/tecnologico e del suo impatto sulla società. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Sistemi Embedded e real-time, Sicurezza informatica, Algoritmi di crittografia, Crittografia applicata, Sistemi complessi, Privacy e tutela dei dati , Diritto dell'informatica e delle nuove tecnologie, Algoritmi di ottimizzazione, Platforms and Algorithms for Autonomous Systems, IoT Systems , Tirocinio + prova finale
Lo strumento didattico privilegiato per il raggiungimento di tali obiettivi sono le lezioni e sessioni d'esercitazione; la verifica del raggiungimento dei risultati di apprendimento avviene attraverso colloqui orali, prove scritte e discussione delle attività progettuali.
Capacità di applicare conoscenza e comprensione.
Area Analisi e sviluppo di software
Il Laureato magistrale sarà in grado di:
- analizzare e modellare processi e sistemi reali, sia naturali, sia artificiali, sia socio-tecnici. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Metodologie di sviluppo software, Sviluppo di software sicuro, Big Data Analytics, Sicurezza informatica, Crittografia applicata, Fondamenti di machine learning, Sistemi complessi, Computational and statistical learning, Computer graphics, Teoria dei Giochi: Strategie ed Algoritmi, Algoritmi di ottimizzazione, Algoritmi distribuiti, AI-assisted computer graphics, Deep learning , IoT Systems , Metodi per il ciclo di vita del software, Tirocinio + prova finale
- progettare, sviluppare e testare applicazioni software anche distribuite e parallele, sapendo scegliere i più appropriati linguaggi di programmazione e strutture dati. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: Metodologie di sviluppo software, High performance computing, Sistemi Embedded e real-time, Platforms and Algorithms for Autonomous Systems, Algoritmi distribuiti, Kernel hacking, Cloud and Edge Computing, Metodi per il ciclo di vita del software, Tirocinio + prova finale
- modellare e sviluppare applicazioni per risolvere problematiche che derivano da diversi ambiti del mondo reale, come ad esempio sistemi naturali, sistemi mobili e pervasivi, contesti sociali e relazionali, contesti scientifici e di ricerca. Tale conoscenza è sviluppata principalmente (ma non solo) nei seguenti insegnamenti: High performance computing, Sviluppo di software sicuro, Big Data Analytics, Sistemi Embedded e real-time, Sicurezza informatica, Algoritmi di crittografia, Crittografia applicata, Fondamenti di machine learning, Sistemi complessi, Computational and statistical learning, Computer graphics, Privacy e tutela dei dati , Elaborazione di dati scientifici, Introduction to Quantum Information processing, Diritto dell'informatica e delle nuove tecnologie, Teoria dei Giochi: Strategie ed Algoritmi, Algoritmi di ottimizzazione, Platforms and Algorithms for Autonomous Systems, AI-assisted computer graphics, Programmazione mobile, Deep learning , IoT Systems , Metodi per il ciclo di vita del software, Tirocinio + prova finale