Questa funzione ti consente di visualizzare il tuo percorso formativo, se la tua immatricolazione è avvenuta in anni precedenti

Curricula per l'anno 2024 - Informatica (29923)

Gruppi opzionali

Lo studente deve acquisire 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1022264 | LINGUAGGI DI PROGRAMMAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso illustra i fondamenti dei linguaggi di programmazione. Particolare attenzione viene dedicata alla semantica statica e dinamica dei linguaggi (teoria dei tipi, semantica operazionale ed assiomatica) ed agli strumenti formali per la specifica e la verifica del software.

Obiettivi specifici:
Approfondimento sulle algebre induttive come fondamento di sintassi astratta, strutture dati e semplici logiche (equazionali) di programmi. Cenni sulla co-induzione come fondamento di analisi di processi concorrenti e strutture lazy. Confronto fra linguaggi lazy e eager, statici e dinamici, nel contesto di diversi paradigmi di programmazione: imperativo, funzionale, ad oggetti. Teoria dei tipi, con particolare attenzione al polimorfismo parametrico (alla ML) e di sottoclasse (alla Java).

Conoscenze e comprensione:
Alla fine del corso lo studente avrà acquisito conoscenze fondazionali relative ai linguaggi di programmazione e ai principali paradigmi di programmazione, e sarà in grado di inquadrare in una mappa concettuale coerente alcuni fra le principali aree di studio dell’informatica teorica, comprendendone le interconnessioni.

Applicazione di conoscenza e comprensione:
Alla fine del corso lo studente sarà in grado di orientarsi fra i diversi paradigmi della programmazione, con particolare attenzione alla programmazione funzionale. Avrà acquisito una conoscenza di base del linguaggio funzionale SML e della sua teoria dei tipi, nonchè dell’uso dei metodi formali.

Capacità di giudizio:
Gli studenti acquisiranno strumenti culturali per sviluppare software di qualità e per comprendere ed inquadrare le tendenze emergenti dei linguaggi moderni.

Capacità di comunicazione:
Gli studenti impareranno ad usare il linguaggio della matematica e della logica per descrivere, sviluppare ed analizzare il software, e ad integrare l’approccio formale con un’esposizione intuitiva delle idee.

Capacità di apprendimento:
L’uso di strumenti matematici nella teoria e nella pratica della programmazione sviluppa capacità logiche e consapevolezza della complessità della materia di studio.

10593235 | PROGRAMMAZIONE DI SISTEMI EMBEDDED E MULTICORE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso è finalizzato all'acquisizione della conoscenza di tecniche algoritmiche e di programmazione adatte alle moderne piattaforme di calcolo multicore ed embedded.

Obiettivi specifici:

Conoscenza e comprensione:
Al termine del corso gli studenti avranno una profonda comprensione dei principali problemi di programmazione posti dai sistemi embedded e multi-core, nonché delle tecniche di programmazione utili per scrivere codice efficiente e scalabile. Avranno una comprensione della programmazione a basso livello e della progettazione HW.

Capacità di applicare conoscenza e comprensione:
gli studenti saranno in grado di progettare, programmare e realizzare sistemi embedded ed avranno una comprensione dei sistemi operativi adottati in tali tipi di sistemi.

Capacità critiche e di giudizio:
gli studenti saranno in grado di affrontare le sfide che si presentano nella progettazione di sistemi embedded e multicore e nell'implementazione di programmi efficienti e scalabili per tali sistemi, anche tenendo conto delle caratteristiche architetturali delle diverse piattaforme di calcolo.

Capacità di comunicare quanto si è appreso:
gli studenti saranno in grado di comunicare in modo efficace, riassumendo le idee principali nella progettazione di software embedded e multicore in modo chiaro e presentando informazioni tecniche accurate.

Capacità di studio autonomo:
obiettivo del corso è di introdurre i principi di base nella progettazione di software embedded e multicore. Gli studenti saranno quindi in grado di estendere la loro conoscenza in modo indipendente, adattandola all’evoluzione delle tecnologie e delle piattaforme di calcolo.

97597 | FISICA6ITA

Obiettivi formativi

Conoscenze acquisite
L'obiettivo principale del corso è di insegnare il metodo scientifico. Per ogni argomento trattato, sono presentate le osservazioni sperimentali (o numeriche) del fenomeno che si vuole capire. Viene quindi illustrato il processo di riduzionismo, con le relative approssimazioni, che porta ad un modello sufficientemente semplice da poter essere trattato matematicamente. Infine sono introdotte le leggi fisiche che permettono la spiegazione del fenomeno osservato, mettendo in luce l'ambito di validità di tale leggi e i loro limiti.

Competenze acquisite
Alla fine di questo corso lo studente dovrebbe aver appreso il metodo scientifico e dovrebbe essere in grado di applicarlo a qualsiasi problema di tipo scientifico che si trovi ad affrontare. In pratica dovrebbe aver sviluppato quella capacità di "problem solving" che è molto richiesta in qualsiasi disciplina tecnico-scientifica. Inoltre dovrebbe aver acquisito un bagaglio di leggi fisiche di base, che gli permettano di capire molti dei fenomeni naturali e dei dispositivi tecnologici che lo circondano.

10606972 | DATA SCIENCE E DIRITTO6ITA
1022262 | INTELLIGENZA ARTIFICIALE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso si propone di esporre gli studenti ad un'ampia panoramica dell'Intelligenza Artificiale (IA).

Obiettivi specifici:
Il corso si propone di mettere gli studenti in grado di comprendere la teoria di un'ampia gamma di tecniche di IA, e di padroneggiarle nella pratica della progettazione di sistemi software intelligenti.

Conoscenza e comprensione:
Introduzione ad ampio spettro dei principi fondamentali e delle diverse branche dell'Intelligenza Artificiale (IA) e conoscenze su risoluzione di problemi mediante ricerca, inferenza logica, pianificazione, ragionamento, apprendimento.

Applicare conoscenza e comprensione:
Saper applicare il portafoglio di tecniche e gli approcci illustrati per la progettazione e realizzazione di sistemi software intelligenti.

Capacità critiche e di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche di IA migliori da impiegare nella progettazione di sistemi software intelligenti.

Capacità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con altri ricercatori in IA su un'ampia gamma di argomenti.

Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica sull'IA.

1022265 | MODELLI E OTTIMIZZAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso introduce lo studente alla modellazione matematica di problemi di ottimizzazione, allo studio della programmazione lineare e intera e alle loro applicazioni in contesti reali.

Obiettivi specifici:
Apprendere:
1. Le principali tecniche di modellazione di problemi usando strumenti logico/matematici;
2. Le proprietà teoriche e sulle applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
3. sulla programmazione lineare e sue applicazioni;
4. sull’uso di software di modellazione ed ottimizzazione.

Conoscenza e comprensione:
Sviluppare
1. Capacità di sintesi, di ragionamento logico e di problem solving, mediante tecniche quantitative;
2. capacità di formulare e risolvere (anche in maniera approssimata) problemi computazionalmente difficili;
3. capacità di usare bibliografia e software in inglese;
4. capacità di identificare problemi di programmazione matematica e ottimizzazione;
5. capacità di realizzare un modello di un problema matematico, determinando se è lineare, intero, non lineare, di trovare soluzioni per il modello usando gli algoritmi appropriati, di interpretare la soluzione;

Applicazione di conoscenza e comprensione:
1. Applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
2. uso di software di modellazione ed ottimizzazione.

Autonomia di giudizio:
Viene rafforzata la autonomia di giudizio dello studente attraverso l'approfondimento della capacità di sintesi, di ragionamento logico-matematico e di problem solving, mediante tecniche quantitative;

Abilità comunicative:
Il corso sviluppa le abilità comunicative degli studenti attraverso lavoro in equipe degli studenti finalizzato a simulare la risoluzione di problemi di ottimizzazione che si possono presentare nel contesto reale di un azienda di logistica.

