Corso di laurea

Informatica

Università degli Studi di Perugia · 29 materie · 0 file condivisi

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

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

Advanced And Distributed Algorithms 1° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file

Il corso fornisce competenze algoritmiche superiori, caratterizzanti per il CdS. Conoscere tecniche di programmazione avanzate e saperle applicare in nuovi contesti. Conoscenze avanzate su tematiche di algoritmi…

Scheda dell'insegnamento

Obiettivi formativi

Il corso fornisce competenze algoritmiche superiori, caratterizzanti per il CdS. Conoscere tecniche di programmazione avanzate e saperle applicare in nuovi contesti. Conoscenze avanzate su tematiche di algoritmi distribuiti. Accrescimento capacità critiche e applicative

Programma

Introduzione agli Ambienti Distribuiti. Algoritmi distribuiti e misure di costo. Algoritmi classici rivisitati in ambienti distribuiti. Comportamento rispetto a varie topologie di grafo. Approfondimenti di tematiche di ricerca recenti in tale ambito e sul software di simulazione per ambienti distribuiti. Tecniche di programmazione avanzate: programmazione dinamica (PD), reti di flusso massimo (NF).

Conoscenze algoritmiche di livello intermedio

Lezione frontale Seminari

Introduzione agli Ambienti Distribuiti: Entità, Eventi, Azioni e Comunicazioni. Assiomi e Restrizioni. Costo e Complessità. Esempio del Broadcast. Algoritmo Flooding. Complessità dell'Algoritmo looding. Stati, Eventi e Configurazioni. Problemi e Soluzioni. Terminazione e Correttezza. Lower bounds per il problema del Broadcast. Broadcast su alberi e grafi completi. Topologia dell'ipercubo. Ipercubi dimensionali. Broadcasting sugli ipercubi. Problema del Wake-Up. Wake-Up su ipercubi. Prova dell'assenza di cicli in Hk(x). Wake-Up su alberi. Wake-up su grafi completi. Tecnica dell'avversario. Probelma dell'attraversamento. Algoritmo DF_Traversal. Miglioramenti dell'algoritmo DF_Traversal: DF+, DF++. Costruzione di uno Spanning Tree. Protocollo Shout. Correttezza, costi computazionali e miglioramento del protocollo Shout. Esplorazione di un grafo anonimo tramite automa a stati finiti. Orientamento locale ad-hoc per la costruzione di uno Spanning Tree. Regola della mano destra. Spanning tree con iniziatori multipli. Spanning Tree con Identificatori unici. Protocollo MultiShout. Introduzione alla tecnica della saturazione. Tecnica della saturazione. Ricerca del minimo tramite saturazione. Leader Election: Risultati di impossibilità, topologia ad albero, topologia a ring. Protocollo AsFar. Problema del Gathering. Modello Look-Compute-Move. Gathering su Ring. Approfondimenti su software di simulazione per ambienti distribuiti. Tecniche di programmazione avanzate: programmazione dinamica (PD), reti di flusso (NF). Analisi in tempo e spazio. Esempi di PD: ordine di moltiplicazione di matrici per ottenere il minimo numero di prodotti, problema dello zaino intero con/senza ripetizioni, resto, programmazione delle catene di montaggio, la più lunga sottosequenza comune fra due strighe. Il problema del flusso massimo: soluzione pseudopolinomiale, debolmente polinomiale e fortemente polinomiale. Matching.

Modalità d'esame

Esame Orale. La prova nel suo insieme consente di accertare sia la capacità di conoscenza e comprensione, sia la capacità di applicare le competenze acquisite, sia la capacità di esposizione. 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

T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN: Introduzione agli algoritmi e strutture dati (terza edizione), McGraw-Hill, 2010, ISBN: 978-88-386-6515-8. J. KLEINBERG and E. TARDOS: Algorithm Design. Pearson Addison Wisley, 2005 I materiali didattici utilizzati durante le lezioni del Modulo 2 (3 CFU) sono, solitamente, resi disponibili anche su Unistudium. N. Santoro: Design and Analysis of Distributed Algorithms. John Wiley & Sons.

Codice insegnamento 419888

Artificial Intelligent Systems 1° anno · Annuale · 12 CFU · INFO-01/A · 0 file

Risultati d'apprendimento previsti. Orientati alle conoscenze. Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali…

Scheda dell'insegnamento

Obiettivi formativi

Risultati d'apprendimento previsti. Orientati alle conoscenze. Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali tecniche di ricerca nello spazio degli stati, non informata, informata, di ricerca locale, basate su ragionamento automatico, inferenza, pianificazione automatica. Apprendimento con rinforzo e ottimizzazione di politiche. Conoscenza delle principali tecniche di modellazione di problemi basate su reti complesse ed applicazioni al settore dell'intelligenza artificiale. Conoscenza delle problematiche etiche nell'intelligenza artificiale Conoscenza del paradigma di programmazione funzionale e aspetti di base del lambda calcolo, tecniche di backtracking, pattern matching Orientati alle abilita'. Capacita' di utilizzare le conoscenze apprese per modellare, progettare e implementare soluzioni di problemi applicativi reali caratterizzati da agenti artificiali e/o reti complesse. Capacità di modellare ed implementare applicazioni intelligenti utilizzando tecniche di pattern matching, ed il paradigma funzionale Capacità di progettare strutture dati complesse. Capacità di realizzare applicazioni basate sul paradigma funzionale

Risultati di apprendimento orientati alla conoscenza: Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali tecniche di ricerca nello spazio degli stati, non informata, informata, di ricerca locale, basate su ragionamento automatico, inferenza, pianificazione automatica. Apprendimento con rinforzo e policy di ottimizzazione. Conoscenza delle principali tecniche di modellazione di problemi basate su reti complesse ed applicazioni al settore dell'intelligenza artificiale. Risultati di apprendimento orientati alle abilità: Capacita' di utilizzare le conoscenze apprese per modellare, progettare e implementare soluzioni di problemi applicativi reali caratterizzati da agenti artificiali e/o reti complesse.

Programma

Paradigma programmazione funzionale. Linguaggio Ocaml. Ricorsione. Pattern matching. Liste. Backtracking. Grafi. Algoritmi di ricerca. Cenni di lambda-calcolo. Realizzazione di un parser.

0 Introduzione all'IA 1 Modelli di agenti 2 Ricerca nello spazio degli stati, pianificazione 3 Modelli e sistemi multiagente 4 Apprendimento rinforzato 5 Simulazione di sistemi complessi 6 Analisi di reti sociai

Nessuno

Prerequisiti per un apprendimento efficace dei contenuti di questo insegnamento includono conoscenza estesa di algoritmi e concetti di base della complessità computazionale, dei modelli di grammatiche e linguaggi e dei connettivi logici elementari, strutture dati, database e problematiche relative ai sistemi concorrenti.

lezioni frontali, esercitazioni

Lezioni frontali. Esercitazioni, discussioni interattive su casi di studio. Valutazione continua attraverso progetti ed esercizi di esonero. Valutazione finale tramite prova orale e pratica (progetto). Materiale, informazioni dettagliate sugli esoneri verranno forniti a tempo debito su http://www.unistudium.unipg.it, allo studente è richiesto di conoscere il syllabus dell'insegnamento e di seguire gli aggiornamenti del docente su Unistudium.

Paradigma programmazione funzionale. Linguaggio Ocaml. Ricorsione. Pattern matching. Liste. Backtracking. Grafi. Algoritmi di ricerca. Ricerca in profondita', ricerche in ampiezza, ricerche euristiche. Branch and bound, algoritmo A*. Cenni di lambda-calcolo. Implementazione di un parser.

0-Introduzione all'intelligenza artificiale Prospettive storiche, attuali e future sull'intelligenza artificiale e l'apprendimento automatico 1-Modelli di agenti, agenti autonomi Agenti riflessivi, basati sullo stato, basati sull'inferenza e agenti che apprendono, 2-Ricerca nello spazio degli stati, pianificazione Modelli di ricerca nello spazio degli stati applicati alla ricerca non informata e informata, ricerca locale, ricerca avversaria, pianificazione automatizzata, rappresentazione delle azioni basata sulla logica, PDDL 3-Sistemi e modelli multiagente Automi cellulari, agenti guidati da strategie, agenti comportamentali, comportamenti collettivi emergenti 4-Apprendimento per rinforzo Processi decisionali markoviani, valutazione delle politiche, Q-learning, integrazione tra pianificazione e apprendimento, IRL, RLHU 5-Simulazione di sistemi complessi Nozioni di base sui sistemi complessi di IA, NetLogo 6-Analisi dei social network Teoria dei grafi, reti casuali e senza scala, modello di Barabási-Albert, metriche, comunità, reti di conoscenza, social network, diffusione dell’informazione, agenti di rete, previsione dei collegamenti

Modalità d'esame

Progetto assegnato dal docente e prova orale. Lo svolgimento del progetto è finalizzato a verificare la capacità di applicare correttamente le conoscenza teoriche e la capacità di comprensione delle problematiche proposte. La prova orale consiste in una discussione della durata di circa 30 minuti finalizzata a accertare il livello di conoscenza e di comprensione sui contenuti teorici del corso raggiunto dallo studente. Inoltre la prova orale consentirà di verificare la capacità di comunicazione dello studente con proprietà di linguaggio ed organizzazione autonoma dell'esposizione. Su richiesta dello studente l'esame puo' essere sostenuto anche in lingua Inglese. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

L'esame consiste in una prova orale sul programma completo e la presentazione di un progetto (singolo o di gruppo) da presentare oralmente al docente. Ai soli studenti che seguono assiduamente le lezioni, l'interrogazione orale o parti di essa possono essere sostituite da prove in itinere (esoneri), lasciando come prova finale la presentazione del progetto. Le prove in itinere vengono progettate durante il corso in base al livello della classe e possono variare in numero, da 2 (classe con buon livello, capace di interagire con la docente ed eventuali tutor e di lavoro autonomo) a 4 (classe con livello più basso , che ha bisogno di essere seguita ad ogni passo). La prova orale verte sui principali argomenti affrontati durante il corso. Gli esercizi proposti ai candidati consistono in domande ed esercizi teorico formali sugli argomenti del corso e nella risoluzione di problemi di analisi, modellazione di domini applicativi reali tramite tecniche di intelligenza artificiale apprese. Il progetto consiste nello sviluppo di un progetto software concordato con la docente su applicazioni dell'intelligenza artificiale a problemi reali attraverso l'approfondimento di tecniche presentate nel corso. Il progetto prevede una relazione finale ed una presentazione da parte dei partecipanti che forma parte integrante della valutazione. Scopo del progetto è acquisire e dimostrare esperienza nell'applicazione delle conoscenze apprese ad un problema reale o simluato. 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

M. Cialdea Mayer, C. Limongelli. Introduzione alla Programmazione Funzionale. Esculapio. http://caml.inria.fr/ (per scaricare interprete e documentazionein inglese)

Testi di riferimento: Appunti del docente disponibili sulla piattaforma www.unistudium.unipg.it Artificial Intelligence: A Modern Approach, Stuart Russell and Peter Norvig Pearson, last edition Network Science Albert Lazlo Barabasi (disponibile online) http://networksciencebook.com/ Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, Second Edition, MIT Press, 2018 (disponibile online http://incompleteideas.net/book/RLbook2018.pdf ) Lectures notes made available on www.unistudium.unipg.it

Codice insegnamento 419878

Blockchain And Smart Contracts 1° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file

Capire il significato di Blockchain, le varie tipologie e gli algoritmi di consenso che sono alla base. Capire le nozioni più importanti di Bitcoin e Ethereum. Principi su come realizzare degli Smart Contract.

Scheda dell'insegnamento

Obiettivi formativi

Capire il significato di Blockchain, le varie tipologie e gli algoritmi di consenso che sono alla base. Capire le nozioni più importanti di Bitcoin e Ethereum. Principi su come realizzare degli Smart Contract.

Programma

1)Introduzione e Bitcoin 2)Blockchain e DLT in generale 3)Elementi di crittografia4)Blockchain consensus protocols6)Ethereum 7)Problemi di scalabilità e soluzioni di secondo livello

Nessuno in particolare

Lezioni frontali e di laboratorio. Possibili seminari di ospiti.

Introduction and Bitcoin -Informazioni sul corso: risorse, laboratori and esame -storia e leggende bitcoin -transazioni, indirizzi -wallets (e full miner node, router node) -funzionamento proof of work e problematiche di fork -Blocchi, verifica e propagazione in blockchain -linguaggio di scripting del bitcoin -tipologie transazioni bitcoin (standard e non) -statistiche sulle transazioni bitcoin (standard e non) -Bitcoin: esempi di contratti, escrow, multisignatures Blockchains and DLT in general -Blockchain architecture -Tipi di blockchains -Limitiazioni della Blockchain e soluzioni di secondo livello Elementi di crittografia -Curve Ellittiche - ECDSA - Esempi di Bitcoin Blockchain consensus protocols: -Byzantine general problem -PBFT - BESU -Proof of stake -The tangle: IOTA -Diversi consensus protocols Ethereum -Introduzione a Ethereum -Concetti di base di Ethereum -Ethereum Clients -Wallets -Transazioni -Smart Contracts e Solidity -Tokens -Oracles -Decentralized Applications (DApps) -Ethereum Virtual Machine Scalability issues and second layer: -Sharding -Payment channel e state channels -Sidechain -Delegation

Modalità d'esame

