Il 1° anno di corso di questa Laurea Professionalizzante è dedicato a formare:
Il 2° anno è dedicato ad approfondire, anche sotto la guida di professionisti del mondo industriale, tematiche concernenti :
Il 3° anno è impiegato in:
ELEMENTI DI MATEMATICA PER L'INFORMATICA (MAT/05, 6 CFU)
Al termine del corso, lo studente conosce i concetti, i metodi e le tecniche di matematica rilevanti per la figura professionale di informatico - includendo elementi di calcolo, algebra, geometria e probabilità. Conosce l' applicazione pratica di questi concetti in ambito informatico, e conosce strumenti informatici per utilizzare questi concetti.
ELEMENTI DI ARCHITETTURE degli ELABORATORI e SISTEMI OPERATIVI (ING.INF/05, 6 CFU)
Al termine del corso, lo studente conosce i principi ed i metodi su cui si basa la progettazione logica delle macchine che ricevono, elaborano e generano segnali a due valori e conosce i principi elementari, atti a descrivere la macchina da un duplice punto di vista: il comportamento (cioè, il “cosa fa”) e la struttura (cioè, il “come è fatta”). Lo studente conosce l'architettura degli elaboratori e la loro strutturazione a livelli ed è in grado di comprendere i linguaggi a basso livello con cui si programma un elaboratore dell'informazione. Conosce le funzionalità del sistema operativo, le problematiche dei sistemi multi-utente e della concorrenza, l'interfaccia utenti a caratteri e la struttura del filesystem.
PROGRAMMAZIONE (INF/01, 9 CFU)
Al termine del corso, lo studente ha una competenza di base sulla programmazione, mediante linguaggio C, e sulla programmazione ad oggetti, sia dal punto di vista concettuale che dal punto di vista pratico, per lo sviluppo di applicazioni software di media complessità. In particolare: - possiede i fondamenti metodologici per l’analisi e lo sviluppo di sistemi software secondo il paradigma imperativo e a oggetti - conosce le tecniche di programmazione, sia dal punto di vista concettuale che dal punto di vista pratico, e sa applicarle a casi concreti di media complessità - conosce e sa utilizzare le strutture dati fondamentali e i relativi algoritmi - possiede le nozioni fondamentali relative agli aspetti funzionali nei moderni linguaggi a oggetti.
RETI di CALCOLATORI e PROGRAMMAZIONE di RETE (INF/01, 6 CFU)
Al termine del corso, lo studente acquisisce le nozioni essenziali sulle architetture delle moderne reti di telecomunicazioni, con particolare riferimento ad Internet, e sulle problematiche di progettazione e implementazione dei relativi protocolli di comunicazione e delle applicazioni che comunicano via rete.
FONDAMENTI di SISTEMI WEB (INF/01, 6 CFU)
Al termine del corso, lo studente conosce gli standard alla base del World Wide Web e i linguaggi di scripting client side. È in grado di progettare e sviluppare applicazioni Web utilizzando linguaggi di markup e fogli di stile e script lato client.
BASI di DATI (ING.INF/05, 6 CFU)
Al termine del corso, lo studente possiede le nozioni fondamentali della tecnologia delle basi di dati relazionali, conosce il modello dei dati relazionale ed i principali costrutti del linguaggio SQL. Lo studente ha inoltre acquisito competenze e capacità pratiche anche relativamente alle tecnologie legate alle basi di dati noSQL, è in grado di progettare e realizzare una base di dati e possiede gli strumenti metodologici necessari per il suo impiego nella progettazione di un sistema informativo.
SISTEMI VIRTUALIZZATI (INF/01, 6 CFU)
Al termine del corso, lo studente conosce il sistema operativo Linux, il linguaggio di scripting bash ed è in grado di realizzare applicazioni che sfruttano processi concorrenti. Conosce i principi della virtualizzazione, il concetto di container e gli strumenti per realizzare sistemi informatici virtualizzati. Conosce il concetto di microservizi e le principali piattaforme cloud. Conosce il modello Infrastructure as code (IaC) ed è in grado di utilizzare gli strumenti ed i linguaggi di orchestrazione per realizzare infrastrutture di servizi scalabili automaticamente e che bilanciano il carico.
SPERIMENTAZIONE FISICA, ELETTRONICA E SENSORISTICA PR INFORMATICA (FIS/04, 6 CFU)
Al termine del corso, lo studente conosce i principi teoria fisica che sta alla base del funzionamento dei sensori. Conosce le basi della dinamica classica, il significato di lavoro ed energia e i fondamenti dell’elettromagnetismo. Conosce gli strumenti elementari di combinatoria e di probabilità. Conosce i più comuni sensori e attuatori usati in ambito informatico e, mediante un opportuno linguaggio di programmazione, è in grado di risolvere semplici problemi e di applicare i concetti appresi a questi dispositivi e sensori.
IDONEITA' LINGUA INGLESE B-1
ALGORITMI E STRUTTURE DI DATI (INF/01, 6 CFU)
Al termine del corso, lo studente conosce le strutture dati di base e gli algoritmi in grado di operare su di esse. Lo studente conosce le principali tecniche per la stima del costo computazionale di algoritmi, ed è in grado di progettare e realizzare soluzioni efficienti per risolvere problemi comuni nell'ambito delle discipline legate alla tecnologia dell'informazione.
PROGETTAZIONE e SVILUPPO del SOFTWARE (ING-INF/05, 9 CFU)
Al termine del corso, lo studente possiede le conoscenze di base dei paradigmi di programmazione per software in-the-large, quali il paradigma object-oriented e quello funzionale, dei suoi principali pattern di progettazione, della sua incarnazione in linguaggi moderni e relativi framework di sviluppo. È in grado quindi di progettare e sviluppare applicazioni complete di medio-piccole dimensioni, usando processi di sviluppo e tecniche agili, tra cui l'approccio DevOps alla conduzione del progetto.
INGEGNERIA dei SISTEMI WEB (INF/01, 6 CFU)
Al termine del corso, lo studente conosce i principali stack per il Web LAMP e MEAN. E’ in grado di sviluppare applicazioni e servizi Web, client side e server side. Conosce e sa utilizzare in modo appropriato i principali framework e content management system per lo sviluppo dei siti Web. Conosce le principali differenze tra le tipologie di applicazioni per device mobili: web app, app ibride e app native.
LABORATORIO di SISTEMI EMBEDDED e IOT (6 CFU)
Al termine del corso lo studente è in grado di sviluppare software su tecnologie embedded quali microcontrollori, sistemi SoC (system-on-a-chip), integrati in rete con sistemi/applicazioni web e applicazioni mobile.
LABORATORIO di BIG DATA, DATA MINING e DATA ANALYTICS (6 CFU)
Al termine del corso, lo studente possiede competenze avanzate e capacità pratiche legate alle basi di dati relazionali e non relazionali, nonché la capacità di realizzare applicazioni centrate sull'utilizzo di DBMS. Conosce gli ambiti applicativi in cui utilizzare le tecnologie dei Big Data e le relative problematiche; Conosce le architetture hardware e software proposte per la loro gestione; Conosce le tecniche per la memorizzazione, utilizza i linguaggi e i paradigmi di programmazione adottati in questo tipo di sistemi; Conosce le metodologie di progettazione per le diverse tipologie di applicazioni in ambito Big Data. Possiede competenze pratiche nell'utilizzo delle diverse. Conosce le principali tecniche di data mining e text mining; Conosce le metodologie di gestione e sviluppo di progetto; Sviluppa competenze pratiche nella generazione, nell'analisi e interpretazione dei risultati mediante esercitazioni pratiche svolte con tool commerciali e/o open source.
LABORATORIO di OTTIMIZZAZIONE, INTELLIGENZA ARTIFICIALE e MACHINE LEARNING (6 CFU)
Al termine del corso, lo studente conosce i principi dell'intelligenza artificiale e dell’apprendimento automatico e ne conosce le basi matematiche. Conosce alcuni framework di sviluppo del settore. È capace di concorrere alla progettazione di sistemi capaci di apprendere in modo automatico e di risolvere problemi in diversi ambiti applicativi utilizzando tecniche di intelligenza artificiale e di apprendimento automatico. Conosce obiettivi, principi e metodi per l'ottimizzazione.
LABORATORIO di PROGRAMMAZIONE di SISTEMI MOBILI (6 CFU)
Al termine del corso, lo studente conosce gli strumenti fondamentali per lo sviluppo di applicazioni per dispositivi mobile, sia native su piattaforma Android (tramite Kotlin), che ibride con React Native (basato su React). In particolare, conosce la progettazione e programmazione dell’architettura e dell’interfaccia grafica di applicazioni mobile performanti, in grado di comunicare con le componenti hardware (come sensori) e software del device.
LABORATORIO di SISTEMI di RETE (6 CFU)
Al termine del corso lo studente conosce i principi di funzionamento e le modalità di configurazione dei principali apparati di rete. Sa eseguire configurazioni di base sia per apparati di livello 2 (switch) sia per apparati di livello 3 (router). Conosce i principi di monitoraggio e gestione di una rete e sa eseguire configurazioni di base. Conoscenze le metodologie di configurazione dei principali sistemi di instradamento proprietari e open-source. Conosce i principi della virtualizzazione di rete e le relative implementazione nei moderni sistemi di cloud computing.
LABORATORIO di SICUREZZA dei SISTEMI e PRIVACY (6 CFU)
Al termine del corso lo studente conosce i principi di base della sicurezza informatica e le principali problematiche di sicurezza dei sistemi informatici e delle reti. Conosce i protocolli ed i meccanismi di comunicazione utilizzati per garantire il trasferimento sicuro delle informazioni. È in grado di valutare in modo critico la sicurezza di un sistema informatico, individuando le possibili vulnerabilità e mettendo in atto tutte le contromisure necessarie per mitigare le problematiche individuate ed incrementare la robustezza del sistema. Conosce i principi e le metodologie alla base dei servizi di directory ed è in grado di gestire un sistema di piccole dimensione basato su servizi di directory di tipo proprietario oppure open source. Conosce i metodi con cui appoggiare una applicazione ad un servizio di directory dispiegato in cloud mediante i servizi dei principali cloud provider. È in grado di contribuire alla progettazione di sistemi, anche in cloud, dove la sicurezza è un elemento essenziale e strutturale. È in grado di progettare ed i meccanismi per la messa in sicurezza di dispositivi presenti su Internet e di sistemi distribuiti in cloud, utilizzando i framework disponibili su queste piattaforme cloud. È in grado di utilizzare strumenti di "penetration testing" per validare la sicurezza di un sistema attraverso la ricerca delle sue vulnerabilità e la misura degli effetti dello sfruttamento di queste vulnerabilità.
LABORATORIO di PIATTAFORME e METODOLOGIE di SVILUPPO CLOUD (6 CFU)
Al termine del corso, lo studente conosce approfonditamente le strategie di sviluppo di sistemi in cloud ed i framework per lo sviluppo forniti dai principali cloud provider, ed in particolare: i linguaggi ed i metodi per realizzare e gestire infrastrutture virtuali per mezzo di codice (IaC) e per bilanciare dinamicamente il carico; i principali linguaggi e framework per realizzare applicazioni a base web in cloud; i principali processi di sviluppo per la conduzione di progetti in cloud e gli strumenti disponibili; i principali strumenti per realizzare servizi di directory e meccanismi di sicurezza delle comunicazioni nei sistemi ed applicazioni dispiegati in cloud; i principali strumenti per monitoraggio, billing e auditing delle applicazioni e dei sistemi in cloud. Conosce le principali certificazioni dei principali cloud provider. È in grado di progettare o contribuire a progettare un sistema informatico di piccole o medie dimensioni dispiegato in cloud.
LABORATORIO di INTERFACCIA UOMO-MACCHINA (6 CFU)
Al termine del corso, lo studente acquisisce competenze di base su design, sviluppo e validazione di interfacce utente di sistemi informatici; conosce le principali metodologie di valutazione dell’usabilità e dell’accessibilità delle interfacce utente; conosce i principi di User Experience.
Attività a libera scelta tip.D (3 CFU)
LABORATORIO di PIATTAFORME di SVILUPPO per AUTOMAZIONE (3 CFU)
Al termine del corso, lo studente: possiede una conoscenza generale delle architetture tecnologiche usate per la realizzazione di sistemi di automazione con particolare riferimento alla automazione industriale; una conoscenza di base delle problematiche di elaborazione e comunicazione real time applicate al caso dell'automazione; una conoscenza di base di particolari componenti delle architetture tecnologiche di automazione industriale tra cui i Programmable Logic Controllers (PLC). Conosce i principali protocolli di rete per interazioni con sistemi industriali. Conosce le principali problematiche legate alla progettazione ed implementazione del software per il controllo e l'automazione. Conosce i framework di sviluppo per costruire applicazioni che interagiscono con sistemi industriali e le metodologie e le API specifiche dei principali provider cloud per dispiegare in cloud queste applicazioni e farle operare in sicurezza. E' in grado di costruire piccole o medie applicazioni dispiegate in cloud che interagiscono con sistemi industriali e che utilizzano, analizzano e processano i dati raccolti dai sensori industriali.
TIROCINIO IN AZIENDA (I°ciclo) (21 CFU)
TIROCINIO IN AZIENDA (II°ciclo) (27 CFU)
PROVA FINALE (3 CFU)