Capacità di apprendimento
Le capacità acquisite nel corso sono di utilità in insegnamenti di livello superiore su temi avanzati nella teoria della complessita, di algoritmi di rete e di teoria dei grafi.

1022268 | SICUREZZA6ITA

Obiettivi formativi

Obiettivi generali:
Il corso di Sicurezza ha l’obiettivo di formare figure professionali capaci di affrontare con successo le sfide costituite dai problemi di sicurezza della società dell’informazione.

Obiettivi specifici:
Il corso prevede lo studio di vari modelli di controllo degli accessi, dell’analisi delle principali difficoltà e risoluzioni di problemi di crittografia e dei principali protocolli di sicurezza utilizzati in rete

Conoscenza e comprensione:
Al superamento dell’esame, lo studente avrà conoscenza e capacità di comprensione delle basi della sicurezza informatica e delle principali tecnologie per l'analisi e la soluzione di problemi di sicurezza.

Applicare conoscenza e comprensione:
Il corso mette in grado lo studente di applicare la propria conoscenza e capacità di comprensione per risolvere problemi di sicurezza informatica, con sufficiente autonomia per affrontare problemi complessi; e per la consultazione efficace di documentazione avanzata di tipo scientifico e tecnologico.

Autonomia di giudizio:
Il corso mira ad acquisire capacità d’interpretazione autonoma per proporre soluzioni a problemi di sicurezza congruenti con le tecnologie disponibili, e di aggiornamento continuo dell'evoluzione tecnologica, per formulare giudizi critici autonomi contribuendo all'avanzamento della sicurezza del sistema.

Abilità comunicative:
Lo studente acquisisce la capacità di presentare e di argomentare le proprie idee in merito ai problemi di sicurezza affrontati ed alle soluzioni proposte, sia con colleghi che con utenti

Capacità di apprendimento successivo:
Il corso prevede lo sviluppo di capacità di approfondimento nell’ambito della sicurezza informatica sia degli aspetti metodologici sia di quelli tecnologici, per adeguarsi al progredire delle tecniche e delle soluzioni ai problemi di sicurezza più comuni, e per proseguire anche in autonomia alla soluzione di nuovi problemi di sicurezza.

10589652 | TECNICHE DI PROGRAMMAZIONE FUNZIONALE E IMPERATIVA6ITA

Obiettivi formativi

Obiettivi generali:
Apprendimento del paradigma di programmazione funzionale e di aspetti avanzati di programmazione imperativa.
Studio comparato di diversi paradigmi di programmazione (imperativo, funzionale e a oggetti) per sviluppare un senso critico nell'apprendimento e valutazione dei linguaggi di programmazione.

Obiettivi specifici:

Conoscenza e Comprensione:
Aspetti avanzati di programmazione C (in particolare uso di puntatori espliciti e (de)allocazione dinamica di memoria, valutazione della complessità  concreta dei programmi). Aspetti base ed avanzati di programmazione funzionale in Haskell (in particolare tipi polimorfi, funzionali di ordine superiore, laziness).

Applicare Conoscenza e Comprensione:
Applicare la metodologie specifiche di diversi paradigmi di programmazione alla soluzione dei problemi.

Capacità  Critiche e di Giudizio:
Lo studio comparato dei paradigmi di programmazione permette di valutare ad esempio quale sia il linguaggio più adatto per risolvere un certo problema o sviluppare un progetto software.
Le tecniche di ragionamento sui programmi possono guidare sia il testing che lo sviluppo dei programmi.
Inoltre, lo studente dovrebbe acquisire strumenti necessari per valutare criticamente altri linguaggi di programmazione.

Capacità  Comunicative
Lo studente è stimolato, soprattutto nella presentazione da fare a fine corso, a esporre concisamente ma in modo preciso le idee necessarie allo sviluppo di una brillante soluzione a un problema computazionale ed anche l'analisi di un programma.

Capacità  di Apprendimento:
Lo studio comparato di diversi paradigmi di programmazione stimola la capacità di apprendimento di altri linguaggi di programmazione, dando allo studente gli strumenti per distinguere gli aspetti caratterizzanti di un linguaggio di programmazione (logica del core language, come ad esempio passaggio di parametri, sistema dei tipi, semantica dei comandi) da quelli più strettamente tecnici (come imparare a usare librerie e strumenti di sviluppo, come IDE e debugger).

1021828 | MATEMATICA DISCRETA6ITA

Obiettivi formativi

Obiettivi general
L’insegnamento si propone di fornire allo studente un’introduzione alla matematica discreta, che costituisce uno dei settori più innovativi della matematica. Sviluppato a partire dalla seconda metà del novecento, è ricco di problemi stimolanti e di grande utilità nelle applicazioni.

Obiettivi specifici
Durante il corso, lo studente verrà a contatto con una serie di argomenti e problemi, di tipo completamente diverso da quelli incontrati in altri corsi di matematica tradizionali, e svilupperà, attraverso un impegno sistematico rivolto al “problem solving”, un approccio concreto allo studio di problemi di grande valenza formativa, soprattutto per la futura attività professionale.

Conoscenza e comprensione:
Al termine del corso lo studente
• conoscerà i metodi, i problemi, e le possibili applicazioni della matematica discreta.
• sarà in grado di capire, affrontare e risolvere semplici problemi di matematica discreta.
• attraverso esercitazioni scritte e eventuali presentazioni orali svilupperà adeguate capacità critiche
• allo stesso modo eserciterà la sua capacità di esporre e trasmettere ciò che ha appreso
• lo studio individuale allenerà adeguatamente la sua capacità di studio autonomo e indipendente

Lo studente deve acquisire 12 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1022264 | LINGUAGGI DI PROGRAMMAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso illustra i fondamenti dei linguaggi di programmazione. Particolare attenzione viene dedicata alla semantica statica e dinamica dei linguaggi (teoria dei tipi, semantica operazionale ed assiomatica) ed agli strumenti formali per la specifica e la verifica del software.

Obiettivi specifici:
Approfondimento sulle algebre induttive come fondamento di sintassi astratta, strutture dati e semplici logiche (equazionali) di programmi. Cenni sulla co-induzione come fondamento di analisi di processi concorrenti e strutture lazy. Confronto fra linguaggi lazy e eager, statici e dinamici, nel contesto di diversi paradigmi di programmazione: imperativo, funzionale, ad oggetti. Teoria dei tipi, con particolare attenzione al polimorfismo parametrico (alla ML) e di sottoclasse (alla Java).

Conoscenze e comprensione:
Alla fine del corso lo studente avrà acquisito conoscenze fondazionali relative ai linguaggi di programmazione e ai principali paradigmi di programmazione, e sarà in grado di inquadrare in una mappa concettuale coerente alcuni fra le principali aree di studio dell’informatica teorica, comprendendone le interconnessioni.

Applicazione di conoscenza e comprensione:
Alla fine del corso lo studente sarà in grado di orientarsi fra i diversi paradigmi della programmazione, con particolare attenzione alla programmazione funzionale. Avrà acquisito una conoscenza di base del linguaggio funzionale SML e della sua teoria dei tipi, nonchè dell’uso dei metodi formali.

Capacità di giudizio:
Gli studenti acquisiranno strumenti culturali per sviluppare software di qualità e per comprendere ed inquadrare le tendenze emergenti dei linguaggi moderni.

Capacità di comunicazione:
Gli studenti impareranno ad usare il linguaggio della matematica e della logica per descrivere, sviluppare ed analizzare il software, e ad integrare l’approccio formale con un’esposizione intuitiva delle idee.

Capacità di apprendimento:
L’uso di strumenti matematici nella teoria e nella pratica della programmazione sviluppa capacità logiche e consapevolezza della complessità della materia di studio.

10593235 | PROGRAMMAZIONE DI SISTEMI EMBEDDED E MULTICORE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso è finalizzato all'acquisizione della conoscenza di tecniche algoritmiche e di programmazione adatte alle moderne piattaforme di calcolo multicore ed embedded.