L’esame sarà diviso in due parti: -Colloquio orale della durata media di 30 minuti su argomenti di tutto il programma che evidenzia le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio. Legato anche agli esercizi di laboratorio -Progetto specifico da realizzare sugli argomenti del corso, assegnato dai docenti. Su richiesta dello studente l'esame può' essere sostenuto in lingua Italiana o Inglese. 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) Mastering Bitcoin Autore: Anas M. Antonopoulos Editore: O'Reilly Media, Inc. ISBN: 9781491902646, 9781491921982, 9781322403748, 1491902647, 1491921986, 1322403740 2) Mastering Ethereum : building smart contracts and DApps Autori: Andreas M. Antonopoulos, Gavin Wood Editore: O'Reilly Media, Inc. ISBN: 9781491971949, 1491971940 3) Mastering Blockchain Autori: Lorne Lantz, Daniel Cawrey Editore: O'Reilly Media, Inc. ISBN: 1147974642

Codice insegnamento 419886

Computability And Complexity 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Il corso fornirà allo studente la conoscenza dei principali metodi e risultati della Teoria della Calcolabilità e della Complessità e l'abilità di applicarli per individuare la complessità di problemi in diversi campi

Scheda dell'insegnamento

Obiettivi formativi

Il corso fornirà allo studente la conoscenza dei principali metodi e risultati della Teoria della Calcolabilità e della Complessità e l'abilità di applicarli per individuare la complessità di problemi in diversi campi

Programma

Macchina di Turing. Codifica di Goedel. La Tesi di Church-Turing. Problemi insolubili. La Macchina Universale. Il Problema dell'arresto. Il Decimo Problema di Hilbert. Funzioni parziali ricorsive Tesi di Edmonds-Cook-Karp. Classi P e NP. Problemi NP-completi. Classi L, NL, PSPACE, NPSPACE.

Per seguire con profitto il corso è opportuno che lo studente abbia familiarità con le nozioni di base della teoria deri linguaggi formali e con l'analisi di complessità degli algoritmi. Tali nozioni sono comunemente presenti nei corsi di base delle lauree triennali in Informatica.

Lezioni frontali

Teoria della computabilità: Alfabeti, stringhe, linguaggi. La Macchina di Turing. Macchine di Turing e linguaggi. Macchine di Turing e funzioni. Codifica di Goedel. La Tesi di Church-Turing. Macchine di Turing a più nastri. Macchine di Turing non deterministiche. Problemi risolubili algoritmicamente e problemi insolubili. La Macchina Universale. Il Problema dell'arresto. Insiemi decidibili e semidecidibili. Il Decimo Problema di Hilbert. Teorema di recursione, teorema del punto fisso e teorema di Rice. Teorema di corrispondenza di Post. Funzioni Ricorsive. Calcolabilità secondo Church. Le funzioni parziali ricorsive Teoria della complessità: Classi di Complessità Temporale. La classe P e la Tesi di Edmonds-Cook-Karp. La classe NP. Il problema P=NP. Problemi NP-completi. Il teorema di Cook-Levin. Il sistema crittografico Merkle-Helmann. Classi di Complessità spaziale. Le classi L, NL, PSPACE, NPSPACE. Il teorema di Savitch.

Modalità d'esame

L'esame consiste in una prova orale. Tale prova sarà un colloquio volto a verificare l'apprendimento dei principali aspetti teorici della disciplina nonché la capacità di applicare tali conoscenze per individuare la complessità di problemi in diversi campi. Inoltre, tale colloquio permetterà di valutare la capacità di comunicazione dello studente sui temi del corso con un appropriato linguaggio tecnico. Su richiesta dello studente, l'esame potrà essere tenuto in lingua italiana, inglese o francese. 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. Toffalori, F. Corradini, S. Leonesi, S. Mancini, Teoria della computabilità e della complessità, McGraw-Hill J. Hopcroft, R. Motwani, J. Ullman, Automi, linguaggi e calcolabilità, Pearson M. Davis, Computability and Unsolvability, Dover (ediz. Italiana: Abete, 1974) Michael Sipser, Introduction to the Theory of Computation, Cengage, 2013

Codice insegnamento 419889

Computational Intelligence 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

L'obbiettivo è quello di acquisire i principali concetti della Computational Intelligence e di applicarli a vari problemi pratici

Scheda dell'insegnamento

Obiettivi formativi

L'obbiettivo è quello di acquisire i principali concetti della Computational Intelligence e di applicarli a vari problemi pratici

Programma

Ottimizzazione discreta e continua Algoritmi evolutivi e di swarm intelligence Modelli probabilistici e fuzzy nell'Intelligenza Artificiale

Conoscenze pregresse dei corsi della laurea triennale in Informatica

Lezioni frontali teoriche Esercitazioni con soluzione di problemi e casi di studio al computer

