Corso di laurea
Ingegneria informatica e robotica
Università degli Studi di Perugia · 42 materie · 0 file condivisi
Il Corso di Studio in Ingegneria Informatica e Robotica è attivo dall'Anno Accademico 2016-17, come trasformazione del precedente CdS in Ingegneria Informatica e dell'Automazione (classe LM32).
Il Corso intende formare esperti in settori di grande attualità e in forte espansione nella classe dell'Ingegneria Informatica, quali quelli della elaborazione ed estrazione di informazione da grandi moli di dati (Big Data e Data Science), e degli strumenti e tecnologie per la Robotica Avanzata, sia per applicazioni industriali, sia per contesti civili e di servizio, nei quali si inquadrano figure professionali tra le più ricercate nell'odierno mercato del lavoro.
Alcuni degli obiettivi qualificanti del corso di studio sono:
- progettazione e gestione di sistemi e servizi informatici, con particolare attenzione al trattamento di grandi moli di dati;
- gestione degli aspetti di sicurezza informatica e sicurezza nazionale;
- capacità di analisi di reti di dati e di reti sociali;
- progettazione, configurazione e manutenzione di reti di calcolatori, anche per applicazioni di cloud computing;
- progettazione e realizzazione di sistemi a guida autonoma (droni e altri veicoli autonomi);
- progettazione e realizzazione di sistemi per l'automazione industriale e la domotica;
- progettazione di sistemi biomedicali;
- progettazione e realizzazione di soluzioni e servizi per la bioinformatica e la biologia computazionale.
Pagina web del Corso di Studi relativa all'offerta formativa
Sfoglia il materiale didattico
Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!
Materie del corso
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche di base sui linguaggi e le grammatiche formali, sui relativi modelli di calcolo, sull'analisi di complessità di algoritmi e problemi e sulla…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche di base sui linguaggi e le grammatiche formali, sui relativi modelli di calcolo, sull'analisi di complessità di algoritmi e problemi e sulla progettazione di tecniche algoritmiche avanzate per problemi computazionalmente difficili, incluse nozioni su algoritmi parametrizzati. Durante il corso lo studente acquisisce: (a) conoscenza dei fondamenti teorici sui linguaggi formali di programmazione e dei relativi formalismi per la loro descrizione; (b) conoscenza dei vari modelli di calcolo per il riconoscimento delle diverse tipologie di linguaggi formali; (c) comprensione dei limiti degli attuali modelli di calcolo e dell'espressività delle relative tecniche algoritmiche; (d) capacità di classificare problemi di natura teorica e applicativa sulla base della loro difficoltà computazionale; (e) capacità di concepire tecniche algoritmiche euristiche o esatte per la risoluzione di problemi computazionalmente difficili.
Programma
Linguaggi e grammatiche. Modelli di calcolo. Teoria della complessità. Tecniche algoritmiche per problemi NP-hard. Fondamenti di complessità parametrica. Applicazioni.
[Conoscenze e competenze logico-matematiche]. Lo studente deve possedere buone capacità logico-matematiche, tipicamente acquisite nei corsi di analisi matematica e di geometria/algebra. Conoscenze in ambito di matematica discreta possono altresì essere di aiuto nella comprensione di alcuni argomenti. È richiesta la conoscenza di tecniche dimostrative di base nel campo della matematica, e in particolare le tecniche di dimostrazione per induzione, per assurdo e per costruzione. [Conoscenze e competenze informatiche]. Sono richieste conoscenze di base relativamente alla progettazione e all'analisi di algoritmi, nonché conoscenze di programmazione imperativa e ad oggetti, impartite negli insegnamenti di Fondamenti di Informatica.
Il corso si articola in due principali blocchi di lezioni. (i) Nel primo blocco, che copre circa l'85% delle ore di lezione complessive, vengono svolte lezioni frontali in aula. Ogni lezione consiste, per circa il 50% della sua durata, nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di slide. Il restante 50% della lezione è dedicato allo svolgimento guidato di esercizi sulle nozioni teoriche precedentemente illustrate, con l'obiettivo di consolidare la comprensione da parte dello studente e di aumentare le sue capacità di applicare tali nozioni alla risoluzione di problemi. (ii) Nel secondo blocco, che copre circa il 15% delle ore di lezione complessive, vengono discusse applicazioni delle nozioni illustrate nel primo blocco. Alcune di queste lezioni si svolgono nel laboratorio di ingegneria del software, prevedendo anche la progettazione e l'implementazione di algoritmi sotto la guida del docente.
[Parte I - Linguaggi e grammatiche]. Alfabeti e linguaggi. Espressioni regolari. Grammatiche di Chomsky. [Parte II - Modelli di calcolo]. Linguaggi regolari: automi a stati finiti deterministici e non deterministici, proprietà dei linguaggi regolari (pumping lemma, proprietà di chiusura, predicati decidibili), il teorema di Myhill-Nerode. Linguaggi context-free: automi a pila deterministici e non deterministici, proprietà dei linguaggi context-free (pumping lemma, proprietà di chiusura, predicati decidicibili), grammatiche e linguaggi ambigui. Macchine di Turing deterministiche, non deterministiche e multinastro. Composizione di macchine di Turing. La macchina di Turing Universale. Problemi indecidibili: il teorema della fermata. Macchine a registri a costi logaritmici e a costi uniformi. Correlazione tra macchine di Turing e macchine a registri. [Parte III - Teoria della complessità]. Classi di problemi. Complessità temporale e spaziale dei problemi. Classi notevoli di complessità. Karp-riducibilità. Problemi NP-hard e NP-completi. Esempi di problemi NP-hard e prove di riduzione: CIRCUIT-SAT, SAT, 3CNF-SAT, CLIQUE, VERTEX-COVER. [Parte IV - Tecniche algoritmiche per problemi NP-hard]. Ulteriori problemi NP-hard e NP-completi (TSP geometrico, Bisaccia a valori interi, MaxCut). Algoritmi euristici. Algoritmi di approssimazione. Algoritmi di backtracking per problemi di ricerca. Algoritmi di branch and bound per problemi di ottimizzazione. Complessità parametrica, parametri strutturali, tecniche di programmazione dinamica, kernelizzazione. [Parte V - Applicazioni]. Uso di espressioni regolari per ricerca di pattern testuali: la notazione POSIX. Automi a stati finiti per ricerche di parole chiave nei testi: implementazione di un programma di simulazione di automi a stati finiti non deterministici. Cenni alle applicazioni delle grammatiche context-free: cenni all'architettura e alle tipologie di parser; generatori automatici di parser; uso di YACC per la generazione automatica di parser a partire da una grammatica.
Modalità d'esame
[Obiettivi della valutazione.] I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché le sue capacità di applicare tali conoscenze per la risoluzione di problemi teorici e applicativi. I tipi di prove previste per la valutazione sono descritti di seguito. Per ciascuna di esse vengono forniti dettagli sulla durata, struttura, punteggio e obiettivi specifici. (i) Esame scritto di natura teorica e applicativa Durata: 120 minuti Struttura: esercizi di natura teorica e applicativa Punteggio: 30/30 (ogni esercizio ha lo stesso peso). Obiettivo: verificare le conoscenze acquisite in merito alle varie nozioni teoriche dell'insegnamento e la capacità di applicare tali nozioni alla risoluzione di problemi relativi ai linguaggi formali, alla progettazione di modelli di calcolo, all'analisi di complessità di algoritmi e problemi, e alla progettazione di algoritmi avanzati. (ii) La correzione della prova scritta viene presentata allo studente nell'ambito di un breve colloquio, in cui lo studente può eventualmente confutare il giudizio del docente. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Libro di testo: Giorgio Ausiello, Fabrizio D'Amore, Giorgio Gambosi, "Linguaggi, Modelli, Complessità", Ed. Franco Angeli. Dispense: a cura del docente. Ulteriori letture: Rodney G. Downey, Michael R. Fellows: Fundamentals of Parameterized Complexity. Texts in Computer Science, Springer 2013, ISBN 978-1-4471-5558-4, pp. I-SSS, 3-707
Codice insegnamento 436147
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche di base sui linguaggi e le grammatiche formali, sui relativi modelli di calcolo, sull'analisi di complessità di algoritmi e problemi e sulla…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche di base sui linguaggi e le grammatiche formali, sui relativi modelli di calcolo, sull'analisi di complessità di algoritmi e problemi e sulla progettazione di tecniche algoritmiche avanzate per problemi computazionalmente difficili, incluse nozioni su algoritmi parametrizzati. Durante il corso lo studente acquisisce: (a) conoscenza dei fondamenti teorici sui linguaggi formali di programmazione e dei relativi formalismi per la loro descrizione; (b) conoscenza dei vari modelli di calcolo per il riconoscimento delle diverse tipologie di linguaggi formali; (c) comprensione dei limiti degli attuali modelli di calcolo e dell'espressività delle relative tecniche algoritmiche; (d) capacità di classificare problemi di natura teorica e applicativa sulla base della loro difficoltà computazionale; (e) capacità di concepire tecniche algoritmiche euristiche o esatte per la risoluzione di problemi computazionalmente difficili.
Programma
Linguaggi e grammatiche. Modelli di calcolo. Teoria della complessità. Tecniche algoritmiche per problemi NP-hard. Fondamenti di complessità parametrica. Applicazioni.
[Conoscenze e competenze logico-matematiche]. Lo studente deve possedere buone capacità logico-matematiche, tipicamente acquisite nei corsi di analisi matematica e di geometria/algebra. Conoscenze in ambito di matematica discreta possono altresì essere di aiuto nella comprensione di alcuni argomenti. È richiesta la conoscenza di tecniche dimostrative di base nel campo della matematica, e in particolare le tecniche di dimostrazione per induzione, per assurdo e per costruzione. [Conoscenze e competenze informatiche]. Sono richieste conoscenze di base relativamente alla progettazione e all'analisi di algoritmi, nonché conoscenze di programmazione imperativa e ad oggetti, impartite negli insegnamenti di Fondamenti di Informatica.
Il corso si articola in due principali blocchi di lezioni. (i) Nel primo blocco, che copre circa l'85% delle ore di lezione complessive, vengono svolte lezioni frontali in aula. Ogni lezione consiste, per circa il 50% della sua durata, nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di slide. Il restante 50% della lezione è dedicato allo svolgimento guidato di esercizi sulle nozioni teoriche precedentemente illustrate, con l'obiettivo di consolidare la comprensione da parte dello studente e di aumentare le sue capacità di applicare tali nozioni alla risoluzione di problemi. (ii) Nel secondo blocco, che copre circa il 15% delle ore di lezione complessive, vengono discusse applicazioni delle nozioni illustrate nel primo blocco. Alcune di queste lezioni si svolgono nel laboratorio di ingegneria del software, prevedendo anche la progettazione e l'implementazione di algoritmi sotto la guida del docente.
[Parte I - Linguaggi e grammatiche]. Alfabeti e linguaggi. Espressioni regolari. Grammatiche di Chomsky. [Parte II - Modelli di calcolo]. Linguaggi regolari: automi a stati finiti deterministici e non deterministici, proprietà dei linguaggi regolari (pumping lemma, proprietà di chiusura, predicati decidibili), il teorema di Myhill-Nerode. Linguaggi context-free: automi a pila deterministici e non deterministici, proprietà dei linguaggi context-free (pumping lemma, proprietà di chiusura, predicati decidicibili), grammatiche e linguaggi ambigui. Macchine di Turing deterministiche, non deterministiche e multinastro. Composizione di macchine di Turing. La macchina di Turing Universale. Problemi indecidibili: il teorema della fermata. Macchine a registri a costi logaritmici e a costi uniformi. Correlazione tra macchine di Turing e macchine a registri. [Parte III - Teoria della complessità]. Classi di problemi. Complessità temporale e spaziale dei problemi. Classi notevoli di complessità. Karp-riducibilità. Problemi NP-hard e NP-completi. Esempi di problemi NP-hard e prove di riduzione: CIRCUIT-SAT, SAT, 3CNF-SAT, CLIQUE, VERTEX-COVER. [Parte IV - Tecniche algoritmiche per problemi NP-hard]. Ulteriori problemi NP-hard e NP-completi (TSP geometrico, Bisaccia a valori interi, MaxCut). Algoritmi euristici. Algoritmi di approssimazione. Algoritmi di backtracking per problemi di ricerca. Algoritmi di branch and bound per problemi di ottimizzazione. Complessità parametrica, parametri strutturali, tecniche di programmazione dinamica, kernelizzazione. [Parte V - Applicazioni]. Uso di espressioni regolari per ricerca di pattern testuali: la notazione POSIX. Automi a stati finiti per ricerche di parole chiave nei testi: implementazione di un programma di simulazione di automi a stati finiti non deterministici. Cenni alle applicazioni delle grammatiche context-free: cenni all'architettura e alle tipologie di parser; generatori automatici di parser; uso di YACC per la generazione automatica di parser a partire da una grammatica.
Modalità d'esame
[Obiettivi della valutazione.] I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché le sue capacità di applicare tali conoscenze per la risoluzione di problemi teorici e applicativi. I tipi di prove previste per la valutazione sono descritti di seguito. Per ciascuna di esse vengono forniti dettagli sulla durata, struttura, punteggio e obiettivi specifici. (i) Esame scritto di natura teorica e applicativa Durata: 120 minuti Struttura: esercizi di natura teorica e applicativa Punteggio: 30/30 (ogni esercizio ha lo stesso peso). Obiettivo: verificare le conoscenze acquisite in merito alle varie nozioni teoriche dell'insegnamento e la capacità di applicare tali nozioni alla risoluzione di problemi relativi ai linguaggi formali, alla progettazione di modelli di calcolo, all'analisi di complessità di algoritmi e problemi, e alla progettazione di algoritmi avanzati. (ii) La correzione della prova scritta viene presentata allo studente nell'ambito di un breve colloquio, in cui lo studente può eventualmente confutare il giudizio del docente. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Libro di testo: Giorgio Ausiello, Fabrizio D'Amore, Giorgio Gambosi, "Linguaggi, Modelli, Complessità", Ed. Franco Angeli. Dispense: a cura del docente. Ulteriori letture: Rodney G. Downey, Michael R. Fellows: Fundamentals of Parameterized Complexity. Texts in Computer Science, Springer 2013, ISBN 978-1-4471-5558-4, pp. I-SSS, 3-707
Codice insegnamento 436150
Il corso presenta le tecniche di base e avanzate per l'Elaborazione Digitale dei Segnali mono e bidimensionali (immagini) e fornisce assieme agli elementi di teoria, la conoscenza di alcuni strumenti software (Matlab)…
Scheda dell'insegnamento
Obiettivi formativi
Il corso presenta le tecniche di base e avanzate per l'Elaborazione Digitale dei Segnali mono e bidimensionali (immagini) e fornisce assieme agli elementi di teoria, la conoscenza di alcuni strumenti software (Matlab) per la applicazione delle tecniche stesse. Il corso assume siano già acquisiti i concetti di Segnale e Sistema tempo discreti, Trasformata di Fourier e di Filtro FIR, concetti questi introdotti nel corso di Teoria dei Segnali, ritenuto assolutamente propedeutico. Al termine del corso gli studenti saranno in grado di: Comprendere e progettare sistemi di quantizzazione ottima e non lineare con gli strumenti software di progettazione (es. Matlab) per segnali mono e bidimensionali (HDR imaging) Comprendere, simulare e Progettare (Matlab) schemi di stima spettrale basati sull'impiego di DFT/FFT sia per segnali stazionari che per segnali non stazionari. Comprendere, simulare e Progettare (Matlab) schemi di conversione della frequenza di campionamento con tecnica diretta e polifase. Applicazioni ai segnali mono e bidimensionali (image rescaling) Comprendere, simulare e Progettare (Matlab) algoritmi di Elaborazioni delle Immagini
Programma
Il corso si articola in alcune unità didattiche: Modulo didattico: Quantizzazione del segnale ottimale e non lineare (12 ore) Modulo didattico: trasformata discreta di Fourier e stima spettrale (12 ore) Modulo Didattico: Trasformata Z e Funzione di Trasferimento (12 ore) Modulo Didattico: Interpolazione, Decimazione e Rate Conversion (12 ore) Modulo didattico: elaborazione digitale delle immagini (24 ore)
Teoria dei segnali Teoria dei sistemi Elettronica dei sistemi digitali Fondamenti di telecomunicazioni Teoria della probabilità e della misurazione Architetture dei calcolatori e sistemi operativi Signal Theory System Theory Digital Systems Electronic Telecommunication Basics Measurement and Probability Theory Computer Architecture and Operating Systems
Le lezioni si svolgono con didattica frontale di tipo teorico con Slides e integrazione alla lavagna degli argomenti e con lo svolgimento di esercizi di natura progettuale. Sono fortemente incoraggiate le domande e gli interventi da parte degli studenti in modaltà interattiva durante tutta la lezione. Per ogni Unità didattica sono poi svolte esercitazioni in Matlab sui temi di riferimento dell'Unità Didattica stessa. Lectures are based on a presentation of PowerPoint Slides integrated with blackboard examples and design exercises. Interactivity with students is highly encouraged throughout the whole lecture. For each module Matlab Exercises are carried out for theory refinement and applications.
Modulo didattico: Quantizzazione del segnale ottimale e non lineare (12 ore) Tipi di segnale: monodimensionale – bidimensionale, acquisizione del segnale. Formati numerici a virgola fissa ea virgola mobile. Quantizzazione lineare, gamma dinamica e rapporto segnale/rumore di quantizzazione (SQNR) in funzione del segnale di ingresso pdf Quantizzazione ottimale – Implementazione con companding – Quantizzazione non lineare completamente digitale con LUT – Applicazioni – Esercizi Matlab Applicazioni all'elaborazione delle immagini (HDR) Modulo Didattico: Trasformata Discreta di Fourier e Stima Spettrale (12 Ore) DTFT (Discrete Time Fourier Transform) – Spettro di frequenza di segnali discreti. Campionamento in frequenza di DTFT – DFT e IDFT. Trasformata di Fourier veloce FFT. Circular Convolution, implementazione di Circular Convolution con Linear Convolution e Circular Prefix Analisi spettrale di segnali deterministici - DFT/FFT per l'analisi spettrale di segnali stazionari - Effetto del campionamento del segnale - Finestratura, estensione periodica ed estrapolazione - Effetto del campionamento dello spettro - Effetti della finestratura: dispersione e perdita di risoluzione - Progettazione di una stima spettrale Software con prestazioni assegnate DFT/FFT per l'analisi spettrale di segnali non stazionari. Spettrogramma. Esercizio MatLab. Trasformazioni discrete per l'elaborazione delle immagini Modulo Didattico: Trasformate z e Funzioni di Trasferimento (12 ore) Proprietà principali. Regione di convergenza (RoC), causalità e stabilità. Spettro di frequenza – relazione con DTFT. Trasformata Z inversa Descrizioni equivalenti di sistemi a tempo discreto, funzione di trasferimento – risposta sinusoidale, risposta a tempo stazionario, risposta transitoria. Progettazione di filtri IIR con posizionamento Pole-Zero: filtri del primo ordine, filtri parametrici, filtri Notch e Comb. Esercizio MatLab Modulo Didattico: Interpolazione, Decimazione e Rate Conversion (12 Ore) Interpolazione e sovracampionamento. Progettazione di filtri di interpolazione – Interpolatori polifase. Equalizzazione DAC, interpolazione multistadio. Decimazione, progettazione del filtro di decimazione. Convertitori di frequenza di campionamento L/M. Implementazione multistadio. Esercizio Matlab Applicazione all'elaborazione delle immagini Modulo didattico: Digital Image Processing (24 ore) Panoramica delle operazioni di elaborazione delle immagini: operazioni globali (punto), operazioni orientate al vicinato, operazioni che combinano più immagini, operazioni in un dominio di trasformazione. Matlab Image processing Toolbox Operazioni geometriche, trasformazioni a livello di grigio, elaborazione di istogrammi, elaborazione di vicinato, filtraggio nel dominio di frequenza. Applicazioni: image Restoration, elaborazione di immagini a colori
Modalità d'esame
Il test finale dell'esame è costituito se due test separati: 1) Una progetto di signal processing al PC (Matlab) 2) Un esame orale
Testi di riferimento
Testi di riferimento TESTI_RIF Sì S. ORFANIDIS, “INTRODUCTION TO SIGNAL PROCESSING”, PRENTICE HALL OGE MARQUES, “PRACTICAL IMAGE AND VIDEO PROCESSING USING MATLAB”, IEEE PRESS S. ORFANIDIS, “INTRODUCTION TO SIGNAL PROCESSING”, PRENTICE HALL OGE MARQUES, “PRACTICAL IMAGE AND VIDEO PROCESSING USING MATLAB”, IEEE PRESS
Codice insegnamento 436149
Conoscenza di base di: problematiche connesse alla progettazione di sistemi elettronici embedded; tecniche dedicate alla riduzione del consumo di potenza; problemi legati alla temporizzazione e al sincronismo nei…
Scheda dell'insegnamento
Obiettivi formativi
- Conoscenza di base di: problematiche connesse alla progettazione di sistemi elettronici embedded; tecniche dedicate alla riduzione del consumo di potenza; problemi legati alla temporizzazione e al sincronismo nei circuiti digitali; architettura di alcuni blocchi funzionali dei sistemi. - Abilità: nella scelta di tecnologie e blocchi funzionali di un sistema embedded; nell’utilizzo di alcuni strumenti software dedicati alla progettazione e verifica di circuiti/sistemi digitali su FPGA. - L'insegnamento, inoltre, contribuisce al conseguimento dei seguenti risultati di apprendimento: elaborare e/o applicare idee originali in contesti diversi; risolvere problemi in ambienti nuovi e/o interdisciplinari; motivare le scelte progettuali compiute evidenziando possibili criticità; integrare le conoscenze e gestire la complessità.
Programma
Sistemi Embedded: aspetti generali. Architettura: elaborazione e comunicazione. Tecnologie e dispositivi per realizzare i circuiti di elaborazione. Temporizzazione e Sincronismo nei sistemi digitali. Progettazione e coprogettazione. Esercitazioni guidate di laboratorio su FPGA.
Per frequentare il laboratorio bisogna aver concluso il corso sulla sicurezza nei luoghi di lavoro. Al fine di comprendere i contenuti presentati e conseguire gli obiettivi di apprendimento è sufficiente possedere una conoscenza di base di Elettronica/Elettronica digitale, algebra booleana, architetture dei calcolatori e sistemi operativi.
L’insegnamento è organizzato come segue: - lezioni frontali in aula; - lezioni frontali a carattere seminariale - esercitazioni guidate presso il Laboratorio Multidisciplinare sulla programmazione di un FPGA. Gli studenti seguiranno 10 esercitazioni di laboratorio. Strumenti di supporto alla didattica: lavagna e PC + proiettore, PC, schede di sviluppo per FPGA.
Introduzione (1.2 CFU) Presentazione dell’insegnamento: contenuti, obiettivi formativi, materiale didattico e modalità di verifica del profitto. Sistemi Embedded (SE): caratteristiche principali (SE-> M2M -> IoT -> CPS), mercato, evoluzione, ambiti applicativi. Metriche di progetto. Evoluzione dei sistemi (1CFU) System on Board (SoB), System on Chip (SoC) e System in Package (SiP). Sistemi digitali e sistemi misti (analogico-digitale): esempi di architettura e tecniche di implementazione. Package: materiali, livelli di interconnessioni, package tradizionali e nuovi tipi di package, considerazioni termiche, evoluzione. Circuiti dedicati alla generazione dei segnali di alimentazione e di riferimento nei SoB e nei chip. Consumo di potenza: tecniche di progettazione dedicate alla riduzione a livello di circuito e di sistema nei SoC. Architettura dei SE (2.5 CFU): SoB (componenti, supporto e approccio alla progettazione), SoC (approccio alla progettazione. Connessioni: parassiti, robustezza e prestazioni. Cenni sui modelli elettrici. Prospettive future: Network on Chip (NoC) e sistemi distribuiti (definizione). Piattaforme di prototipazione. Tecnologie e dispositivi dei circuiti di elaborazione: tecnologie hardware (ASIC e circuiti programmabili) e processori (cenni su General Purpose Processor (GPP), Application Specific Instruction set Processors (ASIP) e Single-Purpose Processors (SPP)). Temporizzazione e sincronismo (1.3 CFU): introduzione. Skew e jitter. Principio di funzionamento e architettura del DLL e del PLL. Flusso di progettazione (3 CFU) Concetto di co-progettazione, sviluppo dell'hardware e sviluppo del software. Verifica dei sistemi embedded. Progettazione assistita dal calcolatore: introduzione all'architettura e alla progettazione su FPGA con esercitazioni guidate di laboratorio. Introduzione al linguaggio VHDL.
Modalità d'esame
La verifica dell’apprendimento prevede: i) una prova orale (0-16 punti; max 30 min) ii) la stesura e la discussione di una relazione di laboratorio / progetto su FPGA (0 - 15 punti, 9 è il punteggio minimo per superare la prova; durata della prova: 15 min). La prova orale prevede: i) domande teoriche relative agli argomenti presentati in aula volte ad accertare la conoscenza e comprensione da parte dello studente, nonché la capacità di esporne il contenuto; ii) domande più applicative, relative all’utilizzo delle conoscenze acquisite per la soluzione di casi pratici. La prova orale è finalizzata alla verifica della acquisizione da parte dello studente delle metodologie e degli strumenti per la progettazione di circuiti/sistemi su FPGA e della capacità di giustificare scelte progettuali. La prova orale consentirà, inoltre, al docente di valutare la capacità di comunicazione e la proprietà di linguaggio e organizzazione autonoma dell’esposizione dell’allievo. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina https://www.unipg.it/disabilita-e-dsa.
Testi di riferimento
TESTI DI RIFERIMENTO: - Brandolese, Fornaciari, "Sistemi Embedded", Prentice Hall, 2007. - J.Catsoulis, “Embedded Hardware”, O’Reilly. - J. Rabaey, A. Chandrakasan and B. Nikolic, "Digital Integrated Circuits: A Design Perspective", 2/e, Prentice Hall 2003. -Rabaey, Jan, “Low Power Design Essentials Low Power Design Essentials”, Springer. - Pong P. Chu, “FPGA Prototyping by VHDL Examples: Xilinx MicroBlaze MCS SoC, 2nd Edition”, Wiley, 2017. - Dispense a cura del docente disponibili su UNISTUDIUM - PIATTAFORMA DI ELEARNING DELL'UNIVERSITÀ DEGLI STUDI DI PERUGIA (https://www.unistudium.unipg.it/ ).
Codice insegnamento 436151
Conoscenza dei metodi per esprimere la posa di un corpo rigido. Conoscenza del modello cinematico di un manipolatore. Conoscenza dei principali sensori ed attuatori utilizzati nell’ambito della robotica industriale.…
Scheda dell'insegnamento
Obiettivi formativi
Conoscenza dei metodi per esprimere la posa di un corpo rigido. Conoscenza del modello cinematico di un manipolatore. Conoscenza dei principali sensori ed attuatori utilizzati nell’ambito della robotica industriale. Conoscenza del software ROS.
Programma
Cinematica, sensori attuatori, ROS.
Al fine di comprendere i contenuti presentati nel corso e conseguire gli obiettivi di apprendimento è utile possedere una buona conoscenza di Algebra lineare, Analisi e Fisica (Meccanica).
L’insegnamento è organizzato come segue: - lezioni frontali in aula; - lezioni frontali a carattere seminariale; - esercitazioni guidate. Strumenti di supporto alla didattica: lavagna, PC, proiettore.
Introduzione alla robotica Struttura meccanica dei manipolatori, Attuatori, Sensori Posizione e orientamento di un corpo rigido Cinematica diretta, Cinematica inversa analitica e numerica, Cinematica differenziale diretta ed inversa. Utilizzo del software ROS.
Modalità d'esame
L’esame è orale e consiste con la presentazione e la discussione di alcune esercitazioni assegnate durante il corso. L’esame prosegue con domande su tutto il programma del corso.
Testi di riferimento
Robotica. Modellistica, pianificazione e controllo. Terza edizione, Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo, McGraw-Hill, ISBN: 9788838663222
Codice insegnamento 436153
Comprendere i concetti fondamentali della teoria dell’informazione. Progettare schemi di codifica di sorgente. Comprendere i concetti fondamentali di teoria della stima e della decisione. Progettare stimatori e…
Scheda dell'insegnamento
Obiettivi formativi
Comprendere i concetti fondamentali della teoria dell’informazione. Progettare schemi di codifica di sorgente. Comprendere i concetti fondamentali di teoria della stima e della decisione. Progettare stimatori e decisori ottimi per l’elaborazione di informazione e dati.
Programma
Elementi di teoria dell’informazione, elementi di codifica di sorgente, elementi di teoria della stima, elementi di teoria della decisione.
Nessun prerequisito obbligatorio. Tuttavia, si consiglia la conoscenza dei concetti di base di: Teoria dei segnali e dei sistemi, fondamenti di telecomunicazioni e internet, teoria della probabilità e misurazione
Le lezioni si svolgono con didattica frontale di tipo teorico utilizzando PC e proiettore e integrazione alla lavagna (multimediale) degli argomenti presentati. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina https://www.unipg.it/disabilita-e-dsa.
Elementi di teoria dell’informazione. Misura dell’informazione. Entropia, entropia relativa e informazione mutua. Relazione tra entropia ed informazione mutua. Regola a catena per l’entropia, l’entropia relativa e l’informazione mutua. Disuguaglianze di Jensen, elaborazione dei dati e log-sum. Proprietà di equipartizione asintotica (AEP). Tasso di entropia per processi aleatori discreti. Codifica di sorgente. Classificazione dei codici di sorgente. Disuguaglianza di Kraft. Codici ottimi: codici di Huffman. Codici universali: codici aritmetici, codici di Lempel-Ziv. Cenni alla teoria di rate-distortion (RD): definizioni, funzione di RD. Elementi di teoria della stima. Approccio classico: stima non polarizzata a varianza minima (MVU), limite inferiore di Cramer-Rao (CRLB), stima lineare non polarizzata a varianza minima (BLUE), stima a massima verosimiglianza (ML), stima ai minimi quadrati (LS). Approccio Bayesiano: stima a minimo errore quadratico medio (MMSE), stima lineare MMSE. Elementi di teoria della decisione. Test d’ipotesi binarie. Teorema di Neyman-Pearson. Curva ROC. Probabilità di errore. Rischio di Bayes. Test d’ipotesi multiple. GLRT.
Modalità d'esame
La prova d’esame consiste in un colloquio della durata di circa 45 minuti (prova orale a stimolo aperto con risposta aperta) sugli argomenti presentati durante le lezioni. Nel caso in cui lo studente intenda anticipare l’esame in un anno precedente a quello programmato nel piano di studio, si raccomanda di frequentare il ciclo delle lezioni e di sostenere l’esame nel primo appello utile dopo che le lezioni medesime siano terminate, nel rispetto quindi del semestre di programmazione dell’insegnamento.
Testi di riferimento
Thomas M. Cover and Joy A. Thomas, “Elements of information theory”, 2nd ed., Wiley-Interscience, 2006. Steven M. Kay, “Fundamentals of statistical signal processing, vol. I: estimation theory”, Prentice-Hall, 1993. Steven M. Kay, “Fundamentals of statistical signal processing, vol. II: detection theory”, Prentice-Hall, 1998.
Codice insegnamento 436152
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina i vari aspetti del network management, con particolare enfasi alle tematiche di sicurezza e all’uso di strumenti di…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina i vari aspetti del network management, con particolare enfasi alle tematiche di sicurezza e all’uso di strumenti di intelligenza artificiale. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi per affrontare l’analisi, la gestione e la configurazione delle reti, attraverso lo studio e la sperimentazione delle moderne tecniche di monitoraggio delle reti e di strumenti per il rilevamento di anomalie, malfunzionamenti, etc. I principali vincoli di progetto che lo studente sarà tenuto a considerare saranno di tipo funzionale e prestazionale relativamente alla mole di dati (memorizzati o catturati in tempo reale) da elaborare. Le principali conoscenze acquisite alla fine del corso saranno: - Elementi di base di cattura del traffico di rete - Elementi di base dei protocolli e delle soluzioni per la gestione della rete: SNMP e relative evoluzioni. - Conoscenza delle architetture di servizio e dei protocolli utilizzati per il monitoraggio delle reti: NetFlow e sFlow, In-band Network Telemetry - Concetti di base di sicurezza in rete: firewall e sistemi di rilevamento delle intrusioni; - Applicazioni di strumenti di intelligenza artificiale alle tematiche per la rilevazione di problemi di dimensionamento, configurazione, sicurezza. Le principali abilità, ossia la capacità di applicare le conoscenze acquisite nell'ambito del corso, saranno: - Valutare la soluzione tecnologica più adatta allo scenario di servizio (SNMP, NetFlow, sFlow); - Identificare i vincoli di progetto che determinano il dimensionamento di una soluzione per il monitoraggio e l’analisi del traffico di una rete e la scelta del software più adeguato; - Padroneggiare strumenti software open-source in ambiente virtualizzato per la cattura e l’analisi del traffico.
Programma
Introduzione al network management (9 ore) Network monitoring e cattura delle statistiche di traffico (24 ore) Sicurezza di rete (21 ore) Tecniche di machine learning applicate al network management (18 ore)
Al fine di comprendere i contenuti dell’insegnamento e saper applicare la maggior parte delle tecniche descritte, è necessario aver acquisito le nozioni generali riguardanti reti di telecomunicazioni. In particolare, per acquisire le nozioni fondamentali sull’organizzazione della pila protocollare e le funzioni tipiche di ciascuno strato protocollare è richiesto che lo studente abbia sostenuto con successo l’esame di Fondamenti di Internet. Inoltre, nell’ambito dell’insegnamento, è richiesta la conoscenza delle principali nozioni di sicurezza informatica e sicurezza nelle reti. Questi argomenti sono un prerequisito fondamentale del corso e sono trattati nel corso di Fondamenti di Internet. Conoscenze di base di machine learning sono raccomandate.
Il corso è organizzato nel modo seguente: - lezioni frontali in aula su tutti gli argomenti del corso. Agli studenti verrà fornita in anticipo copia delle diapositive utilizzate dal docente a lezione tramite area riservata del corso (portale UNISTUDIUM); - esercitazioni di laboratorio presso il Laboratorio di Ingegneria del Software (edificio del Biennio, piano terra). Il laboratorio consiste in 16 postazioni operative, alle quali gli studenti possono accedere in gruppi da 2 o 3 persone. Il numero massimo di studenti che possono accedere ad una lezione è 48. In caso il numero di studenti ecceda questo valore o nel caso in cui le lezioni siano particolarmente complesse con assistenza continua da parte del docente, la lezione sarà ripetuta. Ciascuna esercitazione ha una durata di 2 o 3 ore. Ogni esercitazione consiste nella realizzazione guidata esperimenti di cattura e monitoraggio del traffico, o di analisi di tracce di traffico tramite strumenti di machine learning. Durante le esercitazioni gli studenti utilizzano strumenti software open-source in forma virtualizzata (macchina virtuale Linux). Gli studenti avranno accesso libero al laboratorio al termine della lezione per ulteriori esercitazioni individuali.
Introduzione al network management (9 ore) - Cosa si intende per network management - SNMP e sue evoluzioni Network monitoring e cattura delle statistiche di traffico (24 ore) - Metodologie di cattura del traffico e analizzatori di protocollo - NetFilter e iptables - Archietture e protocolli per il monitoraggio della rete su base flusso: NetFlow, sFlow, e In-band Network Telemetry Sicurezza di rete (21 ore) - Firewall: teoria e realizzazione pratica - IDS: teoria e realizzazione pratica Tecniche di machine learning applicate al network management (18 ore) - Intelligenza artificiale applicata al network management - Esperimenti con strumenti di machine learning open source su dataset pubblici o catture in tempo reale
Modalità d'esame
L'esame prevede una prova orale da sostenere alla fine del corso. La prova finale è costituita da una prova orale della durata di circa 30-45 minuti, finalizzata ad accertare il livello di conoscenza e la capacità di comprensione raggiunto dallo studente sui contenuti sui contenuti teorici e metodologici del corso, nonché all’esposizione di un elaborato teorico/pratico assegnato dal docente durante lo svolgimento del corso. Tale modalità di valutazione permette di accertare sia la conoscenza sia la capacità di conoscenza e comprensione dei temi del corso, sia la capacità di applicare le competenze acquisite, sia la capacità di esposizione, sia la capacità di apprendere ed elaborare soluzioni in autonomia di giudizio. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa.
Testi di riferimento
- J. Kurose, K. Ross, Reti di Calcolatori e Internet, Pearson. - Clarence Chio & David Freeman, Machine Learning & Security, O'Reilly - William Stallings, CRYPTOGRAPHY AND NETWORK SECURITY, Pearson - Altro materiale fornito dal docente
Codice insegnamento 436146
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina i vari aspetti del network management, con particolare enfasi alle tematiche di sicurezza e all’uso di strumenti di…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina i vari aspetti del network management, con particolare enfasi alle tematiche di sicurezza e all’uso di strumenti di intelligenza artificiale. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi per affrontare l’analisi, la gestione e la configurazione delle reti, attraverso lo studio e la sperimentazione delle moderne tecniche di monitoraggio delle reti e di strumenti per il rilevamento di anomalie, malfunzionamenti, etc. I principali vincoli di progetto che lo studente sarà tenuto a considerare saranno di tipo funzionale e prestazionale relativamente alla mole di dati (memorizzati o catturati in tempo reale) da elaborare. Le principali conoscenze acquisite alla fine del corso saranno: - Elementi di base di cattura del traffico di rete - Elementi di base dei protocolli e delle soluzioni per la gestione della rete: SNMP e relative evoluzioni. - Conoscenza delle architetture di servizio e dei protocolli utilizzati per il monitoraggio delle reti: NetFlow e sFlow, In-band Network Telemetry - Concetti di base di sicurezza in rete: firewall e sistemi di rilevamento delle intrusioni; - Applicazioni di strumenti di intelligenza artificiale alle tematiche per la rilevazione di problemi di dimensionamento, configurazione, sicurezza. Le principali abilità, ossia la capacità di applicare le conoscenze acquisite nell'ambito del corso, saranno: - Valutare la soluzione tecnologica più adatta allo scenario di servizio (SNMP, NetFlow, sFlow); - Identificare i vincoli di progetto che determinano il dimensionamento di una soluzione per il monitoraggio e l’analisi del traffico di una rete e la scelta del software più adeguato; - Padroneggiare strumenti software open-source in ambiente virtualizzato per la cattura e l’analisi del traffico.
Programma
Introduzione al network management (9 ore) Network monitoring e cattura delle statistiche di traffico (24 ore) Sicurezza di rete (21 ore) Tecniche di machine learning applicate al network management (18 ore)
Al fine di comprendere i contenuti dell’insegnamento e saper applicare la maggior parte delle tecniche descritte, è necessario aver acquisito le nozioni generali riguardanti reti di telecomunicazioni. In particolare, per acquisire le nozioni fondamentali sull’organizzazione della pila protocollare e le funzioni tipiche di ciascuno strato protocollare è richiesto che lo studente abbia sostenuto con successo l’esame di Fondamenti di Internet. Inoltre, nell’ambito dell’insegnamento, è richiesta la conoscenza delle principali nozioni di sicurezza informatica e sicurezza nelle reti. Questi argomenti sono un prerequisito fondamentale del corso e sono trattati nel corso di Fondamenti di Internet. Conoscenze di base di machine learning sono raccomandate.
Il corso è organizzato nel modo seguente: - lezioni frontali in aula su tutti gli argomenti del corso. Agli studenti verrà fornita in anticipo copia delle diapositive utilizzate dal docente a lezione tramite area riservata del corso (portale UNISTUDIUM); - esercitazioni di laboratorio presso il Laboratorio di Ingegneria del Software (edificio del Biennio, piano terra). Il laboratorio consiste in 16 postazioni operative, alle quali gli studenti possono accedere in gruppi da 2 o 3 persone. Il numero massimo di studenti che possono accedere ad una lezione è 48. In caso il numero di studenti ecceda questo valore o nel caso in cui le lezioni siano particolarmente complesse con assistenza continua da parte del docente, la lezione sarà ripetuta. Ciascuna esercitazione ha una durata di 2 o 3 ore. Ogni esercitazione consiste nella realizzazione guidata esperimenti di cattura e monitoraggio del traffico, o di analisi di tracce di traffico tramite strumenti di machine learning. Durante le esercitazioni gli studenti utilizzano strumenti software open-source in forma virtualizzata (macchina virtuale Linux). Gli studenti avranno accesso libero al laboratorio al termine della lezione per ulteriori esercitazioni individuali.
Introduzione al network management (9 ore) - Cosa si intende per network management - SNMP e sue evoluzioni Network monitoring e cattura delle statistiche di traffico (24 ore) - Metodologie di cattura del traffico e analizzatori di protocollo - NetFilter e iptables - Archietture e protocolli per il monitoraggio della rete su base flusso: NetFlow, sFlow, e In-band Network Telemetry Sicurezza di rete (21 ore) - Firewall: teoria e realizzazione pratica - IDS: teoria e realizzazione pratica Tecniche di machine learning applicate al network management (18 ore) - Intelligenza artificiale applicata al network management - Esperimenti con strumenti di machine learning open source su dataset pubblici o catture in tempo reale
Modalità d'esame
L'esame prevede una prova orale da sostenere alla fine del corso. La prova finale è costituita da una prova orale della durata di circa 30-45 minuti, finalizzata ad accertare il livello di conoscenza e la capacità di comprensione raggiunto dallo studente sui contenuti sui contenuti teorici e metodologici del corso, nonché all’esposizione di un elaborato teorico/pratico assegnato dal docente durante lo svolgimento del corso. Tale modalità di valutazione permette di accertare sia la conoscenza sia la capacità di conoscenza e comprensione dei temi del corso, sia la capacità di applicare le competenze acquisite, sia la capacità di esposizione, sia la capacità di apprendere ed elaborare soluzioni in autonomia di giudizio. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa.
Testi di riferimento
- J. Kurose, K. Ross, Reti di Calcolatori e Internet, Pearson. - Clarence Chio & David Freeman, Machine Learning & Security, O'Reilly - William Stallings, CRYPTOGRAPHY AND NETWORK SECURITY, Pearson - Altro materiale fornito dal docente
Codice insegnamento 436148
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulle applicazioni client/server e sullo sviluppo di servizi Web. In particolare, al termine del corso lo studente avrà acquisito:…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulle applicazioni client/server e sullo sviluppo di servizi Web. In particolare, al termine del corso lo studente avrà acquisito: (a) conoscenza dei principi delle architetture client/server; (b) conoscenza di strumenti di programmazione avanzata in Java per la realizzazione di applicazioni distribuite. (c) conoscenza delle principali metodologie per il progetto e lo sviluppo di applicazioni per il Web. (d) capacità di realizzare servizi ad architettura client/server attraverso il linguaggio Java. (e) capacità di realizzare applicazioni Web, attraverso alcune tecnologie ampiamente diffuse, come HTML/CSS, Jascript, Node.Js e Java.
Programma
I servizi in Internet. Progetto di applicazioni client/server. Sviluppo di applicazioni e servizi per il Web
Sono richieste conoscenze di base relativamente alla progettazione e all'analisi di algoritmi, nonché conoscenze di programmazione imperativa e ad oggetti tramite il linguaggio Java. Queste nozioni sono tipicamente acquisite in un percorso triennale in ingegneria informatica o in informatica.
Il corso si articola in due principali tipologie di lezioni: (i) Lezioni frontali (per circa il 50% del tempo totale). Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi. (ii) Esercitazioni guidate in laboratorio (per circa il 50% del tempo totale): si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
[I servizi in Internet]. Richiami sull'architettura della rete Internet. Servizi in Internet: principi delle architetture client/server. Analisi di alcune applicazioni di largo uso: World Wide Web (HTTP), posta elettronica (SMTP), collegamento remoto (telnet), trasferimento file (ftp). [Progetto di applicazioni client/server in Java]. Strumenti avanzati di programmazione: gestione degli errori, multithreading, gestione dell'input/output. Progettazione di protocolli di comunicazione. Connessioni di rete tramite socket e secure socket TCP. Studi di caso: client Web, ChatLine. Connessioni di rete tramite socket UDP. [Applicazioni e servizi Web]. Formati di descrizione dei dati: XML, JSON. Applicazioni Web e Web Services: principi architetturali e tipologie di Web Services (SOAP-based e RESTful). Linguaggi, protocolli e tecnologie di sviluppo di applicazioni Web: HTML/CSS, Java Servlet e tecnologie correlate, Javascipt, AJAX, Node.js, Web socket e gRPC.
Modalità d'esame
[Obiettivi della valutazione]. I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché le sue capacità di applicare tali conoscenze per la risoluzione di problemi teorici e applicativi. Il tipo di prova è dettagliato di seguito. Esame scritto di natura teorica e prova di programmazione pratica Durata: 2 ore Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento e valutare abilità di programmazione per applicazioni in Internet e per il Web I risultati della prova sono presentati allo studente durante un breve colloquio, in cui lo studente può confutare i giudizi del docente. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
La disciplina affronta un insieme di metodologie e tecnologie che non sono contenute in un singolo libro di testo. Gli argomenti trattati sono illustrati in una collezione di dispense a cura del docente.
Codice insegnamento 436154
Conoscenza dei problemi di regressione e classificazione e delle tecniche principali per affrontarli. Capacità di pre-elaborare e analizzare dati al fine di sviluppare correttamente algoritmi di apprendimento su di essi.…
Scheda dell'insegnamento
Obiettivi formativi
Conoscenza dei problemi di regressione e classificazione e delle tecniche principali per affrontarli. Capacità di pre-elaborare e analizzare dati al fine di sviluppare correttamente algoritmi di apprendimento su di essi. Capacità di analizzare e risolvere le criticità della pipeline di apprendimento, quando i risultati non siano soddisfacenti. Capacità di utilizzare alcune delle principali librerie per l'addestramento di algoritmi di apprendimento.
Programma
Introduzione al Machine Learning. Regressione Lineare. Modelli Discriminativi e Generativi per la classificazione. Support Vector Machines. Reti neurali. Unsupervised learning. Esempi di Applicazione. Esercitazioni guidate in laboratorio su Python su analisi di dati con tecniche di Machine Learning.
Al fine di comprendere i contenuti presentati e conseguire gli obiettivi di apprendimento è utile possedere una buona conoscenza di Algebra lineare, Analisi, Teoria della probabilità, Fondamenti di programmazione
L’insegnamento è organizzato come segue:- lezioni frontali in aula;- lezioni frontali a carattere seminariale- esercitazioni guidate presso il Laboratorio di Informatica sull’utilizzo di tecniche di Machine Learning per l’analisi di dati in Python. In ogni esercitazione gli studenti vengono distribuiti su 30 postazioni di lavoro. Strumenti di supporto alla didattica: lavagna e PC+proiettore, PC.
Introduzione al Machine Learning Ottimizzazione Convessa Regressione Lineare Classificazione (Logistic Regression, KNN, LDA, QDA) Generative models (Probabilità, Naive Bayes Classifiers) Sviluppo di applicazioni di Machine Learning Model selection Support Vector Machines Neural Networks Unsupervised Learning (K-means, K-medoids, EM, Factor Analysis, PCA, ICA) Applicazioni
Modalità d'esame
Le conoscenze relative all’insegnamento vengono accertate attraverso una Prova orale e una Prova pratica (tesina). La prova orale prevede la discussione del progetto (tesina) presentato e due domande su argomenti scelti dal docente, e dura circa 45 minuti. La prova è volta ad accertare la compresione, da parte dello studente, degli strumenti teorici fondamentali forniti dall'insegnamento, nonchè le relazioni tra tali strumenti e le tematiche generali dell'ingegneria informatica. Il progetto presentato viene utilizzato per verificare le capacità di utilizzo di tecniche di Machine Learning per l’analisi di dati su problemi reali. Le prenotazioni alle prove di esame avvengono tramite il portale SOL: https://www.segreterie.unipg.it/ Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
1. "The Elements of Statistical Learning", T. Hastie, R. Tibishirani, J. Friedman, Springer (free) 2. "Pattern Recognition and Machine Learning", C. M. Bishop, Springer 3. "An Introduction to Statistical Learning, with application in R", G. James, D. Witten, T. Hastie, R. Tibshirani, Springer (free) 4. "Python Machine Learning", S. Raschka, PACKT Publishing 5. N. Cristianini, J. Shawe-Taylor, An Introduction to Support Vector Machines, Cambridge Univ. Press, 2000 6. R.O. Duda, P.E. Hart,D.G. Stork, Pattern Classification, 2nd ed., Wiley, 2012 Dispense a cura del docente disponibili su UNISTUDIUM - PIATTAFORMA DI E-LEARNING DELL'UNIVERSITÀ DEGLI STUDI DI PERUGIA (https://www.unistudium.unipg.it/unistudium/ )
Codice insegnamento P240029775
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina gli aspetti delle reti orientate al machine-to-machine (M2M) dal punto di vista del funzionamento a livello…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento rappresenta il primo corso di reti di telecomunicazioni nel percorso di studi, ed esamina gli aspetti delle reti orientate al machine-to-machine (M2M) dal punto di vista del funzionamento a livello protocollare, sistemistico e dal punto di vista delle prestazioni della rete. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi per affrontare lo studio delle reti wireless, della loro interconnessione con i sistemi cablati, con particolare attenzione alla rete Internet e alla fornitura di connettività a sistemi cloud e piattaforme per big data, e della loro progettazione e/o configurazione. I principali vincoli di progetto che lo studente sarà tenuto a considerare saranno le funzioni offerte e la capacità del sistema. Le principali conoscenze acquisite alla fine del corso saranno: - elementi di base dei protocolli di accesso utilizzati sulla tratta radio, con particolare attenzione alle soluzioni tecnologiche più diffuse (LTE, WiFi); - conoscenza delle architetture di rete dei sistemi wireless più diffusi (LTE, WiFi), con particolare attenzione ai servizi offerti (ad esempio livelli di qualità di servizio e sicurezza), ai meccanismi di interconnessione con Internet e sistemi cloud; - conoscenza dell'ecosistema Internet of Things (IoT) e machine-to-machine (M2M), e delle principali soluzioni protocollari e architetturali utilizzate (MQTT, http, piattaforme per il M2M) Le principali abilità, ossia la capacità di applicare le conoscenze acquisite nell'ambito del corso, saranno: - valutare la soluzione tecnologica più adatta allo scenario di servizio (rete wireless in area locale, rete wireless in area metropolitana, rete cellulare); - analizzare le prestazioni di una rete wireless dal punto di vista della capacità di servizio; - realizzare, tramite software open-source, anche in ambiente virtualizzato, reti wireless in differenti configurazioni, con particolare attenzione alle reti WiFi e alle architetture IoT, in grado di offrire servizi di accesso a dispositivi quali telefoni, tablet o computer; - integrazione delle reti di accesso in piattaforme per la gestione dei dati in ambiente machine to machine; - padroneggiare gli strumenti per la misura della qualità di una rete wireless, con particolare attenzione alla misura della capacità e della copertura.
Programma
Unità didattica: Reti wireless e M2M (3 ore) Unità didattica: LTE (15 ore) Unità didattica: 5G (6 ore) Unità didattica: Reti Wireless LAN (21 ore) Unità didattica: Protocolli e piattaforme per M2M (27 ore)
Al fine di comprendere i contenuti dell’insegnamento e saper applicare la maggior parte delle tecniche descritte, è necessario aver acquisito le nozioni generali riguardanti reti di telecomunicazioni. In particolare, per acquisire le nozioni fondamentali sull’organizzazione della pila protocollare e le funzioni tipiche di ciascuno strato protocollare è richiesto che lo studente abbia sostenuto con successo l’esame di Fondamenti di Telecomunicazioni. Inoltre, nell’ambito dell’insegnamento, è richiesta la conoscenza delle principali nozioni di sicurezza informatica e sicurezza nelle reti. Questi argomenti sono un prerequisito fondamentale del corso e sono trattati nel corso di Fondamenti di Internet.
Il corso è organizzato nel modo seguente: - lezioni frontali in aula su tutti gli argomenti del corso. Agli studenti verrà fornita in anticipo copia delle diapositive utilizzate dal docente a lezione tramite area riservata del corso (portale UNISTUDIUM); - esercitazioni di laboratorio presso il Laboratorio di Ingegneria del Software (edificio del Biennio, piano terra). Il laboratorio consiste in 16 postazioni operative, alle quali gli studenti possono accedere in gruppi da 2 o 3 elementi. Il numero massimo di studenti che possono accedere ad una lezione è 48. In caso il numero di studenti ecceda questo valore o nel caso in cui le lezioni siano particolarmente complesse con assistenza continua da parte del docente, la lezione sarà ripetuta. Ciascuna esercitazione ha una durata di 3 ore, per un totale stimato di 6 esercitazioni. Ogni esercitazione consiste nella realizzazione guidata di una rete WiFi con specifiche caratteristiche di servizio, nell'analisi e misura delle reti WiFi pre-esistenti, e/o nella realizzazione guidata di un sistema IoT. Durante le esercitazioni gli studenti utilizzano strumenti software open-source in forma virtualizzata (macchina virtuale Linux). Gli studenti avranno accesso libero al laboratorio al termine della lezione per ulteriori esercitazioni individuali.
Unità didattica: Reti wireless e M2M (3 ore): Concetti di base sul canale wireless, modelli per la descrizione di handover e paging, sistemi per la gestione dei dati in reti M2M Unità didattica: LTE (15 ore): Sistema LTE (architettura, protocolli, sicurezza). Unità didattica: 5G (6 ore): , concetti di base delle reti 5G, con particolare enfasi sull'architettura di rete. Unità didattica: Reti Wireless LAN (21 ore): Evoluzione dello standard IEEE 802.11 (a,b,g,n), modalità di funzionamento (ad hoc, infrastrutturata, sistema di distribuzione wireless), protocollo di strato fisico e di accesso al mezzo (MAC), mobilità, prestazioni e qualità di servizio, sicurezza, esperimenti di laboratorio con software open source. Unità didattica: Protocolli e piattaforme per M2M (27 ore): Concetti generali e architetture di sistema e di rete per IoT/M2M, protocollo MQTT e differenze con HTTP e CoAP (tipologia e struttura dei messaggi, modi di comunicazione), esperienze di laboratorio con piattaforme software open source (Node-RED).
Modalità d'esame
L'esame prevede una prova orale da sostenere alla fine del corso. La prova finale è costituita da una prova orale della durata di circa 30-45 minuti, finalizzata ad accertare il livello di conoscenza e la capacità di comprensione raggiunto dallo studente sui contenuti sui contenuti teorici e metodologici del corso, nonché all’esposizione di un elaborato teorico/pratico assegnato dal docente durante lo svolgimento del corso. Tale modalità di valutazione permette di accertare sia la conoscenza sia la capacità di conoscenza e comprensione dei temi del corso, sia la capacità di applicare le competenze acquisite, sia la capacità di esposizione, sia la capacità di apprendere ed elaborare soluzioni in autonomia di giudizio. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa.
Testi di riferimento
C. Smith, D. Collins, Wireless Networks, McGraw-Hill, 2014. A. Pattavina, Reti di Telecomunicazione, 2a ed., McGraw-Hill, 2003. J. Kurose, K. Ross, Reti di Calcolatori e Internet, 6a ed., Pearson, 2013. M. Gast, 802.11 Wireless Networks: The Definitive Guide, Second Edition, O'Reilly, 2005. Testi di consultazione: V. Garg, Wireless Communications and Networking, Morgan Kaufmann, San Francisco (CA), US, 2007. C. Kappler, Umts Networks and Beyond, John Wiley & Sons, Chichester, UK, 2009. Dispense e articoli scientifici forniti dal docente tramite piattaforma Unistudium.
Codice insegnamento 436158
L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche su metodologie, modelli e tecniche per l'analisi, la progettazione e lo sviluppo di software complessi, inclusi software che contengono…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche su metodologie, modelli e tecniche per l'analisi, la progettazione e lo sviluppo di software complessi, inclusi software che contengono componenti di intelligenza artificiale.
Programma
- Le qualità del software come prodotto industriale e i principi dell'ingegneria del software. - Metodologie e tecniche ingegneristiche tradizionali per l'analisi, la progettazione e lo sviluppo del software. - Metodologie e tecniche per sistemi software basati su intelligenza artificiale.
Sono consigliate conoscenze di base relativamente alla programmazione ad oggetti tramite il linguaggio Java e alle basi di dati relazionali. Sono inoltre consigliate conoscenze di base legare ai principi e alle tecniche di machine learning.
Il corso si articola in due principali tipologie di lezioni. Lezioni frontali: lezioni frontali svolte in aula. Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi. Esercitazioni guidate in laboratorio: si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
PARTE I - Introduzione all'ingegneria del software - Qualità e principi del software - Modelli di produzione del software - Ingegneria dei requisiti - Progettazione architetturale - Programmazione a oggetti e design patterns - Test del software PARTE II - Introduzione a sistemi software basati su AI - Ingegneria dei requisiti per sistemi basati su AI - Progettazione, deployment e automazione di componenti software basati su AI - Responsible Engineering
Modalità d'esame
I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché la sue capacità di applicare tali conoscenze per la risoluzione di problemi applicativi. I tipi di prove previste per la valutazione sono descritti qui di seguito. - Prova scritta di natura teorica Durata: 90 minuti Punteggio: 15/30 Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento. - Prova al calcolatore Durata: 90 minuti Punteggio: 15/30 Obiettivo: accertare le abilità pratiche acquisite in relazione alle tematiche del corso
Testi di riferimento
Gli argomenti trattati a lezione sono illustrati in dispense a cura del docente. In aggiunta, verranno consigliati alcuni testi di riferimento per approfondimenti sui vari argomenti del corso.
Codice insegnamento 436155
L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche su metodologie, modelli e tecniche per l'analisi, la progettazione e lo sviluppo di software complessi, inclusi software che contengono…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche su metodologie, modelli e tecniche per l'analisi, la progettazione e lo sviluppo di software complessi, inclusi software che contengono componenti di intelligenza artificiale.
Programma
- Le qualità del software come prodotto industriale e i principi dell'ingegneria del software. - Metodologie e tecniche ingegneristiche tradizionali per l'analisi, la progettazione e lo sviluppo del software. - Metodologie e tecniche per sistemi software basati su intelligenza artificiale.
Sono consigliate conoscenze di base relativamente alla programmazione ad oggetti tramite il linguaggio Java e alle basi di dati relazionali. Sono inoltre consigliate conoscenze di base legare ai principi e alle tecniche di machine learning.
Il corso si articola in due principali tipologie di lezioni. Lezioni frontali: lezioni frontali svolte in aula. Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi. Esercitazioni guidate in laboratorio: si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
PARTE I - Introduzione all'ingegneria del software - Qualità e principi del software - Modelli di produzione del software - Ingegneria dei requisiti - Progettazione architetturale - Programmazione a oggetti e design patterns - Test del software PARTE II - Introduzione a sistemi software basati su AI - Ingegneria dei requisiti per sistemi basati su AI - Progettazione, deployment e automazione di componenti software basati su AI - Responsible Engineering
Modalità d'esame
I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché la sue capacità di applicare tali conoscenze per la risoluzione di problemi applicativi. I tipi di prove previste per la valutazione sono descritti qui di seguito. - Prova scritta di natura teorica Durata: 90 minuti Punteggio: 15/30 Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento. - Prova al calcolatore Durata: 90 minuti Punteggio: 15/30 Obiettivo: accertare le abilità pratiche acquisite in relazione alle tematiche del corso
Testi di riferimento
Gli argomenti trattati a lezione sono illustrati in dispense a cura del docente. In aggiunta, verranno consigliati alcuni testi di riferimento per approfondimenti sui vari argomenti del corso.
Codice insegnamento 436156
L'insegnamento si prefigge lo scopo di impartire agli studenti capacità progettuali nei settori del networking avanzato, l'IA e il cloud computing
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge lo scopo di impartire agli studenti capacità progettuali nei settori del networking avanzato, l'IA e il cloud computing
Programma
L'insegnamento è incentrato sull'uso dell'Intelligenza Artificiale (IA) nei sistemi di cloud computing. Saranno trattate tematiche sia relative all'uso dell'IA per il cloud computing, sia relative all'uso del Cloud Computing per l'IA.
Analisi matematica, algebra Lineare, metworking IP, Python programming
Lezioni ed esperimenti al computer.
Introduzione al cloud computing - Servizi in cloud e caratteristiche operative Fondamenti matematici del controllo cloud nativo basato sull'intelligenza artificiale Previsione del carico di lavoro e pianificazione probabilistica della capacità Orchestrazione intelligente dei servizi in cloud - Autoscaling basata sull'apprendimento Aspetti Intelligenza artificiale per la pianificazione, l'assegnazione e la ripartizione delle risorse. Architettura dei sistemi di apprendimento automatico cloud-native Pianificazione delle GPU e infrastruttura di intelligenza artificiale su larga scala Inferenza efficiente e gestione di modelli linguistici di grandi dimensioni Sicurezza, economia, sostenibilità e il futuro dell'IA nel cloud.
Modalità d'esame
Valutazione di un progetto autonomo. Prova orale.
Testi di riferimento
Dispense a cura del docente.
Codice insegnamento 436169
L'insegnamento si prefigge lo scopo di impartire agli studenti capacità progettuali nei settori del networking avanzato, l'IA e il cloud computing
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge lo scopo di impartire agli studenti capacità progettuali nei settori del networking avanzato, l'IA e il cloud computing
Programma
L'insegnamento è incentrato sull'uso dell'Intelligenza Artificiale (IA) nei sistemi di cloud computing. Saranno trattate tematiche sia relative all'uso dell'IA per il cloud computing, sia relative all'uso del Cloud Computing per l'IA.
Analisi matematica, algebra Lineare, metworking IP, Python programming
Lezioni ed esperimenti al computer.
Introduzione al cloud computing - Servizi in cloud e caratteristiche operative Fondamenti matematici del controllo cloud nativo basato sull'intelligenza artificiale Previsione del carico di lavoro e pianificazione probabilistica della capacità Orchestrazione intelligente dei servizi in cloud - Autoscaling basata sull'apprendimento Aspetti Intelligenza artificiale per la pianificazione, l'assegnazione e la ripartizione delle risorse. Architettura dei sistemi di apprendimento automatico cloud-native Pianificazione delle GPU e infrastruttura di intelligenza artificiale su larga scala Inferenza efficiente e gestione di modelli linguistici di grandi dimensioni Sicurezza, economia, sostenibilità e il futuro dell'IA nel cloud.
Modalità d'esame
Valutazione di un progetto autonomo. Prova orale.
Testi di riferimento
Dispense a cura del docente.
Codice insegnamento 436173
Alla fine del corso gli studenti avranno appreso gli strumenti per comprendere ed risolvere problemi avanzati di controllo di sistemi robotici autonomi, di localizzazione, anche basata su visione, di pianificazione del…
Scheda dell'insegnamento
Obiettivi formativi
Alla fine del corso gli studenti avranno appreso gli strumenti per comprendere ed risolvere problemi avanzati di controllo di sistemi robotici autonomi, di localizzazione, anche basata su visione, di pianificazione del moto e delle traiettorie e di realizzazione sperimentale di alcune di queste funzioni.
Programma
Introduzione alla robotica mobile. Locomozione. Pianificazione e navigazione. Sensori e percezione. Localizzazione e SLAM.
I contenuti dell'insegnamento di Robot Perception and Computer Vision. Concetti fondamentali di Sistemi Elettronici Embedded, Sistemi di Controllo, Programmazione.
Lezioni frontali ed esercitazioni in laboratorio. Scrittura di codice per problemi di localizzazione nella forma PBL. Sperimentazione facoltativa per mezzo di piattaforme robotiche disponibile presso il laboratorio ISARLab.
Overview of mobile robotics (hardware, software architectures, sensors) and applications (industry 4.0, home, drones). Robot guidance and trajectory planning. Probabilistic models of sensing and acting. State estimation and filtering for localization. Bayes filter, histogram filters, Kalman filters (extended, unscented), particle filters. Robot localization, Map building. The SLAM problem and solution: Kalman filtering, Rao-Blackwell particle filters, graph-SLAM. Planning algorithms for mobile robots and applications.
Modalità d'esame
Prova orale e tesina. La prova orale prevede tre domande, su argomenti scelti dal docente, e dura circa 30 minuti. Durante il corso verranno assegnati esercizi di scrittura di segmenti di codice per la realizzazione di semplici algoritmi di localizzazione. La partecipazione con profitto a queste attività è parte integrante del processo di valutazione. La prova è volta ad accertare la comprensione, da parte dello studente, degli strumenti teorici fondamentali forniti dall'insegnamento, la loro rielaborazione ed assimilazione, nonché le relazioni tra tali strumenti e le tematiche generali dell'ingegneria informatica ed elettronica. La prova è volta ad accertare la comprensione degli strumenti di progetto di schemi di controllo, di algoritmi di stima, localizzazione e pianificazione del moto, la loro simulazione al calcolatore e la loro implementazione su comuni apparati digitali. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Roland Siegwart, Illah, R. Nourbakhsh, and Davide Scaramuzza. Introduction to autonomous mobile robots. - 2nd ed./ MIT Press, 2014 Sebastian Thrun, Wolfram Burgard and Dieter Fox, Probabilistic Robotics, MIT Press, 2005 LaValle, Steven M. Planning algorithms. Cambridge university press, 2006.
Codice insegnamento 436165
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulla progettazione e sviluppo di applicazioni data intensive.
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulla progettazione e sviluppo di applicazioni data intensive.
Programma
-Introduzione ai Big Data -Modelli e tecnologie di programmazione per computazioni distribuite - Database distribuiti e NoSQL - Embedding, database vettoriali e applicazioni RAG
Sono richieste conoscenze relativamente alla progettazione e all'analisi di algoritmi, alla programmazione imperativa e ad oggetti tramite i linguaggi Java e Python, alle basi di dati relazionali, ai fondamenti di machine learning.
Il corso si articola in due principali tipologie di lezioni: Lezioni frontali (per circa il 60% del tempo totale): vengono svolte lezioni frontali in aula. Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi. Esercitazioni guidate in laboratorio (per circa il 40% del tempo totale): si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
Il programma potrebbe subire aggiornamenti in prossimità dell'erogazione del corso. 1. Introduzione 2. Parte I: Modelli e tecnologie di programmazione per computazioni distribuite a. Il modello MapReduce b. La piattaforma Hadoop c. Apache Spark 3. Parte II: Database distribuiti e tecnologie NoSQL a. Principi di database distribuiti b. Il teorema CAP e oltre c. NoSQL technologies 4. Parte III: Embeddings e applicazioni RAG a. Embeddings b. Vector databases c. Retrival-augmented generation
Modalità d'esame
I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché la sue capacità di applicare tali conoscenze per la risoluzione di problemi applicativi. I tipi di prove previste per la valutazione sono descritti qui di seguito. - Prova orale di natura teorica e applicativa Durata: 30 minuti Punteggio: 15/30 Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento e valutare abilità di programmazione. - Progetto Presentazione e discussione di un elaborato (codice software e documentazione di progetto) Punteggio: 15/30 Obiettivo: accertare le abilità pratiche acquisite in relazione alle tematiche del corso.
Testi di riferimento
La disciplina affronta un insieme di metodologie e tecnologie correlate che non sono contenute in un singolo libro di testo. Al fine di facilitare lo studente, gli argomenti trattati a lezione sono illustrati in dispense a cura del docente. In aggiunta, vengono consigliati alcuni testi di riferimento per approfondimenti sui vari argomenti del corso. M. Kleppmann, «DesigningData-Intensive Applications», O’Reilly. White, «Hadoop: The Definitive Guide», O’Reilly. M. J. Fowler, P. J. Sadalage,«NoSQLDistilled: A Brief Guide to the EmergingWorld of PolyglotPersistence», Addison-Wesley. M. T. Özsu, P. Valduriez, «Principles of Distributed Database Systems», 4°Edition, Springer.
Codice insegnamento 436175
Comprendere le basi dei metodi statistici e di misura usati nell’ambito della sanità - Comprendere i problemi fondamentali in alcune delle aree di applicazione di data science in campo biomedico - Acquisire familiarità…
Scheda dell'insegnamento
Obiettivi formativi
- Comprendere le basi dei metodi statistici e di misura usati nell’ambito della sanità - Comprendere i problemi fondamentali in alcune delle aree di applicazione di data science in campo biomedico - Acquisire familiarità con i principali strumenti software utilizzati nel settore data science biomedico: R, Matlab/Octave - Acquisire la terminologia usata in questo settore
Programma
Il corso si propone di fornire gli strumenti per affrontare problemi relativi a data science nell'ambito biomedico. La prima parte del corso riguarda l'origine dei dati, con lo studio della teoria della misurazione e delle principali tipologie di misure biomediche. Particolare attenzione è rivolta alle bioimmagini. Nella seconda parte del corso si affrontano i metodi statistici rilevanti in ambito biomedico. Per fornire competenze pratiche, una porzione importante del corso è costituita da esercitazioni al calcolatore con strumenti software diffusi per le analisi statistiche dei dati biomedici. I concetti vengono presentati mediante l'utilizzo di dataset di esempio.
Teoria della probabilità
Lezioni frontali, esercitazioni al calcolatore
1. Origine dei dati: misure. Teoria della misurazione ed incertezza. Metodo Monte Carlo per la valutazione dell'incertezza. 2. Dati biomedici. Sistemi di misura e sensori biomedici. Caratteristiche e parametri prestazionali. 3. Bioimmagini. Strumentazione per le bioimmagini: tomografia assiale computerizzata, principio operativo e algoritmo di ricostruzione, trasformata e anti trasformata di Radon, ecografo ad ultrasuoni, tomografia a emissione di positroni, risonanza magnetica. Metodi di elaborazione e standard per le bioimmagini. 4. Informatica medica. Definizioni, contesto applicativo, dati medici. Codifica e classificazione delle informazioni mediche: international classification of diseases (ICD), diagnosis related groups (DRG), standard HL7. 5. Analisi dei dati biomedici e biostatistica. Studi statistici, meta-analisi, verifica delle ipotesi, inferenza nel campo biomedico. Test statistici: di adattamento, parametrici, t di Student, chi quadrato di Pearson, non parametrici (dei ranghi, per scale di misura ordinali), ANOVA, analisi post-hoc, correzioni di Bonferroni e Benjamini-Hochberg, ROC, ANCOVA, GLM. Esercitazioni in aula con il linguaggio R e l’ambiente RStudio: principali comandi e sintassi di R, caricamento e gestione di dataset biomedici, analisi esplorative dei dati (EDA), strumenti grafici, statistiche di sintesi, test statistici.
Modalità d'esame
- Prova scritta: domande a risposta multipla e aperta breve - Tesina di tipo survey o sperimentale, svolta in gruppi da 1 a 4 persone. Breve report e presentazione - Orale facoltativo
Testi di riferimento
Dispense a cura del docente.
Codice insegnamento 436176
L'obiettivo principale di questo insegnamento è quello di fornire agli studenti la conoscenza degli algoritmi crittografici fondamentali e delle metodologie e tecnologie per la protezione dei dati, con particolare…
Scheda dell'insegnamento
Obiettivi formativi
L'obiettivo principale di questo insegnamento è quello di fornire agli studenti la conoscenza degli algoritmi crittografici fondamentali e delle metodologie e tecnologie per la protezione dei dati, con particolare attenzione alla blockchain. Di seguito sono elencate le principali conoscenze che gli studenti acquisiranno: • principali primitive crittografiche a chiave segreta e a chiave pubblica; • metodi per la protezione dei dati in fase di comunicazione e di memorizzazione; • metodi per la condivisione fidata dei dati; • attacchi inferenziali e metodi per la protezione dell'anonimato; • panoramica delle tecnologie blockchain e DLT (programmabili) e delle loro applicazioni; • panoramica della blockchain Bitcoin; • panoramica della blockchain Ethereum; • nozioni di base del linguaggio Solidity; • nozioni di base sugli smart contract di Ethereum; • strumenti e framework per sviluppare e testare applicazioni decentralizzate (dapp) su Ethereum. Di seguito sono elencate le principali abilità che gli studenti acquisiranno: • capacità di riconoscere e classificare vulnerabilità e attacchi ai sistemi di gestione dati e ai sistemi software in generale; • capacità di progettare sistemi informatici, sistemi di gestione dei dati e protocolli di comunicazione che garantiscano uno specifico livello di sicurezza, compresa la protezione dell'anonimato; • capacità di sviluppare e testare applicazioni decentralizzate (dapp) per Ethereum.
Programma
Concetti di base e terminologia. Crittografia applicata alla sicurezza dei dati. Tecniche di anonimizzazione dei dati. Concetti generali su blockchain e smart contract. La blockchain Ethereum e il linguaggio Solidity.
Per una piena comprensione degli argomenti trattati nel corso è utile (ma non strettamente necessario) conoscere gli algoritmi e le strutture di dati fondamentali, i concetti di base delle reti informatiche, compresi i principali protocolli Internet, le tecnologie Web, i servizi Web RESTful, le chiamate di procedura remota (RPC), JavaScript e Node.js.
Il corso prevede due principali tipologie di lezioni: • Lezioni frontali (80% del tempo totale): consisteranno nell'illustrazione di specifiche tematiche, mediante la proiezione di slide, riguardanti la protezione dei dati e la blockchain. • Esercitazioni guidate al calcolatore (20% del tempo totale): saranno incentrate sullo sviluppo e sul test di semplici applicazioni decentralizzate (dapps) per la blockchain Ethereum, utilizzando il linguaggio Solidity.
[Concetti e terminologia di base in ambito data security] Triade CIA: confidenzialità, integrità, disponibilità. Triade AAA: garanzia (fiducia), autenticità, anonimato. Vulnerabilità, minacce e attacchi. Violazione dei dati, fuga di dati, perdita di dati, furto di dati. [Crittografia applicata per la protezione dei dati] Crittografia a chiave segreta. Funzioni crittografiche di hash ed accumulatori crittografici. Crittografia a chiave pubblica. Firma digitale. Cifratura ibrida. Firma cieca. Concetti fondamentali di crittografia delle curve ellittiche e di crittografia omomorfa. [Controllo di accesso ai dati] Modello AAA: autenticazione, autorizzazione, rendicontazione (accounting). Autenticazione di sistemi e di persone. Protocolli di autenticazione crittografici. Segretezza in avanti (perfect forward secrecy). Modelli per il controllo degli accessi: matrice di controllo, liste di controllo, liste di capacità, controllo degli accessi basato sui ruoli. [Attacchi all'anonimato e tecniche di anonimizzazione dei dati] Re-identificazione (o de-anonimizzazione) e attacchi di inferenza. Tecniche di anonimizzazione di base: soppressione di attributi e record, offuscamento di caratteri, pseudonimizzazione, generalizzazione, mescolamento, aggregazione, perturbazione. Tecniche di anonimizzazione avanzate: k-anonimato, l-diversità, anatomizzazione. [Nozioni di base sulla blockchain] Componenti della blockchain: transazioni, blocchi, meccanismi di consenso decentralizzati. Tipi di blockchain: pubblica, permissionless, permissioned. La blockchain Bitcoin. Concetti generali sulle blockchain programmabili e sugli smart contract. Applicazioni della blockchain. [La blockchain Ethereum e il linguaggio Solidity] Account di Ethereum. Gas e commissioni. Tipi di transazioni in Ethereum. Ethereum come sistema a transizione di stati. Meccanismi di consenso in Ethereum. Esempi di smart contract in Solidity. Standard di sviluppo di Ethereum. Strumenti e framework per lo sviluppo e test di applicazioni decentralizzate (dapp) per Ethereum.
Modalità d'esame
[Obiettivi della valutazione]. Valutare (i) la conoscenza dei concetti teorici impartiti dal docente; (ii) la capacità di analizzare la sicurezza di specifiche soluzioni per la protezione dei dati; e (iii) la capacità di sviluppare protocolli e sistemi, incluse applicazioni decentralizzate per blockchain, che offrano un determinato livello di sicurezza e soddisfino determinati vincoli di progettazione. L'esame consiste in una prova orale e in un lavoro di progetto (project work) come descritto di seguito. Prova orale • Durata: 30 minuti. • Punteggio: 20/30. • Composizione: 2 questi teorici e 1 esercizio pratico. Progetto • Obiettivo: sviluppo di un semplice sistema per la protezione dei dati, compresa un'applicazione decentralizzata (dapp) per blockchain. • Consegna: software e tesina (documento di progetto). • Numero di partecipanti: 1 (progetto individuale) o 2 (progetto di gruppo). • Punteggio: 10/30.
Testi di riferimento
Il corso affronta molte tematiche di recentissima introduzione riguardanti tecnologie in continua evoluzione, che non sono raccolte in un singolo libro di testo. Per questo, gran parte dei contenuti sono illustrati nelle dispense a cura del docente. Si segnalano tuttavia alcuni testi di riferimento, tutorial e documentazione on-line per approfondimenti sui vari argomenti trattati. Testi consigliati Michael Goodrich, Roberto Tamassia. Introduction to Computer Security (2nd Edition). Pearson Education, 2021. Jonathan Katz, Yehuda Lindell. Introduction to Modern Cryptography (3rd Edition). Chapman & Hall/CRC, 2021. William Stallings. Crittografia (1a edizione). Pearson Italia, 2022. Charlie Kaufman, Radia Perlman, Mike Speciner, Ray Perlner. Network Security: Private Communication in a Public World (3rd Edition). Addison-Wesley Professional, 2022. A. Narayanan, J. Bonneau, E. Felten, A. Miller, S. Goldfeder. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press, 2016. Andreas M. Antonopoulos, Gavin Wood. Mastering Ethereum: Building Smart Contracts and Dapps. O'Reilly Media, Inc., 2018. Testi online gratuti Paul C. van Oorschot. Computer Security and the Internet: Tools and Jewels from Malware to Bitcoin (2nd Edition). Springer, 2021 [https://people.scs.carleton.ca/~paulv/toolsjewels.html] A. J. Menezes, P. C. van Oorschot and S. A. Vanstone. Handbook of Applied Cryptography (5th printing). CRC Press, 2001. [https://cacr.uwaterloo.ca/hac/] Andreas M. Antonopoulos, Gavin Wood. Mastering Ethereum: Building Smart Contracts and Dapps. O'Reilly Media, Inc., 2018. [https://github.com/ethereumbook/ethereumbook] Tutorial e documentazione on-line Developer Guides - Bitcoin [https://developer.bitcoin.org/] Ethereum Development Documentation [https://ethereum.org/en/developers/docs/] Ethereum Development Tutorials [https://ethereum.org/en/developers/tutorials/] Ethereum Whitepaper [https://ethereum.org/en/whitepaper/] Solidity [https://docs.soliditylang.org/]
Codice insegnamento 436160
Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della…
Scheda dell'insegnamento
Obiettivi formativi
- Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della trasformazione tra coppie di immagini; strategie per la ricostruzione 3D a partire da immagini in configurazione stereo; principi alla base della Visual odometry e del Visual SLAM; caratteristiche, vantaggi e soluzioni basate su reti neurali convoluzionali; tecniche e soluzioni basate su reinforcement learning e deep reinforcement learning. - Abilità: nella scelta di tecnologie e blocchi funzionali di sistemi di analisi di immagine per varie applicazioni; nell’utilizzo di reti neurali convoluzionali e nella progettazione di architetture di deep learning e di deep reinforcement learning (in particolare con il framework Pytorch) - L'insegnamento, inoltre, contribuisce al conseguimento dei seguenti risultati di apprendimento: elaborare e/o applicare idee originali in applicazioni diverse; risolvere problemi in ambienti nuovi e/o interdisciplinari; motivare le scelte progettuali compiute evidenziando possibili criticità; integrare le conoscenze e gestire la complessità.
Programma
Operazioni di filtraggio, estrazione di punti di interesse e di descrittori di immagine. Matching e Trasformazioni di immagine. Geometria epipolare e ricostruzione stereo. Visual odometry, graph-based SLAM e Visual SLAM. Deep Learning e reti neurali convoluzionali. Deep Reinforcement Learning. Esercitazioni guidate su Pytorch per la progettazione di reti neurali convoluzionali e di applicazioni basate su deep reinforcement learning.
Al fine di comprendere i contenuti presentati e conseguire gli obiettivi di apprendimento è utile possedere una conoscenza di base di Algebra Lineare e una buona conoscenza di Machine Learning e di programmazione. Insegnamento suggerito: “Machine Learning and Data Mining”.
L’insegnamento è organizzato come segue: - lezioni frontali in aula; - lezioni frontali a carattere seminariale - esercitazioni guidate presso il Laboratorio di Informatica sulla progettazione di soluzioni per problem di deep learning e deep reinforcement learning con framework Pytorch. Strumenti di supporto alla didattica: lavagna e PC+proiettore, PC.
Introduzione alla Computer Vision. Filtraggio di immagine. Image Features. Descrittori di Immagine e matching tra descrittori. Trasformazioni di Immagine. Geometria Stereo. Visual odometry. Graph-based SLAM e Visual SLAM. Machine learning e Computer Vision: Introduzione. Deep Learning. Reti neurali convoluzionali (CNN). Architetture per le CNN. Reti neurali ricorrenti: RNN –LSTM –GRU. Applicazioni delle CNN. Modelli generativi (Generative adversarial network (GAN)) e applicazioni non supervisionate delle CNN. Reinforcement Learning: Introduzione, concetti generali e algoritmi. Deep Reinforcement Learning. Esercitazioni di laboratorio: Framework per il deep learning, design di architetture per le CNN, esempi di applicazioni delle CNN. Esempi di soluzioni basate su Deep Reinforcement Learning.
Modalità d'esame
Le conoscenze relative all’insegnamento vengono accertate attraverso una Prova orale e una prova pratica (tesina). La prova orale prevede la discussione del progetto presentato e due domande su argomenti scelti dal docente, e dura circa 45 minuti. La prova è volta ad accertare la compresione, da parte dello studente, degli strumenti teorici fondamentali forniti dall'insegnamento, nonchè le relazioni tra tali strumenti e le tematiche generali dell'ingegneria informatica. Il progetto presentato viene utilizzato per verificare le capacità di progettazione di soluzioni basate su deep learning e deep reinforcement learning per applicazioni di computer vision e robotica attraverso il framework Pytorch. La tesina deve essere inviata al docente il giorno prima della prova di esame. Le prenotazioni alle prove di esame avvengono tramite il portale SOL: https://www.segreterie.unipg.it/ Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Richard Szeliski. “Computer Vision: Algorithms and Applications”, Springer - Ian Goodfellow, Yoshua Bengio, Aaron Courville. “Deep Learning”, MIT Press - Christopher Bishop. “Pattern Recognition and Machine Learning”, Springer; Richard Hartley, Andrew Zisserman. “Multiple view geometry”, Cambridge University Press – Ramesh Jain, Rangachar Kasturi, Brian G. Schunk. “Machine Vision”, McGraw-Hill – Richard S. Sutton, Andrew G. Barto. “Reinforcement Learning: an Introduction”, MIT Press. Dispense a cura del docente disponibili su UNISTUDIUM - PIATTAFORMA DI E-LEARNING DELL'UNIVERSITÀ DEGLI STUDI DI PERUGIA (https://www.unistudium.unipg.it/unistudium/ )
Codice insegnamento 436170
Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della…
Scheda dell'insegnamento
Obiettivi formativi
- Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della trasformazione tra coppie di immagini; strategie per la ricostruzione 3D a partire da immagini in configurazione stereo; principi alla base della Visual odometry e del Visual SLAM; caratteristiche, vantaggi e soluzioni basate su reti neurali convoluzionali; tecniche e soluzioni basate su reinforcement learning e deep reinforcement learning. - Abilità: nella scelta di tecnologie e blocchi funzionali di sistemi di analisi di immagine per varie applicazioni; nell’utilizzo di reti neurali convoluzionali e nella progettazione di architetture di deep learning e di deep reinforcement learning (in particolare con il framework Pytorch) - L'insegnamento, inoltre, contribuisce al conseguimento dei seguenti risultati di apprendimento: elaborare e/o applicare idee originali in applicazioni diverse; risolvere problemi in ambienti nuovi e/o interdisciplinari; motivare le scelte progettuali compiute evidenziando possibili criticità; integrare le conoscenze e gestire la complessità.
Programma
Operazioni di filtraggio, estrazione di punti di interesse e di descrittori di immagine. Matching e Trasformazioni di immagine. Geometria epipolare e ricostruzione stereo. Visual odometry, graph-based SLAM e Visual SLAM. Deep Learning e reti neurali convoluzionali. Deep Reinforcement Learning. Esercitazioni guidate su Pytorch per la progettazione di reti neurali convoluzionali e di applicazioni basate su deep reinforcement learning.
Al fine di comprendere i contenuti presentati e conseguire gli obiettivi di apprendimento è utile possedere una conoscenza di base di Algebra Lineare e una buona conoscenza di Machine Learning e di programmazione. Insegnamento suggerito: “Machine Learning and Data Mining”.
L’insegnamento è organizzato come segue: - lezioni frontali in aula; - lezioni frontali a carattere seminariale - esercitazioni guidate presso il Laboratorio di Informatica sulla progettazione di soluzioni per problem di deep learning e deep reinforcement learning con framework Pytorch. Strumenti di supporto alla didattica: lavagna e PC+proiettore, PC.
Introduzione alla Computer Vision. Filtraggio di immagine. Image Features. Descrittori di Immagine e matching tra descrittori. Trasformazioni di Immagine. Geometria Stereo. Visual odometry. Graph-based SLAM e Visual SLAM. Machine learning e Computer Vision: Introduzione. Deep Learning. Reti neurali convoluzionali (CNN). Architetture per le CNN. Reti neurali ricorrenti: RNN –LSTM –GRU. Applicazioni delle CNN. Modelli generativi (Generative adversarial network (GAN)) e applicazioni non supervisionate delle CNN. Reinforcement Learning: Introduzione, concetti generali e algoritmi. Deep Reinforcement Learning. Esercitazioni di laboratorio: Framework per il deep learning, design di architetture per le CNN, esempi di applicazioni delle CNN. Esempi di soluzioni basate su Deep Reinforcement Learning.
Modalità d'esame
Le conoscenze relative all’insegnamento vengono accertate attraverso una Prova orale e una prova pratica (tesina). La prova orale prevede la discussione del progetto presentato e due domande su argomenti scelti dal docente, e dura circa 45 minuti. La prova è volta ad accertare la compresione, da parte dello studente, degli strumenti teorici fondamentali forniti dall'insegnamento, nonchè le relazioni tra tali strumenti e le tematiche generali dell'ingegneria informatica. Il progetto presentato viene utilizzato per verificare le capacità di progettazione di soluzioni basate su deep learning e deep reinforcement learning per applicazioni di computer vision e robotica attraverso il framework Pytorch. La tesina deve essere inviata al docente il giorno prima della prova di esame. Le prenotazioni alle prove di esame avvengono tramite il portale SOL: https://www.segreterie.unipg.it/ Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Richard Szeliski. “Computer Vision: Algorithms and Applications”, Springer - Ian Goodfellow, Yoshua Bengio, Aaron Courville. “Deep Learning”, MIT Press - Christopher Bishop. “Pattern Recognition and Machine Learning”, Springer; Richard Hartley, Andrew Zisserman. “Multiple view geometry”, Cambridge University Press – Ramesh Jain, Rangachar Kasturi, Brian G. Schunk. “Machine Vision”, McGraw-Hill – Richard S. Sutton, Andrew G. Barto. “Reinforcement Learning: an Introduction”, MIT Press. Dispense a cura del docente disponibili su UNISTUDIUM - PIATTAFORMA DI E-LEARNING DELL'UNIVERSITÀ DEGLI STUDI DI PERUGIA (https://www.unistudium.unipg.it/unistudium/ )
Codice insegnamento 458465
Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della…
Scheda dell'insegnamento
Obiettivi formativi
- Conoscenza di base di: problematiche connesse all’estrazione di informazioni di vario livello semantico da immagini; tecniche di estrazione di features e di descrittori di immagine; tecniche per la stima della trasformazione tra coppie di immagini; strategie per la ricostruzione 3D a partire da immagini in configurazione stereo; principi alla base della Visual odometry e del Visual SLAM; caratteristiche, vantaggi e soluzioni basate su reti neurali convoluzionali; tecniche e soluzioni basate su reinforcement learning e deep reinforcement learning. - Abilità: nella scelta di tecnologie e blocchi funzionali di sistemi di analisi di immagine per varie applicazioni; nell’utilizzo di reti neurali convoluzionali e nella progettazione di architetture di deep learning e di deep reinforcement learning (in particolare con il framework Pytorch) - L'insegnamento, inoltre, contribuisce al conseguimento dei seguenti risultati di apprendimento: elaborare e/o applicare idee originali in applicazioni diverse; risolvere problemi in ambienti nuovi e/o interdisciplinari; motivare le scelte progettuali compiute evidenziando possibili criticità; integrare le conoscenze e gestire la complessità.
Programma
Operazioni di filtraggio, estrazione di punti di interesse e di descrittori di immagine. Matching e Trasformazioni di immagine. Geometria epipolare e ricostruzione stereo. Visual odometry, graph-based SLAM e Visual SLAM. Deep Learning e reti neurali convoluzionali. Deep Reinforcement Learning. Esercitazioni guidate su Pytorch per la progettazione di reti neurali convoluzionali e di applicazioni basate su deep reinforcement learning.
Al fine di comprendere i contenuti presentati e conseguire gli obiettivi di apprendimento è utile possedere una conoscenza di base di Algebra Lineare e una buona conoscenza di Machine Learning e di programmazione. Insegnamento suggerito: “Machine Learning and Data Mining”.
L’insegnamento è organizzato come segue: - lezioni frontali in aula; - lezioni frontali a carattere seminariale - esercitazioni guidate presso il Laboratorio di Informatica sulla progettazione di soluzioni per problem di deep learning e deep reinforcement learning con framework Pytorch. Strumenti di supporto alla didattica: lavagna e PC+proiettore, PC.
Introduzione alla Computer Vision. Filtraggio di immagine. Image Features. Descrittori di Immagine e matching tra descrittori. Trasformazioni di Immagine. Geometria Stereo. Visual odometry. Graph-based SLAM e Visual SLAM. Machine learning e Computer Vision: Introduzione. Deep Learning. Reti neurali convoluzionali (CNN). Architetture per le CNN. Reti neurali ricorrenti: RNN –LSTM –GRU. Applicazioni delle CNN. Modelli generativi (Generative adversarial network (GAN)) e applicazioni non supervisionate delle CNN. Reinforcement Learning: Introduzione, concetti generali e algoritmi. Deep Reinforcement Learning. Esercitazioni di laboratorio: Framework per il deep learning, design di architetture per le CNN, esempi di applicazioni delle CNN. Esempi di soluzioni basate su Deep Reinforcement Learning.
Modalità d'esame
Le conoscenze relative all’insegnamento vengono accertate attraverso una Prova orale e una prova pratica (tesina). La prova orale prevede la discussione del progetto presentato e due domande su argomenti scelti dal docente, e dura circa 45 minuti. La prova è volta ad accertare la compresione, da parte dello studente, degli strumenti teorici fondamentali forniti dall'insegnamento, nonchè le relazioni tra tali strumenti e le tematiche generali dell'ingegneria informatica. Il progetto presentato viene utilizzato per verificare le capacità di progettazione di soluzioni basate su deep learning e deep reinforcement learning per applicazioni di computer vision e robotica attraverso il framework Pytorch. La tesina deve essere inviata al docente il giorno prima della prova di esame. Le prenotazioni alle prove di esame avvengono tramite il portale SOL: https://www.segreterie.unipg.it/ Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Richard Szeliski. “Computer Vision: Algorithms and Applications”, Springer - Ian Goodfellow, Yoshua Bengio, Aaron Courville. “Deep Learning”, MIT Press - Christopher Bishop. “Pattern Recognition and Machine Learning”, Springer; Richard Hartley, Andrew Zisserman. “Multiple view geometry”, Cambridge University Press – Ramesh Jain, Rangachar Kasturi, Brian G. Schunk. “Machine Vision”, McGraw-Hill – Richard S. Sutton, Andrew G. Barto. “Reinforcement Learning: an Introduction”, MIT Press. Dispense a cura del docente disponibili su UNISTUDIUM - PIATTAFORMA DI E-LEARNING DELL'UNIVERSITÀ DEGLI STUDI DI PERUGIA (https://www.unistudium.unipg.it/unistudium/ )
Codice insegnamento 436163
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulle applicazioni client/server e sullo sviluppo di servizi Web. In particolare, al termine del corso lo studente avrà acquisito:…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento si prefigge di impartire agli studenti le nozioni teoriche e pratiche sulle applicazioni client/server e sullo sviluppo di servizi Web. In particolare, al termine del corso lo studente avrà acquisito: (a) conoscenza dei principi delle architetture client/server; (b) conoscenza di strumenti di programmazione avanzata in Java per la realizzazione di applicazioni distribuite. (c) conoscenza delle principali metodologie per il progetto e lo sviluppo di applicazioni per il Web. (d) capacità di realizzare servizi ad architettura client/server attraverso il linguaggio Java. (e) capacità di realizzare applicazioni Web, attraverso alcune tecnologie ampiamente diffuse, come HTML/CSS, Jascript, Node.Js e Java.
Programma
I servizi in Internet. Progetto di applicazioni client/server. Sviluppo di applicazioni e servizi per il Web
Sono richieste conoscenze di base relativamente alla progettazione e all'analisi di algoritmi, nonché conoscenze di programmazione imperativa e ad oggetti tramite il linguaggio Java. Queste nozioni sono tipicamente acquisite in un percorso triennale in ingegneria informatica o in informatica.
Il corso si articola in due principali tipologie di lezioni: (i) Lezioni frontali (per circa il 50% del tempo totale). Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi. (ii) Esercitazioni guidate in laboratorio (per circa il 50% del tempo totale): si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
[I servizi in Internet]. Richiami sull'architettura della rete Internet. Servizi in Internet: principi delle architetture client/server. Analisi di alcune applicazioni di largo uso: World Wide Web (HTTP), posta elettronica (SMTP), collegamento remoto (telnet), trasferimento file (ftp). [Progetto di applicazioni client/server in Java]. Strumenti avanzati di programmazione: gestione degli errori, multithreading, gestione dell'input/output. Progettazione di protocolli di comunicazione. Connessioni di rete tramite socket e secure socket TCP. Studi di caso: client Web, ChatLine. Connessioni di rete tramite socket UDP. [Applicazioni e servizi Web]. Formati di descrizione dei dati: XML, JSON. Applicazioni Web e Web Services: principi architetturali e tipologie di Web Services (SOAP-based e RESTful). Linguaggi, protocolli e tecnologie di sviluppo di applicazioni Web: HTML/CSS, Java Servlet e tecnologie correlate, Javascipt, AJAX, Node.js, Web socket e gRPC.
Modalità d'esame
[Obiettivi della valutazione]. I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché le sue capacità di applicare tali conoscenze per la risoluzione di problemi teorici e applicativi. Il tipo di prova è dettagliato di seguito. Esame scritto di natura teorica e prova di programmazione pratica Durata: 2 ore Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento e valutare abilità di programmazione per applicazioni in Internet e per il Web I risultati della prova sono presentati allo studente durante un breve colloquio, in cui lo studente può confutare i giudizi del docente. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
La disciplina affronta un insieme di metodologie e tecnologie che non sono contenute in un singolo libro di testo. Gli argomenti trattati sono illustrati in una collezione di dispense a cura del docente.
Codice insegnamento 436168
Il corso illustra alcune tecniche di base per la visualizzazione dell'informazione, con particolare enfasi su metodi e modelli algoritmici. Si pone l'obiettivo di approfondire la conoscenza degli studenti su problemi…
Scheda dell'insegnamento
Obiettivi formativi
Il corso illustra alcune tecniche di base per la visualizzazione dell'informazione, con particolare enfasi su metodi e modelli algoritmici. Si pone l'obiettivo di approfondire la conoscenza degli studenti su problemi di ingegneria degli algoritmi e di ottimizzazione su reti; tali conoscenze vengono quindi applicate a problemi di visualizzazione dell'informazione di varia natura e con forte connotazione pratica. Le competenze acquisite dagli studenti in questo corso hanno utilità in svariati contesti industriali, in particolare nell'ambito del trattamentoi dei Big Data e nello sviluppo di tecnologie informatiche per la Data Science.
Programma
Introduzione alla visualizzazione dell'informazione e sue applicazioni. Introduzione alla progettazione di sistemi per l'analisi visuale dei dati. Modello annidato e modello lineare. Modellazione dei dati, modellazione dei task, principi della percezione, idiomi visuali, progettazione delle interazioni, scelte tecnologiche, librerie e interfacce grafiche. Algoritmi per l'analisi visuale dei dati: tabelle, dati spaziali e dati relazionali. Algoritmi per il disegno di grafi: alberi, disegni straight-line, disegni polyline e disegni ortogonali.
Il corso si colloca al quinto anno di un curriculum didattico che prevede una laurea di primo livello nella classe L08 (ingegneria informatica o affine) ed un primo anno di laurea magistrale nella classe LM32 (ingegneria informatica o affine). Pertanto, si prevede che gli studenti che frequentano il corso abbiano competenze sugli argomenti tipicamente trattati in tali corsi di studio. In particolare, durante le lezioni si faranno riferimenti a temi di: Fondamenti di informatica; basi di dati, architetture e sistemi operativi; informatica grafica; ingegneria del software; informatica teorica; algoritmi e strutture dati.
La didattica prevede tre tipi di lezioni: Lezioni teoriche frontali in aula su tutti gli argomenti del corso. Agli studenti verrà fornita in anticipo copia delle diapositive utilizzate dal docente a lezione tramite area riservata del corso. Studi di caso in aula, durante i quali si considerano problemi progettuali di visualizzazione dell'informazione. Lezioni pratiche durante le quali gli studenti apprendono i principi fondamentali per la realizzazione di sistemi di analisi visuale.
Il corso illustra alcune tecniche di base per la visualizzazione dell'informazione, con particolare enfasi su metodi e modelli algoritmici. Il corso si articola su 36 lezioni di due ore ciascuna. Il programma è elencato nel seguito, indicando per ogni lezione l'argomento in essa trattato. Lez.1 Introduzione alla visualizzazione dell'informazione. Lez.2 Modelli di progetto: modello annidato e modello lineare. Lez.3 Modellazione dei dati. Lez.4 Modellazione dei task. Lez.5 Principi della percezione. Lez.6 Idiomi visuali (parte I). Lez.7 Idiomi visuali (parte II). Lez.8 Progettazione delle interazioni. Lez.9 Scelte tecnologiche. Lez.10 Librerie e interfacce grafiche. Lez.11 Convex hull e 1D range search. Lez.12 2D range search. Lez.13 Blocchi. Lez.14 Treemap. Lez.15 Disegni di alberi (parte I). Lez.16 Disegni di alberi (parte II). Lez.17 Metodi force directed (parte I). Lez.18 Metodi force directed (parte II). Lez.19 Disegni polyline di grafi diretti (parte I). Lez. 20 Disegni polyline di grafi diretti (parte II). Lez. 21 Disegni polyline di grafi diretti (parte III). Lez. 22 Disegni polyline di grafi diretti (parte IV). Lez. 23 Introduzione e richiami sulla planarità. Lez. 24 Test di planarità e planarizzazione. Lez. 25 Richiami sulle tecniche di flusso. Lez. 26 Disegni ortogonali (parte I). Lez. 27 Disegni ortogonali (parte II). Lez. 28 Disegni ortogonali (parte III). Lez. 29 Disegni ortogonali (parte IV). Lez. 30 Disegni ortogonali (parte V). Lez. 31 Minimizzazione della lunghezza degli archi. Lez. 32 Esempio di progetto. Lez. 33 Introduzione a D3.js. Lez. 34 D3 - lavorare con i dati (parte I). Lez. 35 D3 - lavorare con i dati (parte II). Lez. 36 D3 - force directed.
Modalità d'esame
Esame orale di natura teorica e applicativa, che comprende anche la discussione di un progetto. Durata: 30-45 minuti. Punteggio: 30/30. Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento e valutare abilità pratiche e competenze ingegneristiche nell'applicazione di tali concetti su casi d'uso concreti. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
- T. Munzner, Visualization Analysis and Design. A K Peters Visualization Series, CRC Press, 2014. - G. Di Battista, P. Eades, R. Tamassia and I. Tollis, Graph Drawing: Algorithms for the Visualization of Graphs. Prentice-Hall, 1999.
Codice insegnamento 436161
Il corso presenta degli strumenti di base per l’analisi ed il controllo a retroazione di sistemi lineari e non lineari e l’uso di tecniche di sintesi e analisi assistite dal calcolatore. In particolare, lo studente…
Scheda dell'insegnamento
Obiettivi formativi
Il corso presenta degli strumenti di base per l’analisi ed il controllo a retroazione di sistemi lineari e non lineari e l’uso di tecniche di sintesi e analisi assistite dal calcolatore. In particolare, lo studente sarà in grado di: 1) Sintetizzare schemi di controllo complessi per sistemi lineari a più ingressi e a più uscite 2) Analizzare sistemi non lineari e comprendere i limiti delle tecniche di controllo lineare in casi di interesse pratico. 3) Utilizzare degli strumenti di calcolo avanzato per produrre software per la progettazione automatica di sistemi di controllo.
Programma
-Complementi di teoria del controllo dei sistemi lineari. -Analisi di sistemi non lineari. -Elementi di controllo di sistemi non lineari. -Metodi di analisi e sintesi per sistemi di controllo assistiti dal calcolatore.
È richiesta la conoscenza della teoria dei sistemi lineari, del controllo a retroazione e delle equazioni differenziali.
Lezioni frontali in presenza. Esercitazioni con simulatore.
- Nozioni di teoria dei sistemi dinamici lineari. Rappresentazioni nello spazio di stato per sistemi LTI tempo continuo. -Proprietà strutturali, assegnazione degli autovalori, osservatore di Luenberger, osservatore di ordine ridotto. Principio di separazione. -Fondamenti di Controllo Ottimo. Controllo LQR e filtraggio alla Kalman. -Problema di regolazione asintotica dell’uscita. Casi a informazione parziale e completa. Condizioni necessarie e sufficienti. Risultati specifici per il caso SISO. -Sistemi non-lineari in forma di stato. Introduzione, caratteristiche peculiari: cicli limite, equilibri isolati, esplosione in tempo finito. -Stabilità alla Lyapunov di punti di equilibrio. Convergenza e stabilità asintotica. - Teorema di stabilità di Lyapunov. Teorema di Barbashin Krasovkii per la stabilità asintotica globale. Principio di LaSalle e teorema Barbashin Krasovkii LaSalle. -Teorema di linearizzazione. -Stabilità esponenziale: nozioni, condizioni sufficienti. Teorema converso di stabilità esponenziale. -Stabilità per sistemi soggetti a perturbazioni evanescenti o persistenti. -Diseguaglianze matriciali lineari come strumento di analisi e sintesi di sistemi di controllo. -LFT ed approccio ingresso-uscita per l'analisi di stabilità e la rappresentazione delle incertezze. -Controllo H infinito. -Guadagno L2 e norma H infinito. Bounded real lemma. -Stabilità robusta in presenza di incertezze limitate in norma. Teorema del piccolo guadagno. -Cenni al problema di regolazione robusta.
Modalità d'esame
L’esame prevede una prova orale. La prova orale consiste in una discussione di una serie di elaborati preparati durante il corso e successivamente ad accertare il livello di conoscenza e le capacità di comprensione che lo studente ha raggiunto sui contenuti teorici relativamente al programma in esame.
Testi di riferimento
- A. Isidori, "Sitemi di Controllo Vol. 2", Edizioni Siderea, 1993. -H. Khalil, "Nonlinear systems", Prentice Hall, 2002. - Jie Huang. "Advances in Design and Control Nonlinear Output Regulation: Theory and Applications." -Geir E. Dullerud, Fernando Paganini. "A Course in Robust Control Theory: A Convex Approach.".
Codice insegnamento 436164
Comprendere e applicare i fondamenti dell'inferenza statistica e della ottimizzazione convessa all'analisi di (big)-data. Comprendere il concetto di riduzione dei dati e le condizioni sotto le quali l'inferenza…
Scheda dell'insegnamento
Obiettivi formativi
Comprendere e applicare i fondamenti dell'inferenza statistica e della ottimizzazione convessa all'analisi di (big)-data. Comprendere il concetto di riduzione dei dati e le condizioni sotto le quali l'inferenza statistica e/o la ricostruzione dell'informazione non soffre eccessivamente di riduzione/campionamento. Estendere le conoscenze dell'elaborazione dei segnali ai segnali definiti su grafi, come una naturale rappresentazione di grandi moli di dati, dipendente dalla loro distribuzione fisica su reti geografiche o tecnologiche, piuttosto che dalla loro intrinseca similarità statistica, o da entrambe. Comprendere gli strumenti metodologici per distribuire algoritmi di inferenza statistica su agenti multipli (computers, etc.) al fine di abilitare l'inferenza statistica e l'apprendimento su grandi moli di dati, potenzialmente distribuiti fisicamente o logicamente su una rete. Apprendere dai dati osservati, la struttura topologica dei grafi o delle reti che ne caratterizzano la generazione. Apprendere dai dati osservati la struttura topologica che caratterizza la loro generazione ed evoluzione.
Programma
- RICHIAMI di ELABORAZIONE STATISTICA di DATI e SEGNALI. - FONDAMENTI di OTTIMIZZAZIONE CONVESSA - ALGORITMI di APPRENDIMENTO ADATTATIVI E ITERATIVI - BIG. DATA REDUCTION and SAMPLING - ELABORAZIONE di DATI/SEGNALI su GRAFI - OTTIMIZZAZIONE DISTRIBUITA per l'elaborazione di DATI/SEGNALI e l'APPRENDIMENTO su RETI/GRAFI.
Indispensabili: Analisi I e II, Algebra lineare, Teoria della Probabilità, Teoria dei Segnali, Processi Aleatori, Elaborazione numerica dei segnali. Suggeriti: Machine Learning e Data Mining. Utili: Teoria della Stima e della Decisione
Le lezioni saranno frontali con l'aiuto di slide/appunti al calcolatore. Inoltre alcuni degli algoritmi spiegati a lezione, saranno implementati al calcolatore in modo interattivo con gli studenti.
- Part I: RICHIAMi DI INFERENZA STATISTICA ed APPRENDIMENTO (6 ore) Richiami sul concetto di stimatore, classico e Bayesiano, indici di prestazioni e stimatori MVUE, MLE, MMSE, LS. Richiami su Test di ipotesi binarie: LRT, formulazione classica di Neyman-Pearson e Bayesiana ( Minimum Probability of Error, Bayes Risk). Apprendimento statistico e relazioni con machine-learning: linear regression, K-means, etc. - Part II: FUNDAMENTALS OF (DISTRIBUTED) CONVEX OPTIMIZATION (15 ore) Basi di ottimizzazione convessa: insiemi convessi, funzioni convesse problemi di ottimizzazione convessa Teoria della dualità: problema duale di Lagrange, vincoli qualificanti di Slater, condizioni KKT; Algoritmi di ottimizzazione: metodi primali (a massima discesa, proiezione del gradiente, metodo di Newton), metodi primali-duali (salita del problema duale, alternating direction method of multipliers); Esempi di applicazione: Approssimazione e fitting, inferenza statistica, apprendimento supervisionato e non-supervisionato dai dati. ottimizzazione distribuita: algoritmi al consenso e algoritmi di data-sharing. Ottimizzazione distribuita: metodi primali e duali; - Part III: BIG-DATA REDUCTION (12 ore) Campionamento e Sensing compressivo e sparso ed associata ricostruzione. Stima statistica da osservazioni sparse. Classificazione attraverso Principal Component Analysis, Canonical Correlation Analysis, and Information Bottleneck. Part IV: GRAPH-BASED SIGNAL PROCESSING (18 ore) Segnali definiti su grafi: esempi e motivazioni; cenni a teoria algebrica dei grafi, caratteristiche strutturale dei grafi; elaborazione di dati(segnali sui grafi: Graph Fourier Transform, smoothing, campionamento, e compressione dati su un grafo. Filtraggio su grafi. Cenni a Graph Neuraòl Networks. Algoritmi di graph-clustering di tipo spettrale. Disegno di grafi tramite autovettori della matrice Laplaciana. - Part V: DISTRIBUTED DATA PROCESSING, and LEARNING over NETWORKS (27 ore) Consenso medio: teoria ed algoritmi; elaborazione distribuita dei segnali: stima e detection; LMS, RLS and Kalman Filtering on Graphs. Distributed supervised learning (LASSO, SVM, Logistic Regression) Distributed unsupervised learning: Dictionary, learning, data clustering (PCA, CCA, Information Bottleneck). Graph learning: Gaussian Markov Random Fields and Graphical LASSO, approcci basati su Smoothness e Variazione Totale, Processi Gaussiani per inferenza di Grafi diretti. Algoritmi di Matrix Completion. Approccio al Deep-learning basato su Modelli ed esempi: da ISTA a FISTA.
Modalità d'esame
1) Una breve tesina scritta sull'approfondimento di uno degli argomenti trattati a lezione, corredata dai risultati di simulazioni al calcolatore. Da consegnare preferibilmente 1 settimana prima della prova orale. 2) Esame orale: discussione della tesina e tipicamente un paio di domande sugli ulteriori contenuti del corso. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Il contenuto dell'insegnamento sarà ispirato al contenuto di alcuni capitoli di questi libri:- S.Kay, Fundamentals of Statistical Signal Processing, Vol. I & II, Prentice Hall, 1993-1998; - S. Theodoridis, Machine Learning: A Bayesian and optimization perspective.- T. Hastie, et. al., The Elements of Statistical Learning: data Mining, Inference, and Prediction - M. E. J Newman, Networks an Introduction - S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004; - S. Boyd et al., Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers, Foundations and Trends in Machine Learning, 3(1):1–122, 2011 - Inoltre saranno rese disponibili delle dispense a cura del docente.
Codice insegnamento 436159
Comprendere e applicare i fondamenti dell'inferenza statistica e della ottimizzazione convessa all'analisi di (big)-data. Comprendere il concetto di riduzione dei dati e le condizioni sotto le quali l'inferenza…
Scheda dell'insegnamento
Obiettivi formativi
Comprendere e applicare i fondamenti dell'inferenza statistica e della ottimizzazione convessa all'analisi di (big)-data. Comprendere il concetto di riduzione dei dati e le condizioni sotto le quali l'inferenza statistica e/o la ricostruzione dell'informazione non soffre eccessivamente di riduzione/campionamento. Estendere le conoscenze dell'elaborazione dei segnali ai segnali definiti su grafi, come una naturale rappresentazione di grandi moli di dati, dipendente dalla loro distribuzione fisica su reti geografiche o tecnologiche, piuttosto che dalla loro intrinseca similarità statistica, o da entrambe. Comprendere gli strumenti metodologici per distribuire algoritmi di inferenza statistica su agenti multipli (computers, etc.) al fine di abilitare l'inferenza statistica e l'apprendimento su grandi moli di dati, potenzialmente distribuiti fisicamente o logicamente su una rete. Apprendere dai dati osservati, la struttura topologica dei grafi o delle reti che ne caratterizzano la generazione. Apprendere dai dati osservati la struttura topologica che caratterizza la loro generazione ed evoluzione.
Programma
- RICHIAMI di ELABORAZIONE STATISTICA di DATI e SEGNALI. - FONDAMENTI di OTTIMIZZAZIONE CONVESSA - ALGORITMI di APPRENDIMENTO ADATTATIVI E ITERATIVI - BIG. DATA REDUCTION and SAMPLING - ELABORAZIONE di DATI/SEGNALI su GRAFI - OTTIMIZZAZIONE DISTRIBUITA per l'elaborazione di DATI/SEGNALI e l'APPRENDIMENTO su RETI/GRAFI.
Indispensabili: Analisi I e II, Algebra lineare, Teoria della Probabilità, Teoria dei Segnali, Processi Aleatori, Elaborazione numerica dei segnali. Suggeriti: Machine Learning e Data Mining. Utili: Teoria della Stima e della Decisione
Le lezioni saranno frontali con l'aiuto di slide/appunti al calcolatore. Inoltre alcuni degli algoritmi spiegati a lezione, saranno implementati al calcolatore in modo interattivo con gli studenti.
- Part I: RICHIAMi DI INFERENZA STATISTICA ed APPRENDIMENTO (6 ore) Richiami sul concetto di stimatore, classico e Bayesiano, indici di prestazioni e stimatori MVUE, MLE, MMSE, LS. Richiami su Test di ipotesi binarie: LRT, formulazione classica di Neyman-Pearson e Bayesiana ( Minimum Probability of Error, Bayes Risk). Apprendimento statistico e relazioni con machine-learning: linear regression, K-means, etc. - Part II: FUNDAMENTALS OF (DISTRIBUTED) CONVEX OPTIMIZATION (15 ore) Basi di ottimizzazione convessa: insiemi convessi, funzioni convesse problemi di ottimizzazione convessa Teoria della dualità: problema duale di Lagrange, vincoli qualificanti di Slater, condizioni KKT; Algoritmi di ottimizzazione: metodi primali (a massima discesa, proiezione del gradiente, metodo di Newton), metodi primali-duali (salita del problema duale, alternating direction method of multipliers); Esempi di applicazione: Approssimazione e fitting, inferenza statistica, apprendimento supervisionato e non-supervisionato dai dati. ottimizzazione distribuita: algoritmi al consenso e algoritmi di data-sharing. Ottimizzazione distribuita: metodi primali e duali; - Part III: BIG-DATA REDUCTION (12 ore) Campionamento e Sensing compressivo e sparso ed associata ricostruzione. Stima statistica da osservazioni sparse. Classificazione attraverso Principal Component Analysis, Canonical Correlation Analysis, and Information Bottleneck. Part IV: GRAPH-BASED SIGNAL PROCESSING (18 ore) Segnali definiti su grafi: esempi e motivazioni; cenni a teoria algebrica dei grafi, caratteristiche strutturale dei grafi; elaborazione di dati(segnali sui grafi: Graph Fourier Transform, smoothing, campionamento, e compressione dati su un grafo. Filtraggio su grafi. Cenni a Graph Neuraòl Networks. Algoritmi di graph-clustering di tipo spettrale. Disegno di grafi tramite autovettori della matrice Laplaciana. - Part V: DISTRIBUTED DATA PROCESSING, and LEARNING over NETWORKS (27 ore) Consenso medio: teoria ed algoritmi; elaborazione distribuita dei segnali: stima e detection; LMS, RLS and Kalman Filtering on Graphs. Distributed supervised learning (LASSO, SVM, Logistic Regression) Distributed unsupervised learning: Dictionary, learning, data clustering (PCA, CCA, Information Bottleneck). Graph learning: Gaussian Markov Random Fields and Graphical LASSO, approcci basati su Smoothness e Variazione Totale, Processi Gaussiani per inferenza di Grafi diretti. Algoritmi di Matrix Completion. Approccio al Deep-learning basato su Modelli ed esempi: da ISTA a FISTA.
Modalità d'esame
1) Una breve tesina scritta sull'approfondimento di uno degli argomenti trattati a lezione, corredata dai risultati di simulazioni al calcolatore. Da consegnare preferibilmente 1 settimana prima della prova orale. 2) Esame orale: discussione della tesina e tipicamente un paio di domande sugli ulteriori contenuti del corso. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Testi di riferimento
Il contenuto dell'insegnamento sarà ispirato al contenuto di alcuni capitoli di questi libri:- S.Kay, Fundamentals of Statistical Signal Processing, Vol. I & II, Prentice Hall, 1993-1998; - S. Theodoridis, Machine Learning: A Bayesian and optimization perspective.- T. Hastie, et. al., The Elements of Statistical Learning: data Mining, Inference, and Prediction - M. E. J Newman, Networks an Introduction - S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004; - S. Boyd et al., Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers, Foundations and Trends in Machine Learning, 3(1):1–122, 2011 - Inoltre saranno rese disponibili delle dispense a cura del docente.
Codice insegnamento 436167
Recensioni del corso
Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.
Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.