Obiettivi specifici:

Conoscenza e comprensione:
Al termine del corso gli studenti avranno una profonda comprensione dei principali problemi di programmazione posti dai sistemi embedded e multi-core, nonché delle tecniche di programmazione utili per scrivere codice efficiente e scalabile. Avranno una comprensione della programmazione a basso livello e della progettazione HW.

Capacità di applicare conoscenza e comprensione:
gli studenti saranno in grado di progettare, programmare e realizzare sistemi embedded ed avranno una comprensione dei sistemi operativi adottati in tali tipi di sistemi.

Capacità critiche e di giudizio:
gli studenti saranno in grado di affrontare le sfide che si presentano nella progettazione di sistemi embedded e multicore e nell'implementazione di programmi efficienti e scalabili per tali sistemi, anche tenendo conto delle caratteristiche architetturali delle diverse piattaforme di calcolo.

Capacità di comunicare quanto si è appreso:
gli studenti saranno in grado di comunicare in modo efficace, riassumendo le idee principali nella progettazione di software embedded e multicore in modo chiaro e presentando informazioni tecniche accurate.

Capacità di studio autonomo:
obiettivo del corso è di introdurre i principi di base nella progettazione di software embedded e multicore. Gli studenti saranno quindi in grado di estendere la loro conoscenza in modo indipendente, adattandola all’evoluzione delle tecnologie e delle piattaforme di calcolo.

1022262 | INTELLIGENZA ARTIFICIALE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso si propone di esporre gli studenti ad un'ampia panoramica dell'Intelligenza Artificiale (IA).

Obiettivi specifici:
Il corso si propone di mettere gli studenti in grado di comprendere la teoria di un'ampia gamma di tecniche di IA, e di padroneggiarle nella pratica della progettazione di sistemi software intelligenti.

Conoscenza e comprensione:
Introduzione ad ampio spettro dei principi fondamentali e delle diverse branche dell'Intelligenza Artificiale (IA) e conoscenze su risoluzione di problemi mediante ricerca, inferenza logica, pianificazione, ragionamento, apprendimento.

Applicare conoscenza e comprensione:
Saper applicare il portafoglio di tecniche e gli approcci illustrati per la progettazione e realizzazione di sistemi software intelligenti.

Capacità critiche e di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche di IA migliori da impiegare nella progettazione di sistemi software intelligenti.

Capacità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con altri ricercatori in IA su un'ampia gamma di argomenti.

Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica sull'IA.

1022265 | MODELLI E OTTIMIZZAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso introduce lo studente alla modellazione matematica di problemi di ottimizzazione, allo studio della programmazione lineare e intera e alle loro applicazioni in contesti reali.

Obiettivi specifici:
Apprendere:
1. Le principali tecniche di modellazione di problemi usando strumenti logico/matematici;
2. Le proprietà teoriche e sulle applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
3. sulla programmazione lineare e sue applicazioni;
4. sull’uso di software di modellazione ed ottimizzazione.

Conoscenza e comprensione:
Sviluppare
1. Capacità di sintesi, di ragionamento logico e di problem solving, mediante tecniche quantitative;
2. capacità di formulare e risolvere (anche in maniera approssimata) problemi computazionalmente difficili;
3. capacità di usare bibliografia e software in inglese;
4. capacità di identificare problemi di programmazione matematica e ottimizzazione;
5. capacità di realizzare un modello di un problema matematico, determinando se è lineare, intero, non lineare, di trovare soluzioni per il modello usando gli algoritmi appropriati, di interpretare la soluzione;

Applicazione di conoscenza e comprensione:
1. Applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
2. uso di software di modellazione ed ottimizzazione.

Autonomia di giudizio:
Viene rafforzata la autonomia di giudizio dello studente attraverso l'approfondimento della capacità di sintesi, di ragionamento logico-matematico e di problem solving, mediante tecniche quantitative;

Abilità comunicative:
Il corso sviluppa le abilità comunicative degli studenti attraverso lavoro in equipe degli studenti finalizzato a simulare la risoluzione di problemi di ottimizzazione che si possono presentare nel contesto reale di un azienda di logistica.

Capacità di apprendimento
Le capacità acquisite nel corso sono di utilità in insegnamenti di livello superiore su temi avanzati nella teoria della complessita, di algoritmi di rete e di teoria dei grafi.

1022268 | SICUREZZA6ITA

Obiettivi formativi

Obiettivi generali:
Il corso di Sicurezza ha l’obiettivo di formare figure professionali capaci di affrontare con successo le sfide costituite dai problemi di sicurezza della società dell’informazione.

Obiettivi specifici:
Il corso prevede lo studio di vari modelli di controllo degli accessi, dell’analisi delle principali difficoltà e risoluzioni di problemi di crittografia e dei principali protocolli di sicurezza utilizzati in rete

Conoscenza e comprensione:
Al superamento dell’esame, lo studente avrà conoscenza e capacità di comprensione delle basi della sicurezza informatica e delle principali tecnologie per l'analisi e la soluzione di problemi di sicurezza.

Applicare conoscenza e comprensione:
Il corso mette in grado lo studente di applicare la propria conoscenza e capacità di comprensione per risolvere problemi di sicurezza informatica, con sufficiente autonomia per affrontare problemi complessi; e per la consultazione efficace di documentazione avanzata di tipo scientifico e tecnologico.

Autonomia di giudizio:
Il corso mira ad acquisire capacità d’interpretazione autonoma per proporre soluzioni a problemi di sicurezza congruenti con le tecnologie disponibili, e di aggiornamento continuo dell'evoluzione tecnologica, per formulare giudizi critici autonomi contribuendo all'avanzamento della sicurezza del sistema.

Abilità comunicative:
Lo studente acquisisce la capacità di presentare e di argomentare le proprie idee in merito ai problemi di sicurezza affrontati ed alle soluzioni proposte, sia con colleghi che con utenti

Capacità di apprendimento successivo:
Il corso prevede lo sviluppo di capacità di approfondimento nell’ambito della sicurezza informatica sia degli aspetti metodologici sia di quelli tecnologici, per adeguarsi al progredire delle tecniche e delle soluzioni ai problemi di sicurezza più comuni, e per proseguire anche in autonomia alla soluzione di nuovi problemi di sicurezza.

10589652 | TECNICHE DI PROGRAMMAZIONE FUNZIONALE E IMPERATIVA6ITA

Obiettivi formativi

Obiettivi generali:
Apprendimento del paradigma di programmazione funzionale e di aspetti avanzati di programmazione imperativa.
Studio comparato di diversi paradigmi di programmazione (imperativo, funzionale e a oggetti) per sviluppare un senso critico nell'apprendimento e valutazione dei linguaggi di programmazione.

Obiettivi specifici:

Conoscenza e Comprensione:
Aspetti avanzati di programmazione C (in particolare uso di puntatori espliciti e (de)allocazione dinamica di memoria, valutazione della complessità  concreta dei programmi). Aspetti base ed avanzati di programmazione funzionale in Haskell (in particolare tipi polimorfi, funzionali di ordine superiore, laziness).

Applicare Conoscenza e Comprensione:
Applicare la metodologie specifiche di diversi paradigmi di programmazione alla soluzione dei problemi.

Capacità  Critiche e di Giudizio:
Lo studio comparato dei paradigmi di programmazione permette di valutare ad esempio quale sia il linguaggio più adatto per risolvere un certo problema o sviluppare un progetto software.
Le tecniche di ragionamento sui programmi possono guidare sia il testing che lo sviluppo dei programmi.
Inoltre, lo studente dovrebbe acquisire strumenti necessari per valutare criticamente altri linguaggi di programmazione.

Capacità  Comunicative
Lo studente è stimolato, soprattutto nella presentazione da fare a fine corso, a esporre concisamente ma in modo preciso le idee necessarie allo sviluppo di una brillante soluzione a un problema computazionale ed anche l'analisi di un programma.