Prima parte (metaeuristiche per l'ottimizzazione) - problemi di ottimizzazione - algorimi esatti - algoritmi di ricerca locale - tabu search - simulated annealing - algoritmi genetici - strategie evolutive - differential evolution - ant colony optimization - particle swarm optimization e altri algoritmi di swarm intelligence - programmazione genetica - ottimizzazione vincolata - ottimizzazione multi-obiettivo Seconda parte (modelli probabilistici e fuzzy) - trattamento incertezza in IA - modelli probabilistici in generale - modelli grafici e reti bayesiane - algoritmi esatti e approssimati per l'inferenza - apprendimento delle reti bayesiane - estensioni delle reti bayesiane - insiemi fuzzy - logica e ragionamento fuzzy - sistemi fuzzy

Modalità d'esame

L'esame è composto da due prove 1) svolgimento a casa di un progetto di programmazione individuale. Lo scopo di tale prova è verificare le abilità di impiego delle conoscenze acquisite dallo studente nel corso. 2) prova orale, in cui sarà richiesto allo studente di presentare il progetto e di approfondire alcune tematiche teoriche. Lo scopo della seconda parte è di accertare il livello di conoscenza, la capacità di comprensione e la proprietà di linguaggio raggiunti dallo studente. Gli studenti non di madre lingua italiana possono sostenere l'esame anche in lingua francese o inglese 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

Computational Intelligence: An Introduction. Andries P. Engelbrecht. Second Edition Wiley 2007 Introduction to Evolutionary Computing. A.E. Eiben, J.E. Smith. Second Edition Springer 2015 Probabilistic Graphical Models. Principles and Applications. Luis Enrique Sucar Springer 2015

Codice insegnamento 419887

Cybersecurity 1° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file

Capire il significato di sicurezza informatica nei suoi attributi di confidenzialità, integrità e disponibilità. Capire le problematiche dei sistemi Sicuri ma connessi su reti insicure. Capire le nozioni più importanti…

Scheda dell'insegnamento

Obiettivi formativi

Capire il significato di sicurezza informatica nei suoi attributi di confidenzialità, integrità e disponibilità. Capire le problematiche dei sistemi Sicuri ma connessi su reti insicure. Capire le nozioni più importanti di sicurezza informatica, sicurezza di rete e sicurezza dei dati e dei programmi. Saper gestire attacchi e compromissioni di sistemi, reti e dispositivi mobili.

Programma

1 Introduzione 2 ACM curriculum guidelines per IAS 3 Storia della Sicurezza 4 IAS/Foundational Concepts in Security 5 IAS/Principles of Secure Design 6 IAS/Defensive Programming 7 IAS/Threats and Attacks 8 IAS/Network Security 9 IAS/Cryptography 10 laboratory activity 11 Capture the Flag competition (CTF) -------------------- Il corso offre allo studente elementi di sicurezza avanzata riguardanti principalmente Defensive Programming, Identity Management, Sicurezza di OS e Container (Docker), Sicurezza di smart contract in linguaggio Solidity

Conoscenza del protocollo TCP/IP (indspensabile), conoscenza della programmazione C e del funzionamento della chiamata di procedura e funzione (importante), conoscenza del linguaggio SQL (indspensabile) Aver sostenuto con successo l'esame di Programmazione, Reti, Sistemi Operativi, Basi di Dati (importante)

Lezioni frontali e di laboratorio. Possibili seminari di ospiti.

1 Introduzione Introduction, prerequisites, textbooks, exam rules 2 ACM curriculum guidelines per IAS from ACM curriculum guidelines, with reference to books where to find specific subjects 3 Storia della Sicurezza story of security 4 IAS/Foundational Concepts in Security CIA (Confidentiality, Integrity, Availability): RIF. Gollmann cap. 3, Bishop cap. 1, Stallings cap. 1, Whitman cap. 1, Pfleeger cap. 1, Anderson cap. 1 Concepts of risk, threats, vulnerabilities, and attack vectors: RIF. Gollmann cap. 2, Bishop cap. 1e18e23, Stallings cap. 1e14, Whitman cap. 1e2(e4), Pfleeger cap. 1 CH01-CompSec3e-note ... rif a security risk analysis, attack trees e indici, Authentication and authorization, access control (mandatory vs. discretionary): RIF. Gollmann cap. 4e5, Bishop cap. 4(e5-8)e12, Stallings cap. 3e4, Whitman cap. 6prima_parte Policies: chapter 4 Bishop Bell-LaPadula: chapter 5 bishop ,cascade problem , secure reconfiguration Biba e Clarck-Wilson: chapter 6 bishop, Chinese Wall Model, ORCON, RBAC: chapter 7 bishop, Crittografia, firma digitale, pki e certificati, protocolli di autenticazione (Needham-Schroeder, Woo-Lam): chapter 8,9,10 bishop, note su diffie-hellman Metodi di autenticazione, Kerberos: chapter 9,11 bishop, Concept of trust and trustworthiness: RIF. Gollmann cap. 13, Bishop chapter. 18e19, Stallings chapter. 13, Pfleeger chapter. 5 Ethics (responsible disclosure): RIF. Stallings chapter. 19, Whitman chapter. 3ultima_parte, Pfleeger chapter. 9ultima_parte 5 IAS/Principles of Secure Design (RIF Bishop cap. 13) Least privilege and isolation, Fail-safe defaults, Open design, End-to-end security, Defense in depth (e.g., defensive programming, layered defense), Security by design, Tensions between security and other design goals, Complete mediation, Use of vetted security components, Economy of mechanism (reducing trusted computing base, minimize attack surface), Usable security , Security composability Prevention, detection, and deterrence 6 IAS/Defensive Programming Input validation and data sanitization, Choice of programming language and type-safe languages, Examples of input validation and data sanitization errors Buffer overflows documentazione di riferimento Integer errors SQL Injection, documentazione di riferimento XSS vulnerability, documentazione di riferimento Race conditions Correct handling of exceptions and unexpected behaviors Correct usage of third-party components Effectively deploying security updates 7 IAS/Threats and Attacks Attacker goals, capabilities, and motivations Examples of malware (e.g., viruses, worms, spyware, botnets, Trojan horses, or rootkits) Denial of Service (DoS) and Distributed Denial of Service (DDoS) Social engineering (e.g., phishing) Whitman chapter. 2, Gollmann: chapter 10, bishop: chapter 22, 26, stalling: 6, 7, 10, 11, pfledger: chapter 3 8 IAS/Network Security RIF: Whitman chapter. 2, Gollmann: chapter 17, bishop: chapter 29, stalling: 8, 9 , pfledger: chapter 7 Network specific threats and attack types (e.g., denial of service, spoofing, sniffing and traffic redirection, man-in-the-middle, message integrity attacks, routing attacks, and traffic analysis) Use of cryptography for data and network security Architectures for secure networks (e.g., secure channels, secure routing protocols, secure DNS, VPNs, anonymous communication protocols, isolation) Defense mechanisms and countermeasures (e.g., network monitoring, intrusion detection, firewalls, spoofing and DoS protection, honeypots, tracebacks 9 IAS/Cryptography Basic Cryptography Terminology covering notions pertaining to the different (communication) partners, secure/insecure channel, attackers and their capabilities, encryption, decryption, keys and their characteristics, signatures Cipher types (e.g., Caesar cipher, affine cipher) together with typical attack methods such as frequency analysis Public Key Infrastructure support for digital signature and encryption and its challenges ---------------------- Defensive programming taxonomy Stack overflows Heap overflows Shellcode Input validation and data sanitization Mitigation Operating system support (e.g., address space randomization, canaries) Integer errors Concurrency and race conditions Static and dynamic analysis Program Verification Fuzz Testing Identity management OAuth2.0 OpenID Connect SAML File rights management in Linux Cgroup, Namespace, Chroot Contaner security Introduction to Ethereum Smart Contract Security in Solidity

Modalità d'esame

Colloquio orale della durata media di 30 minuti su argomenti di tutto il programma che evidenzia le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio. Possibilità di specifici progetti o seminari. Su richiesta dello studente l'esame può' essere sostenuto in lingua Italiana o Inglese. 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

Dispense docente e libri di testo consigliati a lezione: Computer Security by Dieter Gollmann Introduction to Computer Security by Matt Bishop COMPUTER SECURITY by WILLIAM STALLINGS and Lawrie Brown Principles of Information Security by Michael E. Whitman and Herbert J. Mattord Security in Computing by Charles P. Pfleeger and Shari Lawrence Pfleeger ----------------- Secure Coding in C and C++ Author: Robert Seacord Series: SEI Series in Software Engineering Paperback: 600 pages Publisher: Addison-Wesley Professional; 2 edition (April 12, 2013) Language: English ISBN-10: 0321822137 ISBN-13: 978-0321822130 Title: Container Security: Fundamental Technology Concepts that Protect Containerized Applications 1st Edition. O'Reilly Media; 1st edition (April 28, 2020). Paperback 200 pages. ISBN-10 : 1492056707 ISBN-13 : 978-1492056706 Title: Mastering Ethereum: Building Smart Contracts and DApps Author: Andreas M. Antonopoulos, Gavin Wood Ph. D. Paperback: 424 pages Publisher: O'Reilly Media; 1 edition (December 23, 2018) Language: English ISBN-10: 1491971940 ISBN-13: 978-1491971949 Solving Identity Management in Modern Applications: Demystifying OAuth 2.0, OpenID Connect, and SAML 2.0. Publisher : Apress; 1st ed. edition (December 19, 2019). Paperback : 337 pages. ISBN-10 : 148425094X ISBN-13 : 978-1484250945

Codice insegnamento 419881

Cybersecurity With Laboratory 1° anno · Annuale · 15 CFU · INFO-01/A · 0 file

Capire il significato di sicurezza informatica nei suoi attributi di confidenzialità, integrità e disponibilità. Capire le problematiche dei sistemi Sicuri ma connessi su reti insicure. Capire le nozioni più importanti…

Scheda dell'insegnamento

Obiettivi formativi

Capire il significato di sicurezza informatica nei suoi attributi di confidenzialità, integrità e disponibilità. Capire le problematiche dei sistemi Sicuri ma connessi su reti insicure. Capire le nozioni più importanti di sicurezza informatica, sicurezza di rete e sicurezza dei dati e dei programmi. Saper gestire attacchi e compromissioni di sistemi, reti e dispositivi mobili.

L'obiettivo è quello di rendere lo studente consapevole delle problematiche e soluzioni riguardanti l'hardening di un sistema operativo (Linux) riguardante aspetti differenti, come ad esempio, gestione degli utenti, gestione dei certificati, gestione di un firewall. Tutti gli esempi mostrati saranno direttamente messi in pratica dagli studenti a lezione. Verranno inoltre mostrati ed utilizzati protetto i principali strumenti di valutazione delle sicurezza di una rete in un ambiente di laboratorio. Infine, gli studenti acquisiranno esperienza diretta di analisi di attacchi di rete attraverso una piattaforma di Cyberange.

Programma

1 Introduzione 2 ACM curriculum guidelines per IAS 3 Storia della Sicurezza 4 IAS/Foundational Concepts in Security 5 IAS/Principles of Secure Design 6 IAS/Defensive Programming 7 IAS/Threats and Attacks 8 IAS/Network Security 9 IAS/Cryptography 10 laboratory activity 11 Capture the Flag competition (CTF) -------------------- Il corso offre allo studente elementi di sicurezza avanzata riguardanti principalmente Defensive Programming, Identity Management, Sicurezza di OS e Container (Docker), Sicurezza di smart contract in linguaggio Solidity

Hardening di un sistema operativo, concetti ed esempi. Valutazione della sicurezza di rete, strumenti e loro utilizzo. Simulazione a gruppi di un BlueTeam di difesa in un CybeRange.

Conoscenza del protocollo TCP/IP (indspensabile), conoscenza della programmazione C e del funzionamento della chiamata di procedura e funzione (importante), conoscenza del linguaggio SQL (indspensabile) Aver sostenuto con successo l'esame di Programmazione, Reti, Sistemi Operativi, Basi di Dati (importante)

Concetti base di Reti e Sistemi Operativi

Lezioni frontali e di laboratorio. Possibili seminari di ospiti.

Lezioni frontali ed esercizi in laboratorio.

1 Introduzione Introduction, prerequisites, textbooks, exam rules 2 ACM curriculum guidelines per IAS from ACM curriculum guidelines, with reference to books where to find specific subjects 3 Storia della Sicurezza story of security 4 IAS/Foundational Concepts in Security CIA (Confidentiality, Integrity, Availability): RIF. Gollmann cap. 3, Bishop cap. 1, Stallings cap. 1, Whitman cap. 1, Pfleeger cap. 1, Anderson cap. 1 Concepts of risk, threats, vulnerabilities, and attack vectors: RIF. Gollmann cap. 2, Bishop cap. 1e18e23, Stallings cap. 1e14, Whitman cap. 1e2(e4), Pfleeger cap. 1 CH01-CompSec3e-note ... rif a security risk analysis, attack trees e indici, Authentication and authorization, access control (mandatory vs. discretionary): RIF. Gollmann cap. 4e5, Bishop cap. 4(e5-8)e12, Stallings cap. 3e4, Whitman cap. 6prima_parte Policies: chapter 4 Bishop Bell-LaPadula: chapter 5 bishop ,cascade problem , secure reconfiguration Biba e Clarck-Wilson: chapter 6 bishop, Chinese Wall Model, ORCON, RBAC: chapter 7 bishop, Crittografia, firma digitale, pki e certificati, protocolli di autenticazione (Needham-Schroeder, Woo-Lam): chapter 8,9,10 bishop, note su diffie-hellman Metodi di autenticazione, Kerberos: chapter 9,11 bishop, Concept of trust and trustworthiness: RIF. Gollmann cap. 13, Bishop chapter. 18e19, Stallings chapter. 13, Pfleeger chapter. 5 Ethics (responsible disclosure): RIF. Stallings chapter. 19, Whitman chapter. 3ultima_parte, Pfleeger chapter. 9ultima_parte 5 IAS/Principles of Secure Design (RIF Bishop cap. 13) Least privilege and isolation, Fail-safe defaults, Open design, End-to-end security, Defense in depth (e.g., defensive programming, layered defense), Security by design, Tensions between security and other design goals, Complete mediation, Use of vetted security components, Economy of mechanism (reducing trusted computing base, minimize attack surface), Usable security , Security composability Prevention, detection, and deterrence 6 IAS/Defensive Programming Input validation and data sanitization, Choice of programming language and type-safe languages, Examples of input validation and data sanitization errors Buffer overflows documentazione di riferimento Integer errors SQL Injection, documentazione di riferimento XSS vulnerability, documentazione di riferimento Race conditions Correct handling of exceptions and unexpected behaviors Correct usage of third-party components Effectively deploying security updates 7 IAS/Threats and Attacks Attacker goals, capabilities, and motivations Examples of malware (e.g., viruses, worms, spyware, botnets, Trojan horses, or rootkits) Denial of Service (DoS) and Distributed Denial of Service (DDoS) Social engineering (e.g., phishing) Whitman chapter. 2, Gollmann: chapter 10, bishop: chapter 22, 26, stalling: 6, 7, 10, 11, pfledger: chapter 3 8 IAS/Network Security RIF: Whitman chapter. 2, Gollmann: chapter 17, bishop: chapter 29, stalling: 8, 9 , pfledger: chapter 7 Network specific threats and attack types (e.g., denial of service, spoofing, sniffing and traffic redirection, man-in-the-middle, message integrity attacks, routing attacks, and traffic analysis) Use of cryptography for data and network security Architectures for secure networks (e.g., secure channels, secure routing protocols, secure DNS, VPNs, anonymous communication protocols, isolation) Defense mechanisms and countermeasures (e.g., network monitoring, intrusion detection, firewalls, spoofing and DoS protection, honeypots, tracebacks 9 IAS/Cryptography Basic Cryptography Terminology covering notions pertaining to the different (communication) partners, secure/insecure channel, attackers and their capabilities, encryption, decryption, keys and their characteristics, signatures Cipher types (e.g., Caesar cipher, affine cipher) together with typical attack methods such as frequency analysis Public Key Infrastructure support for digital signature and encryption and its challenges ---------------------- Defensive programming taxonomy Stack overflows Heap overflows Shellcode Input validation and data sanitization Mitigation Operating system support (e.g., address space randomization, canaries) Integer errors Concurrency and race conditions Static and dynamic analysis Program Verification Fuzz Testing Identity management OAuth2.0 OpenID Connect SAML File rights management in Linux Cgroup, Namespace, Chroot Contaner security Introduction to Ethereum Smart Contract Security in Solidity

Linux hardening (26 ore): Securing Administrative User Accounts, Securing Normal User Accounts, Securing Your Server with a Firewall, SSH Hardening, Encryption Technologies (GPG, eCryptfs, VeraCrypt, OpenSSL and the Public Key Infrastructure), Access Control Lists and Shared Directory Management, Kernel Hardening and Process Isolation, Scanning, Auditing, and Hardening (antivirus, autd, ausearch and aureport, OpenSCAP), Logging and Log Security, Vulnerability Scanning and Intrusion Detection (IPFire, Snort and Security Onion, Lynis), Ubuntu security compliance and certifications (FIPS 140, CIS, DISA-STIG, Common Criteria). Network Security Assessment (16 ore): tools (nmap, metasploitable, OpenVAS, Nikto, Hydra) and their use, Local Network Discovery, Service Fingerprinting, Assessing Common Network Services (FTP, SSH, Telnet, etc), Assessing Web Servers, Assessing Mail Services, Assessing VPN Services, Assessing Data Stores. Playing Blue Team in a CyberRange attraverso casi differenti (10 ore).

Modalità d'esame

Colloquio orale della durata media di 30 minuti su argomenti di tutto il programma che evidenzia le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio. Possibilità di specifici progetti o seminari. Su richiesta dello studente l'esame può' essere sostenuto in lingua Italiana o Inglese. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Assegnazione di un progetto e esame orale. 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

Dispense docente e libri di testo consigliati a lezione: Computer Security by Dieter Gollmann Introduction to Computer Security by Matt Bishop COMPUTER SECURITY by WILLIAM STALLINGS and Lawrie Brown Principles of Information Security by Michael E. Whitman and Herbert J. Mattord Security in Computing by Charles P. Pfleeger and Shari Lawrence Pfleeger ----------------- Secure Coding in C and C++ Author: Robert Seacord Series: SEI Series in Software Engineering Paperback: 600 pages Publisher: Addison-Wesley Professional; 2 edition (April 12, 2013) Language: English ISBN-10: 0321822137 ISBN-13: 978-0321822130 Title: Container Security: Fundamental Technology Concepts that Protect Containerized Applications 1st Edition. O'Reilly Media; 1st edition (April 28, 2020). Paperback 200 pages. ISBN-10 : 1492056707 ISBN-13 : 978-1492056706 Title: Mastering Ethereum: Building Smart Contracts and DApps Author: Andreas M. Antonopoulos, Gavin Wood Ph. D. Paperback: 424 pages Publisher: O'Reilly Media; 1 edition (December 23, 2018) Language: English ISBN-10: 1491971940 ISBN-13: 978-1491971949 Solving Identity Management in Modern Applications: Demystifying OAuth 2.0, OpenID Connect, and SAML 2.0. Publisher : Apress; 1st ed. edition (December 19, 2019). Paperback : 337 pages. ISBN-10 : 148425094X ISBN-13 : 978-1484250945

  • Mastering Linux Security and Hardening - Third Edition by Donald A. Tevault Released February 2023 Publisher(s): Packt Publishing ISBN: 9781837630516 - Network Security Assessment, 3rd Edition by Chris McNab Released December 2016 Publisher(s): O'Reilly Media, Inc. ISBN: 9781491910955 - The Ubuntu Documentation and Security Guide (https://ubuntu.com/security/certifications/docs) - Linux hardening checklists and tips e altro materiale online indicato a lezione

Codice insegnamento 419882

High Performance Computing 1° anno · 2° semestre · 9 CFU · IINF-05/A · 0 file

L'obiettivo principale del corso è quello di introdurre lo studente allo studio di sistemi emergenti che sono tra l'altro alla base della realizzazione dei moderni data center e al rilascio di ambienti in alta…

Scheda dell'insegnamento

Obiettivi formativi

L'obiettivo principale del corso è quello di introdurre lo studente allo studio di sistemi emergenti che sono tra l'altro alla base della realizzazione dei moderni data center e al rilascio di ambienti in alta affidabilità, oltre a presentare i sistemi ad alte prestazioni, fondamentali per l'avanzamento della conoscenza e della scienza, e per erogare servizi moderni, inclusi quelli in ambiente mobile. Le principali conoscenze acquisite saranno: disegno e implementazione di sistemi Cluster: principali problematiche e modalità di istallazione e configurazione; Servizi ad alta affidabilità e sistemi ad alte prestazioni; L'ambiente Condor per la realizzazione di Cluster High Throughput. GPGPU Computing e programmazione OpenCL di GPU: per incrementare le performances di molti applicativi. Cloud Computing: disegno e implementazione di cloud ibride. Ambienti di virtualizzazione, Docker e sistemi Kuberntes.

Programma

Introduzione all’High Performance Computing (HPC) e all'High Throughput Computing (HTC); Implementazione e amministrazione di Cluster. Costruzione di servizi scalabili ed in alta affidabilità. Il progetto Condor per High Throughput Computing. Architettura dei sistemi Cloud; Gestione e Bilanciamento dei Processi in ambiente Cluster e Cloud, Cloud Computing. Virtualizzazione, Docker, Sistemi Kubernetes

Nessun prerequisito è richiesto allo studente; si considera che lo studente abbia comunque dimestichezza con il disegno e la configurazione dei servizi della rete Internet. La conoscenza approfondita dei sistemi operativi open source come Linux agevola l'acquisizione dei concetti del corso. Nel corso delle lezioni verranno comunque forniti esempi e casi d'uso volti ad agevolare l'apprendimento dei concetti illustrati a lezione.

Lezione frontale con l'ausilio di strumenti multimediali (slides, video, etc). Esercitazione in sala computer.

Il corso introduce gli studenti alle moderne tecnologie che permettono la realizzazione di data center e di erogare applicazioni in ambienti di alta affidabilità e bilanciamento del carico. In particolare verranno trattati i temi seguenti: Introduzione all'High Performance Computing (HPC) e all'High Throughput Computing (HTC); Implementazione e amministrazione di Cluster: Costruzione di servizi scalabili; Realizzazione di servizi ad alta affidabilità in ambiente Cluster: Heartbeat, Corosync, PaceMaker. Condor: istallazione, implementazione e design di un Cluster High Throughput. GPGPU Computing. linguaggio di programmazione OpenCL. Cloud Computing: presentazione e implementazione di una Cloud ibrida. Sistemi di virtualizzazione; Docker; Sistemi Kubernetes.

Modalità d'esame

L'esame prevede un esame scritto sulla piattaforma Libreeol (https://libreeol.org) seguito da esame orale di circa 30 minuti nel quale lo studente deve illustrare un progetto implementato e concordato con il docente, dimostrando la padronanza dei concetti richiesti, una adeguata proprietà di linguaggio e la capacità di organizzare i concetti da esporre in modo adeguato.

Testi di riferimento

J. Garrison and K. Nova, Cloud Native Infrastructure-Patterns for Scalable Infrastructure and Applications in a Dynamic Environment, O’Reilly and Associates, 2018, ISBN: 978-1-492-03969-3. Materiale didattico fornito dal docente con riferimenti bibliografici

Codice insegnamento 419891

Intelligent Models 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Risultati di apprendimento orientati alla conoscenza: Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali tecniche di…

Scheda dell'insegnamento

Obiettivi formativi

Risultati di apprendimento orientati alla conoscenza: Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali tecniche di ricerca nello spazio degli stati, non informata, informata, di ricerca locale, basate su ragionamento automatico, inferenza, pianificazione automatica. Apprendimento con rinforzo e policy di ottimizzazione. Conoscenza delle principali tecniche di modellazione di problemi basate su reti complesse ed applicazioni al settore dell'intelligenza artificiale. Risultati di apprendimento orientati alle abilità: Capacita' di utilizzare le conoscenze apprese per modellare, progettare e implementare soluzioni di problemi applicativi reali caratterizzati da agenti artificiali e/o reti complesse.

Programma

0 Introduzione all'IA 1 Modelli di agenti 2 Ricerca nello spazio degli stati, pianificazione 3 Modelli e sistemi multiagente 4 Apprendimento rinforzato 5 Simulazione di sistemi complessi 6 Analisi di reti sociai

Prerequisiti per un apprendimento efficace dei contenuti di questo insegnamento includono conoscenza estesa di algoritmi e concetti di base della complessità computazionale, dei modelli di grammatiche e linguaggi e dei connettivi logici elementari, strutture dati, database e problematiche relative ai sistemi concorrenti.

Lezioni frontali. Esercitazioni, discussioni interattive su casi di studio. Valutazione continua attraverso progetti ed esercizi di esonero. Valutazione finale tramite prova orale e pratica (progetto). Materiale, informazioni dettagliate sugli esoneri verranno forniti a tempo debito su http://www.unistudium.unipg.it, allo studente è richiesto di conoscere il syllabus dell'insegnamento e di seguire gli aggiornamenti del docente su Unistudium.

0-Introduzione all'intelligenza artificiale Prospettive storiche, attuali e future sull'intelligenza artificiale e l'apprendimento automatico 1-Modelli di agenti, agenti autonomi Agenti riflessivi, basati sullo stato, basati sull'inferenza e agenti che apprendono, 2-Ricerca nello spazio degli stati, pianificazione Modelli di ricerca nello spazio degli stati applicati alla ricerca non informata e informata, ricerca locale, ricerca avversaria, pianificazione automatizzata, rappresentazione delle azioni basata sulla logica, PDDL 3-Sistemi e modelli multiagente Automi cellulari, agenti guidati da strategie, agenti comportamentali, comportamenti collettivi emergenti 4-Apprendimento per rinforzo Processi decisionali markoviani, valutazione delle politiche, Q-learning, integrazione tra pianificazione e apprendimento, IRL, RLHU 5-Simulazione di sistemi complessi Nozioni di base sui sistemi complessi di IA, NetLogo 6-Analisi dei social network Teoria dei grafi, reti casuali e senza scala, modello di Barabási-Albert, metriche, comunità, reti di conoscenza, social network, diffusione dell’informazione, agenti di rete, previsione dei collegamenti

Modalità d'esame

L'esame consiste in una prova orale sul programma completo e la presentazione di un progetto (singolo o di gruppo) da presentare oralmente al docente. Ai soli studenti che seguono assiduamente le lezioni, l'interrogazione orale o parti di essa possono essere sostituite da prove in itinere (esoneri), lasciando come prova finale la presentazione del progetto. Le prove in itinere vengono progettate durante il corso in base al livello della classe e possono variare in numero, da 2 (classe con buon livello, capace di interagire con la docente ed eventuali tutor e di lavoro autonomo) a 4 (classe con livello più basso , che ha bisogno di essere seguita ad ogni passo). La prova orale verte sui principali argomenti affrontati durante il corso. Gli esercizi proposti ai candidati consistono in domande ed esercizi teorico formali sugli argomenti del corso e nella risoluzione di problemi di analisi, modellazione di domini applicativi reali tramite tecniche di intelligenza artificiale apprese. Il progetto consiste nello sviluppo di un progetto software concordato con la docente su applicazioni dell'intelligenza artificiale a problemi reali attraverso l'approfondimento di tecniche presentate nel corso. Il progetto prevede una relazione finale ed una presentazione da parte dei partecipanti che forma parte integrante della valutazione. Scopo del progetto è acquisire e dimostrare esperienza nell'applicazione delle conoscenze apprese ad un problema reale o simluato. 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

Testi di riferimento: Appunti del docente disponibili sulla piattaforma www.unistudium.unipg.it Artificial Intelligence: A Modern Approach, Stuart Russell and Peter Norvig Pearson, last edition Network Science Albert Lazlo Barabasi (disponibile online) http://networksciencebook.com/ Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, Second Edition, MIT Press, 2018 (disponibile online http://incompleteideas.net/book/RLbook2018.pdf ) Lectures notes made available on www.unistudium.unipg.it

Codice insegnamento 419885

IoT and OT SECURITY 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Capire e discutere in modo critico i concetti base ed i protocolli dell IoT Capire ed avere consapevolezza delle minacce di sicurezza in ambito IoT e dei meccanismi per risolvere tali minacce Discutere in maniera critica…

Scheda dell'insegnamento

Obiettivi formativi

Capire e discutere in modo critico i concetti base ed i protocolli dell IoT Capire ed avere consapevolezza delle minacce di sicurezza in ambito IoT e dei meccanismi per risolvere tali minacce Discutere in maniera critica e comprendere i concetti della sicurezza e della gestione delle chiavi in ambito IoT Capire le problematiche di Privacy e le possibili soluzioni Campire come implementare applicazioni IoT

Programma

Introduzione all’IoT Concetti di base, sicurezza e protocolli Livello fisico e di data-link nei sistemi IoT Livello di rete nei sistemi IoT Protocols, standard and security IoT and application Layer IoT security and research directions OT security at glance Laboratori

Nessuno

  • Lezioni frontali - Esercitazioni

Introduzione all’IoT Informazioni relative al corso: risorse, laboratori ed esame Che cos’è l’internet delle cose Applicazioni Home e Building Automation Smart Cities Smart Grids Industrial IoT Smart Farming Concetti di base, sicurezza e protocolli IoT ed efficienza energetica Dispositivi Problematiche di sicurezza in ambito IoT Panoramica dei meccanismi di sicurezza Crittografia e Key management Privacy Livello fisico e di data-link nei sistemi IoT Livello fisico Mac layer tradizionale Mac layer nei sistemi IoT Livello di rete nei sistemi IoT Routing per mesh network Clustering protocols Protocols, standard and security IEEE 802.15.4 e concetti di sicurezza Zigbee e concetti di sicurezza Bluetooth e concetti di sicurezza 6LOWPAN e concetti di sicurezza IoT and application Layer MQTT e concetti di sicurezza COAP e concetti di sicurezza IoT security and research directions OT security at glance Laboratori Arduino ESP32 Raspberry PI

Modalità d'esame

Esame scritto

Testi di riferimento

Simone Cirani, Gianluigi Ferrari, Marco Picone, Luca Veltri. Internet of Things Architectures, Protocols and Standards. Wiley B. B. Gupta, Aakanksha Tewari. A Beginner’s Guide to Internet of Things Security. Taylor and Francis Smita Jain, Vasantha Lakshmi. IoT and OT Security Handbook. Packt Publishing

Codice insegnamento 419892

Machine Learning 1° anno · 2° semestre · 9 CFU · INFO-01/A · 0 file

Lo studente conoscerà i principali metodi del machine and deep learning secondo i vari approcci supervisionato, semi-supervisionato e non supervisionato. Conoscerà inoltre alcuni metodi tipici del deep learning anche…

Scheda dell'insegnamento

Obiettivi formativi

Lo studente conoscerà i principali metodi del machine and deep learning secondo i vari approcci supervisionato, semi-supervisionato e non supervisionato. Conoscerà inoltre alcuni metodi tipici del deep learning anche applicato a problemi di computer vision e natural language processing. Sarà in grado di progettare implementare, addestrare e testare sistemi intelligenti per la classificazione, il clustering e l'anomaly detection basati su modelli avanzati di reti neurali. Conoscerà i principali metodi generativi, il meccanismo dell'attenzione e le architetture tranformers che sono alla base dei Large Language Models

Programma

MLP Neural Networks; Training methods and algorithms; CNN; RNN: LSTM and GRU; Autoencoders; Attention Models; Transformers; Discriminative and Generative Models; GAN, VAE and Diffusion Models; Representational Learning; Text embedding; Clustering; Dimensionality Reduction; Anomaly Detection; Introduction to Adversarial Machine Learning.

Lezioni frontali in aula e lezioni pratiche in laboratorio

MLP Neural Networks; Training methods and algorithms; CNN; RNN: LSTM and GRU; Autoencoders; Attention Models; Transformers; Discriminative and Generative Models; GAN, VAE and Diffusion Models; Representational Learning; Text embedding; Clustering; Dimensionality Reduction; Anomaly Detection; Introduction to Adversarial Machine Learning.

Modalità d'esame

Esame orale e progetto. Prove intermedie durante il corso

Testi di riferimento

  • Prince. Understanding Deep Learning. MIT Press. 2023 - Goodfellow, Bengio, Courville. Deep Learning. 2018. (also free online at deeplearning https://www.deeplearningbook.org/) - Nielsen, Neural Networks and Deep Learning. 2019 (online book, avalilable at http://neuralnetworksanddeeplearning.com/) - Charu C. Aggarwal, Neural Networks and Deep Learning. Springer, 2019 - Daniel Jurafsky and James H. Martin. 2025. Speech and Language Processing, 3rd edition. Online manuscript released January 12, 2025. https://web.stanford.edu/~jurafsky/slp3.

Codice insegnamento 419890

Affective Computing 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Comprendere il ruolo delle emozioni nella comunicazione umana e nella relazione con le tecnologie Acquisire conoscenze teoriche e pratiche sull'Affective Computing, inteso come un campo di ricerca interdisciplinare che…

Scheda dell'insegnamento

Obiettivi formativi

Comprendere il ruolo delle emozioni nella comunicazione umana e nella relazione con le tecnologie Acquisire conoscenze teoriche e pratiche sull'Affective Computing, inteso come un campo di ricerca interdisciplinare che combina l'Intelligenza Artificiale con la Psicologia e le Neuroscienze Esaminare le applicazioni dell'Affective Computing in diversi contesti, come la robotica, la salute, la realtà virtuale ed aumentata, l'istruzione e l'intrattenimento Esplorare le implicazioni etiche e sociali dell'Affective Computing Progettazione e sviluppo di un progetto di ricerca nell'ambito dell'Affective Computing

Programma

Questo insegnamento introduce gli studenti alla crescente intersezione tra Intelligenza Artificiale, Neuroscienze e Psicologia affettiva, nota come Affective Computing. Gli studenti acquisiranno conoscenze teoriche e pratiche interdisciplinari sul rilevamento e l'analisi delle emozioni umane attraverso tecniche di Intelligenza Artificiale, nonché sull'applicazione dell'Affective Computing in diversi contesti, tra cui la robotica, la salute, l'istruzione e l'intrattenimento. Saranno esplorate anche le implicazioni etiche e sociali dell'Affective Computing e come queste possono essere gestite attraverso la responsabilità etica dei ricercatori e degli sviluppatori. Il corso prevede la progettazione e lo sviluppo di un progetto di ricerca nell'ambito dell'Affective Computing, in modo da fornire agli studenti un'esperienza pratica e di applicazione degli argomenti trattati.

Utile ma non indispensabile aver seguito e superato gli esami di intelligenza artificiale e machine learning. Il corso è adatto anche a studenti di altri corsi di laurea.

L'insegnamento sarà erogato in modalità frontale (e online ove necessario e consentito), con lezioni teoriche ed esercitazioni pratiche. Saranno inoltre organizzati seminari e incontri con esperti del settore, al fine di approfondire i temi del corso e discutere le nuove tendenze di ricerca.

Introduzione all'Affective Computing • Definizione e ambiti di ricerca dell'Affective Computing • Storia e sviluppo del campo • Ruolo delle emozioni nella comunicazione umana Fondamenti teorici dell'Affective Computing • Teoria delle emozioni e degli stati affettivi cognitivi • Neuroscienze affettive • Psicologia cognitiva ed emotiva • Intelligenza Artificiale e apprendimento automatico Rilevamento e analisi delle emozioni Metodi di rilevamento delle emozioni, tra cui: • Rilevamento della fisiologia umana (es., EEG, GSR, EMG) • Riconoscimento delle espressioni facciali • Rilevamento della voce e del tono • Rilevamento della semantica testuale Analisi dei dati raccolti e interpretazione delle informazioni Applicazioni dell'Affective Computing: • Robotica affettiva • Salute mentale e benessere • Istruzione e apprendimento personalizzato • Realtà virtuale ed aumentata ed intrattenimento • Marketing e pubblicità • Altri campi applicativi dell'Affective Computing Implicazioni etiche e sociali dell'Affective Computing • Privacy e sicurezza dei dati • Impatto sociale delle tecnologie emotive • Limiti e rischi dell'Affective Computing • Responsabilità etica dei ricercatori e degli sviluppatori

Modalità d'esame

La valutazione sarà basata su: • Partecipazione attiva alle lezioni e alle esercitazioni pratiche • Elaborazione di un progetto di ricerca individuale o di gruppo • Presentazione orale del progetto alla fine del corso, durante la quale potranno essere fatte domande sul programma del corso

Testi di riferimento

Materiale fornito dal docente. Opzionale: Libro: Gender in AI and Robotics The Gender Challenges from an Interdisciplinary Perspective. DOI: https://doi.org/10.1007/978-3-031-21606-0 Publisher:Springer Cham Hardcover ISBN 978-3-031-21605-3 Published: 02 March 2023 Softcover ISBN 978-3-031-21608-4 Due: 16 March 2024 eBook ISBN 978-3-031-21606-0 Published: 01 March 2023

Codice insegnamento 419906

Analisi Di Metodi Numerici 2° anno · 2° semestre · 6 CFU · MATH-05/A · 0 file

Lo studente dovrà essere in grado di descrivere, analizzare, sviluppare ed applicare metodi numerici per: equazioni alle derivate parziali di tipo ellitico; equazioni integrali di Fredholm di prima specie.

Scheda dell'insegnamento

Obiettivi formativi

Lo studente dovrà essere in grado di descrivere, analizzare, sviluppare ed applicare metodi numerici per: equazioni alle derivate parziali di tipo ellitico; equazioni integrali di Fredholm di prima specie.

Programma

Equazioni alle derivate parziali. Formulazione debole del problema. Metodo degli elementi finiti. Metodi per la risoluzione del sistema lineare: gradiente coniugato. Equazioni integrali di Fredholm. Mal-posizione del problema. Regolarizzazione.

Elementi di base di analisi funzionale (importante).

Lezioni frontali.

Equazioni alle derivate parziali. Formulazione debole del problema. Metodo degli elementi finiti. Metodi per la risoluzione del sistema lineare: gradiente coniugato. Equazioni integrali di Fredholm. Mal-posizione del problema. Regolarizzazione.

Modalità d'esame

Sono due le prove da dovere superare per poter superare l'esame. La prima è una prova scritta. Lo scopo di tale prova è quello di invogliare lo studente nello studio di soluzioni di problemi tramite l'applicazione delle tecniche teoriche studiate nella materie. Tale fase è fondamentale al fine di far comprendere tutte le potenzalità e gli scopi della teoria. La prova viene svolta in aula e in maniera indipendente dallo studente. Allo studente vengono proposti alcuni esercizi con il relativo punteggio. La prova ha durata illimitata e lo studente è libero di consulatere libri e appunti e di usare il computer. La prova viene valutata controllando il corretto svolgimento dell'esercizio. La prova è superata se si ottiene un voto maggiore o uguale a 16. Il superamento di tale prova permette l'ammissione alla seconda prova d'esame. La seconda prova è orale. Lo scopo di tale prova è quello di verificare le competenza teoriche e la padronanza della materia da parte dello studente. La prova può essere sostenuta in qualsiasi momento successivo al superamento della prima prova ed ha la durata di circa mezz'ora. Il risultato di tale prova determinerà il voto finale dell'esame. Entrambe le prove su richiesta dello studente possono essere sostenute in lingua inglese. 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

A. QUARTERONI, "Modellistica Numerica per Problemi Differenziali", Springer, 2008. A. QUARTERONI, A. VALLI, "Numerical Approximation of Partial Differential Equations", Springer, 1997.

Codice insegnamento 419907

Applied Image And Signal Processing 2° anno · 2° semestre · 6 CFU · MATH-03/A · 0 file

Risultati d'apprendimento previsti: Il corso prevede la conoscenza delle nozioni principali dell'elaborazione di immagini con particolare riferimento a quelle mediche. Le principali conoscenze (Descrittore di Dublino…

Scheda dell'insegnamento

Obiettivi formativi

Risultati d'apprendimento previsti: Il corso prevede la conoscenza delle nozioni principali dell'elaborazione di immagini con particolare riferimento a quelle mediche. Le principali conoscenze (Descrittore di Dublino 1) acquisite saranno: •conoscenza della ricostruzione di segnali ed immagini tramite campionamento; •conoscenza della principali nozioni e tecniche dell'analisi e della elaborazione di immagine; •conoscenza delle principali problematiche di diagnostica medica e applicazione di algoritmi per il miglioramento di immagine; Le principali abilità acquisite (capacità di applicare le conoscenze acquisite, Descrittore di Dublino 2, e di adottare con autonomia di giudizio l’opportuno approccio, Descrittore di Dublino 3) saranno: •capacità di analisi e di elaborazione di immagine avente come finalità la diagnosi medica; •capacità di elaborare un ragionamento che porti lo studente ad individuare i metodi di soluzione del problema in questione; •capacità di individuare il giusto approccio per la soluzione del problema con lo sguardo verso la diagnostica medica.

Programma

Introduzione al corso • Riepilogo della trasformata di Fourier e delle sue proprietà. •Campionamento esatto e campionamento approssimato • Operatori sampling generalizzati e sampling- Kantorovich: loro proprietà e principali risultati. • Nozioni sulle immagini e sulle applicazioni del teorema del campionamento alle immagini • MATLAB e sue applicazioni all'elaborazione delle immagini • GIMP, IMAGEJ, e le loro applicazioni all'elaborazione delle immagini • Algoritmi di Image Processing: registrazione, segmentazione, sogliatura, operatori morfologici, operatori di smoothing e di sharpening, etc. •Strumentazione di acquisizione di immagini: TC, RNM, Termografia. • Diagnostica medica: -Introduzione generale alla diagnostica medica - Chirurgia vascolare, diagnostica e interventistica • Possibili visite: - Visita al reparto di Diagnostica per Immagini: radiografia (RX), tomografia computerizzata (CT), risonanza magnetica (MRI), ecografia, cardioCT. -Visita alla sezione di Chirurgia vascolare: trattamenti endovascolari -Visita alla sezione di oculistica • Visita al Centro per la ricerca sull'inquinamento atomico e l'ambiente (Hot-Box, termografia, ponti termici e inquinamento). • Diagnostica non invasiva in campo ingegneristico: elaborazione di immagini per la vulnerabilità sismica • Laboratori di Matematica Applicata su argomenti del corso

Conoscenza della ricostruzione di segnali ed immagini tramite campionamento; Conoscenza della principali nozioni e tecniche dell'analisi e della elaborazione di immagine; Conoscenza delle principali problematiche di diagnostica medica e dell' applicazione di algoritmi per il miglioramento di immagine.

Il corso è articolato nel seguente modo: 1) Lezioni in aula su tutti gli argomenti del corso; 2) Laboratori in aula: N. 2/3 laboratori su problemi riguardanti argomenti del corso 3) Visite guidate di 4 ore ciascuna presso i reparti dell'Ospedale Santa Maria della Misericordia di Perugia (radiologia e/o chirurgia vascolare e/o oculistica) e/o presso Ingegneria

Introduzione al corso • Riepilogo della trasformata di Fourier e delle sue proprietà. •Campionamento esatto e campionamento approssimato • Operatori sampling generalizzati e sampling- Kantorovich: loro proprietà e principali risultati. • Nozioni sulle immagini e sulle applicazioni del teorema del campionamento alle immagini • MATLAB e sue applicazioni all'elaborazione delle immagini • GIMP, IMAGEJ, e le loro applicazioni all'elaborazione delle immagini • Algoritmi di Image Processing: registrazione, segmentazione, sogliatura, operatori morfologici, operatori di smoothing e di sharpening, etc. •Strumentazione di acquisizione di immagini: TC, RNM, Termografia. • Diagnostica medica: -Introduzione generale alla diagnostica medica - Chirurgia vascolare, diagnostica e interventistica • Possibili visite: - Visita al reparto di Diagnostica per Immagini: radiografia (RX), tomografia computerizzata (CT), risonanza magnetica (MRI), ecografia, cardioCT. -Visita alla sezione di Chirurgia vascolare: trattamenti endovascolari -Visita alla sezione di oculistica • Visita al Centro per la ricerca sull'inquinamento atomico e l'ambiente (Hot-Box, termografia, ponti termici e inquinamento). • Diagnostica non invasiva in campo ingegneristico: elaborazione di immagini per la vulnerabilità sismica • Laboratori di Matematica Applicata su argomenti del corso

Modalità d'esame

Prova orale. La verifica degli obiettivi formativi dell’insegnamento (esame) prevede una prova orale. La prova orale sarà svolta nelle date fissate nel calendario degli esami del CdS. Le prove orali, consistono in una discussione della durata non superiore a circa 40 minuti ciascuna finalizzata ad accertare: i) il livello di conoscenza dei contenuti teorici e laboratoriali del corso (descrittore di Dublino 1), ii) il livello di competenza nell’esporre le proprie capacità di argomentazione logico-matematica (descrittore di Dublino 2), iii) l’ autonomia di giudizio (descrittore di Dublino 3) nel proporre l’approccio più opportuno per argomentare quanto richiesto. Le prove orali hanno anche l’obiettivo di verificare la capacità dello studente di esporre con proprietà di linguaggio le domande proposte dalla Commissione, di sostenere un rapporto dialettico durante discussione e di dimostare capacità logico-deduttive e di di sintesi nell'esposizione (descrittore di Dublino 4). La valutazione finale verrà effettuata dalla Commissione in trentesimi. 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

