| 10630324 | CALCULUS [MATH-03/A] [ENG] | 1º | 1º | 12 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| UNIT 2 [MATH-03/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| UNIT 1 [MATH-03/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| 10631060 | COMPUTER ARCHITECTURE [INFO-01/A] [ENG] | 1º | 1º | 12 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| UNIT 2 [INFO-01/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| UNIT 1 [INFO-01/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| 10627226 | LINEAR ALGEBRA [MATH-02/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Apprendimento dei concetti fondamentali dell’algebra lineare e delle principali tecniche di calcolo matriciale.
Spazi vettoriali, sottospazi, basi e dimensione. Sistemi lineari e matrici. Determinanti, rango e invertibilità. Applicazioni lineari e loro rappresentazione matriciale. Autovalori, autovettori e diagonalizzazione. Prodotti scalari, ortogonalità e proiezioni.
Conoscenza e capacità di comprensione
Conoscenza dei concetti fondamentali dell’algebra lineare. Comprensione del ruolo di vettori, matrici e applicazioni lineari nella formulazione e risoluzione di problemi matematici. Capacità di interpretare e utilizzare le principali proprietà algebriche e geometriche degli spazi vettoriali.
Capacità di applicare conoscenza e comprensione
Essere in grado di risolvere sistemi lineari, calcolare rango, determinanti, basi, dimensioni, autovalori e autovettori. Saper applicare le tecniche dell’algebra lineare a problemi di geometria, modellazione matematica e analisi di sistemi lineari.
Autonomia di giudizio
Capacità di scegliere gli strumenti più adeguati per affrontare un problema di algebra lineare e di valutare la correttezza dei procedimenti e dei risultati ottenuti.
Abilità comunicative
Capacità di esporre in modo chiaro definizioni, risultati teorici e procedimenti di calcolo relativi all’algebra lineare.
Capacità di apprendimento
Capacità di apprendere e applicare ulteriori strumenti matematici a partire dai concetti e dalle tecniche apprese durante il corso.
|
| 10630468 | PROGRAMMING [INFO-01/A] [ENG] | 1º | 1º | 12 |
Obiettivi formativi Obiettivi generali
Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione
Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione:
Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati
utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio
Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative
Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento
Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
| UNIT 2 [INFO-01/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi generali
Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione
Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione:
Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati
utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio
Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative
Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento
Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
| UNIT 1 [INFO-01/A] [ENG] | 1º | 1º | 6 |
Obiettivi formativi Obiettivi generali
Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione
Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione:
Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati
utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio
Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative
Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento
Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
| 10629563 | ALGORITHMS [INFO-01/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
L’insegnamento fornisce agli studenti i fondamenti teorici e pratici della progettazione e dell’analisi degli algoritmi. Il corso affronta le principali tecniche di progettazione algoritmica, tra cui algoritmi greedy, divide et impera e algoritmi per grafi, introducendo inoltre concetti di complessità computazionale e di trattabilità dei problemi. Al termine del corso gli studenti saranno in grado di analizzare la correttezza e l’efficienza degli algoritmi, confrontare diverse strategie risolutive e progettare soluzioni algoritmiche per problemi di media complessità.
Conoscenza e capacità di comprensione
Gli studenti acquisiscono una solida conoscenza dei principali paradigmi di progettazione algoritmica, delle strutture dati fondamentali e degli algoritmi classici per problemi di ottimizzazione, codifica, scheduling e cammini minimi. Comprendono i metodi di analisi della complessità computazionale e i principi di correttezza degli algoritmi.
Capacità di applicare conoscenza e comprensione
Gli studenti sono in grado di modellare problemi computazionali, individuare la strategia algoritmica più appropriata, progettare algoritmi corretti ed efficienti, analizzarne la complessità temporale e spaziale e confrontare soluzioni alternative sulla base delle loro prestazioni.
Autonomia di giudizio
Gli studenti sviluppano la capacità di valutare criticamente algoritmi e strutture dati, individuandone punti di forza, limiti e ambiti di applicabilità. Sono inoltre in grado di motivare le proprie scelte progettuali considerando correttezza, efficienza e vincoli del problema.
Abilità comunicative
Gli studenti acquisiscono la capacità di descrivere algoritmi e dimostrarne la correttezza utilizzando un linguaggio tecnico appropriato, pseudocodice e notazione matematica. Sono inoltre in grado di presentare in modo chiaro il processo di progettazione e l’analisi della complessità delle soluzioni proposte.
Capacità di apprendimento
Gli studenti sviluppano un metodo di studio autonomo che consente loro di approfondire nuovi algoritmi, tecniche di progettazione e risultati teorici, applicando in modo critico le conoscenze acquisite anche a problemi non affrontati direttamente durante il corso.
|
| 10630324 | CALCULUS [MATH-03/A] [ENG] | 1º | 2º | 12 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| UNIT 2 [MATH-03/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| UNIT 1 [MATH-03/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso ha l’obiettivo di fornire le basi del calcolo differenziale e integrale per funzioni di una variabile reale, sviluppando la capacità di comprendere, analizzare e risolvere problemi matematici fondamentali. Lo studente acquisisce strumenti teorici e pratici utili per lo studio dell’analisi matematica e delle discipline scientifiche affini.
Conoscenza e capacità di comprensione
Lo studente acquisisce la comprensione dei concetti fondamentali dell’analisi matematica, inclusi numeri reali e razionali, limiti, derivate, integrali, successioni e serie. Viene sviluppata la capacità di comprendere definizioni, teoremi e proprietà fondamentali del calcolo differenziale e integrale.
Capacità di applicare conoscenza e comprensione
Lo studente è in grado di applicare le conoscenze teoriche alla risoluzione di problemi standard di calcolo differenziale e integrale, successioni e serie. È in grado di utilizzare metodi e tecniche apprese per analizzare funzioni e risolvere esercizi di base.
Autonomia di giudizio
Lo studente sviluppa la capacità di valutare la correttezza dei procedimenti e dei risultati ottenuti, scegliere metodi appropriati di risoluzione e riflettere sulla struttura logica degli argomenti matematici.
Abilità comunicative
Lo studente acquisisce la capacità di esprimere concetti e risultati matematici in modo chiaro, rigoroso e strutturato, utilizzando una notazione corretta e un linguaggio scientifico appropriato sia in forma scritta che orale.
Capacità di apprendimento
Lo studente sviluppa solide basi per studi successivi in matematica e discipline scientifiche, acquisendo autonomia nello studio e nella capacità di approfondire strumenti matematici più avanzati.
|
| 10631060 | COMPUTER ARCHITECTURE [INFO-01/A] [ENG] | 1º | 2º | 12 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| UNIT 2 [INFO-01/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| UNIT 1 [INFO-01/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi formativi: Il corso si propone di fornire le competenze fondamentali relative all'architettura dei calcolatori moderni e alla programmazione a basso livello. L'obiettivo è guidare lo studente nella comprensione della codifica dati, dell'algebra booleana e dei circuiti logici, fino all'analisi dettagliata di un microprocessore (architettura MIPS) e allo sviluppo di software in linguaggio assembly, ponendo le basi metodologiche per lo studio dei sistemi operativi.
Conoscenza e capacità di comprensione: Al termine dell'insegnamento, lo studente sarà in grado di conoscere i principi dei calcolatori moderni (pipelining, caching, branch prediction, multi-processing), le metodologie di codifica binaria, l'Algebra Booleana e i circuiti logici, l'organizzazione del microprocessore con focus sull'architettura MIPS, nonché la struttura e i paradigmi della programmazione assembly (gestione dati e ricorsione).
Capacità di applicare conoscenza e comprensione: Lo studente sarà in grado di applicare l'Algebra Booleana per analizzare e sintetizzare circuiti combinatori e sequenziali, utilizzare l'architettura MIPS per valutare l'impatto delle scelte di programmazione sulle prestazioni hardware, sviluppare programmi in assembly per algoritmi e strutture dati, e progettare sistemi basati su registri e moduli interconnessi.
Autonomia di giudizio: Lo studente sarà in grado di valutare criticamente le diverse tecniche di progettazione di circuiti e ottimizzazione del microprocessore per scegliere la soluzione più efficiente, comprendendo e valutando in modo autonomo le problematiche relative alle prestazioni del software su hardware specifico.
Abilità comunicative: Lo studente sarà in grado di motivare e argomentare con rigore tecnico le scelte effettuate nella progettazione di circuiti logici o nell'implementazione di programmi in assembly, esponendo in modo chiaro argomenti tecnici complessi legati all'architettura dei calcolatori.
Capacità di apprendimento: Lo studente sarà in grado di identificare differenze e vantaggi delle varie tecniche di progettazione del calcolatore, acquisendo la base concettuale e metodologica necessaria per affrontare e approfondire autonomamente discipline correlate come i Sistemi Operativi.
|
| 10631810 | PHYSICS [PHYS-01/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi OBIETTIVI GENERALI
Insegnare agli studenti le leggi fondamentali della fisica e la loro applicazione a situazioni del mondo reale.
Sviluppare le abilità di problem solving, descrivendo i fenomeni fisici sia attraverso la formulazione matematica sia mediante l’intuizione fisica.
OBIETTIVI SPECIFICI
Conoscenza e comprensione
Conoscere le nozioni di base della meccanica newtoniana, della fisica dei fluidi, della termodinamica, dell’elettricità e del magnetismo.
Conoscere i concetti fondamentali di forza, momento della forza, lavoro, energia potenziale, energia cinetica, energia meccanica, potenza, impulso, quantità di moto e momento angolare.
Conoscere alcune leggi di conservazione della fisica e la loro importanza.
Conoscere i concetti di temperatura, calore ed entropia applicati a semplici sistemi termodinamici.
Conoscere i concetti di campo elettrico e potenziale, campo magnetico e correnti elettriche.
Comprendere il testo di un esercizio di fisica.
Capacità applicative
Lo studente sarà in grado di risolvere una grande varietà di problemi di fisica, formalizzando la loro soluzione dal punto di vista matematico.
Sarà inoltre in grado di risolvere problemi in modo coerente, sia dal punto di vista formale che quantitativo, e di valutare gli effetti dominanti in un problema fisico.
Saprà applicare le leggi di Newton per descrivere il moto di un punto materiale, di sistemi di punti e la rotazione dei corpi rigidi.
Sarà in grado di risolvere problemi di dinamica utilizzando i concetti di lavoro, energia cinetica, energia potenziale ed energia meccanica.
Saprà utilizzare la conservazione dell’energia, della quantità di moto e del momento angolare in un’ampia gamma di situazioni.
Sarà in grado di risolvere semplici problemi di statica e dinamica dei fluidi.
Saprà affrontare semplici problemi riguardanti l’energia termica utilizzando il primo principio della termodinamica.
Sarà in grado di descrivere il significato del concetto di entropia e della seconda legge della termodinamica.
Saprà descrivere i campi elettrici e il loro potenziale nel caso di cariche stazionarie.
Sarà in grado di descrivere i campi magnetici generati da correnti stazionarie e i fenomeni legati all’induzione elettromagnetica.
Capacità critiche e di giudizio
Sarà in grado di stabilire se una relazione tra grandezze fisiche o una legge sia corretta anche dal punto di vista dimensionale.
Svilupperà capacità di ragionamento quantitativo e analitico utili per studiare, modellizzare e comprendere problemi di fisica.
Capacità comunicative
Sarà in grado di parlare di fisica utilizzando una terminologia appropriata.
Saprà descrivere un problema complesso, isolandone i contributi più rilevanti.
Capacità di apprendimento
Avrà la capacità di consultare testi di fisica e comprenderne i contenuti.
|
| 10628751 | PROGRAMMING 2 [INFO-01/A] [ENG] | 1º | 2º | 6 |
Obiettivi formativi Obiettivi generali:
Apprendimento delle nozioni fondamentali della programmazione orientata agli oggetti attraverso il linguaggio Java.
Obiettivi specifici:
Nozioni di programmazione orientata agli oggetti: classi e oggetti, incapsulamento, ereditarietà, polimorfismo, binding statico e dinamico, design pattern. Programmazione funzionale. Strumenti e metodologie per lo sviluppo software. Il linguaggio Java.
Conoscenza e capacità di comprensione:
Conoscenza dei costrutti della programmazione orientata agli oggetti, con particolare attenzione al linguaggio Java. Comprensione di programmi Java. Capacità di sviluppare programmi Java di piccole e medie dimensioni.
Capacità di applicare conoscenza e comprensione:
Capacità di applicare metodologie di sviluppo di base per sistemi software di piccole e medie dimensioni. Esperienza nell’utilizzo di strumenti per lo sviluppo di tali sistemi in Java.
Autonomia di giudizio:
Capacità critica nel distinguere istruzioni, costrutti di programmazione e pattern errati o inefficienti da quelli appropriati ed efficienti.
Abilità comunicative:
Presentazione del progetto sviluppato.
Capacità di apprendimento:
Capacità di apprendere e applicare nuove tecniche di programmazione partendo da quelle affrontate durante il corso.
|
| 10627517 | CALCULUS 2 [MATH-03/A] [ENG] | 2º | 1º | 6 |
| 10626593 | PROBABILITY [MATH-03/B] [ENG] | 2º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Apprendimento dei concetti di probabilità di base. Distribuzioni di probabilità discrete, calcolo combinatorio, attesa e varianza. Indipendenza e correlazione, probabilità condizionata. Variabili aleatorie, funzioni di variabili aleatorie, distribuzioni congiunte e marginali. Fondamenti di probabilità continua.
Conoscenza e capacità di comprensione
Gli studenti acquisiranno familiarità con i concetti di base della probabilità discreta e continua.
Capacità di applicare conoscenza e comprensione
Gli studenti impareranno ad applicare la teoria della probabilità a esempi concreti.
Autonomia di giudizio
Capacità di valutare la correttezza di un ragionamento matematico riguardante temi di probabilità.
Abilità comunicative
Capacità di produrre argomentazioni matematiche chiare e rigorose.
Capacità di apprendimento
Capacità di apprendere e applicare la teoria della probabilità.
|
| 10630245 | DATA MANAGEMENT AND ANALYSIS [INFO-01/A] [ENG] | 2º | 1º | 12 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| UNIT II [INFO-01/A] [ENG] | 2º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| UNIT I [INFO-01/A] [ENG] | 2º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| 10630120 | SYSTEMS AND NETWORKING [INFO-01/A] [ENG] | 2º | 1º | 12 |
Obiettivi formativi Obiettivi formativi
Il corso fornisce agli studenti le conoscenze fondamentali sul funzionamento dei sistemi di elaborazione moderni, dal software di base che gestisce le risorse di un singolo calcolatore fino ai protocolli che permettono la comunicazione tra host attraverso Internet. Il corso è articolato in due parti integrate. La prima parte è dedicata ai sistemi operativi e affronta l'organizzazione e i servizi del sistema operativo, la gestione dei processi e dei thread, lo scheduling della CPU, la sincronizzazione e la concorrenza, la gestione della memoria e della memoria virtuale, il file system e la gestione dell'I/O e delle periferiche di memorizzazione. La seconda parte è dedicata alle reti di calcolatori e all'architettura di Internet, con particolare attenzione allo stack protocollare TCP/IP, ai principali protocolli e meccanismi che permettono la comunicazione tra host, l'instradamento dei pacchetti, il controllo dell'affidabilità e della congestione, la risoluzione dei nomi e l'accesso al mezzo nelle reti locali e wireless. Verranno inoltre presentati protocolli di trasporto moderni, tra cui QUIC, evidenziandone il ruolo nell'evoluzione dell'architettura di Internet. Il corso prevede anche attività pratiche finalizzate alla comprensione del comportamento del sistema operativo e alla configurazione, osservazione e analisi di reti e protocolli.
Conoscenza e capacità di comprensione
Al termine del corso, lo studente avrà acquisito una conoscenza solida dei principi alla base dei sistemi operativi e delle reti di calcolatori. Per quanto riguarda i sistemi operativi, comprenderà il ruolo del sistema operativo come gestore delle risorse e come interfaccia tra hardware e applicazioni, il ciclo di vita dei processi e dei thread, le principali politiche di scheduling della CPU, i meccanismi di sincronizzazione e i problemi classici della concorrenza (mutua esclusione, semafori, monitor, deadlock), nonché le tecniche di gestione della memoria fisica e virtuale, di paginazione e di organizzazione del file system e dell'I/O. Per quanto riguarda le reti, lo studente comprenderà il ruolo dei diversi livelli dello stack TCP/IP, dai protocolli di livello applicativo fino ai meccanismi di trasporto, rete e accesso al mezzo. Comprenderà il funzionamento di protocolli fondamentali quali IP, TCP, UDP e DNS e dei principali meccanismi di instradamento, nonché le problematiche relative all'affidabilità, al controllo di congestione, alla frammentazione, all'indirizzamento e alla condivisione del canale. Acquisirà inoltre conoscenze di base sulle reti wireless e sul protocollo CSMA/CA, oltre a comprendere le motivazioni e le caratteristiche principali di protocolli di trasporto moderni come QUIC.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di analizzare il comportamento di un sistema operativo, valutando l'effetto delle diverse politiche di gestione dei processi, della memoria e delle risorse sulle prestazioni complessive del sistema. Saprà ragionare su scenari di concorrenza, individuando e prevenendo condizioni di corsa, situazioni di stallo e problemi di consistenza, e calcolare grandezze fondamentali quali tempi di attesa, tempi di completamento e utilizzo della CPU. Per quanto riguarda le reti, sarà in grado di analizzare il funzionamento di una rete TCP/IP, identificando il ruolo dei diversi protocolli coinvolti nella comunicazione end-to-end, interpretare scenari di comunicazione e calcolare grandezze fondamentali quali ritardi, throughput, utilizzo del canale e dimensioni delle finestre di trasmissione, valutando il comportamento dei protocolli di trasporto e di rete in presenza di congestione, perdite o vincoli di banda. Sarà inoltre capace di configurare semplici scenari di rete, osservare lo scambio di pacchetti e interpretare i risultati ottenuti attraverso strumenti di analisi e attività pratiche di laboratorio.
Autonomia di giudizio
Il corso mira a sviluppare la capacità di valutare criticamente le scelte progettuali adottate sia a livello di sistema operativo sia a livello di architettura di rete. Lo studente sarà in grado di discutere vantaggi e limiti delle principali soluzioni adottate nella gestione delle risorse di un calcolatore, quali le politiche di scheduling, i meccanismi di sincronizzazione e le strategie di gestione della memoria, e di confrontare soluzioni architetturali di rete considerando aspetti quali scalabilità, affidabilità, efficienza, ritardo, sicurezza, mobilità e interoperabilità. Sarà inoltre in grado di confrontare protocolli tradizionali e moderni, come TCP e QUIC, comprendendo le ragioni progettuali alla base della loro evoluzione e valutando l'impatto delle diverse scelte sulle prestazioni complessive del sistema e della rete.
Abilità comunicative
Lo studente acquisirà la capacità di descrivere in modo chiaro e rigoroso il funzionamento di un sistema operativo e dei principali protocolli di Internet, nonché dei meccanismi che regolano la gestione delle risorse e la comunicazione tra dispositivi. Sarà in grado di utilizzare un linguaggio tecnico appropriato per spiegare concetti quali processo, thread, scheduling, sincronizzazione, deadlock, memoria virtuale, incapsulamento, indirizzamento, instradamento, controllo di flusso, controllo di congestione, risoluzione dei nomi e accesso al mezzo. Il corso favorisce inoltre la capacità di presentare e discutere risultati derivanti da esercizi, analisi di protocolli e attività pratiche.
Capacità di apprendimento
Al termine del corso, lo studente avrà sviluppato le competenze necessarie per approfondire autonomamente temi avanzati nel campo dei sistemi operativi, delle reti di calcolatori e dell'evoluzione di Internet. Sarà in grado di leggere documentazione tecnica, comprendere specifiche di sistema e specifiche protocollari, interpretare risultati sperimentali e aggiornare le proprie conoscenze rispetto allo sviluppo di nuovi sistemi, protocolli, architetture e tecnologie.
|
| UNIT II [INFO-01/A] [ENG] | 2º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso fornisce agli studenti le conoscenze fondamentali sul funzionamento dei sistemi di elaborazione moderni, dal software di base che gestisce le risorse di un singolo calcolatore fino ai protocolli che permettono la comunicazione tra host attraverso Internet. Il corso è articolato in due parti integrate. La prima parte è dedicata ai sistemi operativi e affronta l'organizzazione e i servizi del sistema operativo, la gestione dei processi e dei thread, lo scheduling della CPU, la sincronizzazione e la concorrenza, la gestione della memoria e della memoria virtuale, il file system e la gestione dell'I/O e delle periferiche di memorizzazione. La seconda parte è dedicata alle reti di calcolatori e all'architettura di Internet, con particolare attenzione allo stack protocollare TCP/IP, ai principali protocolli e meccanismi che permettono la comunicazione tra host, l'instradamento dei pacchetti, il controllo dell'affidabilità e della congestione, la risoluzione dei nomi e l'accesso al mezzo nelle reti locali e wireless. Verranno inoltre presentati protocolli di trasporto moderni, tra cui QUIC, evidenziandone il ruolo nell'evoluzione dell'architettura di Internet. Il corso prevede anche attività pratiche finalizzate alla comprensione del comportamento del sistema operativo e alla configurazione, osservazione e analisi di reti e protocolli.
Conoscenza e capacità di comprensione
Al termine del corso, lo studente avrà acquisito una conoscenza solida dei principi alla base dei sistemi operativi e delle reti di calcolatori. Per quanto riguarda i sistemi operativi, comprenderà il ruolo del sistema operativo come gestore delle risorse e come interfaccia tra hardware e applicazioni, il ciclo di vita dei processi e dei thread, le principali politiche di scheduling della CPU, i meccanismi di sincronizzazione e i problemi classici della concorrenza (mutua esclusione, semafori, monitor, deadlock), nonché le tecniche di gestione della memoria fisica e virtuale, di paginazione e di organizzazione del file system e dell'I/O. Per quanto riguarda le reti, lo studente comprenderà il ruolo dei diversi livelli dello stack TCP/IP, dai protocolli di livello applicativo fino ai meccanismi di trasporto, rete e accesso al mezzo. Comprenderà il funzionamento di protocolli fondamentali quali IP, TCP, UDP e DNS e dei principali meccanismi di instradamento, nonché le problematiche relative all'affidabilità, al controllo di congestione, alla frammentazione, all'indirizzamento e alla condivisione del canale. Acquisirà inoltre conoscenze di base sulle reti wireless e sul protocollo CSMA/CA, oltre a comprendere le motivazioni e le caratteristiche principali di protocolli di trasporto moderni come QUIC.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di analizzare il comportamento di un sistema operativo, valutando l'effetto delle diverse politiche di gestione dei processi, della memoria e delle risorse sulle prestazioni complessive del sistema. Saprà ragionare su scenari di concorrenza, individuando e prevenendo condizioni di corsa, situazioni di stallo e problemi di consistenza, e calcolare grandezze fondamentali quali tempi di attesa, tempi di completamento e utilizzo della CPU. Per quanto riguarda le reti, sarà in grado di analizzare il funzionamento di una rete TCP/IP, identificando il ruolo dei diversi protocolli coinvolti nella comunicazione end-to-end, interpretare scenari di comunicazione e calcolare grandezze fondamentali quali ritardi, throughput, utilizzo del canale e dimensioni delle finestre di trasmissione, valutando il comportamento dei protocolli di trasporto e di rete in presenza di congestione, perdite o vincoli di banda. Sarà inoltre capace di configurare semplici scenari di rete, osservare lo scambio di pacchetti e interpretare i risultati ottenuti attraverso strumenti di analisi e attività pratiche di laboratorio.
Autonomia di giudizio
Il corso mira a sviluppare la capacità di valutare criticamente le scelte progettuali adottate sia a livello di sistema operativo sia a livello di architettura di rete. Lo studente sarà in grado di discutere vantaggi e limiti delle principali soluzioni adottate nella gestione delle risorse di un calcolatore, quali le politiche di scheduling, i meccanismi di sincronizzazione e le strategie di gestione della memoria, e di confrontare soluzioni architetturali di rete considerando aspetti quali scalabilità, affidabilità, efficienza, ritardo, sicurezza, mobilità e interoperabilità. Sarà inoltre in grado di confrontare protocolli tradizionali e moderni, come TCP e QUIC, comprendendo le ragioni progettuali alla base della loro evoluzione e valutando l'impatto delle diverse scelte sulle prestazioni complessive del sistema e della rete.
Abilità comunicative
Lo studente acquisirà la capacità di descrivere in modo chiaro e rigoroso il funzionamento di un sistema operativo e dei principali protocolli di Internet, nonché dei meccanismi che regolano la gestione delle risorse e la comunicazione tra dispositivi. Sarà in grado di utilizzare un linguaggio tecnico appropriato per spiegare concetti quali processo, thread, scheduling, sincronizzazione, deadlock, memoria virtuale, incapsulamento, indirizzamento, instradamento, controllo di flusso, controllo di congestione, risoluzione dei nomi e accesso al mezzo. Il corso favorisce inoltre la capacità di presentare e discutere risultati derivanti da esercizi, analisi di protocolli e attività pratiche.
Capacità di apprendimento
Al termine del corso, lo studente avrà sviluppato le competenze necessarie per approfondire autonomamente temi avanzati nel campo dei sistemi operativi, delle reti di calcolatori e dell'evoluzione di Internet. Sarà in grado di leggere documentazione tecnica, comprendere specifiche di sistema e specifiche protocollari, interpretare risultati sperimentali e aggiornare le proprie conoscenze rispetto allo sviluppo di nuovi sistemi, protocolli, architetture e tecnologie.
|
| UNIT I [INFO-01/A] [ENG] | 2º | 1º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso fornisce agli studenti le conoscenze fondamentali sul funzionamento dei sistemi di elaborazione moderni, dal software di base che gestisce le risorse di un singolo calcolatore fino ai protocolli che permettono la comunicazione tra host attraverso Internet. Il corso è articolato in due parti integrate. La prima parte è dedicata ai sistemi operativi e affronta l'organizzazione e i servizi del sistema operativo, la gestione dei processi e dei thread, lo scheduling della CPU, la sincronizzazione e la concorrenza, la gestione della memoria e della memoria virtuale, il file system e la gestione dell'I/O e delle periferiche di memorizzazione. La seconda parte è dedicata alle reti di calcolatori e all'architettura di Internet, con particolare attenzione allo stack protocollare TCP/IP, ai principali protocolli e meccanismi che permettono la comunicazione tra host, l'instradamento dei pacchetti, il controllo dell'affidabilità e della congestione, la risoluzione dei nomi e l'accesso al mezzo nelle reti locali e wireless. Verranno inoltre presentati protocolli di trasporto moderni, tra cui QUIC, evidenziandone il ruolo nell'evoluzione dell'architettura di Internet. Il corso prevede anche attività pratiche finalizzate alla comprensione del comportamento del sistema operativo e alla configurazione, osservazione e analisi di reti e protocolli.
Conoscenza e capacità di comprensione
Al termine del corso, lo studente avrà acquisito una conoscenza solida dei principi alla base dei sistemi operativi e delle reti di calcolatori. Per quanto riguarda i sistemi operativi, comprenderà il ruolo del sistema operativo come gestore delle risorse e come interfaccia tra hardware e applicazioni, il ciclo di vita dei processi e dei thread, le principali politiche di scheduling della CPU, i meccanismi di sincronizzazione e i problemi classici della concorrenza (mutua esclusione, semafori, monitor, deadlock), nonché le tecniche di gestione della memoria fisica e virtuale, di paginazione e di organizzazione del file system e dell'I/O. Per quanto riguarda le reti, lo studente comprenderà il ruolo dei diversi livelli dello stack TCP/IP, dai protocolli di livello applicativo fino ai meccanismi di trasporto, rete e accesso al mezzo. Comprenderà il funzionamento di protocolli fondamentali quali IP, TCP, UDP e DNS e dei principali meccanismi di instradamento, nonché le problematiche relative all'affidabilità, al controllo di congestione, alla frammentazione, all'indirizzamento e alla condivisione del canale. Acquisirà inoltre conoscenze di base sulle reti wireless e sul protocollo CSMA/CA, oltre a comprendere le motivazioni e le caratteristiche principali di protocolli di trasporto moderni come QUIC.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di analizzare il comportamento di un sistema operativo, valutando l'effetto delle diverse politiche di gestione dei processi, della memoria e delle risorse sulle prestazioni complessive del sistema. Saprà ragionare su scenari di concorrenza, individuando e prevenendo condizioni di corsa, situazioni di stallo e problemi di consistenza, e calcolare grandezze fondamentali quali tempi di attesa, tempi di completamento e utilizzo della CPU. Per quanto riguarda le reti, sarà in grado di analizzare il funzionamento di una rete TCP/IP, identificando il ruolo dei diversi protocolli coinvolti nella comunicazione end-to-end, interpretare scenari di comunicazione e calcolare grandezze fondamentali quali ritardi, throughput, utilizzo del canale e dimensioni delle finestre di trasmissione, valutando il comportamento dei protocolli di trasporto e di rete in presenza di congestione, perdite o vincoli di banda. Sarà inoltre capace di configurare semplici scenari di rete, osservare lo scambio di pacchetti e interpretare i risultati ottenuti attraverso strumenti di analisi e attività pratiche di laboratorio.
Autonomia di giudizio
Il corso mira a sviluppare la capacità di valutare criticamente le scelte progettuali adottate sia a livello di sistema operativo sia a livello di architettura di rete. Lo studente sarà in grado di discutere vantaggi e limiti delle principali soluzioni adottate nella gestione delle risorse di un calcolatore, quali le politiche di scheduling, i meccanismi di sincronizzazione e le strategie di gestione della memoria, e di confrontare soluzioni architetturali di rete considerando aspetti quali scalabilità, affidabilità, efficienza, ritardo, sicurezza, mobilità e interoperabilità. Sarà inoltre in grado di confrontare protocolli tradizionali e moderni, come TCP e QUIC, comprendendo le ragioni progettuali alla base della loro evoluzione e valutando l'impatto delle diverse scelte sulle prestazioni complessive del sistema e della rete.
Abilità comunicative
Lo studente acquisirà la capacità di descrivere in modo chiaro e rigoroso il funzionamento di un sistema operativo e dei principali protocolli di Internet, nonché dei meccanismi che regolano la gestione delle risorse e la comunicazione tra dispositivi. Sarà in grado di utilizzare un linguaggio tecnico appropriato per spiegare concetti quali processo, thread, scheduling, sincronizzazione, deadlock, memoria virtuale, incapsulamento, indirizzamento, instradamento, controllo di flusso, controllo di congestione, risoluzione dei nomi e accesso al mezzo. Il corso favorisce inoltre la capacità di presentare e discutere risultati derivanti da esercizi, analisi di protocolli e attività pratiche.
Capacità di apprendimento
Al termine del corso, lo studente avrà sviluppato le competenze necessarie per approfondire autonomamente temi avanzati nel campo dei sistemi operativi, delle reti di calcolatori e dell'evoluzione di Internet. Sarà in grado di leggere documentazione tecnica, comprendere specifiche di sistema e specifiche protocollari, interpretare risultati sperimentali e aggiornare le proprie conoscenze rispetto allo sviluppo di nuovi sistemi, protocolli, architetture e tecnologie.
|
| 10630506 | ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING [INFO-01/A] [ENG] | 2º | 2º | 12 |
Obiettivi formativi Obiettivi formativi
I fondamenti dell'Intelligenza Artificiale e del Machine Learning. Logica formale e ragionamento automatico, ricerca su alberi e grafi (A*), reinforcement learning. Modelli supervisionati e non supervisionati, fondamenti dell'apprendimento automatico parametrico.
Conoscenza e capacità di comprensione
Conoscenza della logica formale (proposizionale e del primo ordine), delle euristiche di ricerca, dell'algoritmo A* e del reinforcement learning. Comprensione dei modelli di Machine Learning supervisionati e non supervisionati e degli strumenti del Deep Learning (grafi computazionali e backpropagation).
Capacità di applicare conoscenza e comprensione
Essere in grado di formalizzare e risolvere problemi di IA mediante algoritmi di ricerca e soddisfacimento di vincoli, e di progettare agenti e modelli di Machine Learning con librerie standard (NumPy, scikit-learn, PyTorch), addestrando piccole reti neurali su dati reali o sintetici.
Autonomia di giudizio
Capacità di selezionare la tecnica di IA più efficace in base al contesto, di valutare algoritmi ed euristiche, di analizzare le prestazioni dei modelli (accuratezza, precisione/recall, curve ROC) diagnosticando l'overfitting, e di bilanciare esplorazione e sfruttamento nel Reinforcement Learning.
Abilità comunicative
Capacità di comunicare con rigore logico le scelte progettuali, formalizzando i problemi e discutendo le soluzioni con esperti del settore.
Capacità di apprendimento
Capacità di consultare la letteratura scientifica e di intraprendere percorsi specialistici in robotica, visione artificiale e NLP.
|
| UNIT II [INFO-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
I fondamenti dell'Intelligenza Artificiale e del Machine Learning. Logica formale e ragionamento automatico, ricerca su alberi e grafi (A*), reinforcement learning. Modelli supervisionati e non supervisionati, fondamenti dell'apprendimento automatico parametrico.
Conoscenza e capacità di comprensione
Conoscenza della logica formale (proposizionale e del primo ordine), delle euristiche di ricerca, dell'algoritmo A* e del reinforcement learning. Comprensione dei modelli di Machine Learning supervisionati e non supervisionati e degli strumenti del Deep Learning (grafi computazionali e backpropagation).
Capacità di applicare conoscenza e comprensione
Essere in grado di formalizzare e risolvere problemi di IA mediante algoritmi di ricerca e soddisfacimento di vincoli, e di progettare agenti e modelli di Machine Learning con librerie standard (NumPy, scikit-learn, PyTorch), addestrando piccole reti neurali su dati reali o sintetici.
Autonomia di giudizio
Capacità di selezionare la tecnica di IA più efficace in base al contesto, di valutare algoritmi ed euristiche, di analizzare le prestazioni dei modelli (accuratezza, precisione/recall, curve ROC) diagnosticando l'overfitting, e di bilanciare esplorazione e sfruttamento nel Reinforcement Learning.
Abilità comunicative
Capacità di comunicare con rigore logico le scelte progettuali, formalizzando i problemi e discutendo le soluzioni con esperti del settore.
Capacità di apprendimento
Capacità di consultare la letteratura scientifica e di intraprendere percorsi specialistici in robotica, visione artificiale e NLP.
|
| UNIT I [INFO-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
I fondamenti dell'Intelligenza Artificiale e del Machine Learning. Logica formale e ragionamento automatico, ricerca su alberi e grafi (A*), reinforcement learning. Modelli supervisionati e non supervisionati, fondamenti dell'apprendimento automatico parametrico.
Conoscenza e capacità di comprensione
Conoscenza della logica formale (proposizionale e del primo ordine), delle euristiche di ricerca, dell'algoritmo A* e del reinforcement learning. Comprensione dei modelli di Machine Learning supervisionati e non supervisionati e degli strumenti del Deep Learning (grafi computazionali e backpropagation).
Capacità di applicare conoscenza e comprensione
Essere in grado di formalizzare e risolvere problemi di IA mediante algoritmi di ricerca e soddisfacimento di vincoli, e di progettare agenti e modelli di Machine Learning con librerie standard (NumPy, scikit-learn, PyTorch), addestrando piccole reti neurali su dati reali o sintetici.
Autonomia di giudizio
Capacità di selezionare la tecnica di IA più efficace in base al contesto, di valutare algoritmi ed euristiche, di analizzare le prestazioni dei modelli (accuratezza, precisione/recall, curve ROC) diagnosticando l'overfitting, e di bilanciare esplorazione e sfruttamento nel Reinforcement Learning.
Abilità comunicative
Capacità di comunicare con rigore logico le scelte progettuali, formalizzando i problemi e discutendo le soluzioni con esperti del settore.
Capacità di apprendimento
Capacità di consultare la letteratura scientifica e di intraprendere percorsi specialistici in robotica, visione artificiale e NLP.
|
| 10626118 | AI LAB: COMPUTER VISION AND NLP [INFO-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
Il corso, denominato AI Lab: Computer Vision & NLP e indicato di seguito, per semplicità, come AI Lab, ha l'obiettivo di fornire agli studenti una preparazione avanzata sulla progettazione, lo sviluppo e la valutazione di sistemi intelligenti di Artificial Perception, basati sulle più moderne tecniche di Intelligenza Artificiale. Pur richiamando nel titolo la Computer Vision e il Natural Language Processing (NLP), il corso deve essere interpretato in una prospettiva più ampia come un laboratorio avanzato di Intelligenza Artificiale applicata alla comprensione di immagini, video, linguaggio e segnali eterogenei, nel quale convergono Computer Vision, analisi dei segnali, Machine Learning, Deep Learning e modelli di Intelligenza Artificiale di ultima generazione.
Il corso considera la Computer Vision come disciplina portante, estendendone tuttavia metodologie e principi all'analisi di altre sorgenti informative quali EEG, Wi-Fi sensing, segnali fisiologici e dati provenienti da sensori eterogenei, mostrando come numerosi paradigmi dell'Intelligenza Artificiale possano essere trasferiti tra differenti domini percettivi. Parallelamente vengono introdotti elementi di Natural Language Processing, evidenziando come immagini, video, linguaggio e segnali costituiscano differenti modalità attraverso cui un sistema intelligente può percepire, interpretare e comprendere il mondo circostante. Particolare attenzione viene dedicata ai principali problemi della moderna percezione artificiale, tra cui image classification, object detection, semantic e instance segmentation, image registration, tracking, change detection, saliency detection, anomaly detection, action recognition, action anticipation, scene understanding, image captioning, visual reasoning, visual grounding, image retrieval e altri problemi avanzati della moderna Computer Vision. Il corso affronta inoltre metodologie per l'analisi avanzata dei segnali e introduce concetti fondamentali per l'elaborazione intelligente di dati non strettamente visivi. Per affrontare tali problematiche vengono presentati sia approcci classici di Computer Vision ed elaborazione dei segnali, sia i più recenti paradigmi dell'Intelligenza Artificiale. Il corso introduce algoritmi hand-crafted, tecniche di Machine Learning, architetture di Deep Learning e modelli di ultima generazione, illustrando esempi rappresentativi quali Convolutional Neural Networks (CNNs), Residual Networks (ResNet), U-Net e relative varianti, Siamese Networks, Teacher–Student architectures, Graph Neural Networks (GNNs), Vision Transformers (ViTs), Foundation Models, Vision-Language Models e Large Language Models (LLMs). L'obiettivo non consiste esclusivamente nell'apprendere il funzionamento di tali modelli, ma soprattutto nello sviluppare la capacità di comprenderne criticamente principi, vantaggi, limiti e scenari di applicazione.
Un principio fondamentale del corso consiste nello sviluppare una visione critica della progettazione di sistemi intelligenti. Lo studente apprenderà che non esiste un algoritmo universalmente migliore, ma che la scelta tra approcci classici, algoritmi hand-crafted, Machine Learning, Deep Learning o Foundation Models dipende dalla natura del problema, dalla disponibilità dei dati, dai vincoli computazionali, dai requisiti di interpretabilità, dalle prestazioni richieste e dal contesto applicativo. Il corso promuove pertanto un approccio problem-driven, orientato alla selezione consapevole della metodologia più appropriata piuttosto che all'utilizzo indiscriminato di una specifica tecnologia. Il corso mantiene una forte prospettiva applicativa, mostrando come le metodologie presentate possano essere impiegate nello sviluppo di sistemi intelligenti per robotica autonoma, robot umanoidi, droni UAV, rover terrestri, robot mobili, robot subacquei (AUV/UUV), veicoli autonomi, immagini satellitari e telerilevamento, Human–Computer Interaction, biometria, medicina, monitoraggio ambientale, monitoraggio industriale, smart cities, sicurezza, difesa, ambient intelligence e numerosi altri scenari scientifici e industriali nei quali la capacità di percepire, interpretare e comprendere automaticamente il mondo circostante rappresenta un requisito fondamentale. Particolare enfasi viene infine dedicata allo sviluppo di una mentalità progettuale e scientifica. Il corso non si limita alla presentazione di tecniche consolidate, ma mira a formare studenti capaci di analizzare criticamente la letteratura scientifica internazionale, comprendere lo stato dell'arte, confrontare metodologie differenti, progettare soluzioni originali e valutarne rigorosamente le prestazioni sperimentali. L'obiettivo finale è formare professionisti e ricercatori in grado di sviluppare sistemi intelligenti innovativi, scientificamente fondati e competitivi rispetto allo stato dell'arte internazionale.
Conoscenza e capacità di comprensione
Al termine del corso lo studente avrà acquisito una conoscenza approfondita dei principali fondamenti teorici e metodologici della moderna Artificial Perception, comprendendo come immagini, video, linguaggio e segnali eterogenei possano essere elaborati mediante tecniche avanzate di Intelligenza Artificiale per estrarre informazione utile alla comprensione dell'uomo, dell'ambiente e del contesto operativo. Lo studente comprenderà i principali problemi affrontati dalla moderna Computer Vision e dall'analisi avanzata dei segnali, acquisendo conoscenze relative a classificazione, rilevamento, segmentazione, registrazione, riconoscimento di azioni, analisi del movimento, change detection, saliency detection, anomaly detection, visual reasoning, image captioning, scene understanding e altri problemi di percezione artificiale. Comprenderà inoltre i principi teorici alla base dell'elaborazione di segnali quali EEG, Wi-Fi sensing e altri segnali provenienti da sensori intelligenti, riconoscendone analogie e differenze rispetto all'elaborazione di dati visivi. Lo studente acquisirà inoltre una conoscenza approfondita delle principali famiglie di algoritmi utilizzate nella moderna Intelligenza Artificiale, comprendendo sia approcci classici e tecniche hand-crafted, sia metodi di Machine Learning, Deep Learning e modelli di ultima generazione. In particolare comprenderà i principi di funzionamento delle principali architetture neurali, tra cui CNN, ResNet, U-Net, Siamese Networks, Teacher–Student architectures, Graph Neural Networks, Vision Transformers, Foundation Models, Vision-Language Models e Large Language Models, analizzandone punti di forza, limiti e principali ambiti applicativi. Particolare attenzione sarà dedicata alla comprensione critica delle diverse metodologie, evidenziando come la scelta della soluzione più appropriata dipenda dalla natura del problema affrontato, dalla disponibilità dei dati, dalla complessità computazionale, dai vincoli hardware e dagli obiettivi applicativi. Lo studente comprenderà pertanto come algoritmi classici, approcci hand-crafted, Machine Learning, Deep Learning e Foundation Models rappresentino strumenti complementari piuttosto che soluzioni alternative universalmente valide. Infine, lo studente acquisirà una conoscenza approfondita dei principali scenari applicativi della moderna percezione artificiale, comprendendo come le tecnologie studiate possano essere utilizzate nello sviluppo di sistemi intelligenti per robotica, droni, rover, robot subacquei, immagini satellitari, Human–Computer Interaction, biometria, medicina, monitoraggio ambientale, sicurezza, difesa, smart cities e numerosi altri contesti nei quali la capacità di percepire, interpretare e comprendere automaticamente dati complessi costituisce un elemento centrale.
Capacità di applicare conoscenza e comprensione
Al termine del corso lo studente sarà in grado di progettare, sviluppare, implementare e valutare sistemi intelligenti per la percezione artificiale, applicando criticamente le conoscenze acquisite all'analisi di immagini, video, linguaggio e segnali eterogenei. Sarà in grado di affrontare problemi complessi di Computer Vision e Artificial Intelligence attraverso la progettazione di pipeline complete che comprendano acquisizione dei dati, pre-processing, rappresentazione dell'informazione, estrazione di caratteristiche, scelta del paradigma algoritmico, addestramento dei modelli, validazione sperimentale e valutazione delle prestazioni. Lo studente saprà selezionare in modo consapevole la metodologia più appropriata rispetto allo specifico problema affrontato, scegliendo criticamente tra approcci classici di Computer Vision ed elaborazione dei segnali, algoritmi hand-crafted, tecniche di Machine Learning, architetture Deep Learning e modelli di Intelligenza Artificiale di ultima generazione. Sarà inoltre in grado di motivare tale scelta sulla base delle caratteristiche del problema, della disponibilità dei dati, dei vincoli computazionali, dei requisiti di interpretabilità, della robustezza richiesta e dello scenario applicativo.
Lo studente acquisirà la capacità di progettare e implementare sistemi intelligenti per numerosi problemi della moderna percezione artificiale, quali classificazione, object detection, segmentazione, change detection, saliency detection, anomaly detection, tracking, action recognition, scene understanding, image captioning, visual reasoning, image retrieval e analisi avanzata dei segnali. Sarà inoltre in grado di applicare metodologie analoghe all'analisi di segnali EEG, Wi-Fi sensing e altri dati provenienti da sensori intelligenti, comprendendo come differenti tipologie di informazione possano essere elaborate mediante paradigmi comuni di Intelligenza Artificiale. Particolare attenzione sarà dedicata anche allo sviluppo di sistemi intelligenti per applicazioni reali quali robotica autonoma, robot umanoidi, droni UAV, rover terrestri, robot subacquei, immagini satellitari, telerilevamento, Human–Computer Interaction, biometria, medicina, sicurezza, difesa, monitoraggio ambientale e industriale, favorendo la capacità dello studente di trasferire le metodologie apprese a nuovi domini applicativi. Una parte sostanziale della verifica finale consiste nella progettazione e nello sviluppo di un progetto originale, realizzato individualmente o in gruppo, attraverso il quale lo studente dovrà dimostrare la capacità di trasformare concetti teorici in una soluzione completa, funzionante e scientificamente motivata. Il progetto prevede inoltre la redazione di una relazione tecnica in stile scientifico e la presentazione pubblica dei risultati ottenuti, favorendo l'acquisizione di competenze progettuali, sperimentali e metodologiche tipiche della ricerca moderna.
Autonomia di giudizio
Il corso mira a sviluppare nello studente una solida capacità di analisi critica e di valutazione scientifica dei sistemi intelligenti di percezione artificiale. Al termine del percorso formativo lo studente sarà in grado di analizzare criticamente algoritmi, modelli e architetture di Intelligenza Artificiale, valutandone accuratezza, robustezza, generalizzazione, interpretabilità, complessità computazionale, scalabilità e adeguatezza rispetto allo specifico scenario applicativo. Lo studente svilupperà la capacità di comprendere che non esiste una soluzione universalmente ottimale, ma che la scelta della metodologia più appropriata richiede una valutazione critica del problema, della qualità e quantità dei dati disponibili, dei vincoli tecnologici e degli obiettivi progettuali. Sarà pertanto in grado di confrontare approcci differenti, comprendendone vantaggi e limiti e motivando razionalmente le proprie decisioni progettuali. Particolare enfasi sarà posta sulla capacità di consultare autonomamente la letteratura scientifica internazionale, comprendere lo stato dell'arte, analizzare criticamente articoli scientifici e individuare possibili direzioni di miglioramento rispetto alle metodologie esistenti. Lo studente sarà pertanto in grado di distinguere tra contributi consolidati, metodologie emergenti e soluzioni sperimentali, sviluppando una mentalità orientata alla ricerca e all'innovazione.
Il corso promuove inoltre una riflessione critica sugli aspetti metodologici, sperimentali ed etici dell'Intelligenza Artificiale, affrontando temi quali qualità dei dati, bias, robustezza dei modelli, interpretabilità, riproducibilità degli esperimenti, affidabilità dei sistemi intelligenti e corretto utilizzo delle tecnologie nei diversi contesti applicativi. Tali competenze consentiranno allo studente di valutare non soltanto le prestazioni quantitative di un sistema, ma anche la sua effettiva sostenibilità scientifica, tecnologica e applicativa. Infine, il corso mira a sviluppare nello studente la capacità di proporre autonomamente nuove idee progettuali, identificare problemi di ricerca ancora aperti e progettare soluzioni innovative basate su solide motivazioni scientifiche, favorendo un approccio critico, creativo e rigoroso tipico dell'attività di ricerca e sviluppo.
Abilità comunicative
Al termine del corso lo studente sarà in grado di comunicare in modo chiaro, rigoroso e scientificamente corretto problemi, metodologie, modelli, risultati sperimentali e scelte progettuali relativi ai sistemi di percezione artificiale basati su Intelligenza Artificiale. Sarà capace di descrivere l'intero processo di progettazione di un sistema intelligente, dalla definizione del problema fino alla validazione sperimentale, illustrando criticamente le motivazioni alla base delle soluzioni adottate e discutendone vantaggi, limiti e possibili sviluppi futuri. Lo studente acquisirà la capacità di presentare e confrontare differenti paradigmi computazionali, spiegando in modo appropriato quando sia preferibile adottare algoritmi classici di Computer Vision ed elaborazione dei segnali, approcci hand-crafted, tecniche di Machine Learning, architetture Deep Learning o modelli di Intelligenza Artificiale di ultima generazione. Sarà inoltre in grado di motivare criticamente le proprie scelte progettuali sulla base delle caratteristiche del problema, dei dati disponibili, dei vincoli computazionali e degli obiettivi applicativi. Particolare attenzione sarà dedicata alla capacità di comunicare risultati sperimentali attraverso l'utilizzo di metriche di valutazione, confronti quantitativi con lo stato dell'arte, analisi statistiche, rappresentazioni grafiche e protocolli sperimentali riproducibili. Lo studente svilupperà inoltre la capacità di interpretare criticamente tali risultati, distinguendo tra miglioramenti significativi e variazioni dovute a fattori sperimentali.
Tali competenze verranno verificate principalmente attraverso la presentazione e discussione del progetto sviluppato durante il corso. Lo studente dovrà dimostrare di saper illustrare in modo chiaro e rigoroso il problema affrontato, descrivere l'architettura proposta, motivare le scelte metodologiche, confrontare criticamente la soluzione realizzata con la letteratura scientifica esistente e discutere risultati, limiti e possibili evoluzioni del lavoro svolto. Particolare attenzione sarà dedicata anche alla capacità di redigere una relazione tecnica in stile scientifico, organizzata secondo gli standard tipici della moderna ricerca internazionale nel settore dell'Artificial Intelligence.
Capacità di apprendimento
Al termine del corso lo studente avrà acquisito gli strumenti metodologici necessari per approfondire autonomamente nuove tecniche, modelli e paradigmi dell'Intelligenza Artificiale applicata alla percezione artificiale, mantenendosi costantemente aggiornato rispetto alla rapida evoluzione dello stato dell'arte. Lo studente sarà in grado di leggere, comprendere e analizzare criticamente articoli scientifici, documentazione tecnica e contributi di ricerca riguardanti Computer Vision, analisi dei segnali, Machine Learning, Deep Learning, Foundation Models, Vision-Language Models, Large Language Models e più in generale le moderne tecnologie di Artificial Intelligence. Acquisirà inoltre la capacità di trasferire metodologie consolidate verso nuovi problemi applicativi, adattando modelli e algoritmi a differenti domini percettivi e a differenti tipologie di dati.
Il corso intende fornire non soltanto conoscenze specifiche relative agli argomenti trattati durante le lezioni, ma soprattutto una metodologia di lavoro utile ad affrontare problemi complessi di progettazione, sperimentazione e ricerca. Lo studente svilupperà quindi la capacità di identificare autonomamente nuovi problemi scientifici, formulare ipotesi progettuali, selezionare criticamente le tecnologie più appropriate, progettare protocolli sperimentali rigorosi e valutare oggettivamente i risultati ottenuti. Particolare enfasi sarà dedicata allo sviluppo di una mentalità orientata all'innovazione, nella quale l'apprendimento continuo rappresenta uno strumento fondamentale per affrontare l'evoluzione estremamente rapida delle tecnologie di Intelligenza Artificiale. Lo studente acquisirà pertanto la capacità di integrare nuovi algoritmi, nuove architetture e nuovi paradigmi computazionali all'interno delle proprie competenze, mantenendo un approccio scientificamente rigoroso e criticamente consapevole. Al termine del percorso formativo lo studente sarà quindi in grado di proseguire autonomamente il proprio percorso di aggiornamento scientifico e professionale, affrontando con competenza sia attività di ricerca sia attività di sviluppo industriale nell'ambito della Computer Vision, dell'analisi avanzata dei segnali e, più in generale, della moderna Artificial Intelligence.
|
| 10630245 | DATA MANAGEMENT AND ANALYSIS [INFO-01/A] [ENG] | 2º | 2º | 12 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| UNIT II [INFO-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| UNIT I [INFO-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Obiettivi formativi
L'insegnamento fornisce le conoscenze e gli strumenti fondamentali per la gestione, l'analisi e l'interpretazione dei dati. Il corso introduce le principali fasi di una pipeline di analisi dei dati, dalla raccolta e preparazione dei dati fino alla modellazione, visualizzazione e comunicazione dei risultati. Particolare attenzione è dedicata alle metodologie di data mining, alle tecniche di segmentazione, clustering e classificazione, nonché ai concetti fondamentali della network science. Il corso affronta inoltre le principali problematiche etiche e di privacy associate all'utilizzo dei dati digitali.
Conoscenza e capacità di comprensione
Al termine dell'insegnamento lo studente conoscerà i principi fondamentali dell'analisi dei dati, le principali tecniche di data mining e i concetti di base relativi alla rappresentazione, gestione e visualizzazione dei dati. Lo studente comprenderà il ruolo delle diverse fasi della pipeline di analisi e i fondamenti dell'analisi delle reti complesse.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di raccogliere, preparare e analizzare dati provenienti da differenti fonti, applicare tecniche di segmentazione, clustering e classificazione, utilizzare strumenti software per l'analisi e la visualizzazione dei dati e interpretare correttamente i risultati ottenuti. Sarà inoltre in grado di applicare metriche e strumenti di base della network science per l'analisi di sistemi interconnessi.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente la qualità dei dati, selezionare metodologie appropriate per specifici problemi analitici e interpretare i risultati alla luce dei limiti e delle assunzioni dei modelli utilizzati. Sarà inoltre in grado di considerare le implicazioni etiche e di privacy connesse alla raccolta e all'utilizzo dei dati.
Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente risultati quantitativi mediante visualizzazioni appropriate, relazioni tecniche e presentazioni orali, utilizzando una terminologia corretta e adeguata al contesto applicativo.
Capacità di apprendimento
Lo studente acquisirà le basi metodologiche necessarie per approfondire autonomamente tecniche avanzate di analisi dei dati, machine learning e network science, nonché per affrontare successivi insegnamenti e applicazioni professionali nel campo della data science.
|
| 10628637 | STATISTICS [STAT-01/A] [ENG] | 2º | 2º | 6 |
Obiettivi formativi Conoscenza e capacità di comprensione
Lo studente acquisirà le conoscenze fondamentali della statistica descrittiva, del calcolo delle probabilità e dell'inferenza statistica. Comprenderà i principali modelli statistici — regressione lineare semplice e multipla, regressione logistica — e sarà in grado di interpretarne i risultati in modo rigoroso.
Capacità di applicare conoscenza e comprensione
Lo studente sarà in grado di applicare le tecniche statistiche apprese all'analisi di dati reali, scegliendo le misure di sintesi, i test di ipotesi e i modelli di regressione più appropriati al contesto. Utilizzerà il software R per l'implementazione pratica delle metodologie studiate.
Autonomia di giudizio
Lo studente svilupperà la capacità di valutare criticamente i risultati di un'analisi statistica, riconoscendo i limiti dei modelli, verificando le assunzioni e interpretando correttamente indici, stime e test in relazione al problema applicativo.
Abilità comunicative
Lo studente acquisirà la capacità di presentare e comunicare i risultati di un'analisi statistica in modo chiaro e preciso, sia in forma scritta che orale, utilizzando la terminologia tecnica appropriata e adattando il livello di dettaglio all'interlocutore.
Capacità di apprendimento
Lo studente svilupperà strumenti metodologici che gli consentiranno di approfondire autonomamente argomenti avanzati di statistica e di affrontare nuovi problemi di analisi dei dati, anche in contesti interdisciplinari come l'informatica e l'intelligenza artificiale.
|
| 10629654 | FOUNDATIONS OF COMPUTER SCIENCE [INFO-01/A] [ENG] | 3º | 1º | 6 |
Obiettivi formativi Obiettivi generali:
Durante il corso saranno introdotti i più importanti risultati dell’Informatica teorica: a partire dai fondamentali risultati in teoria della calcolabilità degli anni trenta, passando per quelli in teoria degli automi degli anni cinquanta per arrivare al problema aperto P contenuto o uguale a NP, esplicitamente sollevato negli anni settanta.
Obiettivi specifici:
Gli studenti capiranno che ci sono diversi modelli di computazione e cosa ne determina il potere computazionale.
Gli studenti apprenderanno concetti astratti come classi di linguaggi, macchine universali, riducibilità e sapranno che alcuni problemi non possono essere risolti con un calcolatore e che altri sono computazionalmente difficili da risolvere o addirittura così difficili da poter essere considerati non risolvibili. Faremo vedere come alcuni di questi risultati sono utilizzati oggi.
Conoscenza e comprensione:
Al termine del corso gli studenti conosceranno i metodi e risultati di base della della teoria degli automi, della calcolabilità e della complessità e sapranno applicarli per individuare la complessità di problemi in diversi campi. In particolare sapranno:
dimostrare l’equivalenza tra le diverse caratterizzazioni dei linguaggi regolari
dimostrare l’equivalenza tra le diverse caratterizzazioni dei linguaggi context-free
spiegare il concetto di non determinismo
giustificare l'esistenza di problemi privi di soluzioni algoritmiche o intrattabili.
Applicazione di conoscenza e comprensione:
Gli studenti impareranno:
come costruire automi finiti (deterministici e non) da una specifica (formale o informale)
come costruire automi a pila (deterministici e non) da una specifica (formale o informale)
a usare la riducibilità tra problemi per dimostrarne la decidibilità o l'indecidibilità
a usare la riducibilità polinomiale per provare la NP-hardness di un problema
Autonomia di giudizio:
Capire il giusto livello di astrazione utile per risolvere un problema, scegliere il modello computazionale più conveniente in un determinato contesto applicativo.
Abilità comunicative:
descrivere un linguaggio formale, a parole o attraverso uno degli strumenti offerti di descrizione finita, descrivere problemi indecidibili, intrattabili o trattabili, spiegare il significato e la rilevanza delle classi P ed NP nonché del problema “P=NP?"
Capacità di apprendimento:
Lo studente sarà in grado di imparare altri modelli computazionali, sia completamente diversi da quelli studiati durante il corso, sia variazioni di questi. Egli sarà capace di capire nuove prove di NP-completezza o più in generale prove di completezza per una qualunque classe di complessità
|
| Elective course [N/D] [ENG] | 3º | 2º | 12 |
Obiettivi formativi Gli obiettivi formativi coincidono con quelli degli insegnamenti scelti dallo studente tra le attività formative a scelta previste dal Corso di Studio.
|
| AAF2604 | INTERNSHIP [N/D] [ENG] | 3º | 2º | 15 |
Obiettivi formativi La formazione si completa con un tirocinio, svolto presso aziende ed enti del settore informatico oppure internamente al Corso di Studio. Le attività possono riguardare l'analisi, la progettazione e lo sviluppo software, l'analisi dei dati, l'intelligenza artificiale, i sistemi e le reti, oppure l'approfondimento di tematiche avanzate. Il tirocinio ha una durata indicativa di tre mesi e prevede che allo studente sia affidato un problema reale da affrontare mediante lo sviluppo di un progetto.
|
| AAF2608 | FINAL EXAM [N/D] [ENG] | 3º | 2º | 3 |
Obiettivi formativi La formazione si completa con un tirocinio, che può essere svolto esternamente presso aziende del settore informatico—tipicamente con attività di analisi, progettazione e sviluppo software, analisi dati, intelligenza artificiale, sistemi e reti—oppure internamente, approfondendo tematiche avanzate. In entrambi i casi, il tirocinio ha una durata di circa tre mesi e prevede l’assegnazione allo studente di un problema reale, da affrontare attraverso lo sviluppo di un progetto realizzato con un approccio professionale.
|
| Gruppo opzionale: Applied Computer Science | | | |
| Gruppo opzionale: Law and Economics | | | |