Capacità  di Apprendimento:
Lo studio comparato di diversi paradigmi di programmazione stimola la capacità di apprendimento di altri linguaggi di programmazione, dando allo studente gli strumenti per distinguere gli aspetti caratterizzanti di un linguaggio di programmazione (logica del core language, come ad esempio passaggio di parametri, sistema dei tipi, semantica dei comandi) da quelli più strettamente tecnici (come imparare a usare librerie e strumenti di sviluppo, come IDE e debugger).

1047635 | MACHINE LEARNING6ITA
Lo studente deve acquisire 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1022264 | LINGUAGGI DI PROGRAMMAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso illustra i fondamenti dei linguaggi di programmazione. Particolare attenzione viene dedicata alla semantica statica e dinamica dei linguaggi (teoria dei tipi, semantica operazionale ed assiomatica) ed agli strumenti formali per la specifica e la verifica del software.

Obiettivi specifici:
Approfondimento sulle algebre induttive come fondamento di sintassi astratta, strutture dati e semplici logiche (equazionali) di programmi. Cenni sulla co-induzione come fondamento di analisi di processi concorrenti e strutture lazy. Confronto fra linguaggi lazy e eager, statici e dinamici, nel contesto di diversi paradigmi di programmazione: imperativo, funzionale, ad oggetti. Teoria dei tipi, con particolare attenzione al polimorfismo parametrico (alla ML) e di sottoclasse (alla Java).

Conoscenze e comprensione:
Alla fine del corso lo studente avrà acquisito conoscenze fondazionali relative ai linguaggi di programmazione e ai principali paradigmi di programmazione, e sarà in grado di inquadrare in una mappa concettuale coerente alcuni fra le principali aree di studio dell’informatica teorica, comprendendone le interconnessioni.

Applicazione di conoscenza e comprensione:
Alla fine del corso lo studente sarà in grado di orientarsi fra i diversi paradigmi della programmazione, con particolare attenzione alla programmazione funzionale. Avrà acquisito una conoscenza di base del linguaggio funzionale SML e della sua teoria dei tipi, nonchè dell’uso dei metodi formali.

Capacità di giudizio:
Gli studenti acquisiranno strumenti culturali per sviluppare software di qualità e per comprendere ed inquadrare le tendenze emergenti dei linguaggi moderni.

Capacità di comunicazione:
Gli studenti impareranno ad usare il linguaggio della matematica e della logica per descrivere, sviluppare ed analizzare il software, e ad integrare l’approccio formale con un’esposizione intuitiva delle idee.

Capacità di apprendimento:
L’uso di strumenti matematici nella teoria e nella pratica della programmazione sviluppa capacità logiche e consapevolezza della complessità della materia di studio.

10593235 | PROGRAMMAZIONE DI SISTEMI EMBEDDED E MULTICORE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso è finalizzato all'acquisizione della conoscenza di tecniche algoritmiche e di programmazione adatte alle moderne piattaforme di calcolo multicore ed embedded.

Obiettivi specifici:

Conoscenza e comprensione:
Al termine del corso gli studenti avranno una profonda comprensione dei principali problemi di programmazione posti dai sistemi embedded e multi-core, nonché delle tecniche di programmazione utili per scrivere codice efficiente e scalabile. Avranno una comprensione della programmazione a basso livello e della progettazione HW.

Capacità di applicare conoscenza e comprensione:
gli studenti saranno in grado di progettare, programmare e realizzare sistemi embedded ed avranno una comprensione dei sistemi operativi adottati in tali tipi di sistemi.

Capacità critiche e di giudizio:
gli studenti saranno in grado di affrontare le sfide che si presentano nella progettazione di sistemi embedded e multicore e nell'implementazione di programmi efficienti e scalabili per tali sistemi, anche tenendo conto delle caratteristiche architetturali delle diverse piattaforme di calcolo.

Capacità di comunicare quanto si è appreso:
gli studenti saranno in grado di comunicare in modo efficace, riassumendo le idee principali nella progettazione di software embedded e multicore in modo chiaro e presentando informazioni tecniche accurate.

Capacità di studio autonomo:
obiettivo del corso è di introdurre i principi di base nella progettazione di software embedded e multicore. Gli studenti saranno quindi in grado di estendere la loro conoscenza in modo indipendente, adattandola all’evoluzione delle tecnologie e delle piattaforme di calcolo.

1022262 | INTELLIGENZA ARTIFICIALE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso si propone di esporre gli studenti ad un'ampia panoramica dell'Intelligenza Artificiale (IA).

Obiettivi specifici:
Il corso si propone di mettere gli studenti in grado di comprendere la teoria di un'ampia gamma di tecniche di IA, e di padroneggiarle nella pratica della progettazione di sistemi software intelligenti.

Conoscenza e comprensione:
Introduzione ad ampio spettro dei principi fondamentali e delle diverse branche dell'Intelligenza Artificiale (IA) e conoscenze su risoluzione di problemi mediante ricerca, inferenza logica, pianificazione, ragionamento, apprendimento.

Applicare conoscenza e comprensione:
Saper applicare il portafoglio di tecniche e gli approcci illustrati per la progettazione e realizzazione di sistemi software intelligenti.

Capacità critiche e di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche di IA migliori da impiegare nella progettazione di sistemi software intelligenti.

Capacità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con altri ricercatori in IA su un'ampia gamma di argomenti.

Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica sull'IA.

1022265 | MODELLI E OTTIMIZZAZIONE6ITA

Obiettivi formativi

Obiettivi generali:
Il corso introduce lo studente alla modellazione matematica di problemi di ottimizzazione, allo studio della programmazione lineare e intera e alle loro applicazioni in contesti reali.

Obiettivi specifici:
Apprendere:
1. Le principali tecniche di modellazione di problemi usando strumenti logico/matematici;
2. Le proprietà teoriche e sulle applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
3. sulla programmazione lineare e sue applicazioni;
4. sull’uso di software di modellazione ed ottimizzazione.

Conoscenza e comprensione:
Sviluppare
1. Capacità di sintesi, di ragionamento logico e di problem solving, mediante tecniche quantitative;
2. capacità di formulare e risolvere (anche in maniera approssimata) problemi computazionalmente difficili;
3. capacità di usare bibliografia e software in inglese;
4. capacità di identificare problemi di programmazione matematica e ottimizzazione;
5. capacità di realizzare un modello di un problema matematico, determinando se è lineare, intero, non lineare, di trovare soluzioni per il modello usando gli algoritmi appropriati, di interpretare la soluzione;

Applicazione di conoscenza e comprensione:
1. Applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti);
2. uso di software di modellazione ed ottimizzazione.

Autonomia di giudizio:
Viene rafforzata la autonomia di giudizio dello studente attraverso l'approfondimento della capacità di sintesi, di ragionamento logico-matematico e di problem solving, mediante tecniche quantitative;

Abilità comunicative:
Il corso sviluppa le abilità comunicative degli studenti attraverso lavoro in equipe degli studenti finalizzato a simulare la risoluzione di problemi di ottimizzazione che si possono presentare nel contesto reale di un azienda di logistica.

Capacità di apprendimento
Le capacità acquisite nel corso sono di utilità in insegnamenti di livello superiore su temi avanzati nella teoria della complessita, di algoritmi di rete e di teoria dei grafi.

1022268 | SICUREZZA6ITA

Obiettivi formativi

Obiettivi generali:
Il corso di Sicurezza ha l’obiettivo di formare figure professionali capaci di affrontare con successo le sfide costituite dai problemi di sicurezza della società dell’informazione.

Obiettivi specifici:
Il corso prevede lo studio di vari modelli di controllo degli accessi, dell’analisi delle principali difficoltà e risoluzioni di problemi di crittografia e dei principali protocolli di sicurezza utilizzati in rete