Dispense del docente e slides. Verranno consigliati alcuni libri.

Codice insegnamento 419903

Approximation Algorithms 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

conoscenza avanzate relative agli algoritmi di approssimazione. Accrescimento capacità critiche e applicative

Scheda dell'insegnamento

Obiettivi formativi

conoscenza avanzate relative agli algoritmi di approssimazione. Accrescimento capacità critiche e applicative

Programma

Introduzione agli algoritmi di approssimazione Problematiche di base e relativi studi di complessità: Knapsack; Vertex Cover; Minimum Hitting Set; Matching; TSP; Facility Location; k-Center; Scheduling Approfondimenti da recenti articoli scientifici: Automated Trading; Drone positioning; Multi-Interface networks Problemi aperti, discussioni e proposte Tecniche di programmazione avanzate: programmazione dinamica (PD), reti di flusso massimo (NF).

conoscenze di base di algoritmi

lezione frontale, discussioni aperta con gli studenti

Introduzione agli algoritmi di approssimazione Problematiche di base e relativi studi di complessità: Knapsack; Vertex Cover; Minimum Hitting Set; Matching; TSP; Facility Location; k-Center; Scheduling Approfondimenti da recenti articoli scientifici: Automated Trading; Drone positioning; Multi-Interface networks Problemi aperti, discussioni e proposte

Modalità d'esame

colloquio orale, seminario

Testi di riferimento

The Design of Approximation Algorithms by David P. Williamson and David B. Shmoys, Cambridge University Press.

Codice insegnamento 424603

Artificial Intelligent Applications 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file

Risultati d'apprendimento previsti. Orientati alle conoscenze. Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali…

Scheda dell'insegnamento

Obiettivi formativi

Risultati d'apprendimento previsti. Orientati alle conoscenze. Conoscenza delle principali tecniche di modellazione di problemi basate su agenti nel settore dell'intelligenza artificiale. Conoscenza delle principali tecniche di ricerca nello spazio degli stati, non informata, informata, di ricerca locale, basate su ragionamento automatico, inferenza, pianificazione automatica. Apprendimento con rinforzo e ottimizzazione di politiche. Conoscenza delle principali tecniche di modellazione di problemi basate su reti complesse ed applicazioni al settore dell'intelligenza artificiale. Conoscenza delle problematiche etiche nell'intelligenza artificiale Conoscenza del paradigma di programmazione funzionale e aspetti di base del lambda calcolo, tecniche di backtracking, pattern matching Orientati alle abilita'. Capacita' di utilizzare le conoscenze apprese per modellare, progettare e implementare soluzioni di problemi applicativi reali caratterizzati da agenti artificiali e/o reti complesse. Capacità di modellare ed implementare applicazioni intelligenti utilizzando tecniche di pattern matching, ed il paradigma funzionale Capacità di progettare strutture dati complesse. Capacità di realizzare applicazioni basate sul paradigma funzionale

Programma

Paradigma programmazione funzionale. Linguaggio Ocaml. Ricorsione. Pattern matching. Liste. Backtracking. Grafi. Algoritmi di ricerca. Cenni di lambda-calcolo. Realizzazione di un parser.

Nessuno

lezioni frontali, esercitazioni

Paradigma programmazione funzionale. Linguaggio Ocaml. Ricorsione. Pattern matching. Liste. Backtracking. Grafi. Algoritmi di ricerca. Ricerca in profondita', ricerche in ampiezza, ricerche euristiche. Branch and bound, algoritmo A*. Cenni di lambda-calcolo. Implementazione di un parser.

Modalità d'esame

Progetto assegnato dal docente e prova orale. Lo svolgimento del progetto è finalizzato a verificare la capacità di applicare correttamente le conoscenza teoriche e la capacità di comprensione delle problematiche proposte. La prova orale consiste in una discussione della durata di circa 30 minuti finalizzata a accertare il livello di conoscenza e di comprensione sui contenuti teorici del corso raggiunto dallo studente. Inoltre la prova orale consentirà di verificare la capacità di comunicazione dello studente con proprietà di linguaggio ed organizzazione autonoma dell'esposizione. Su richiesta dello studente l'esame puo' essere sostenuto anche in lingua Inglese. 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

M. Cialdea Mayer, C. Limongelli. Introduzione alla Programmazione Funzionale. Esculapio. http://caml.inria.fr/ (per scaricare interprete e documentazionein inglese)