Conoscenza e comprensione:
Al superamento dell’esame, lo studente avrà conoscenza e capacità di comprensione delle basi della sicurezza informatica e delle principali tecnologie per l'analisi e la soluzione di problemi di sicurezza.

Applicare conoscenza e comprensione:
Il corso mette in grado lo studente di applicare la propria conoscenza e capacità di comprensione per risolvere problemi di sicurezza informatica, con sufficiente autonomia per affrontare problemi complessi; e per la consultazione efficace di documentazione avanzata di tipo scientifico e tecnologico.

Autonomia di giudizio:
Il corso mira ad acquisire capacità d’interpretazione autonoma per proporre soluzioni a problemi di sicurezza congruenti con le tecnologie disponibili, e di aggiornamento continuo dell'evoluzione tecnologica, per formulare giudizi critici autonomi contribuendo all'avanzamento della sicurezza del sistema.

Abilità comunicative:
Lo studente acquisisce la capacità di presentare e di argomentare le proprie idee in merito ai problemi di sicurezza affrontati ed alle soluzioni proposte, sia con colleghi che con utenti

Capacità di apprendimento successivo:
Il corso prevede lo sviluppo di capacità di approfondimento nell’ambito della sicurezza informatica sia degli aspetti metodologici sia di quelli tecnologici, per adeguarsi al progredire delle tecniche e delle soluzioni ai problemi di sicurezza più comuni, e per proseguire anche in autonomia alla soluzione di nuovi problemi di sicurezza.

10589652 | TECNICHE DI PROGRAMMAZIONE FUNZIONALE E IMPERATIVA6ITA

Obiettivi formativi

Obiettivi generali:
Apprendimento del paradigma di programmazione funzionale e di aspetti avanzati di programmazione imperativa.
Studio comparato di diversi paradigmi di programmazione (imperativo, funzionale e a oggetti) per sviluppare un senso critico nell'apprendimento e valutazione dei linguaggi di programmazione.

Obiettivi specifici:

Conoscenza e Comprensione:
Aspetti avanzati di programmazione C (in particolare uso di puntatori espliciti e (de)allocazione dinamica di memoria, valutazione della complessità  concreta dei programmi). Aspetti base ed avanzati di programmazione funzionale in Haskell (in particolare tipi polimorfi, funzionali di ordine superiore, laziness).

Applicare Conoscenza e Comprensione:
Applicare la metodologie specifiche di diversi paradigmi di programmazione alla soluzione dei problemi.

Capacità  Critiche e di Giudizio:
Lo studio comparato dei paradigmi di programmazione permette di valutare ad esempio quale sia il linguaggio più adatto per risolvere un certo problema o sviluppare un progetto software.
Le tecniche di ragionamento sui programmi possono guidare sia il testing che lo sviluppo dei programmi.
Inoltre, lo studente dovrebbe acquisire strumenti necessari per valutare criticamente altri linguaggi di programmazione.

Capacità  Comunicative
Lo studente è stimolato, soprattutto nella presentazione da fare a fine corso, a esporre concisamente ma in modo preciso le idee necessarie allo sviluppo di una brillante soluzione a un problema computazionale ed anche l'analisi di un programma.

Capacità  di Apprendimento:
Lo studio comparato di diversi paradigmi di programmazione stimola la capacità di apprendimento di altri linguaggi di programmazione, dando allo studente gli strumenti per distinguere gli aspetti caratterizzanti di un linguaggio di programmazione (logica del core language, come ad esempio passaggio di parametri, sistema dei tipi, semantica dei comandi) da quelli più strettamente tecnici (come imparare a usare librerie e strumenti di sviluppo, come IDE e debugger).

1047635 | MACHINE LEARNING6ENG
Lo studente deve acquisire 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1022263 | INTERAZIONE UOMO MACCHINA6ITA

Obiettivi formativi

Obiettivi generali:

Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto e lo sviluppo e la validazione di interfacce e sistemi interattivi usabili.
Gli studenti che superano l’esame sono in grado di progettare sistemi interattivi seguendo i criteri dell’interazione uomo-computer, analizzando il ruolo dell’utente, gli scenari e i compiti principali, e tenendo in considerazione i vincoli implementativi mediante cicli di progetto e sviluppo molto brevi.

Obiettivi specifici:

Conoscenza e comprensione:
Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto di interfacce e sistemi interattivi usabili.​ Conoscono inoltre i principi di progettazione agile centrata sull'utente.​

Applicare conoscenza e comprensione:
​Gli studenti applicano le conoscenze acquisite nella progettazione di un'interfaccia come lavoro di gruppo per l'esame.

Capacità critiche e di giudizio:
​Gli studenti, anche attraverso esercitazioni pratiche, acquisiscono competenze nella valutazione e validazione di interfacce uomo computer e ​sviluppano capacità di giudizio sull'usabilità di un'interfaccia e quindi sulle ricadute dell'uso dell'interfaccia in termini di efficacia, efficienza e soddisfazione.

Capacità comunicative:
​Gli studenti sostengono due presentazioni del loro lavoro di gruppo in occasione delle due revisioni previste con il docente. La prima revisione è svolta in aula e la presentazione è pertanto rivolta a tutti i colleghi al fine di esercitare le capacità comunicative.​

Capacità di apprendimento:
​La capacità di apprendimento​ è stimolata attraverso 1) attività di progettazione guidata e autonoma con supervisione; 2) l'esposizione a problemi realistici di progettazione stimolando la ricerca autonoma di soluzioni non standard; 3) la presentazione di casi reali e stimolandone la discussione critica.

10596283 | ORGANIZZAZIONE E GESTIONE PER LO START-UP AZIENDALE6ITA

Obiettivi formativi

Obiettivi generali:

L’insegnamento di Organizzazione e Gestione per lo Start-Up Aziendale intende fornire agli studenti le conoscenze e i “fondamentali” per l’analisi e la comprensione delle principali problematiche organizzative che caratterizzano l’avvio e la gestione delle imprese nell’era digitale ed un ampio ventaglio di strumenti utili per la loro risoluzione.

In particolare, una volta affrontati i concetti di base relativi all’impresa e alle dinamiche aziendali, l’insegnamento approfondisce le principali tematiche relative allo start-up, quali la progettazione organizzativa, la pianificazione strategica, la valutazione della business idea e della relativa fattibilità economico-finanziaria.

Tali tematiche vengono affrontate nell’arco di un percorso didattico che si dispiega seguendo cronologicamente gli step funzionali alla redazione di un business plan. Più precisamente, l’insegnamento alterna momenti di lezione frontale ad attività di laboratorio, nelle quali gli studenti, divisi in gruppi, saranno guidati didatticamente nella realizzazione di un business plan relativo ad un’idea d’impresa digitale. Tale percorso consente agli studenti di esaminare in prima persona le caratteristiche del processo di start-up, e li aiuta a comprendere le variabili (e le leve) fondamentali dell’organizzazione, sulle quali la direzione aziendale può agire per il miglioramento delle performance ed il conseguimento di posizioni di vantaggio competitivo sui concorrenti.

Non sono previsti particolari prerequisiti, in termini di conoscenze pregresse di natura economico-aziendale, per la frequenza del corso ed il sostenimento delle prove d’esame.

Obiettivi specifici
Obiettivi: nella prima parte si descriveranno e si analizzeranno le caratteristiche, gli elementi di base e gli attori che la caratterizzano l’azienda, nonché le fasi del suo ciclo vitale. Si approfondiranno, inoltre, i rapporti esistenti tra l’organizzazione e la gestione dell’azienda, introducendo il concetto di “equilibrio” economico quale legge fondamentale alla base della capacità di sopravvivenza dell’azienda nel tempo.