Codice insegnamento 419895

Blockchain And Smart Contracts 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file

Capire il significato di Blockchain, le varie tipologie e gli algoritmi di consenso che sono alla base. Capire le nozioni più importanti di Bitcoin e Ethereum. Principi su come realizzare degli Smart Contract.

Scheda dell'insegnamento

Obiettivi formativi

Capire il significato di Blockchain, le varie tipologie e gli algoritmi di consenso che sono alla base. Capire le nozioni più importanti di Bitcoin e Ethereum. Principi su come realizzare degli Smart Contract.

Programma

1)Introduzione e Bitcoin 2)Blockchain e DLT in generale 3)Elementi di crittografia4)Blockchain consensus protocols6)Ethereum 7)Problemi di scalabilità e soluzioni di secondo livello

Nessuno in particolare

Lezioni frontali e di laboratorio. Possibili seminari di ospiti.

Introduction and Bitcoin -Informazioni sul corso: risorse, laboratori and esame -storia e leggende bitcoin -transazioni, indirizzi -wallets (e full miner node, router node) -funzionamento proof of work e problematiche di fork -Blocchi, verifica e propagazione in blockchain -linguaggio di scripting del bitcoin -tipologie transazioni bitcoin (standard e non) -statistiche sulle transazioni bitcoin (standard e non) -Bitcoin: esempi di contratti, escrow, multisignatures Blockchains and DLT in general -Blockchain architecture -Tipi di blockchains -Limitiazioni della Blockchain e soluzioni di secondo livello Elementi di crittografia -Curve Ellittiche - ECDSA - Esempi di Bitcoin Blockchain consensus protocols: -Byzantine general problem -PBFT - BESU -Proof of stake -The tangle: IOTA -Diversi consensus protocols Ethereum -Introduzione a Ethereum -Concetti di base di Ethereum -Ethereum Clients -Wallets -Transazioni -Smart Contracts e Solidity -Tokens -Oracles -Decentralized Applications (DApps) -Ethereum Virtual Machine Scalability issues and second layer: -Sharding -Payment channel e state channels -Sidechain -Delegation

Modalità d'esame

L’esame sarà diviso in due parti: -Colloquio orale della durata media di 30 minuti su argomenti di tutto il programma che evidenzia le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio. Legato anche agli esercizi di laboratorio -Progetto specifico da realizzare sugli argomenti del corso, assegnato dai docenti. Su richiesta dello studente l'esame può' essere sostenuto in lingua Italiana o Inglese. 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) Mastering Bitcoin Autore: Anas M. Antonopoulos Editore: O'Reilly Media, Inc. ISBN: 9781491902646, 9781491921982, 9781322403748, 1491902647, 1491921986, 1322403740 2) Mastering Ethereum : building smart contracts and DApps Autori: Andreas M. Antonopoulos, Gavin Wood Editore: O'Reilly Media, Inc. ISBN: 9781491971949, 1491971940 3) Mastering Blockchain Autori: Lorne Lantz, Daniel Cawrey Editore: O'Reilly Media, Inc. ISBN: 1147974642

Codice insegnamento 419920

Computational Intelligence 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

L'obbiettivo è quello di acquisire i principali concetti della Computational Intelligence e di applicarli a vari problemi pratici

Scheda dell'insegnamento

Obiettivi formativi

L'obbiettivo è quello di acquisire i principali concetti della Computational Intelligence e di applicarli a vari problemi pratici

Programma

Ottimizzazione discreta e continua Algoritmi evolutivi e di swarm intelligence Modelli probabilistici e fuzzy nell'Intelligenza Artificiale

Conoscenze pregresse dei corsi della laurea triennale in Informatica

Lezioni frontali teoriche Esercitazioni con soluzione di problemi e casi di studio al computer