Obiettivi: nella seconda parte inizierà il percorso didattico atto a fornire le conoscenze necessarie per procedere alla realizzazione del business plan. Si partirà dalla disamina delle opportunità di generazione di start-up nell’era digitale, evidenziandone le differenze con lo start-up di impese tradizionali. Si esamineranno i fondamenti della strategia, con il passaggio dalla business idea alla formalizzazione del modello di business, i contenuti di base della progettazione organizzativa, con particolare riguardo al rapporto tra organizzazione, ambiente e strategia, le tecniche di analisi della fattibilità di mercato e di quella economico-finanziaria, le considerazioni alla base della scelta della forma giuridica, nonché quelle per l’individuazione delle forme di finanziamento più appropriate.

Obiettivi: nella terza parte si approfondirà il ruolo e la struttura del business plan. Più precisamente, gli studenti, opportunamente divisi in gruppi, verranno didatticamente guidati attraverso il processo di redazione di un business plan. In questa parte, quindi, il business plan verrà considerato come l’obiettivo finale del corso che, oltre a rappresentare un project work valido ai fini della valutazione finale, verrà presentato nell’ambito di un vero e proprio contest alla fine del corso.

Tali obiettivi saranno perseguiti attraverso l’adozione di un appropriato mix di lezioni frontali, testimonianze provenienti dal mondo imprenditoriale e attività laboratoriali di gruppo.

Conoscenza e capacità di comprensione (knowledge and understanding).
Al termine dell’insegnamento gli studenti saranno in grado di riconoscere ed affrontare analiticamente le problematiche organizzative che caratterizzano la fase dello start-up, potendo contare su un ampio background teorico e un toolkit adeguato alla loro soluzione. Più precisamente, la comprensione dei legami tra variabili ambientali, strategiche ed organizzative consentirà loro di approcciare lo sviluppo dell’idea imprenditoriale ricercando la coerenza degli elementi strategico-organizzativi con il mercato di riferimento, nel rispetto delle condizioni di economicità dell’impresa. Inoltre, grazie all’acquisizione degli strumenti necessari alla progettazione di una start-up digitale e alla conoscenza maturata nel processo di redazione del business plan, alla fine del corso gli studenti saranno in grado di sviluppare un’idea imprenditoriale e di valutarne la fattibilità, nonché di formalizzarla all’interno di un business plan per procedere alla sua concreta realizzazione.

Tali conoscenze saranno acquisite alternando momenti di lezione frontale volti a fornire gli strumenti conoscitivi necessari alla comprensione dei vari argomenti, ad attività laboratoriali di gruppo, nelle quali gli studenti, divisi in gruppi, saranno guidati didatticamente dal docente nella realizzazione di un business plan. Saranno inoltre previste testimonianze provenienti dal mondo imprenditoriale in grado di rappresentare dei casi di studio pratici ed esemplificativi di quanto affrontato dal punto di vista teorico.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding).
Attraverso i lavori individuali e di gruppo gli studenti saranno messi in condizione non solo di comprendere l’origine, la natura e la tipologia delle varie problematiche organizzative, ma di elaborare soluzioni condivise utilizzando tecniche, modelli e strumenti di analisi trasferiti durante le lezioni frontali.

La presentazione, da parte degli studenti, dei risultati dei lavori di gruppo consentirà di sviluppare capacità di riflessione e di argomentazione, unitamente a capacità di scambio, condivisione ed esposizione dei risultati conseguiti.

Le testimonianze degli esperti di organizzazione provenienti da primarie organizzazioni imprenditoriali e la discussione dei relativi temi con gli studenti, infine, permetterà di corroborare – anche con un riscontro pratico – la capacità di applicazione delle tecniche e i risultati conseguiti dagli studenti stessi, e di apprendere dagli eventuali errori commessi.

Autonomia di giudizio (making judgements).
L’insegnamento di Organizzazione Aziendale, attraverso modalità miste di erogazione dei contenuti (lezioni frontali, lavori di gruppo, testimonianze aziendali), pur dedicando un adeguato spazio ai principali modelli teorici consolidati nella letteratura di riferimento, intende stimolare gli studenti a realizzare una propria visione dei fenomeni organizzativi durante tutto il percorso didattico, incentivando l’autonomia di giudizio e la soluzione creativa, pur orientata e guidata dal docente, delle conseguenti problematiche.

In particolare, il processo di redazione del business plan alla base dei lavori di gruppo è stato ideato proprio per incrementare capacità critiche, di riflessione e di elaborazione autonoma di giudizi, compresa quella volta ad evitare i pregiudizi che caratterizzano in quest’area le fasi dei processi decisionali orientati al problem-solving, anche in ordine alle ricadute etiche e sociali che contraddistinguono le scelte organizzative.

Abilità comunicative (communication skills).
Lo svolgimento delle attività laboratoriali di gruppo e la presentazione dei risultati raggiunti rappresenta un importante strumento, adottato nell’insegnamento di Organizzazione Aziendale, per lo sviluppo di capacità comunicative. In particolare, da un lato, le discussioni durante le attività di gruppo sono appositamente costruite per consentire agli studenti di imparare ad interagire e a comunicare, simulando attività di condivisione delle conoscenze e di costruzione del consenso tipiche di contesti lavorativi reali; dall’altro lato, la presentazione del business plan nell’ambito del contest finale è stata ideata proprio per permettere agli studenti di sperimentare in prima persona una reale presentazione della propria idea imprenditoriale di fronte a dei potenziali investitori.

Tali capacità rappresentano una componente “naturale” dell’insegnamento in oggetto, considerato che la tematica della comunicazione organizzativa costituisce argomento di specifica trattazione nell’ambito dello stesso.

Capacità di apprendimento successivo (learning skills).
Considerata l’elevata trasversalità e multidisciplinarietà dei temi trattati, i cui contenuti possono facilmente essere traslati anche in contesti organizzativi diversi dalle imprese (seppur caratterizzati da un orientamento al rispetto delle condizioni di economicità della gestione), l’insegnamento di Organizzazione Aziendale consente di acquisire una base teorica, concettuale ed applicativa utilizzabile per una molteplicità di percorsi educativi e pratici successivi a quello della laurea triennale.

Oltre, infatti, alla naturale prosecuzione verso un percorso di laurea magistrale, non solo di tipo manageriale o aziendalistico, gli studenti acquisiranno competenze ulteriormente sviluppabili, anche in autonomia, ed utilizzabili in aziende, società di consulenza e altre organizzazioni, nonché per la costituzione di start-up innovative e ad elevato contenuto tecnologico.

10606972 | DATA SCIENCE E DIRITTO6ITA
1031337 | BIOLOGIA COMPUTAZIONALE6ITA

Obiettivi formativi