Prima parte (metaeuristiche per l'ottimizzazione) - problemi di ottimizzazione - algorimi esatti - algoritmi di ricerca locale - tabu search - simulated annealing - algoritmi genetici - strategie evolutive - differential evolution - ant colony optimization - particle swarm optimization e altri algoritmi di swarm intelligence - programmazione genetica - ottimizzazione vincolata - ottimizzazione multi-obiettivo Seconda parte (modelli probabilistici e fuzzy) - trattamento incertezza in IA - modelli probabilistici in generale - modelli grafici e reti bayesiane - algoritmi esatti e approssimati per l'inferenza - apprendimento delle reti bayesiane - estensioni delle reti bayesiane - insiemi fuzzy - logica e ragionamento fuzzy - sistemi fuzzy

Modalità d'esame

L'esame è composto da due prove 1) svolgimento a casa di un progetto di programmazione individuale. Lo scopo di tale prova è verificare le abilità di impiego delle conoscenze acquisite dallo studente nel corso. 2) prova orale, in cui sarà richiesto allo studente di presentare il progetto e di approfondire alcune tematiche teoriche. Lo scopo della seconda parte è di accertare il livello di conoscenza, la capacità di comprensione e la proprietà di linguaggio raggiunti dallo studente. Gli studenti non di madre lingua italiana possono sostenere l'esame anche in lingua francese o inglese 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

Computational Intelligence: An Introduction. Andries P. Engelbrecht. Second Edition Wiley 2007 Introduction to Evolutionary Computing. A.E. Eiben, J.E. Smith. Second Edition Springer 2015 Probabilistic Graphical Models. Principles and Applications. Luis Enrique Sucar Springer 2015

Codice insegnamento 419896

Cryptography And Applications 2° anno · Annuale · 12 CFU · MATH-02/B · 0 file

Crittografia e applicazioni è l'insegnamento della Laurea Magistrale dedicato alle basi matematiche della sicurezza informatica. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi…

Scheda dell'insegnamento

Obiettivi formativi

Crittografia e applicazioni è l'insegnamento della Laurea Magistrale dedicato alle basi matematiche della sicurezza informatica. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi teoriche/matematiche per affrontare problemi concreti relativi alla sicurezza delle comunicazioni. Le principali conoscenze acquisite saranno: -Familiarità con l'aritmetica modulare e i campi finiti -Familiarità con le basi di teoria algoritmica dei numeri. -Dimestichezza con i concetti di crittosistema, crittografia a chiave pubblica, firma digitale, autenticazione, crittografia simmetrica. Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno: - valutare la sicurezza di un crittosistema simmetrico - valutare la sicurezza di un crittosistema asimmetrico - valutare la difficoltà computazionale di problemi di teoria dei numeri - definire i parametri di un'infrastruttura di crittografia a chiave pubblica sicura

Crittografia e applicazioni-modulo II è l'insegnamento della Laurea Magistrale dedicato ad alcuni argomenti d'avanguardia nell'ambito della sicurezza informatica e della Crittografia. L'obiettivo principale dell'insegnamento consiste nell'utilizzare le conoscenze di base di Crittografia acquisite nel primo modulo e fornire agli studenti le basi teoriche/matematiche per affrontare problemi avanzati relativi alla sicurezza delle comunicazioni. Il corso si prefigge anche lo scopo affinare la capacità di astrazione e, d’altra parte, mostrare come una buona conoscenza teorica permetta di sviluppare significativi strumenti applicativi. Le principali conoscenze acquisite saranno: -Consapevolezza dei diversi approcci utilizzati nell'ambito della Crittografia post-quantistica. -Familiarità con strumenti di teoria dei codici, problema della decodifica e costruzione di codici correttori di errori efficienti. -Dimestichezza con i metodi di distribuzioni delle chiavi basati su Secret Sharing Schemes. Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno: - valutare la sicurezza di un crittosistema di cifratura post-quantistico - valutare la sicurezza di un crittosistema di firma post-quantistico - valutare la difficoltà computazionale di problemi di teoria dei numeri - valutare la capacità di un sistema di preservare la privacy di un utente Autonomia di giudizio (making judgements): -Essere in grado di costruire e sviluppare argomentazioni logiche con una chiara identificazione di assunti e conclusioni; essere in grado di riconoscere dimostrazioni corrette, e di individuare ragionamenti fallaci . -Essere in grado di produrre proposte atte a interpretare correttamente problematiche complesse nell'ambito della crittografia e delle sue applicazioni. -Essere in grado di formulare autonomamente giudizi pertinenti sull'applicabilità di modelli crittografici a situazioni teoriche e/o concrete. Abilità comunicative (communication skills): -Capacità di presentare argomenti, problemi, idee e soluzioni, sia proprie che altrui, in termini matematici e le loro conclusioni, con chiarezza e accuratezza e con modalità adeguate agli ascoltatori a cui ci si rivolge, sia in forma orale che in forma scritta. -Capacità di motivare chiaramente la scelta delle strategie, metodi e contenuti, nonché degli strumenti computazionali adottati. Capacità di apprendimento (learning skills): Leggere e approfondire un argomento della letteratura crittografica. Affrontare in modo autonomo lo studio sistematico di argomenti crittografici non precedentemente approfonditi.

Programma

Crittografia Classica. Segretezza perfetta. Crittosistemi prodotto. DES e AES. Crittanalisi lineare e differenziale. Crittografia a chiave pubblica. Il crittosistema RSA. Fattorizzazione di interi. Il crittosistema di ElGamal. Logaritmi discreti. Campi finiti. Curve ellittiche. Metodi avanzati di Firma digitale. Crittografia Post-quantum. Crittografia Omomorfa.

Teoria dei codici: codici lineari, codici MDS, codici ciclici, codici perfetti, bound classici. Crittografia post-quantum: Crittografia basata su reticoli, Crittografia basata su codici, Crittografia multivariata, Crittografia basata su funzioni hash. Secret Sharing Schemes (SSS): Schema di Shamir, SSS da strutture geometriche, SSS da codici lineari.

Al fine di comprendere e saper applicare la maggior parte delle tecniche descritte nell'insegnamento è necessario avere sostenuto con successo gli esami di Matematica Discreta e di Analisi Matematica della laurea triennale

Al fine di comprendere e saper applicare la maggior parte delle tecniche descritte nell'insegnamento è necessario avere sostenuto con successo gli esami di Matematica Discreta, di Analisi Matematica della laurea triennale e di Crittografia ed applicazioni mod. I della laurea magistrale.

Il corso è organizzato in lezioni frontali in aula su tutti gli argomenti del corso. In ogni lezione circa metà del tempo sarà dedicata alla soluzione di problemi ed esercizi.

Il corso è organizzato in lezioni frontali in aula su tutti gli argomenti del corso.

Crittografia classica: cifrari di Cesare, di sostituzione, di permutazione, di Vigenere, di Hill e loro crittanalisi. Segretezza perfetta. Prodotto di crittosistemi. Cifrari a blocchi: reti di sostituzione-permutazione, crittanalisi lineare e differenziale, DES, AES. Funzioni hash in crittografia. Funzioni hash iterate. La costruzione di Merkle-Damgard e algoritmi SHA. Message authentication codes e famiglie universali di funzioni hash. Crittografia a chiave pubblica. Richiami di teoria dei numeri elementare: divisione euclidea, teorema cinese dei resti. RSA. Test di primalità e algoritmi di fattorizazzione. Logaritmi discreti. Crittosistema di ElGamal. Algoritmi per il problema del logaritmo discreto. Campi finiti. Curve ellittiche. Firma digitale. Schema di firma di ElGamal. DSA e Elliptic Curves DSA. Curve di Edwards e EdDSA. Secret sharing schemes. Crittografia post-quantum. Crittografia omomorfa.

Crittografia post-quantum: -Crittografia basata su reticoli: introduzione ai reticoli, problemi sui reticoli, NTRU (funzionamento e sicurezza). -Crittografia basata su codici: codici lineari, problema della decodifica, crittosistema di McEliece. -Crittografia multivariata: problema MQ, crittosistema hidden field equations (funzionamento e sicurezza), schema di firma digitale (oil and vinegar) -Crittografia basata su funzioni hash: crittosistema di Lamport (funzionamento e sicurezza) Secret Sharing Schemes (SSS): tipologie di SSS e realizzazioni. Schema di Shamir. SSS da strutture geometriche. SSS da codici lineari. Teoria dei codici: codici correttori di errori e codici lineari. Codici MDS, perfetti, ciclici. Disuguaglianze di Singleton, Hamming, Griesmer. Decodifica di un codice lineare. Interpretazione geometrica di un codice lineare.

Modalità d'esame

L'esame consiste di una prova orale, nella quale verranno sottoposti allo studente tre quesiti relativi a tre distinte parti del programma. La prova ha una durata di circa 30/40 minuti ed è finalizzata ad accertare il livello di conoscenza e capacitá di comprensione raggiunto dallo studente sui contenuti teorici e metodologici indicati nel programma (aritmetica modulare e campi finiti, crittografia a chiave pubblica, crittografia simmetrica, hash e firma digitale=, La prova orale consentirá inoltre di verificare la capacitá di comunicazione dell'allievo con proprietá di linguaggio ed organizzazione autonoma dell'esposizione sugli stessi argomenti a contenuto teorico. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

L'esame consiste di una prova orale, nella quale verranno sottoposti allo studente tre quesiti relativi a tre distinte parti del programma. La prova ha una durata di circa 30/40 minuti ed è finalizzata ad accertare il livello di conoscenza e capacità di comprensione raggiunto dallo studente sui contenuti teorici e metodologici indicati nel programma. La prova orale consentirà inoltre di verificare la capacità di comunicazione dell'allievo con proprietà di linguaggio ed organizzazione autonoma dell'esposizione sugli stessi argomenti a contenuto teorico. 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

D.R. Stinson, Cryptography - Theory and Practice - Chapman & Hall/CRC Mathematics of Public Key Cryptography. Version 2.0. S.D. Gailbraith, 2018

D.R. Stinson, Cryptography - Theory and Practice - Chapman & Hall/CRC Mathematics of Public Key Cryptography. Version 2.0. S.D. Gailbraith, 2018

Codice insegnamento 419900

Cryptography And Applications - Module 1 2° anno · 1° semestre · 6 CFU · MATH-02/B · 0 file

Crittografia e applicazioni è l'insegnamento della Laurea Magistrale dedicato alle basi matematiche della sicurezza informatica. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi…

Scheda dell'insegnamento

Obiettivi formativi

Crittografia e applicazioni è l'insegnamento della Laurea Magistrale dedicato alle basi matematiche della sicurezza informatica. L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le basi teoriche/matematiche per affrontare problemi concreti relativi alla sicurezza delle comunicazioni. Le principali conoscenze acquisite saranno: -Familiarità con l'aritmetica modulare e i campi finiti -Familiarità con le basi di teoria algoritmica dei numeri. -Dimestichezza con i concetti di crittosistema, crittografia a chiave pubblica, firma digitale, autenticazione, crittografia simmetrica. Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno: - valutare la sicurezza di un crittosistema simmetrico - valutare la sicurezza di un crittosistema asimmetrico - valutare la difficoltà computazionale di problemi di teoria dei numeri - definire i parametri di un'infrastruttura di crittografia a chiave pubblica sicura

Programma

Crittografia Classica. Segretezza perfetta. Crittosistemi prodotto. DES e AES. Crittanalisi lineare e differenziale. Crittografia a chiave pubblica. Il crittosistema RSA. Fattorizzazione di interi. Il crittosistema di ElGamal. Logaritmi discreti. Campi finiti. Curve ellittiche. Metodi avanzati di Firma digitale. Crittografia Post-quantum. Crittografia Omomorfa.

Al fine di comprendere e saper applicare la maggior parte delle tecniche descritte nell'insegnamento è necessario avere sostenuto con successo gli esami di Matematica Discreta e di Analisi Matematica della laurea triennale

Il corso è organizzato in lezioni frontali in aula su tutti gli argomenti del corso. In ogni lezione circa metà del tempo sarà dedicata alla soluzione di problemi ed esercizi.

Crittografia classica: cifrari di Cesare, di sostituzione, di permutazione, di Vigenere, di Hill e loro crittanalisi. Segretezza perfetta. Prodotto di crittosistemi. Cifrari a blocchi: reti di sostituzione-permutazione, crittanalisi lineare e differenziale, DES, AES. Funzioni hash in crittografia. Funzioni hash iterate. La costruzione di Merkle-Damgard e algoritmi SHA. Message authentication codes e famiglie universali di funzioni hash. Crittografia a chiave pubblica. Richiami di teoria dei numeri elementare: divisione euclidea, teorema cinese dei resti. RSA. Test di primalità e algoritmi di fattorizazzione. Logaritmi discreti. Crittosistema di ElGamal. Algoritmi per il problema del logaritmo discreto. Campi finiti. Curve ellittiche. Firma digitale. Schema di firma di ElGamal. DSA e Elliptic Curves DSA. Curve di Edwards e EdDSA. Secret sharing schemes. Crittografia post-quantum. Crittografia omomorfa.

Modalità d'esame

L'esame consiste di una prova orale, nella quale verranno sottoposti allo studente tre quesiti relativi a tre distinte parti del programma. La prova ha una durata di circa 30/40 minuti ed è finalizzata ad accertare il livello di conoscenza e capacitá di comprensione raggiunto dallo studente sui contenuti teorici e metodologici indicati nel programma (aritmetica modulare e campi finiti, crittografia a chiave pubblica, crittografia simmetrica, hash e firma digitale=, La prova orale consentirá inoltre di verificare la capacitá di comunicazione dell'allievo con proprietá di linguaggio ed organizzazione autonoma dell'esposizione sugli stessi argomenti a contenuto teorico. 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

D.R. Stinson, Cryptography - Theory and Practice - Chapman & Hall/CRC Mathematics of Public Key Cryptography. Version 2.0. S.D. Gailbraith, 2018

Codice insegnamento 419894

Cybersecurity Lab. 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

L'obiettivo è quello di rendere lo studente consapevole delle problematiche e soluzioni riguardanti l'hardening di un sistema operativo (Linux) riguardante aspetti differenti, come ad esempio, gestione degli utenti,…

Scheda dell'insegnamento

Obiettivi formativi

L'obiettivo è quello di rendere lo studente consapevole delle problematiche e soluzioni riguardanti l'hardening di un sistema operativo (Linux) riguardante aspetti differenti, come ad esempio, gestione degli utenti, gestione dei certificati, gestione di un firewall. Tutti gli esempi mostrati saranno direttamente messi in pratica dagli studenti a lezione. Verranno inoltre mostrati ed utilizzati protetto i principali strumenti di valutazione delle sicurezza di una rete in un ambiente di laboratorio. Infine, gli studenti acquisiranno esperienza diretta di analisi di attacchi di rete attraverso una piattaforma di Cyberange.

Programma

Hardening di un sistema operativo, concetti ed esempi. Valutazione della sicurezza di rete, strumenti e loro utilizzo. Simulazione a gruppi di un BlueTeam di difesa in un CybeRange.

Concetti base di Reti e Sistemi Operativi

Lezioni frontali ed esercizi in laboratorio.

Linux hardening (26 ore): Securing Administrative User Accounts, Securing Normal User Accounts, Securing Your Server with a Firewall, SSH Hardening, Encryption Technologies (GPG, eCryptfs, VeraCrypt, OpenSSL and the Public Key Infrastructure), Access Control Lists and Shared Directory Management, Kernel Hardening and Process Isolation, Scanning, Auditing, and Hardening (antivirus, autd, ausearch and aureport, OpenSCAP), Logging and Log Security, Vulnerability Scanning and Intrusion Detection (IPFire, Snort and Security Onion, Lynis), Ubuntu security compliance and certifications (FIPS 140, CIS, DISA-STIG, Common Criteria). Network Security Assessment (16 ore): tools (nmap, metasploitable, OpenVAS, Nikto, Hydra) and their use, Local Network Discovery, Service Fingerprinting, Assessing Common Network Services (FTP, SSH, Telnet, etc), Assessing Web Servers, Assessing Mail Services, Assessing VPN Services, Assessing Data Stores. Playing Blue Team in a CyberRange attraverso casi differenti (10 ore).

Modalità d'esame

Assegnazione di un progetto e esame orale. 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

  • Mastering Linux Security and Hardening - Third Edition by Donald A. Tevault Released February 2023 Publisher(s): Packt Publishing ISBN: 9781837630516 - Network Security Assessment, 3rd Edition by Chris McNab Released December 2016 Publisher(s): O'Reilly Media, Inc. ISBN: 9781491910955 - The Ubuntu Documentation and Security Guide (https://ubuntu.com/security/certifications/docs) - Linux hardening checklists and tips e altro materiale online indicato a lezione

Codice insegnamento 419915

High Performance Computing 2° anno · 2° semestre · 6 CFU · IINF-05/A · 0 file

L'obiettivo principale del corso è quello di introdurre lo studente allo studio di sistemi emergenti che sono tra l'altro alla base della realizzazione dei moderni data center e al rilascio di ambienti in alta…

Scheda dell'insegnamento

Obiettivi formativi

L'obiettivo principale del corso è quello di introdurre lo studente allo studio di sistemi emergenti che sono tra l'altro alla base della realizzazione dei moderni data center e al rilascio di ambienti in alta affidabilità, oltre a presentare i sistemi ad alte prestazioni, fondamentali per l'avanzamento della conoscenza e della scienza, e per erogare servizi moderni, inclusi quelli in ambiente mobile. Le principali conoscenze acquisite saranno: disegno e implementazione di sistemi Cluster: principali problematiche e modalità di istallazione e configurazione; Servizi ad alta affidabilità e sistemi ad alte prestazioni; L'ambiente Condor per la realizzazione di Cluster High Throughput. GPGPU Computing e programmazione OpenCL di GPU: per incrementare le performances di molti applicativi. Cloud Computing: disegno e implementazione di cloud ibride. Ambienti di virtualizzazione, Docker e sistemi Kuberntes.

Programma

Introduzione all’High Performance Computing (HPC) e all'High Throughput Computing (HTC); Implementazione e amministrazione di Cluster. Costruzione di servizi scalabili ed in alta affidabilità. Il progetto Condor per High Throughput Computing. Architettura dei sistemi Cloud; Gestione e Bilanciamento dei Processi in ambiente Cluster e Cloud, Cloud Computing. Virtualizzazione, Docker, Sistemi Kubernetes

Nessun prerequisito è richiesto allo studente; si considera che lo studente abbia comunque dimestichezza con il disegno e la configurazione dei servizi della rete Internet. La conoscenza approfondita dei sistemi operativi open source come Linux agevola l'acquisizione dei concetti del corso. Nel corso delle lezioni verranno comunque forniti esempi e casi d'uso volti ad agevolare l'apprendimento dei concetti illustrati a lezione.

Lezione frontale con l'ausilio di strumenti multimediali (slides, video, etc). Esercitazione in sala computer.

Il corso introduce gli studenti alle moderne tecnologie che permettono la realizzazione di data center e di erogare applicazioni in ambienti di alta affidabilità e bilanciamento del carico. In particolare verranno trattati i temi seguenti: Introduzione all'High Performance Computing (HPC) e all'High Throughput Computing (HTC); Implementazione e amministrazione di Cluster: Costruzione di servizi scalabili; Realizzazione di servizi ad alta affidabilità in ambiente Cluster: Heartbeat, Corosync, PaceMaker. Condor: istallazione, implementazione e design di un Cluster High Throughput. GPGPU Computing. linguaggio di programmazione OpenCL. Cloud Computing: presentazione e implementazione di una Cloud ibrida. Sistemi di virtualizzazione; Docker; Sistemi Kubernetes.

Modalità d'esame

L'esame prevede un esame scritto sulla piattaforma Libreeol (https://libreeol.org) seguito da esame orale di circa 30 minuti nel quale lo studente deve illustrare un progetto implementato e concordato con il docente, dimostrando la padronanza dei concetti richiesti, una adeguata proprietà di linguaggio e la capacità di organizzare i concetti da esporre in modo adeguato.

Testi di riferimento

J. Garrison and K. Nova, Cloud Native Infrastructure-Patterns for Scalable Infrastructure and Applications in a Dynamic Environment, O’Reilly and Associates, 2018, ISBN: 978-1-492-03969-3. Materiale didattico fornito dal docente con riferimenti bibliografici

Codice insegnamento 419904

Information Security Compliance, Certification And Digital Forensics 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Insegnamento integrato composto dai moduli: CERTIFICATION; DIGITAL FORENSICS; INFORMATION SECURITY COMPLIANCE.

Scheda dell'insegnamento

Programma

Insegnamento integrato composto dai moduli: CERTIFICATION; DIGITAL FORENSICS; INFORMATION SECURITY COMPLIANCE.

Codice insegnamento 419899

Information Security Compliance, Certification And Digital Forensics 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Insegnamento integrato composto dai moduli: CERTIFICATION; DIGITAL FORENSICS; INFORMATION SECURITY COMPLIANCE.

Scheda dell'insegnamento

Programma

Insegnamento integrato composto dai moduli: CERTIFICATION; DIGITAL FORENSICS; INFORMATION SECURITY COMPLIANCE.

Codice insegnamento 419916

IoT and OT SECURITY 2° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Capire e discutere in modo critico i concetti base ed i protocolli dell IoT Capire ed avere consapevolezza delle minacce di sicurezza in ambito IoT e dei meccanismi per risolvere tali minacce Discutere in maniera critica…

Scheda dell'insegnamento

Obiettivi formativi

Capire e discutere in modo critico i concetti base ed i protocolli dell IoT Capire ed avere consapevolezza delle minacce di sicurezza in ambito IoT e dei meccanismi per risolvere tali minacce Discutere in maniera critica e comprendere i concetti della sicurezza e della gestione delle chiavi in ambito IoT Capire le problematiche di Privacy e le possibili soluzioni Campire come implementare applicazioni IoT

Programma

Introduzione all’IoT Concetti di base, sicurezza e protocolli Livello fisico e di data-link nei sistemi IoT Livello di rete nei sistemi IoT Protocols, standard and security IoT and application Layer IoT security and research directions OT security at glance Laboratori

Nessuno

  • Lezioni frontali - Esercitazioni

Introduzione all’IoT Informazioni relative al corso: risorse, laboratori ed esame Che cos’è l’internet delle cose Applicazioni Home e Building Automation Smart Cities Smart Grids Industrial IoT Smart Farming Concetti di base, sicurezza e protocolli IoT ed efficienza energetica Dispositivi Problematiche di sicurezza in ambito IoT Panoramica dei meccanismi di sicurezza Crittografia e Key management Privacy Livello fisico e di data-link nei sistemi IoT Livello fisico Mac layer tradizionale Mac layer nei sistemi IoT Livello di rete nei sistemi IoT Routing per mesh network Clustering protocols Protocols, standard and security IEEE 802.15.4 e concetti di sicurezza Zigbee e concetti di sicurezza Bluetooth e concetti di sicurezza 6LOWPAN e concetti di sicurezza IoT and application Layer MQTT e concetti di sicurezza COAP e concetti di sicurezza IoT security and research directions OT security at glance Laboratori Arduino ESP32 Raspberry PI

Modalità d'esame

Esame scritto

Testi di riferimento

Simone Cirani, Gianluigi Ferrari, Marco Picone, Luca Veltri. Internet of Things Architectures, Protocols and Standards. Wiley B. B. Gupta, Aakanksha Tewari. A Beginner’s Guide to Internet of Things Security. Taylor and Francis Smita Jain, Vasantha Lakshmi. IoT and OT Security Handbook. Packt Publishing

Codice insegnamento 419919

Knowledge Representation And Automated Reasoning 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file

Conoscere e capire le nozioni fondamentali della constraint programming, dell'argumentation e della rule based programming (drools o CLIPS).

Scheda dell'insegnamento

Obiettivi formativi

Conoscere e capire le nozioni fondamentali della constraint programming, dell'argumentation e della rule based programming (drools o CLIPS).

Programma

Introduzione all'area della rappresentazione della conoscenza con approfondimenti nel campo della programmazione con vincoli, dell'argomentation e della rule based programming (drools).

Conoscenza del linguaggio Java, dell'ambiente di programmazione Eclipse e del linguaggio C o GO (indispensabile) Conoscenza del linguaggio Javascript e dell'ambiente Node.Js (importante) Conoscenza di HTML e CSS (utile)

lezioni frontali e laboratorio

1. Introduzione al corso, inquadramento dell'area di rappresentazione della conoscenza all'interno dell'Intelligenza Aretificiale. 2. Introduzione al concetto di Sistemi con Vincoli anche tramite esempi. Nozioni di base della programmazione con vincoli. Alcuni risolutori completi. Nozioni di consistenza locale. Alcuni risolutori incompleti. Algoritmi di propagazione di vincoli. Metodi di ricerca nello spazio delle soluzioni. Argomenti avanzati di programmazione con vincoli: - vincoli soft - vincoli bipolari 3. argumentation frameworks 4. rule based programming(drools or CLIPS)

Modalità d'esame

L'esame si sostiene discutendo un progetto pratico avente oggetto una parte del programma, e con un colloquio orale (a stimolo aperto con risposta aperta) della durata media di 20 minuti su argomenti della restante parte del programma. Lo scopo dell'esame è di evidenziare le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio.

Testi di riferimento

dispense docente e libri di testo consigliati a lezione

Codice insegnamento 419893

Knowledge Representation And Automated Reasoning 2° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file

Conoscere e capire le nozioni fondamentali della constraint programming, dell'argumentation e della rule based programming (drools o CLIPS).

Scheda dell'insegnamento

Obiettivi formativi

Conoscere e capire le nozioni fondamentali della constraint programming, dell'argumentation e della rule based programming (drools o CLIPS).

Programma

Introduzione all'area della rappresentazione della conoscenza con approfondimenti nel campo della programmazione con vincoli, dell'argomentation e della rule based programming (drools).

Conoscenza del linguaggio Java, dell'ambiente di programmazione Eclipse e del linguaggio C o GO (indispensabile) Conoscenza del linguaggio Javascript e dell'ambiente Node.Js (importante) Conoscenza di HTML e CSS (utile)

lezioni frontali e laboratorio

1. Introduzione al corso, inquadramento dell'area di rappresentazione della conoscenza all'interno dell'Intelligenza Aretificiale. 2. Introduzione al concetto di Sistemi con Vincoli anche tramite esempi. Nozioni di base della programmazione con vincoli. Alcuni risolutori completi. Nozioni di consistenza locale. Alcuni risolutori incompleti. Algoritmi di propagazione di vincoli. Metodi di ricerca nello spazio delle soluzioni. Argomenti avanzati di programmazione con vincoli: - vincoli soft - vincoli bipolari 3. argumentation frameworks 4. rule based programming(drools or CLIPS)

Modalità d'esame

L'esame si sostiene discutendo un progetto pratico avente oggetto una parte del programma, e con un colloquio orale (a stimolo aperto con risposta aperta) della durata media di 20 minuti su argomenti della restante parte del programma. Lo scopo dell'esame è di evidenziare le capacità espositive dello studente, le sue capacità d'utilizzo appropriato di tecniche e nozioni fondamentali e l'approfondimento dello studio.

Testi di riferimento

dispense docente e libri di testo consigliati a lezione

Codice insegnamento 419897

Mathematical Methods For Artificial Intelligence 2° anno · Annuale · 12 CFU · MATH-03/A · 0 file

Risultati d'apprendimento previsti: Il corso prevede la conoscenza delle nozioni principali dell'elaborazione di immagini con particolare riferimento a quelle mediche. Le principali conoscenze (Descrittore di Dublino…

Scheda dell'insegnamento

Obiettivi formativi

Risultati d'apprendimento previsti: Il corso prevede la conoscenza delle nozioni principali dell'elaborazione di immagini con particolare riferimento a quelle mediche. Le principali conoscenze (Descrittore di Dublino 1) acquisite saranno: •conoscenza della ricostruzione di segnali ed immagini tramite campionamento; •conoscenza della principali nozioni e tecniche dell'analisi e della elaborazione di immagine; •conoscenza delle principali problematiche di diagnostica medica e applicazione di algoritmi per il miglioramento di immagine; Le principali abilità acquisite (capacità di applicare le conoscenze acquisite, Descrittore di Dublino 2, e di adottare con autonomia di giudizio l’opportuno approccio, Descrittore di Dublino 3) saranno: •capacità di analisi e di elaborazione di immagine avente come finalità la diagnosi medica; •capacità di elaborare un ragionamento che porti lo studente ad individuare i metodi di soluzione del problema in questione; •capacità di individuare il giusto approccio per la soluzione del problema con lo sguardo verso la diagnostica medica.

Approfondimento degli aspetti matematici relativi ad alcune importanti applicazioni legate alla scienza dei dati e alle tecnologie informatica. Capacità di curare gli aspetti della modellistica matematica, dall'astrazione matematica, alla sua interpretazione modellistica, alla simulazione su calcolatore.

Programma

Introduzione al corso • Riepilogo della trasformata di Fourier e delle sue proprietà. •Campionamento esatto e campionamento approssimato • Operatori sampling generalizzati e sampling- Kantorovich: loro proprietà e principali risultati. • Nozioni sulle immagini e sulle applicazioni del teorema del campionamento alle immagini • MATLAB e sue applicazioni all'elaborazione delle immagini • GIMP, IMAGEJ, e le loro applicazioni all'elaborazione delle immagini • Algoritmi di Image Processing: registrazione, segmentazione, sogliatura, operatori morfologici, operatori di smoothing e di sharpening, etc. •Strumentazione di acquisizione di immagini: TC, RNM, Termografia. • Diagnostica medica: -Introduzione generale alla diagnostica medica - Chirurgia vascolare, diagnostica e interventistica • Possibili visite: - Visita al reparto di Diagnostica per Immagini: radiografia (RX), tomografia computerizzata (CT), risonanza magnetica (MRI), ecografia, cardioCT. -Visita alla sezione di Chirurgia vascolare: trattamenti endovascolari -Visita alla sezione di oculistica • Visita al Centro per la ricerca sull'inquinamento atomico e l'ambiente (Hot-Box, termografia, ponti termici e inquinamento). • Diagnostica non invasiva in campo ingegneristico: elaborazione di immagini per la vulnerabilità sismica • Laboratori di Matematica Applicata su argomenti del corso

Approfondimenti sugli aspetti numerici legati all'approssimazione, algebra lineare e ottimizzazione non lineare e loro applicazioni alla scienza dei dati e alle tecnologie informatiche.

Conoscenza della ricostruzione di segnali ed immagini tramite campionamento; Conoscenza della principali nozioni e tecniche dell'analisi e della elaborazione di immagine; Conoscenza delle principali problematiche di diagnostica medica e dell' applicazione di algoritmi per il miglioramento di immagine.

Algebra lineare. Calcolo differenziale in una o più variabili reali.

Il corso è articolato nel seguente modo: 1) Lezioni in aula su tutti gli argomenti del corso; 2) Laboratori in aula: N. 2/3 laboratori su problemi riguardanti argomenti del corso 3) Visite guidate di 4 ore ciascuna presso i reparti dell'Ospedale Santa Maria della Misericordia di Perugia (radiologia e/o chirurgia vascolare e/o oculistica) e/o presso Ingegneria