Obiettivi generali:
Obiettivo generale del corso è di trasferire agli studenti le conoscenze dello stato dell’arte della biologia computazionale a seguito dell’avvento di tecnologie di sequenziamento massivo per la produzione di dati genomici e proteomici. Tali basi sono necessarie poi per permettere agli studenti di raggiungere le competenze per una corretta analisi delle problematiche proprie dell’area e la capacità di progettazione ed implementazione di un software adatto alla risoluzione del problema proposto. Pertanto il percorso formativo è finalizzato alla formazione di una figura professionale che sia in grado di intervenire nella risoluzione e gestione di progetti informatici in ambito biomolecolare.
Obiettivi specifici:
Il corso si propone di formare persone esperte nelle analisi dei dati biomedici e progettisti di sistemi software che possiedano le conoscenze di base della biologia molecolare e degli strumenti bio-informatici utilizzati per affrontare la gestione dell'enorme flusso di dati generati in questo settore. Persone con tale profilo professionale dovranno essere in grado, partendo dalla piattaforma sperimentale di produzione dei dati (saranno particolarmente dettagliate le problematiche derivanti dai dati prodotti con sequenziamento massivo), di stabilire quali siano gli algoritmi di interesse per l'analisi dei dati grezzi del progetto. Dovranno inoltre acquisire una sensibilità critica ed essere in grado di definire un protocollo di analisi dei dati tenendo conto delle risorse di calcolo disponibili e, di conseguenza, ottimizzare l'analisi. Al termine del corso, gli studenti presenteranno anche strumenti da loro sviluppati per la gestione, l'integrazione e l'interrogazione delle enormi quantità di dati prodotti dalle analisi al fine di ottenere risultati finali biologici, efficaci e fruibili. Tali strumenti seguiranno gli standard richiesti nello sviluppo software tipici della comunità bioinformatica.
Applicazione di conoscenza e comprensione:
Gli obiettivi formativi sono realizzati attraverso lezioni frontali, attività di laboratorio ed esercitazioni nelle quali sono previste simulazioni di progetti di lavoro, svolgimento in classe o discussione con partecipazione diretta degli studenti relativamente a problemi e all’analisi di casi di studio. Durante le esercitazioni gli studenti apprenderanno come progettare e sviluppare
• una pipeline di analisi bioinformatica per il processamento dei dati grezzi forniti dalle piattaforme di sequenziamento di nuova generazione (NGS)
• l'automatizzazione ed ottimizzazione della pipeline di analisi NGS • un sistema software per la gestione ed interrogazione dei dati prodotti dall’analisi
• simulazioni di docking e dinamica molecolare di macromolecole biologiche in ambiente di calcolo ad alte prestazioni (HPC).
Autonomia di giudizio:
Gli studenti del corso acquisiranno la capacità di elaborare informazioni complesse e/o frammentarie (ad esempio dovranno gestire dati di sequenze annotate solo in parte, ossia solo alcune di esse saranno associate ad un intervallo cromosomico di un organismo sequenziato, e spesso annotate in maniera non standard) e dovranno pervenire ad una modellazione dei dati pensata in maniera originale ed autonoma, scelta coerentemente con l'ambito biologico del proprio progetto sperimentale.
Abilità comunicative:
Gli studenti saranno in grado di dialogare con i ricercatori dell'area biomedica, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti durante il corso e attraverso termini propri della biologia computazionale. L'acquisizione di queste competenze sarà testata attraverso una verifica orale e diversi progetti sviluppati in laboratorio.
Capacità di apprendimento:
Gli studenti dovranno aver acquisito la capacità critica, originale ed autonoma di rapportarsi a problematiche proprie dei progetti di biologia computazionale e di applicare autonomamente le conoscenze acquisite durante il corso in vista di un'eventuale prosecuzione degli studi a livello superiore (laurea specialistica) o nella più ampia prospettiva di approfondimento culturale e professionale nel caso di un impiego nell’area biomedica/bioinformatica.

1041761 | LINGUAGGI E COMPILATORI6ITA

Obiettivi formativi

Obiettivi generali:
Lo studente imparera' come funziona un compilatore sia dal punto di vista teorico che pratico.

Obiettivi specifici:
Conoscenza e comprensione:
Allo studente saranno presentate le parti della Teoria dei Linguaggi Formali e degli Automi necessarie ad avere una base teorica sul funzionamento dei compilatori.

Applicare conoscenza e comprensione:
Lo studente imparerà come usare noti strumenti pratici per la costruzione di compilatori, come Lex a YACC.

Capacità critiche e di giudizio:
Una parte facoltativa dell'esame consisterà nel produrre un compilatore per un semplice linguaggio di programmazione ad alto livello.

Capacità comunicative:
Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti formali.

Capacità di apprendimento:
I fondamenti teorici e gli strumenti pratici introdotti nel corso forniranno allo studente una base solida per studi più avanzati in questo campo.

1022267 | PROGRAMMAZIONE PER IL WEB6ITA

Obiettivi formativi

Obiettivi generali:
Lo scopo del corso è lo studio del linguaggio java lato server, per la realizzazione di applicazioni web. Il corso fornisce inoltre un’analisi critica di diverse soluzioni implementative di molte funzionalità applicative comuni nello sviluppo di applicazioni web.

Obiettivi specifici:
Programmazione lato server mediante Java Servlet e pagine JSP.

Conoscenza e comprensione:
Il corso permetterà la comprensione del supporto fornito dal linguaggio Java alla realizzazione di applicazioni web. In particolare lo studente studierà le motivazioni alla base di tutte le scelte implementative, in particolare facendo riferimento alle architetture client-server e ai protocolli di rete in uso.

Applicare conoscenza e comprensione:
Attraverso il corso lo studente imparerà a riconoscere tra le possibili soluzioni applicative ad un problema, quale offra i maggiori vantaggi in termini di prestazioni, sicurezza, portabilità e efficienza.

Capacità critiche e di giudizio:
Il corso metterà lo studente in condizione di saper scegliere, dato un problema, la migliore metodologia risolutiva, attraverso la profonda comprensione dei requisiti e dei vincoli imposti dall'architettura.

Capacità comunicative:
Lo studente sarà in grado di motivare le proprie scelte nella proposta di uno specifico approccio realizzativo di un’applicazione Web, e fornire una analisi comparativa dell’approccio scelto con altri approcci possibili.

Capacità di apprendimento:
Lo studente svilupperà capacità di studio autonome e di comprensione e valutazione critica di nuove metodologie, tecnologie e modelli di sviluppo di applicazioni Web.

10600494 | VERIFICA E VALIDAZIONE DI SISTEMI INTELLIGENTI6ITA

Obiettivi formativi

Obiettivi generali:
Il corso si propone di fornire agli studenti gli strumenti di base per la modellazione, analisi e progettazione di sistemi intelligenti.

Obiettivi specifici:
Il corso si propone di mettere gli studenti in grado di comprendere ed usare un'ampia gamma di tecniche di modellazione, progettazione, verifica e validazione per sistemi intelligenti.

Conoscenza e comprensione:
Introduzione ad ampio spettro dei principi fondamentali della modellazione, analisi e progettazione dei sistemi intelligenti modellati come sistemi dinamici sia tempo continuo che tempo discreto.

Applicazione di conoscenza e comprensione:
Saper applicare il portafoglio di tecniche e gli approcci illustrati per la modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Autonomia di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche da impiegare nella modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Abilità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con esperti di dominio su un'ampia gamma di argomenti relativi alla modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica di rilievo.

Lo studente deve acquisire 6 CFU fra i seguenti esami
InsegnamentoAnnoSemestreCFULingua
1022263 | INTERAZIONE UOMO MACCHINA6ITA

Obiettivi formativi

Obiettivi generali:

Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto e lo sviluppo e la validazione di interfacce e sistemi interattivi usabili.
Gli studenti che superano l’esame sono in grado di progettare sistemi interattivi seguendo i criteri dell’interazione uomo-computer, analizzando il ruolo dell’utente, gli scenari e i compiti principali, e tenendo in considerazione i vincoli implementativi mediante cicli di progetto e sviluppo molto brevi.

Obiettivi specifici:

Conoscenza e comprensione:
Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto di interfacce e sistemi interattivi usabili.​ Conoscono inoltre i principi di progettazione agile centrata sull'utente.​

Applicare conoscenza e comprensione:
​Gli studenti applicano le conoscenze acquisite nella progettazione di un'interfaccia come lavoro di gruppo per l'esame.

Capacità critiche e di giudizio:
​Gli studenti, anche attraverso esercitazioni pratiche, acquisiscono competenze nella valutazione e validazione di interfacce uomo computer e ​sviluppano capacità di giudizio sull'usabilità di un'interfaccia e quindi sulle ricadute dell'uso dell'interfaccia in termini di efficacia, efficienza e soddisfazione.

Capacità comunicative:
​Gli studenti sostengono due presentazioni del loro lavoro di gruppo in occasione delle due revisioni previste con il docente. La prima revisione è svolta in aula e la presentazione è pertanto rivolta a tutti i colleghi al fine di esercitare le capacità comunicative.​