Lezioni frontali e laboratorio con Matlab.

Introduzione al corso • Riepilogo della trasformata di Fourier e delle sue proprietà. •Campionamento esatto e campionamento approssimato • Operatori sampling generalizzati e sampling- Kantorovich: loro proprietà e principali risultati. • Nozioni sulle immagini e sulle applicazioni del teorema del campionamento alle immagini • MATLAB e sue applicazioni all'elaborazione delle immagini • GIMP, IMAGEJ, e le loro applicazioni all'elaborazione delle immagini • Algoritmi di Image Processing: registrazione, segmentazione, sogliatura, operatori morfologici, operatori di smoothing e di sharpening, etc. •Strumentazione di acquisizione di immagini: TC, RNM, Termografia. • Diagnostica medica: -Introduzione generale alla diagnostica medica - Chirurgia vascolare, diagnostica e interventistica • Possibili visite: - Visita al reparto di Diagnostica per Immagini: radiografia (RX), tomografia computerizzata (CT), risonanza magnetica (MRI), ecografia, cardioCT. -Visita alla sezione di Chirurgia vascolare: trattamenti endovascolari -Visita alla sezione di oculistica • Visita al Centro per la ricerca sull'inquinamento atomico e l'ambiente (Hot-Box, termografia, ponti termici e inquinamento). • Diagnostica non invasiva in campo ingegneristico: elaborazione di immagini per la vulnerabilità sismica • Laboratori di Matematica Applicata su argomenti del corso

Approssimazione ai minimi quadrati e decomposizione ai valori singolari (principal component analysis). Fattorizzazione QR e fattorizzazione non negativa. Interpolazione trigonometrica e trasformata veloce di Fourier. Ottimizzazione non lineare e su varietà differenziabile. Durante il corso verranno considerate alcune delle applicazioni delle teorie e metodi studiati alla scienza dei dati e alle tecnologie informatiche: fitting di dati; problemi di classificazione; machine learning; filtraggio digitale.

Modalità d'esame

Prova orale. La verifica degli obiettivi formativi dell’insegnamento (esame) prevede una prova orale. La prova orale sarà svolta nelle date fissate nel calendario degli esami del CdS. Le prove orali, consistono in una discussione della durata non superiore a circa 40 minuti ciascuna finalizzata ad accertare: i) il livello di conoscenza dei contenuti teorici e laboratoriali del corso (descrittore di Dublino 1), ii) il livello di competenza nell’esporre le proprie capacità di argomentazione logico-matematica (descrittore di Dublino 2), iii) l’ autonomia di giudizio (descrittore di Dublino 3) nel proporre l’approccio più opportuno per argomentare quanto richiesto. Le prove orali hanno anche l’obiettivo di verificare la capacità dello studente di esporre con proprietà di linguaggio le domande proposte dalla Commissione, di sostenere un rapporto dialettico durante discussione e di dimostare capacità logico-deduttive e di di sintesi nell'esposizione (descrittore di Dublino 4). La valutazione finale verrà effettuata dalla Commissione in trentesimi. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Esame orale. L'orale può essere sostituito da un seminario a metà corso e un progetto, se disponibile. La finalità della prova orale è la valutazione della comprensione degli argomenti del corso e della padronanza nel loro utilizzo. La finalità del seminario è la valutazione della capacità dello studente di presentare un argomento legato al corso ma studiato in autonomia. 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

Dispense del docente e slides. Verranno consigliati alcuni libri.

Per gli argomenti di analisi numerica si fa riferimento a dispense del docente e al testo J. Stoer, R. Bulirsch. Introduction to numerical analysis. Springer. 2013. Per gli argomenti opzionali si seguirà un testo di riferimento in inglese, comunicato dal docente.

Codice insegnamento 419921

Numerical Methods For Information Technologies 2° anno · 1° semestre · 6 CFU · MATH-05/A · 0 file

Approfondimento degli aspetti matematici relativi ad alcune importanti applicazioni legate alla scienza dei dati e alle tecnologie informatica. Capacità di curare gli aspetti della modellistica matematica,…

Scheda dell'insegnamento

Obiettivi formativi

Approfondimento degli aspetti matematici relativi ad alcune importanti applicazioni legate alla scienza dei dati e alle tecnologie informatica. Capacità di curare gli aspetti della modellistica matematica, dall'astrazione matematica, alla sua interpretazione modellistica, alla simulazione su calcolatore.

Programma

Approfondimenti sugli aspetti numerici legati all'approssimazione, algebra lineare e ottimizzazione non lineare e loro applicazioni alla scienza dei dati e alle tecnologie informatiche.

Algebra lineare. Calcolo differenziale in una o più variabili reali.

Lezioni frontali e laboratorio con Matlab.

Approssimazione ai minimi quadrati e decomposizione ai valori singolari (principal component analysis). Fattorizzazione QR e fattorizzazione non negativa. Interpolazione trigonometrica e trasformata veloce di Fourier. Ottimizzazione non lineare e su varietà differenziabile. Durante il corso verranno considerate alcune delle applicazioni delle teorie e metodi studiati alla scienza dei dati e alle tecnologie informatiche: fitting di dati; problemi di classificazione; machine learning; filtraggio digitale.

Modalità d'esame

Esame orale. L'orale può essere sostituito da un seminario a metà corso e un progetto, se disponibile. La finalità della prova orale è la valutazione della comprensione degli argomenti del corso e della padronanza nel loro utilizzo. La finalità del seminario è la valutazione della capacità dello studente di presentare un argomento legato al corso ma studiato in autonomia. 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

Per gli argomenti di analisi numerica si fa riferimento a dispense del docente e al testo J. Stoer, R. Bulirsch. Introduction to numerical analysis. Springer. 2013. Per gli argomenti opzionali si seguirà un testo di riferimento in inglese, comunicato dal docente.

Codice insegnamento 419898

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.