Capacità di apprendimento:
​La capacità di apprendimento​ è stimolata attraverso 1) attività di progettazione guidata e autonoma con supervisione; 2) l'esposizione a problemi realistici di progettazione stimolando la ricerca autonoma di soluzioni non standard; 3) la presentazione di casi reali e stimolandone la discussione critica.

1031337 | BIOLOGIA COMPUTAZIONALE6ITA

Obiettivi formativi

Obiettivi generali:
Obiettivo generale del corso è di trasferire agli studenti le conoscenze dello stato dell’arte della biologia computazionale a seguito dell’avvento di tecnologie di sequenziamento massivo per la produzione di dati genomici e proteomici. Tali basi sono necessarie poi per permettere agli studenti di raggiungere le competenze per una corretta analisi delle problematiche proprie dell’area e la capacità di progettazione ed implementazione di un software adatto alla risoluzione del problema proposto. Pertanto il percorso formativo è finalizzato alla formazione di una figura professionale che sia in grado di intervenire nella risoluzione e gestione di progetti informatici in ambito biomolecolare.
Obiettivi specifici:
Il corso si propone di formare persone esperte nelle analisi dei dati biomedici e progettisti di sistemi software che possiedano le conoscenze di base della biologia molecolare e degli strumenti bio-informatici utilizzati per affrontare la gestione dell'enorme flusso di dati generati in questo settore. Persone con tale profilo professionale dovranno essere in grado, partendo dalla piattaforma sperimentale di produzione dei dati (saranno particolarmente dettagliate le problematiche derivanti dai dati prodotti con sequenziamento massivo), di stabilire quali siano gli algoritmi di interesse per l'analisi dei dati grezzi del progetto. Dovranno inoltre acquisire una sensibilità critica ed essere in grado di definire un protocollo di analisi dei dati tenendo conto delle risorse di calcolo disponibili e, di conseguenza, ottimizzare l'analisi. Al termine del corso, gli studenti presenteranno anche strumenti da loro sviluppati per la gestione, l'integrazione e l'interrogazione delle enormi quantità di dati prodotti dalle analisi al fine di ottenere risultati finali biologici, efficaci e fruibili. Tali strumenti seguiranno gli standard richiesti nello sviluppo software tipici della comunità bioinformatica.
Applicazione di conoscenza e comprensione:
Gli obiettivi formativi sono realizzati attraverso lezioni frontali, attività di laboratorio ed esercitazioni nelle quali sono previste simulazioni di progetti di lavoro, svolgimento in classe o discussione con partecipazione diretta degli studenti relativamente a problemi e all’analisi di casi di studio. Durante le esercitazioni gli studenti apprenderanno come progettare e sviluppare
• una pipeline di analisi bioinformatica per il processamento dei dati grezzi forniti dalle piattaforme di sequenziamento di nuova generazione (NGS)
• l'automatizzazione ed ottimizzazione della pipeline di analisi NGS • un sistema software per la gestione ed interrogazione dei dati prodotti dall’analisi
• simulazioni di docking e dinamica molecolare di macromolecole biologiche in ambiente di calcolo ad alte prestazioni (HPC).
Autonomia di giudizio:
Gli studenti del corso acquisiranno la capacità di elaborare informazioni complesse e/o frammentarie (ad esempio dovranno gestire dati di sequenze annotate solo in parte, ossia solo alcune di esse saranno associate ad un intervallo cromosomico di un organismo sequenziato, e spesso annotate in maniera non standard) e dovranno pervenire ad una modellazione dei dati pensata in maniera originale ed autonoma, scelta coerentemente con l'ambito biologico del proprio progetto sperimentale.
Abilità comunicative:
Gli studenti saranno in grado di dialogare con i ricercatori dell'area biomedica, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti durante il corso e attraverso termini propri della biologia computazionale. L'acquisizione di queste competenze sarà testata attraverso una verifica orale e diversi progetti sviluppati in laboratorio.
Capacità di apprendimento:
Gli studenti dovranno aver acquisito la capacità critica, originale ed autonoma di rapportarsi a problematiche proprie dei progetti di biologia computazionale e di applicare autonomamente le conoscenze acquisite durante il corso in vista di un'eventuale prosecuzione degli studi a livello superiore (laurea specialistica) o nella più ampia prospettiva di approfondimento culturale e professionale nel caso di un impiego nell’area biomedica/bioinformatica.

1041761 | LINGUAGGI E COMPILATORI6ITA

Obiettivi formativi

Obiettivi generali:
Lo studente imparera' come funziona un compilatore sia dal punto di vista teorico che pratico.

Obiettivi specifici:
Conoscenza e comprensione:
Allo studente saranno presentate le parti della Teoria dei Linguaggi Formali e degli Automi necessarie ad avere una base teorica sul funzionamento dei compilatori.

Applicare conoscenza e comprensione:
Lo studente imparerà come usare noti strumenti pratici per la costruzione di compilatori, come Lex a YACC.

Capacità critiche e di giudizio:
Una parte facoltativa dell'esame consisterà nel produrre un compilatore per un semplice linguaggio di programmazione ad alto livello.

Capacità comunicative:
Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti formali.

Capacità di apprendimento:
I fondamenti teorici e gli strumenti pratici introdotti nel corso forniranno allo studente una base solida per studi più avanzati in questo campo.

1022267 | PROGRAMMAZIONE PER IL WEB6ITA

Obiettivi formativi

Obiettivi generali:
Lo scopo del corso è lo studio del linguaggio java lato server, per la realizzazione di applicazioni web. Il corso fornisce inoltre un’analisi critica di diverse soluzioni implementative di molte funzionalità applicative comuni nello sviluppo di applicazioni web.

Obiettivi specifici:
Programmazione lato server mediante Java Servlet e pagine JSP.

Conoscenza e comprensione:
Il corso permetterà la comprensione del supporto fornito dal linguaggio Java alla realizzazione di applicazioni web. In particolare lo studente studierà le motivazioni alla base di tutte le scelte implementative, in particolare facendo riferimento alle architetture client-server e ai protocolli di rete in uso.

Applicare conoscenza e comprensione:
Attraverso il corso lo studente imparerà a riconoscere tra le possibili soluzioni applicative ad un problema, quale offra i maggiori vantaggi in termini di prestazioni, sicurezza, portabilità e efficienza.

Capacità critiche e di giudizio:
Il corso metterà lo studente in condizione di saper scegliere, dato un problema, la migliore metodologia risolutiva, attraverso la profonda comprensione dei requisiti e dei vincoli imposti dall'architettura.

Capacità comunicative:
Lo studente sarà in grado di motivare le proprie scelte nella proposta di uno specifico approccio realizzativo di un’applicazione Web, e fornire una analisi comparativa dell’approccio scelto con altri approcci possibili.

Capacità di apprendimento:
Lo studente svilupperà capacità di studio autonome e di comprensione e valutazione critica di nuove metodologie, tecnologie e modelli di sviluppo di applicazioni Web.

10600494 | VERIFICA E VALIDAZIONE DI SISTEMI INTELLIGENTI6ITA

Obiettivi formativi

Obiettivi generali:
Il corso si propone di fornire agli studenti gli strumenti di base per la modellazione, analisi e progettazione di sistemi intelligenti.

Obiettivi specifici:
Il corso si propone di mettere gli studenti in grado di comprendere ed usare un'ampia gamma di tecniche di modellazione, progettazione, verifica e validazione per sistemi intelligenti.

Conoscenza e comprensione:
Introduzione ad ampio spettro dei principi fondamentali della modellazione, analisi e progettazione dei sistemi intelligenti modellati come sistemi dinamici sia tempo continuo che tempo discreto.

Applicazione di conoscenza e comprensione:
Saper applicare il portafoglio di tecniche e gli approcci illustrati per la modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Autonomia di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche da impiegare nella modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Abilità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con esperti di dominio su un'ampia gamma di argomenti relativi alla modellazione, progettazione, verifica e validazione di sistemi intelligenti.

Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica di rilievo.