Contenuto principale della pagina Menu di navigazione Modulo di ricerca su uniPi Modulo di ricerca su uniPi

INFORMATICA E NETWORKING

Corso di laurea magistrale

Piano di Studi


Primo anno

  • Advanced programming (9 cfu)

    • Obiettivi
      Gli obiettivi del corso sono:
      a. di fornire agli studenti una conoscenza approfondita di come come concetti e metafore ad alto livello dei linguaggi di programmazione si traducono in sistemi eseguibili e quali siano i loro costi e limiti
      b. di familiarizzare gli studenti con i moderni principi, tecniche e migliori pratiche per la costruzione di software sofisticato
      c. di introdurre tecniche di programmazione a livelli di astrazione più elevata, in particolare generative programming, component programming e web computing
      d. di presentare frameworks allo stato dell’arte che incorporano queste tecniche.
      Il corso in particolare si focalizza su questioni di qualità relative al progetto dettagliato ed alla codifica, quali l’affidabilità, le prestazioni, l’adattabilità e l’integrabilità in sistemi più ampi.

      Syllabus
      1. Pragmatica dei Linguaggi di Programmazione
      2. Supporto Run Time e Ambienti di Esecuzione
      3. Programmazione Generica
      4. Librerie di Classi e Framework
      5. Programmazione Generativa
      6. Interoperabilità tra Linguaggi
      7. Programmazione Basata su Componenti
      8. Web Services
      9. Web e Application Frameworks
      10. Linguaggi di Scripting



  • Parallel and distributed systems: paradigms and models (9 cfu)

    • Il corso mira a fornire un mix di basi e conoscenze avanzate nel campo del calcolo parallelo, specificatamente rivolte ad applicazioni ad alte prestazioni. Una prima parte del corso, relativamente piccola, fornirà il necessario background relativo all'hardware parallelo, dal multicore agli acceleratori fino ai sistemi distribuiti come cluster e cloud. Quindi verranno affrontati i principi del calcolo parallelo, comprese le misure che caratterizzano le computazioni parallele, i meccanismi e le politiche che supportano il calcolo parallelo ed i modelli tipici per il calcolo ad alte prestazioni. Alla fine sarà inclusa una rassegna dei framework di programmazione esistenti, finalizzati a preparare gli studenti a utilizzare e sfruttare i framework più moderni ed avanzati attualmente in uso sia negli istituti di ricerca che in contesti di produzione. Di conseguenza, allo studente che frequenterà il corso verrà fornita una prospettiva generale dell'area del calcolo parallelo nonché un'indagine completa dei framework attualmente disponibili per il calcolo ad alte prestazioni. L'intera serie di argomenti sarà integrata da esercizi pratici, in classe - secondo il principio "bring-yout-own-device" o come compiti a casa, da svolgere anche su macchine messe a disposizione dal nostro dipartimento. Verranno introdotti i diversi framework di programmazione utilizzati nel corso dettagliando le principali caratteristiche e modelli di utilizzo, lasciando allo studente il compito di apprendere i dettagli sintattici di basso livello (sotto la supervisione dei docenti) nell'ambito dei compiti a casa.

      Contenuti
      a) Evoluzione dei dispositivi informatici da sequenziale a parallelo: introduzione a multicore, core multiuso, acceleratori, cluster e architetture cloud.
      b) Principi del calcolo parallelo: misure di interesse (tempo e potenza), scalabilità orizzontale e verticale, meccanismi di comunicazione / condivisione e sincronizzazione, attività concorrenti (processi, thread, kernel), vettorializzazione, pattern tipici per il calcolo parallelo ad alta intensità di dati.
      Esercizi di laboratorio e assegnazioni utilizzando framework di programmazione parallela all'avanguardia mirati a multicore di memoria condivisa.
      c) Framework avanzati di elaborazione parallela e distribuita per applicazioni ad alta intensità di dati: GPU, elaborazione del flusso di dati e framework di programmazione ad alta intensità di dati. Esercizi di laboratorio e assegnazioni framework di programmazione all'avanguardia mirati ad architetture distribuite o acceleratori.

  • Teletraffic Models and Measurements (9 cfu)

    • Obiettivi
      Il corso presenta i concetti fondamentali relativi alla teoria ed all’ingegneria del traffico nelle reti di telecomunicazioni. Vengono introdotti i processi di Markov a tempo discreto (catene) e quelli a tempo continuo. Viene inoltre presentata la teoria elementare ed intermedia delle code utili alla trattabilità dei modelli fondamentali di sistemi ad attesa e a perdita impiegati per l’analisi di reti a commutazione di pacchetto e di circuito. La trattazione degli indici prestazionali fondamentali viene presentata passando ove necessario a domini trasformati (Laplace, Zeta). Sono infine presentati i teoremi fondamentali per la trattazione di reti di code markoviane aperte e chiuse e le reti di tipo BCMP. Il corso presenta inoltre i metodi numerici fondamentali per la trattazione di problemi di analisi delle prestazioni riconducibili a soluzioni basate su approcci markoviani.

      Syllabus
      1) Processi di Markov a stato discreto
      a. Processi di Markov a stato discreto e tempo discreto (Catene di Markov)
      b. Processi di Markov a stato discreto e tempo continuo
      2) Processi puntuali
      a. Processi di sola nascita e di sola morte
      b. Processo di Bernoulli a tempo continuo e tempo discreto
      c. Processo di Poisson
      3) Processi di nascita e morte
      a. Condizioni di ergodicità
      b. Valutazione dei momenti di primo e secondo ordine
      4) Generalità sull’analisi del traffico in rete
      a. Modelli stocastici
      b. Modelli deterministici
      c. Non stazionarietà del traffico. Definizioni TCBH, ADPH
      5) Code Markoviane
      a. notazione di Kendall; Geo/Geo/1, M/M/Ns, M/M/Ns/0, M/M/1/Nw;
      b. Formula B di Erlang, Formula C di Erlang, Formula di Engset.

      6) Code non Markoviane:
      a. La trattazione di una semplice coda non markoviana: la coda M/G/1;
      b. la catena di Markov immersa; analisi della coda in regime asintotico.
      c. Code M/G/1 con classi di utenza e con priorità

      7) Reti di code:
      a. Reti di code markoviane aperte e chiuse. Reti di code acicliche.
      b. Teorema di Burke. Teorema di Jackson.
      c. Teorema di Gordon-Newell.
      d. Uso di MININET su LINUX, Emulazione di reti, Descrizione e configurazione di reti in Python; Ping, Traceroute, Iperf; Configuratione di router; Configuration delle caratteristiche dei link; Wireshark; Strumenti di misura attivi e passivi.

      Scritto, test di laboratorio on MININET e orale.

  • High Performance Computing (9 cfu)

    • Obiettivi
      Questo corso tratta di due aspetti fortemente interrelati nel campo del calcolo ad alte prestazioni:
      1. concetti fondamentali e tecniche di strutturazione e progetti di computazioni parallele, metodologie e paradigmi di parallelizzazione, modelli di programmazione parallela, loro implementazione e modelli di costo;
      2. architetture ad alte prestazioni: multiprocessor a memoria condivisa, multicomputer a memoria distribuita, cluster, ed altre.
      Entrambi gli aspetti sono studiati in termini di modelli strutturali, supporti statici e dinamici al modelli di programmazione, valutazione delle prestazioni, capacità di costruire applicazioni complesse e/o piattaforme abilitanti per composizione, anche attraverso esempi di casi applicativi reali. Sono studiate caratteristiche e tendenze tecnologiche, come multi-/many-core e reti ad alte prestazioni.
      Una parte iniziale è dedicata a rivedere concetti e tecniche base dello studio strutturato all’architettura degli elaboratori, allo scopo di uniformare diverse preparazioni di base.

      Syllabus
      0. Computing architecture primer
      1. Metodologie per strutturare e programmare applicazioni parallele ad alte prestazioni; fondamenti di modelli di costo: metriche, elementi di teoria delle code e reti di code, bilanciamento del carico, ottimizzazioni statiche e dinamiche
      2. Paradigmi di parallelizzazione: stream-parallel (pipeline, data-flow, farm, divide and conquer, partizionamento funzionale), data-parallel (map, stencil fissi e variabili, reduce, prefix), and loro composizioni
      3. Meccanismi di cooperazione: comunicazioni dedicate e collettive, oggetti condivisi, strumenti di compilazione, supporti a tempo di esecuzione e loro ottimizzazioni
      4. Multiprocessor a memoria condivisa. SMP, NUMA, modelli di costo; reti di interconnessione e loro valutazione: reti indirette e multistadio, reti diretti e cubi, fat tree, reti on-chip
      5. Architetture a memoria distribuita: multicomputer, cluster, piattaforme distribuite eterogenee, reti di comunicazione ad alte prestazioni
      6. Aspetti avanzati di ricerca e/o tecnologici: multi-/many-core, multithreading simd/vectorizzazione/gpu, calcolo pervasivo ad alte prestazioni, high-performance storage.


  • Wireless networks (9 cfu)

    • Il corso è volto a fornire agli studenti una critica carrellata sull’evoluzione dell’architettura delle reti cellulari, soffermandosi principalmente sugli aspetti caratterizzanti dei sistemi LTE e 5G. Inoltre, l’insegnamento è volto all’analisi delle tecnologie maggiormente diffuse per reti wireless LAN, sia in banda RF che mmWave, ed all’introduzione dei diversi aspetti architetturali e protocollari delle reti Wireless Mesh Networks (WMN). Infine, il corso si prefigge l’obiettivo di fornire le linee guida per la progettazione di questi sistemi.

      Syllabus

      Reti Wireless LAN (WLAN)
      - Evoluzione della famiglia IEEE 802.11, Certificazione dei prodotti Wi-Fi, Architettura delle reti IEEE 802.11, Differenziazione del servizio di trasporto: 802.11e. Le procedure di management, di autenticazione e per la gestione della sicurezza. Aspetti progettuali delle reti WLAN.

      Wireless Mesh Networks (WMN)
      - Architettura e scenari di utilizzo delle WMN, Aspetti di progetto delle WMN, Principi di progetto di protocolli di routing nelle WMN. Classificazione dei protocolli di routing. Concetti base sullo sviluppo di metriche di routing per WMN. Esempi di protocolli e di metriche di routing per WMN: OLSR, AODV, BATMAN, HWMP, ETX, ETT, ALM. Lo standard IEEE 802.11s.

      Reti Cellulari
      - Struttura generale di un sistema cellulare. Evoluzione della rete e delle funzioni dei sistemi GSM, GPRS e UMTS. Il sistema LTE: gli elementi delle core network e della E-UTRAN. QoS nei sistemi LTE. Gestione della mobilità e handover. Evoluzione di LTE verso LTE-Advanced. Active Antennas Systems. Architettura dei servizi e la piattaforma IMS. Esempi di valutazione QoE per servizi VILTE e di segnalazione per servizi VOLTE. I sistemi 5G. Scenari di rete RAN 5G. Architettura Flexible RAN 5G. Concetti di virtualizzazione delle funzioni di rete. Software Defined Networking, Network Functions Virtualization, Scenari Verticals 5G.


  • Digital Communications (12 cfu)

    • The course is organized in two parts FUNDAMENTALS OF SIGNALS AND SYSTEMS and FUNDAMENTALS OF DIGITAL COMMUNICATIONS wich are described as follows:

      FUNDAMENTALS OF SIGNALS AND SYSTEMS
      Description
      This course contains the basic notions about signals and systems, namely signal representations, both continuous time and discrete time, in the time domain and in the frequency domain, the Fourier, and Z transforms, their properties, elements of filtering and elements of stability. This course introduces also the students to probability theory, random variables and random signals (or stochastic processes), and concludes with an introduction to Gaussian processes. The course combines lectures, and practical exercises/demonstrations in MATLAB.
      Prerequisite
      Basic notions of linear algebra and analysis.
      Syllabus
      -Basic concepts for continuous-time signals
      -Fourier transform
      -Sampling and discrete signals
      -Discrete Fourier transform and Z Transform
      -Filtering and filter design
      -Random variables and probability theory
      -Stochastic processes
      -Gaussian processes

      FUNDAMENTALS OF DIGITAL COMMUNICATIONS
      Description The course introduces the main principles of digital communications considering various aspects, such as the how to model the wireless propagation channel, digital modulation and demodulation of the information, forward error coding and decoding and the most important multiple access techniques. Where possible, the topics addressed in this course will be presented highlighting how they are declined in modern communication systems, both fixed and mobile, such as WiFi, LTE and their possible implementation in 5G.
      Syllabus
      -Basic principles of data modulation and demodulation.
      -Digital transmitter architecture. Digital modulation formats: PSK, QAM.
      -Digital receiver architecture. Main performance indicators.
      -Basic principles of error correction coding and decoding. Shannon theorem.
      -Wireless channel propagation models. Modulation techniques for the multipath channel: OFDM and spread spectrum modulations.
      -Multiple access techniques: FDMA, TDMA, CDMA and OFDMA.

  • Secondo anno

  • Data center design and operation (6 cfu)

    • Obiettivo del corso è fornire agli studenti una concreta comprensione di tutti gli elementi che caratterizzano l'architettura del data center, raffreddamento per installazioni ad alta densità e fabric con particolare attenzione ali elementi alte prestazioni.
      In particolare, le lezioni riguardano:
      • Elementi del data center (alimentazione, raffreddamento, rete)
      • Architetture per efficienza energetica (PUE e architetture di raffreddamento)
      • Distribuzione dell'energia
      • Software Defined Datacenter: ottimizzazione delle risorse del datacenter tramite software
      • Organizzazione rack e bilanciamento dei workload
      • Operazioni e gestione del data center (inclusi i principi di gestione di server, storage e fabric)
      • Stack software per workload del data center (bare metal, VM, container)
      • Componenti del sistema HPC e AI (GPU, server, rete Ethernet, Infiniband, Omnipath, storage per HPC)


  • Advanced software engineering (9 cfu)

    • The overall objective of the course is to introduce some of the main aspects in the design, analysis, evelopment and deployment of modern software systems. Service-based software engineering is introduced by presenting core interoperability standards, service descriptions, and service compositions techniques. Techniques for modelling and analysing business processes are then illustrated. Finally, cloud-based software engineering and DevOps practices are discussed. The course includes a weekly "hands-on" lab where students experiment the design, analysis, development and deployment techniques introduced.
      Syllabus
      • Service-based software engineering
      • Business process modelling and analysis
      • Cloud-based software engineering
      • DevOps practices
      • Hands-on laboratory

  • Final Thesis (18 cfu)

    • La prova finale per il conseguimento della Laurea Magistrale in Informatica e Telecomunicazioni, valutata da una commissione nominata dalle strutture didattiche, consiste nella presentazione e discussione dei risultati di una tesi che rivesta caratteristiche di originalità, redatta sotto la guida di un relatore accademico, docente del Corso di Laurea Magistrale, e di un eventuale relatore esterno nel caso di attività svolta presso un'azienda o ente esterno. La valutazione della prova finale sarà basata sulla qualità del lavoro svolto e sulla capacità di lavoro autonomo, di sintesi e di comunicazione del candidato.

  • Algorithm engineering (9 cfu)

    • Obiettivi
      In questo corso studieremo, progetteremo e analizzeremo (con modelli teorici e attraverso risultati sperimentali) soluzioni algoritmiche e strutture dati avanzate per la risoluzione efficiente di problemi combinatori che coinvolgono vari tipi di dato— quali interi, stringhe, punti (geometrici), alberi, grafi. Il progetto interesserà alcuni modelli di calcolo— RAM, 2-level memory, cache-oblivious, streaming— al fine di ottenere soluzioni algoritmiche le cui valutazioni teoriche ben riflettono le loro prestazioni reali, poiché tengono conto delle caratteristiche architetturali e della gerarchia di memoria dei moderni PC.
      Ogni lezione seguirà un approccio problem-driven che inizia considerando un problema reale, lo astrae in modo combinatorio, e poi procede al progetto e analisi di soluzioni algoritmiche tese a minimizzare l’uso di alcune risorse computazionali quali: tempo, spazio, communicazione, I/O, etc. Alcune soluzioni viste in classe saranno discusse anche a livello sperimentale al fine di introdurre degli strumenti appropriati per l’ingegnerizzazione e il tuning del codice.
      Syllabus
      - Design of algorithms for massive datasets: disk aware or cache oblivious
      · Design of advanced data structures in hierarchical memories for atomic or string data
      · Data compression for structured and unstructured data
      · Algorithms for large graphs
      · Engineering considerations about the implementation of algorithms and data structures

  • Free-choice exam (9 cfu)

    • Fermo restando che la scelta di questo insegnamento può essere effettuata nell'ambito di qualunque settore scientifico-disciplinare, la scelta è soggetta all'approvazione del Consiglio di Corso di Studi. Il Consiglio indica una griglia di scelta, consona alle esigenze di questa laurea magistrale, consistente in un gruppo di insegnamenti.

      Su approvazione del Consiglio di Corso di Studi, l'esame a scelta può consistere in un esame da 6 CFU e dalla Rassegna di Orientamento per la Prova Finale (3 CFU).

  • 6 cfu a scelta nel gruppo GR-c

    • Insegnamenti caratterizzanti
    • Distributed operating systems (6 cfu)

      • Obiettivi Il corso fornisce i concetti e le tecniche necessarie ad estendere la definizione di Sistema Operativo, già nota per una singola macchina fisica, fino a comprendere piattaforme di esecuzione più complesse, inerentemente parallele e distribuite. Vengono confrontate più tecnologie di esecuzione distribuita e realizzazioni di Sistema Operativo Distribuito (DOS), analizzando le diverse astrazioni di sistema fornite, le problematiche conseguenti, le scelte di implementazione, le potenzialità ottenibili. Una parte importante del corso è costituita dalla presentazione dal punto di vista tecnologico di un Sistema Operativo Distribuito di riferimento. Syllabus Richiami e fondamenti Modelli di sistema distribuito e meccanismi di base Sistemi middleware, qualità del servizio DOS single-sistem-image (SSI) Istanze di kernel cooperanti, implementazione, applicabilità; DOS geografici Organizzazioni virtuali; sicurezza, meccanismi di comunicazione e cooperazione; File system distribuiti su larga scala; Meccanismi di esecuzione Eterogeneità delle risorse nei DOS Tipi di risorse e vincoli imposti al sistema Impatto sulle astrazioni e l'implementazione del sistema Complementi DOS ed architetture di calcolo gerarchiche multilivello DOS e virtualizzazione : interpreti di sistema, contenimento, virtualizzazione, paravirtualizzazione Future Internet e DOS Struttura del corso 6 CFU, di cui 4 CFU su DOS SSI e geografici. Il corso assume la disponibilità di un laboratorio per gli studenti. La prova d'esame consiste in un orale con discussione di un progetto legato ad uno dei Sistemi Operativi Distribuiti presentati nel corso.
    • Design and architecture of complex platforms (12 cfu)

      • Obiettivi Il corso tratta di modelli, metodologie di progetto e studi di casi di architetture complesse, distribuite ed eterogenee, con particolare riguardo a sistemi, sia generali che dedicati, basati su componenti ad alta scala di integrazione, come multiprocessor on chip, graphic processing unit, fpga, networks on chip e loro composizioni. Accanto ai paradigmi architetturali, il corso studia modelli di programmazione e strumenti di sviluppo applicazioni, con caratteristiche di ottimizzazione dei pattern di comunicazione, delle gerarchie di memoria, dell’eterogeneità, dell’adattività dinamica nella gestione delle computazioni e delle risorse, del context-awareness, della mobilità, del deployment statico e dinamico, rispetto ai modelli di costo in termini di Qualità del Servizio, performance, tempo di risposta in real time, banda di elaborazione, risparmio energetico. Vengono mostrati studi di casi riferiti a tecnologie avanzate attraverso attività sperimentali e di laboratorio. Syllabus 1. Paradigmi architetturali a. Architetture multiprocessor on chip b. Graphic processing units c. Networks on chip d. Sistemi distribuiti basati su componenti ad alta integrazione e. Strategie di comunicazione f. Gerarchie di memoria g. Gestione della ridondanza 2. Modelli di programmazione a. Adattività e context-awareness b. Deployment dinamico su sistemi eterogenei c. Energy reliability d. Modelli di costo e QoS per applicazioni su complessi ad alta integrazione 3. Studi di casi
    • Distributed enabling platforms (6 cfu)

      • Il corso Distributed enabling platforms è dedicato alle piattaforme di calcolo e comunicazione per infrastrutture di tipo Cloud, Edge e Datacenter, in senso lato. Il corso si focalizza sugli strumenti dedicati all'analisi efficiente dei dati e alla gestione di applicazioni distribuite, anche quando dispiegate sotto forma di macchine virtuali e container. Le applicazioni di riferimento si contestualizzano nell'ambito dei sistemi data-centric quali, ad esempio, algoritmi per l'intelligenza artificiale, approcci per il processamento di stream di immagini e analisi big data. Al termine del corso lo studente conoscerà: - le principali problematiche derivanti dall'esecuzione di applicazioni in ambito distribuito; - le problematiche chiave relative alla progettazione e sviluppo di piattaforme abilitanti distribuite; - alcune delle più importanti strategie volte all'esecuzione efficiente di applicazioni distribuite; - gli elementi essenziali che caratterizzano le principali piattaforme abilitanti distribuite; Inoltre, lo studente avrà acquisito le capacità necessarie: - ad utilizzare le piattaforme abilitanti distribuite per l'analisi di dati statici di grossa dimensione; - a sfruttare le piattaforme abilitanti distribuite per l'analisi di dati in streaming; - a gestire in modo efficiente la trasmissione di grandi quantità di dati mediante specifiche piattaforme abilitanti distribuite; - a progettare ed eseguire applicazioni distribuite sotto forma di microservizi;
    • ICT risk assessment (9 cfu)

      • At the end of this course, the student should be able to discover and analyze the weaknesses and the vulnerabilities of a system to evaluate in a quantitative and formal way the risk it poses. The student should be able to select and deploy a cost-effective set of countermeasures at the various implementation levels to improve the overall ability of the system to withstand its attackers. Focus of the course is on a predictive approach where risk assessment and management is a step in the system design. The student should also be able to know the various tools that can support the assessment and simplify both the assessment and the selection of countermeasures. In this framework, the focus on cloud computing makes it possible to cover the most complex assessment. • Risk Assessment and Management of ICT Systems 3 CFU o Vulnerabilities/Attacks 1 CFU o Countermeasures 1 CFU o Tools for Automating Assessment & Management 1 CFU • Security of Cloud Computing 6 CFU o Economic Reasons/Deployment Models/ Service Models 1 CFU o Virtualization and TCM 1 CFU o New Vulnerabilities 1 CFU o New Attacks 1 CFU o New Countermeasures 1 CFU o Certification of Cloud Provider 1 CFU
    • Information retrieval (6 cfu)

      • Il corso si pone l'obiettivo di presentare i fondamenti teorici e gli strumenti di algorithmic engineering utili per la l'organizzazione, l'analisi e la realizzazione di sistemi per il recupero dell'informazione. Si analizzeranno le prestazioni di numerose tecniche algoritmiche per il: data streaming, data compression, data indexing, data sketching e data searching, che ricorrono in numerose applicazioni di IR, e si valuteranno i loro limiti computazionali. Si presenteranno inoltre i componenti principali di un moderno motore di ricerca, e si analizzeranno le soluzioni algoritmiche correntemente adottate per essi. Allo studio teorico si accompagnerà una attività di laboratorio volta a introdurre gli strumenti open-source oggi esistenti per la realizzazione di un motore di ricerca, e per lo sviluppo di applicazioni a essi correlate.
    • Programming tools for parallel and distributed systems (6 cfu)

      • Il corso tratta della progettazione, valutazione e utilizzo di strumenti e ambienti di programmazione per applicazioni su sistemi paralleli e distribuiti. Il corso si concentra su metodologie di programmazione unificanti e sull’integrazione di metodologie di programmazione orientate ai diversi livelli di scala architetturale, dal Cloud a dispositivi manycore specializzati e hardware riconfigurabile. Sono discussi strumenti per la gestione degli esperimenti e lo scripting di applicazioni. I paradigmi di programmazione e relativi modelli di costo sono applicati principalmente a computazioni ad alte prestazioni di tipo stream- e data-parallel, distributed shared memory, programmazione adattiva e context-aware. Vengono definiti gli strumenti statici e dinamici per questi paradigmi e ne vengono valutate le prestazioni mediante studi di casi in attività sperimentale e di laboratorio. Syllabus 1. Modelli di programmazione: stream-parallel, data-parallel, distributed shared memory 2. Metodologie e ambienti di programmazione parallela e distribuita unificanti 3. Strumenti di sviluppo e di gestione per piattaforme parallele e distribuite 4. Parallelismo in sistemi con architetture gerarchiche e multilivello 5. Programmazione adattiva e context-aware, programmazione ad eventi, tolleranza ai guasti ed alte prestazioni. 6 Supporti a tempo di esecuzione 7. Studi di casi
    • Principles for software composition (9 cfu)

      • This course introduces concepts and techniques in the study of advanced programming languages, as well as their formal logical underpinnings. The central theme is the view of individual programs and whole languages as mathematical entities about which precise claims may be made and proved. The course will cover the basic techniques for assigning meaning to programs with higher-order, concurrent and probabilistic features (e.g., domain theory, logical systems, well-founded induction, structural recursion, labelled transition systems, Markov chains, probabilistic reactive systems) and for proving their fundamental properties, such as termination, normalisation, determinacy, behavioural equivalence and logical equivalence. In particular, some emphasis will be posed on modularity and compositionality, in the sense of guaranteeing some property of the whole by proving simpler properties of its parts. Emphasis will be placed on the experimentation of the introduced concepts with state-of-the-art tools. • Introduction and background [1 CFU] • Induction and recursion, partial orders, fixed points, lambda-notation [1 CFU] • Functional programming with Haskell and analysis of higher-order functional languages [1 CFU theory and 1 CFU exercises and experimentation] • Concurrent programming with Google Go and Erlang and analysis of concurrent and non-deterministic systems [2 CFU theory and 1 CFU exercises and experimentation] • Code orchestration with Orc and analysis of coordination languages [1 CFU theory and experimentation] • Models and analysis of probabilistic and stochastic systems [1 CFU theory and experimentation]
    • System virtualization (6 cfu)

      • Obiettivi Il corso tratta delle tecniche di virtualizzazione nei sistemi di elaborazione ai vari livelli. Il corso è organizzato su due argomenti fondamentali che descrivono (1) le tecniche di virtualizzazione e (2) i principali utilizzi dei sistemi virtualizzati. Questi due argomenti saranno complementati da una’analisi più approfondita sulle metodologie di virtualizzazione dei vari componenti di un sistema di calcolo integrate da esperienze di progettazione e utilizzo di sistemi virtualizzati. Syllabus 1) Approcci alla virtualizzazione a. Virtualizzazione al livello delle applicazioni, del SO, della macchina fisica b. Metodolologie di virtualizzazione: simulazione, traduzione del codice binario, para-virtualizzazione c. Costo della virtualizzazione e benchmarking d. Virtualizzazione di singole machine e cluster di macchine 2) Uso ed applicazioni della virtualizzazione a. Consolidamento e parallelismo in eccesso b. Gestione dinamica delle risorse fisiche c. Gestione delle risorse virtualizzate 3) Metodologie per la virtualizzazione di un sistema di calcolo a. Virtualizzazione del processore b. Virtualizzazione della memoria c. Virtualizzaione dei dispositivi di I/O (storage, rete, …) 4) Casi di studio a. Soluzioni di virtualizzazione complete: installazione e configurazione. Gestione del ciclo di vita delle macchine virtuali, migrazione. b. Esercizi di virtualizzazione di kernel didattici (trap-and-emulate, interposizione al livelllo del SO, …) 5) interrelazioni tra virtualizzazione e sicurezza. Struttura del corso 6 crediti uniformemente distribuiti sugli argomenti 1, 2, 3 ognuno dei quali conterrà esercitazioni e esperienze di laboratorio tratte da 4. L’esame consiste in una prova orale con discussione di un semplice progetto assegnato allo studente.
    • Parallel and distributed applications (9 cfu)

      • Obiettivi del corso Il corso discute le problematiche di applicazioni parallele e distribuite, valutando diversi approcci e soluzioni in funzione delle architetture di elaborazione e degli strumenti di programmazione usati. Per ciascuna delle tematiche affrontate saranno illustrati casi di studio ed applicazioni reali. Syllabus 1) classi di applicazioni e tecniche a) applicazioni intensive per il calcolo, le comunicazioni, l'Input/Output b) tecniche di decomposizione delle applicazioni c) implementazione di pattern di parallelismo 2) applicazioni parallele per: a) architetture chip multiprocessing (CMP) b) streaming computing 3) applicazioni per architetture distribuite a a) piccola/media scala b) grande scala, sistemi geograficamente distribuiti L'esame consiste in una prova orale e nella discussione di un progetto sviluppato durante il corso.
    • Data center design and operation lab (6 cfu)

      • Obiettivo del corso è offrire un'esperienza di laboratorio per esplorare l’operatività del data center con particolare attenzione ai carichi di lavoro ad alte prestazioni, esplorando il software e gli strumenti disponibili per creare le astrazioni di risorse appropriate senza compromettere le prestazioni. Durante il corso verranno presentate esperienze presentate da (o relative a) rilevanti attori che operano nel campo dei datacenter. • Rassegna dei principali stack di software utilizzati nei data center • Scheduler per carichi di lavoro scientifici e AI • Strumenti per l'implementazione di file system paralleli per workload HPC • Software per la gestione del datacenter • Software stack per fabric ad alte prestazioni
  • 6 cfu a scelta nel gruppo GR-a

    • Insegnamenti affini o integrativi
    • Fault tolerance in distributed systems (6 cfu)

      • Obiettivi Il corso introduce le tematiche di tolleranza ai guasti per sistemi distribuiti. Verranno descritti in dettaglio le tecniche di replicazione software, azioni atomiche, strategie di checkpointing e protocolli di rollback recovery. Ciascuna tecnica verrà studiata nel contesto in cui è stata originalmente introdotta e successivamente approfondita nel contesto dei sistemi paralleli e distribuiti. Verranno approfonditi alcuni dettagli di implementazione, come le memorie stabili, e verrà fatta una panoramica sui modelli di valutazione degli overhead introdotti dai supporti alla tolleranza ai guasti. Un parte del corso è dedicata allo studio sperimentale delle tecniche esistenti e di implementazione, tramite sessioni in laboratorio. Syllabus 1) Tecniche di tolleranza ai guasti per sistemi distribuiti a. Replicazione software b. Azioni atomiche c. Checkpointing e Rollback Recovery d. Modelli di costo dei supporti alla tolleranza ai guasti 2) Supporti a. Primitive di comunicazione di supporto b. Memoria Stabile c. Message Logging d. Garbage collection di checkpoint 3) Laboratorio a. Implementazione di strategie di checkpointing e rollback recovery esistenti b. Implementazione canali di comunicazione con message logging c. Supporto alla tolleranza ai guasti per modelli di programmazione parallela Struttura del corso 6 crediti (3 su tecniche (1) e supporti (2), 3 di laboratorio. L’esame consiste nello studio di approfondimento in termini di progetto di un aspetto trattato nel corso, di natura non necessariamente programmativa, e di un esame orale in cui discutere tale studio.
    • Distributed components (6 cfu)

      • Obiettivi Il corso tratta di metodologie e tecniche per la definizione, progettazione e utilizzazione di paradigmi di programmazione distribuita a componenti. Gli aspetti che vengono approfonditi sono: modelli a componenti distribuite, componenti ad alte prestazioni, modelli di costo e progettazione di supporti, portabilità in sistemi eterogenei, affidabilità e sicurezza. Inoltre, vengono presentati studi di casi in relazione alle tecnologie correnti e previste. Syllabus 1. modelli a componenti distribuite, 2. componenti ad alte prestazioni, 3. modelli di costo e progettazione di supporti, 4. portabilità in sistemi eterogenei, 5. affidabilità e sicurezza, 6. studio di casi Struttura del corso 6 CFU. L’esame consiste in una prova scritta ed una prova orale.
    • Information and transmission theory (9 cfu)

      • Obiettivi Il corsa tratta in modo elementare dei Fondamenti della Teoria dell’Informazione, Introducendo concetti come Entropia, Codifica, Compressione correzione di errori, dovrebbe servire come prerequisito per gli studi successivi che trattano la generazione la codifica e la trasmissione dell’informazione. Syllabus Concetti generali di Teoria dell'Informazione. La funzione entropia. La proprietà di equiripartizione asintotica. Sorgenti d'informazione discreta. Codifica in assenza di rumore: codici istantanei e codici univocamente decifrabili; il teorema della codifica in assenza di rumore. Costruzione dei codici ottimali: il metodo di Huffman. Codifica aritmetica Il canale discreto senza memoria. Capacità, Schemi di decisione e probabilità di errore. La codifica del canale. Il teorema fondamentale. I codici correttori a blocchi. I codici lineari, algoritmi di decodifica, capacità correttiva, probabilità di errore. I Codici ciclici, I codici BCH, i codici di Reed Solomon, applicazioni. Il canale continuo: introduzione alla teoria della trasmissione. Struttura del corso 9 crediti (6 sulla teoria dell’informazione, 3 sulla trasmissione). L’esame consiste in una prova scritta e una orale.
    • Parallel and distributed algorithms (6 cfu)

      • Il corso introduce le principali tecniche algoritmiche nell’ambito dei modelli di calcolo paralleli e distribuiti. Definisce i parametri di complessità significativi per questi modelli, i limiti computazionali e gli strumenti necessari per affrontare il progetto e l’analisi di algoritmi paralleli e distribuiti. Syllabus 1) Modelli di calcolo a. Il modello PRAM b. Reti a parallelismo fissato, BSP c. Il modello distribuito 2) Tecniche di progetto e analisi di algoritmi paralleli: a. Somme prefisse, List ranking, Euler tour. b. Altre tecniche e problemi difficilmente parallelizzabili 3) Tecniche di progetto e analisi di algoritmi distribuiti: a. La complessità della comunicazione b. Algoritmi di controllo c. Algoritmi fault tolerant d. Manipolazioni di dati distribuiti 4) Esempi classici: a. Coordinazione e controllo b. Broadcast e Spanning Tree. c. Calcolo su alberi: Saturazione e valutazione di funzioni. d. L’elezione su anello e altre reti. e. Routing
    • Multimedia network performance (6 cfu)

      • Obiettivi Il modulo fornisce i concetti elementari necessari per affrontare le problematiche relative alla valutazione delle prestazioni delle moderne reti a commutazione di pacchetto, con particolare riguardo ai meccanismi di inoltro affidabile dell’informazione e alle architetture legate alla gestione di flussi multimediali con garanzie di qualità del servizio. Saranno analizzati sia tradizionali approcci di carattere probabilistico (in relazione all’analisi di eventi rari e alla modellizzazione di funzioni e protocolli di rete) che metodologie basate sull’analisi di worst-case, alla base del dimensionamento di reti IntServ e DiffServ. Syllabus 1) Network Calculus a. Concetti generali: curve di arrivo e di servizio, bound relativi a backlog e delay b. Caratterizzazione del traffico mediante token bucket c. Applicazioni a Internet: architetture IntServ e DiffServ d. Modelli basati sui tempi di arrivo e di partenza dei pacchetti: GR node e PSRG node 2) Modellizzazione del traffico a. Modelli di traffico SRD b. Modelli di traffico LRD c. Modellizzazione di connessioni TCP 3) Simulazione di Eventi Rari a. Teoria delle Grandi Deviazioni b. Effective Bandwidth c. Restart d. Importance Sampling Struttura del corso 6 crediti. L’esame consiste in una prova orale.
    • Parallel scientific computing (6 cfu)

      • This course introduces high performance computing algorithms which an emphasis on using distributed memory systems for scientific computing. The topics include: --Iterative methods for linear systems. --Synchronous and asynchronous iterative methods for linear systems. --Iterative methods for non linear systems. --Synchronous and asynchronous iterative methods for non linear systems. -- Applications: linear systems, graph theory and network analysis.
    • Routing Architectures and Protocols Lab (6 cfu)

      • Obiettivi: Il modulo fornisce le conoscenze necessarie per la progettazione e la realizzazione di politiche di routing di tipo inter-dominio (fra più Autonomous System). Sono richiamati i concetti di base per la configurazione, la gestione e il monitoraggio dello stato di funzionamento dei router Juniper e sono affrontati in modo approfondito gli aspetti teorici e pratici relativi alla realizzazione di reti con protocolli di routing di tipo EGP (BGP) e alla implementazione di servizi e funzionalità avanzate (Stateful Firewall, NAT/PAT, IPSec VPN, QoS). Sono previste sia lezioni teoriche, sia esercitazioni sperimentali che offrono agli studenti la possibilità di utilizzare router Juniper. Il corso fornisce la preparazione necessaria per sostenere la prova di certificazione JNCIS-ER (Juniper Networks Certified Internet Specialist – Enterprise Routing). Programma di massima Le Policy in JUNOS. Introduzione alle Policy e al linguaggio per la scrittura di una Policy. Modalità di valutazione di una Policy. Analisi dei diversi tipi di Policy: Routing Policy. Firewall Policy. (L: 4) Il protocollo di routing BGP. Introduzione generale al BGP. Differenze fra IBGP e EBGP. Implementazione dell’IBGP e dell’EBGP. Interazione fra protocolli di routing di tipo IGP e il BGP. (L: 4) Politiche di routing di tipo “Enterprise”. Progettazione implementazione del BGP in una rete di tipo “Enterprise”. Analisi di un caso reale: Realizzazione di una politica di routing con utilizzo di tipo: “Primary/Secondary”. (L: 4; Lab: 8) Strategie di transizione per protocolli di routing di tipo IGP. Transizione di tipo Overlay. Transizione con ridistribuzione delle route. Transizione integrata. (L: 2; Lab: 2) Servizi del sistema operativo JUNOS. Introduzione ai servizi JUNOS. Servizi a livello 2. Servizi a livello 3. Firewall di tipo “stateful”. Configurazione delle regole per la realizzazione di un firewall di tipo “stateful”. NAT. Configurazione dellle regole per la realizzazione di un NAT. Implementazione di un firewall di tipo “stateful” con funzioni di NAT. Monitoraggio di un firewall di tipo “stateful” e di un NAT. Realizzazione di una Virtual Private Network mediante IPSec. Configurazione e monitoraggio di una VPN IPSec. (L: 4; Lab: 8) Qualità del servizio in reti IP. Il concetto di “Class-of-Service”. Progettazione di un’architettura di rete con supporto della Qualità del Servizio (QdS)a livello IP. Configurazione dei principali componenti per la QdS di tipo Differentiated Services (DiffServ): DSCP Marker, Classificatori, Scheduler, Policer, Shaper. Monitoraggio di un router con architettura DiffServ e analisi dei malfunzionamenti. (L: 4; Lab: 4)
    • Data mining (9 cfu)

      • Obiettivi I formidabili progressi della potenza di calcolo, della capacità di acquisizione e memorizzazione dei dati e di connettività hanno creato quantità di dati senza precedenti. Il data mining, ovvero la scienza dell’estrazione di conoscenza da tali masse di dati, si è quindi affermato come ramo interdisciplinare dell’informatica. Le tecniche di data mining sono state applicate a molti problemi in ambito industriale, scientifico e sociale, e si ritiene che avranno un impatto sempre più profondo sulla società. L’obiettivo del corso è quello di fornire: 1. un’introduzione ai concetti di base del data mining e del processo di estrazione della conoscenza, con approfondimenti sui modelli analitici e gli algoritmi più diffusi; 2. una rassegna delle tecniche avanzate per il mining delle nuove forme di dati; 3. una rassegna delle principali aree applicative e di casi di studio paradigmatici. Syllabus - Concetti di base del data mining e del processo di estrazione della conoscenza - Preprocessing ed analisi esplorativa dei dati - Pattern frequenti e regole associative - Classificazione: alberi di decisione e metodi Bayesiani - Clustering: metodi basati su partizione, gerarchici, basati su densità - Esperimenti analitici con strumenti di data mining - Mining di serie temporali e dati spazio-temporali - Mining di dati sequenziali, mining di grandi grafi e reti - Linguaggi, standard e architetture dei sistemi di data mining - Impatto sociale del data mining - Data mining e protezione della privacy - Cenni alle applicazioni: Grande distribuzione, Marketing, CRM Industria delle telecomunicazioni, Analisi finanziaria, analisi di rischio Rilevamento di frodi Pubblica amministrazione e sanità Mobilità e trasporti Struttura del Corso 9 crediti (6 sui fondamenti, 3 sulle tecniche avanzate e le applicazioni). Il corso è tenuto in lingua inglese L’esame consiste in una prova scritta, un progetto di data mining ed una prova orale.
    • Numerical techniques and applications (6 cfu)

      • Obiettivi Il corso propone l’analisi e l’approfondimento di metodi numerici per la risoluzione di problemi applicativi. Particolare rilievo e’ dato alle tecniche di algebra lineare numerica piu’ frequentemente usate nelle applicazioni. Syllabus 1. Preliminari di algebra lineare: diagonalizzabilita’ e forme canoniche, matrici definite positive, decomposizione ai valori singolari, norme, condizionamento di una matrice 2. Metodi diretti per sistemi lineari: matrici elementari, fattorizzazioni LU, LLh, QR, rotazioni di Givens, metodi di Cholesky e di Householder 3. Metodi iterativi per sistemi lineari: metodi classici, ultrarilassamento, metodo del gradiente coniugato 4. Metodi iterativi per sistemi non lineari: metodo di Newton, metodi quasi-Newton 5. Metodi iterativi per il calcolo di autovalori: condizionamento del problema, metodo delle potenze, metodi LR e QR, tridiagonalizzazione di una matrice simmetrica 6. Problema lineare ai minimi quadrati: equazioni normali, uso della SVD 7. Metodi per matrici tridiagonali: riduzione ciclica, uso delle successioni di Sturm, tecniche divide et impera 8. Matrici non negative: teorema di Perron-Frobenius, matrici stocastiche 9. Trasformata discreta di Fourier: alcune applicazioni L’esame consiste in una prova orale.
    • Peer to Peer Systems and Blockchains (6 cfu)

      • Introduction of the basic technologies for the development of highly distributed systems and some real scenarios exploiting them. Presentation of the disruptive technology of blockchains, and of its numerous applications to different fields. Syllabus • P2P Topologies (2 + 1/2 credits) o Peer to Peer (P2P) systems: general concepts o Unstructured Overlays: Flooding, Random Walks, Epidemic Diffusion o Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT o Case Studies: Bittorrent as a Content Distribution Network: KAD implementation of the Kademlia DHT, game-based cooperation • Complex Network for the analysis of P2P systems (1/2 credits) o Network models o Random Graphs and Small Worlds o Small World navigability: Watts Strogatz and Kleinberg. o Complex networks navigability • Cryptocurrencies and Blockchains (3 credits) o Basic concepts: o review of basic cryptographic tools (digital signatures, cryptographic hash, Merkle trees.,..), blockchains: definitions, distributed consensus: definitions, o The Bitcoin blockchains o Nakamoto consensus o Bitcoin mining mechanism, fraudolent mining. o pseudoanonymity: traceability and mixing o The Bitcoin P2P Network o Bitcoin ecosystem o scalability issues o applications and security o Bitcoin Extensions/alternatives: altcoins, sidechains, the o StellarConsensus Protocol o Applications of blockchains o Ethereum: programming smart contracts o Blockchain 1.0: cryptocurrencies o Blockchain 2.0: finantial instruments built on cryptocurrencies o Blockchain 3.0: applications beyond cryptocurrencies (DNS, lotteries, voting, IoT...)
    • Lab of Photonic Systems (6 cfu)

      • Aims The course objectives are to provide the basic elements of the design of an optical transmission system and learn about the operation of the devices and equipment used for the realization and testing of optical systems. The first part of the course provides a detailed theoretical analysis of transmission problems that must be considered in the design of today optical systems, such as fiber propagation effects (both linear and nonlinear). The second part, which has a strong experimental flavour, introduces the student to the practical knowledge and use of key components and experimental techniques in the field of photonic systems. The course will also illustrate the principles of operation of the main equipment for analysis and measurement (including oscilloscopes, sampling oscilloscopes, spectrum analyzers etc.). Program High speed optical systems: applications, perspectives and design problems. power budget, amplification and optical noise chromatic dispersion: the effect and its impact on system performance. Compensation of chromatic dispersion: devices and techniques. Effect of polarization mode dispersion (PMD). Nonlinear optical effects: stimulated scattering effects and effects related to the Kerr nonlinearity.  Laser sources and modulators: DFB Laser and Laser Diodes, Fabry-Perot lasers, Laser Mode-Locking, Modulation of the lasers: direct and External. Devices used in photonic systems: polarizers and polarization controllers, isolators, circulators and couplers, optical filters , detectors. OTDR , elements of optical amplification , fiber-air coupling solutions.  Equipment: electrical sampling oscilloscopes, Real-time oscilloscopes , Optical Spectrum Analyzers (OSA), polarimeters. temperature controllers , data acquisition tools and automation of measurement processes.
    • Concurrent programming (6 cfu)

      • Obiettivi Il corso tratta di metodologie e tecniche per la programmazione di sistemi concorrenti e distribuiti. Vengono approfonditi i classici modelli ad ambiente locale e ad ambiente globale, ed applicati a tecnologie esistenti (librerie di comunicazione e a memoria condivisa) e linguaggi concorrenti. Inoltre, viene studiata l’applicazione a modelli di più alto livello, come programmazione parallela strutturata e framework distribuiti, supportati da diversi studi di casi. Syllabus 1. Modelli di programmazione concorrente 2. Applicazione a librerie di comunicazione 3. Applicazione a librerie a memoria condivisa 4. Linguaggi concorrenti 5. Ambienti e strumenti di programmazione parallela strutturata e framework distribuiti 6. Studio di casi Struttura del corso 6 CFU. L’esame consiste in una prova scritta ed una prova orale.
    • Pervasive computing (6 cfu)

      • Obiettivi Il corso tratta di metodologie e tecniche per la progettazione ed applicazione di paradigmi di pervasive/ubiquitous computing: ambient intelligence, context-awareness, human-centered computing, sentient computing, ed altri. Vengono studiate tecnologie, sistemi e framework per supportare questi paradigmi in distribuito e messi in relazione con modelli generali paralleli e distribuiti. Il corso presenta diversi studi di casi. Syllabus 1. modelli di pervasive/ubiquitous computing 2. ambient intelligence, 3. context-awareness, 4. human-centered computing, 5. sentient computing, 6. analisi e valutazione di tecnologie, sistemi e framework, 7. studio di casi Struttura del corso 6 CFU. L’esame consiste in una prova scritta ed una prova orale.
    • Photonic switching (9 cfu)

      • Obiettivi Il corso introduce i fondamenti delle tecnologie fotoniche esaminando i dispositivi fotonici dal punto di vista strutturale, funzionale e di fabbricazione. Verranno inoltre fornite le basi delle tecniche di commutazione fotonica mediante i dispositivi fotonici non lineari basati su semiconduttore e fibra. Il corso prevede esercitazioni in laboratorio. Syllabus 1) Semiconduttori per la fotonica a. Proprietà ottiche dei semiconduttori. b. LEDs. c. Propagazione ottica guidata e cavità, perdite e condizione di soglia. d. Laser DBR, DFB, VCSEL, quantum cascaded, a microcavità. e. Parametri-chiave di progetto e meccanismi di degradazione nei laser a semiconduttore. f. Amplificatori ottici a semiconduttore. g. Ricevitori PIN ed a effetto-valanga. 2) Fotonica passiva e dispositivi funzionali integrati a. Ottica guidata integrata. b. Dispositivi passivi integrati. c. Dispositivi funzionali integrati. d. Dispositivi non lineari. 3) Tecniche di deposizione e di crescita di semiconduttori composti. a. Ossidazione, sputtering, evaporazione. b. CVD “Plasma enhanced” e “low-pressure”. c. Epitassia a fase liquida (LPE/) e a fase di vapore (VPE/MOCVD). d. Epitassia a fascio molecolare.(MBE). 4) Strumenti di lavorazione/produzione a. Litografia (a fascio di elettroni, a fascio laser, ottica), metallizzazione. b. Tecniche di incisione “umide” e “a secco”. c. Tecniche di impiantazione ionica, diffusione, annealing. d. Packaging dei dispositivi. 5) Caratterizzazione e testing dei materiali/dispositivi a. Strumentazione per la caratterizzazione dei materiali (diffrazione ai raggi x, foto-luminescenza, misure basate su effetto Hall, tecniche di spettroscopia e microscopia). b. Strumentazione per la caratterizzazione di dispositivi, esempi di setup per testing. 6) Dispositivi a cristalli fotonici a. Principi di base b. PCD a una, due e tre dimensioni: tipologia, tecniche di fabbricazione e di caratterizzazione. 7) Tecnologie per la fibra ottica a. Tecnologia per fibre step- e graded-index. b. Fibre microstrutturate. c. Dispositivi in fibra. d. Amplificatori ottici in fibra. e. Sensori in fibra ottica. f. Accoppiamento in fibra 8) Tecnologia per il vetro-su-Silicio. 9) Commutazione a rotazione di polarizzazione in una fibra altamente non lineare (HNLF). 10) Inversione di segnale con XGM in un SOA. 11) Caratterizzazione di un impulso di un laser mode-locked. 12) Caratterizzazione di un NOLM mediante impulsi ottici. 13) Porta logica ottica AND mediante HNLF 14) Generazione di pacchetti RZ. Struttura del corso 9 crediti consistenti in lezioni frontali ed esercitazioni. L’esame consiste in una prova orale ed eventualmente nella valutazione relazioni sulle esperienze di laboratorio.
    • Packet switching and processing architectures (6 cfu)

      • Obiettivi Il corso presenta le principali architetture di commutazione, con particolare riferimento alla commutazione di pacchetto. Dopo una breve introduzione al concetto di commutazione (di circuito e pacchetto), il corso si focalizzerà sulle architetture di commutazione di pacchetto, presentandone gli schemi principali con relativa analisi delle prestazioni e le problematiche associate. Di seguito vengono affrontati i problemi di lookup e classificazione, presentando i più noti algoritmi attualmente in uso. Infine viene trattato il tema delle misure e monitoraggio di traffico ad elevate prestazioni attraverso l’uso di strutture dati probabilistiche (quali Bloom Filter e opportune varianti). Syllabus 1) Generalità sui sistemi di commutazione (circuito/pacchetto) 2) Reti di interconnessione a. Proprietà fondamentali delle reti di interconnesione b. Reti multistadio c. Reti di Clos i. Reti strettamente non bloccanti e riarrangiabili ii. Strutture ricorsive per la costruzione di reti di Clos d. Reti autoinstradanti (reti Banyane) 3) Architetture di commutazione di pacchetto a. Output Queued Switches (OQ) i. Ritardo medio e throughput massimo b. Input Queued Switches (IQ) i. Il problema dell’Head Of the Line blocking (HOL) ii. Virtual Output Queueing iii. Algoritmi di Scheduling (MWM, MSM, etc.) c. Combined Input-Output queueing (CIOQ) ed emulazione di OQ 4) Lookup e classificazione di pacchetti a. Algoritmi di Exact/Prefix match: i. Unibit e Multibit Trie ii. Lulea-Compressed Tries iii. Tree bitmap b. Schemi mono/multi dimensionali di classificazione di pacchetti 5) Misure e monitoraggio di traffico a. Cattura di traffico b. Elaborazione dei pacchetti “on-the-wire” c. Tecniche probabilistiche per applicazioni di monitoraggio ad elevate prestazioni
    • Cost models and run time design (6 cfu)

      • Obiettivi Il corso tratta di metodologie e tecniche per la progettazione di supporti a tempo di esecuzione di paradigmi di programmazione e applicativi per sistemi distribuiti, basandosi sull’approccio dell’architettura astratta e del modello dei costi delle computazioni e delle comunicazioni. Vengono presentate sia metodologie e tecniche generali, che studi di casi significativi e definiti o modificati di volta in volta. Syllabus 1. Architetture astratte e modelli di costo per sistemi distribuiti 2. Metodologie e tecniche per analisi statica di applicazioni distribuite 3. Metodologie e tecniche per analisi di applicazioni distribuite a tempo di esecuzione 4. Progetto di supporti a tempo di esecuzione e ottimizzazioni 5. Strumenti configurazione, inizializzazione, esecuzione 6. Studio di casi Struttura del corso 6 CFU. L’esame consiste in una prova scritta ed una prova orale.
    • Network optimization (6 cfu)

      • Obiettivi Obiettivo del corso è presentare le principali tecniche di modellazione e le principali metodologie algoritmiche che si presentano a livello di progetto e gestione di reti di comunicazione. Verranno presentati rilevanti problemi di progetto e gestione di reti di comunicazione, quali QoS routing, problemi di location, problemi di resiliency e robustezza, equilibrio in reti di traffico. Verranno quindi proposte tecniche di modellazione e metodologie risolutive sia per taluni problemi di base che per problemi "NP-Hard”. Syllabus 1) Problemi di ottimizzazione di rete di base: modelli e algoritmi a. Cammini minimi b. Flusso massimo c. Flusso di costo minimo 2) Problemi di ottimizzazione di rete “NP-Hard”: modelli e algoritmi a. Modelli di routing b. Modelli di network design c. Principali tecniche euristiche d. Approcci esatti 3) Applicazioni a. “QoS routing” b. Problemi di “location” c. Problemi di “resiliency” d. Robustezza nelle reti di comunicazione e. Equilibrio in reti di traffico f.
    • Progetto di sistemi di trasmissione (6 cfu)

      • Programma: - Parametri di prestazione e criteri di progetto di un sistema di trasmissione - Progetto di modem radio - Richiami di propagazione radio e su cavo - Link-budget per collegamenti satellitari - Link budget per collegamenti radio mobili (cellulari e wireless) - Link budget per trasmissioni in fibra ottica - Simulazione di un sistema di trasmissione - Misure su sistemi di trasmisisone - Progetto e sviluppo di modem con architetture digitali Software-Defined Radio
    • Reliability (6 cfu)

      • Obiettivi Il corso introduce i concetti di relaibility, availability, mean time to failure, mean time to repair e li applica alle reti di telecomunicazione. Inoltre il corso introdurrà i metodi per l’analisi dell’affidabilità sia in regime stazionario che in transitorio. Syllabus 1. Definizione di affidabilità, availability, realiability, mean time to failure, mean time between failure, mean time to repair. 2. Basi matematiche: Teoria della Probabilità. Catene di Markov. 3. L’analisi combinatoria applicata alla teoria dell’affidabilità. 4. Affidabilità di un sistema. Two-terminal, k-terminal, all-terminal reliability. Metodi per il calcolo dell’affidabilità di un sistema tramite grafi e riduzione dei grafi. 5. Metodi probabilistici per l’analisi dell’affidabilità in regime stazionario. 6. Metodi basati sulle catene di Markov per l’analisi dell’affidabilità in transitorio Struttura del corso 6 crediti consistenti in lezioni frontali, esercitazioni e laboratorio. L’esame consiste in una prova scritta.
    • Virtual network environments (6 cfu)

      • Obiettivi Il corso introduce i fondamenti alla base degli Ambienti Virtuali, includendo un’analisi delle forme di comunicazione dati via rete più comunemente usate in quest’ambito. Il corso fornisce inoltre un’introduzione agli strumenti di sviluppo e le relative metodologie di progettazione. Esercitazioni pratiche in aula daranno agli studenti l’opportunità di eseguire test su esempi concreti. Syllabus 1) Aspetti teorici a. Concetti generali b. Introduzione agli Ambienti Virtuali c. Grafica interattiva per Ambienti Virtuali d. Pipeline OpenGL e Shaders e. Fisica in tempo reale f. Motion Tracking g. Interazione h. Dispositivi a ritorno di forza i. Architetture per Ambienti Virtuali interconnessi j. Traffico dati e implicazioni delle latenze k. Arbitraggio degli eventi l. Compressione geometrica 2) Sviluppo ed esercitazioni pratiche a. Architetture software per Ambienti Virtuali b. Introduzione ai tools di sviluppo c. Creazione di contenuti 3D d. Equipment e relativa tecnologia e. Il task dell’integrazione, profiling e debugging f. Test di comunicazione di rete in Ambienti Virtuali interconnessi Struttura del corso 6 crediti consistenti in lezioni frontali ed esercitazioni. L’esame consiste in una prova orale e una discussione di un semplice progetto assegnato allo studente.
    • Distributed software design lab (6 cfu)

      • Obiettivi Il corso affronta il problema dello sviluppo di sistemi software distribuiti rispondenti ai requisiti e consegnati nel rispetto di tempi e costi prestabiliti. Il processo di sviluppo presentato e seguito nel corso di laboratorio prevede attività tecniche (analisi di dominio, specifica dei requisiti, progettazione in UML, realizzazione in Java o in un altro linguaggio di programmazione orientato agli oggetti, documentazione) e gestionali (incontri con il committente, verifiche ispettive, collaudo). Syllabus 1. Analisi del dominio 2. Specifica dei requisiti 3. Progettazione in UML mediante un ambiente integrato di progettazione 4. Codifica in Java (o in un altro linguaggio di programmazione orientato agli oggetti) mediante un ambiente integrato di sviluppo 5. Verifica e validazione
    • Optical communication theory and techniques (9 cfu)

      • The course will introduce the students to the fundamental principles of communication theory and data transmission, with emphasis on spectral characteristics of signals and performance and complexity of optical systems. The most common transmission impairments that must be taken into account when designing modern high capacity optical systems are reviewed, and the fundamentals of optical modulation and demodulation are presented on an introductory level. The structures of highperformance optical transmitters and receivers and their noise properties are also outlined. Syllabus 1. Digital transmission theory a) Data transmission over Gaussian channels b) System design for band-limited channels c) Channel and line coding d) Adaptive equalization 2. Fundamentals of optical communications a) Optical transmitters and modulation formats b) Impact of fiber linear and nonlinear transmission impairments c) Optical receivers and noise
    • Networking architectures, components and services (9 cfu)

      • Objectives The aim of the course is to present the architecture and protocols of modern packet-switching networks, focusing on the underlying problems and the different solutions proposed to solve them. In particular, issues related to IPv6, user mobility, multicast communications, Quality of Service requirements and peer-to-peer networks will be analysed. The theoretical part of the course will be followed by a lab module, devoted to the simulation of IP networks, the study of TCP (Linux TCP) and the implementation of rules for packet filtering and NATting in the Linux OS. Syllabus 1. IPv6 and MIP a. General features of IPv6 and header format b. ICNPv6 and procedures of Neighbour Discovery c. Transition IPv4-IPv6 d. Host mobility: MIPv4 e MIPv6 2. Multicast a. Multicast addresses b. IGMP c. Multicast Routing Protocols (DVMRP, PIM-SM, PIM-DM) 3. Transport Layer a. Overview on transport layer protocols (UDP, TCP, DCCP) b. Flow and Congestion Control mechanisms in TCP and DCCP c. RTT estimations d. Congestion Avoidance techniques (DECbit, RED, CHOKe, TCP Vegas) 4. Quality of Service a. Queueing and scheduling disciplines (FIFO, priority queueing, GPS, WFQ, WF2Q) b. Token bucket traffic characterization c. Intserv architecture d. DiffServ architecture 5. P2P a. General features b. Classification of P2P architectures and examples 6. Lab a. Simulation of IP networks b. Simulation analysis of TCP connections c. TCP linux in Linux OS d. IPtables: packet filtering and NATting
    • Applied optics and propagation (6 cfu)

      • Aims This course will provide the fundamentals of electromagnetic fields, and present in detail the applications of optics. The course will provide concepts and basic notions on light waves, their nature, their description and their physical characteristics, and also outline the main areas of optics application. The course provides the fundamentals of geometrical optics (refraction and reflection, lenses, microscopes etc.), of wave optics (interference, diffraction, polarization) and quantum optics (concept of photon emission properties / absorption of light, lasers) . Program Basics of electro-magnetic fields. The geometrical optics and optics of light rays: reflection, refraction, lenses, complex systems of optical elements- Optical Matrix - Maxwell's equations - The phenomenon of polarization (Jones and Stokes description) - Interference and Diffraction: principles, Young experiment, Bragg condition, Fraunhofer and Fresnel diffraction, gaussian beams - Quantum Optics: light emission and absorption, optical spectral properties of materials, population inversion - Lasers basics and laser applications
    • Networks and technologies for telecommunications (9 cfu)

      • The course is divided in three modules. The first module, Network Management Systems (NMS), introduces the fundamentals of network management techniques. The second module Laboratory of Network Software (LabNS), introduces the utilization of a commercial software (OPNET Modeler) enabling communication network simulation. In this module the students will have the opportunity of simulating the network architectures, the protocols, and the management techniques learned in the previous module. The third module FPGA for Communications Network Prototyping (FCN) introduces FPGA programming basics and shows how FPGAs can be used for prototyping communications network protocols. In this module students will have the opportunity of implementing basic protocols in FPGAs. PROGRAM -Network Management Systems (NMS) +Management framework and systems +Information and Data Model +Protocols and standards +IP-based management framework +Sub-IP (optical) management framework +Emerging network management paradigms *Software-Defined Networks *In-network Magagement *Probabilistic Network Management *Data Center Management -Laboratory of Network Software (LabNS) +Network modeling and simulation: introduction to OPNET Modeler +Process modeling with OPNET Modeler and exercise +Variables, statistics, attributes, packets and exercise +Manual debugging, OPNET Modeler debugger +Link models and pipeline stage and exercise +Dynamic processes and exercise +OPNET practice -FPGA for Communications Network Prototyping (FCN) +Introduction to FPGAs +Introduction to Quartus Prime +In and Out +Clocks and Registers +State Machines +Modular Design +Memories +Managing Clocks +I/O Flavors +Laboratory exercises
    • Performance and design issues of wireless networks (6 cfu)

      • Obiettivi Gli obiettivi del corso sono la presentazione dell’evoluzione dell’architettura delle reti cellulari, delle tecnologie maggiormente diffuse per reti wireless LAN, MAN e PAN, e delle diverse soluzioni disponibili per le reti Wireless Mesh Networks (WMN). Inoltre, il corso è volto a fornire gli strumenti necessari per la progettazione di queste reti e ad evidenziare i possibili problemi prestazionali a cui esse sono soggette. Syllabus 1) Concetti base per lo studio di reti wireless a. Propagazione e interferenza b. tecniche di multiplazione e di accesso multiplo c. classificazione delle diverse tecnologie wireless 2) Reti radiomobili a. Organizzazione generale di una rete radiomobile b. Architettura di una rete GSM e UMTS c. Il protocollo SIP e l’architettura IMS (IP Multimedia Subsystem) d. Aspetti di progettazione delle reti radiomobili 3) Reti Wireless LAN a. Lo standard IEEE 802.11 b. Modi operativi delle reti IEEE 802.11 c. Distributed Coordination Function e Point Coordination Function d. Evoluzione dei sistemi 802.11 e. Aspetti prestazionali e di progetto delle reti IEEE 802.11 4) Reti WiMAX a. Architettura di una rete WiMAX b. Lo standard IEEE 802.16 5) Wireless Mesh Networks (WMN) a. Architettura di una WMN b. Aspetti prestazionali e di progetto di WMN basata su tecnologia IEEE 802.11 c. La pianificazione dei canali radio d. Capacità e. Protocolli di Routing f. Protocolli di Trasporto g. Aspetti di Fairness h. Aspetti di QoS i. Il gruppo di lavoro IEEE 802.11s 6) Wireless Personal Area Networks (WPAN) a. Rete Bluetooth b. Rete ZigBee c. problemi di interferenza fra sistemi Bluetooth, ZigBee e IEEE 802.11 in banda ISM a 2.4 GHz
    • Real-time systems (6 cfu)

      • Obiettivi Il corso introduce i meccanismi di kernel e le tecniche per aumentare la predicibilità dei sistemi controllati da computer. Syllabus 1. Concetti di base sull’elaborazione real-time. Domini dell’applicazione. Tipici requisiti di sistema. Limiti degli approcci tradizionali. Modelli dei task. Tipiche specifiche di tempo. Scheduling dei task. Metriche per la valutazione di prestazioni. 2. Algoritmi di scheduling Real-Time Tassonomia degli algoritmi. Scheduling con specifiche di precedenza. Scheduling di task periodici. Analisi basat sull’utilizzazione. Analisi basata sul tempo di risposta. Gestione di task non periodici. Server a priorità fissata. Server a priorità dinamica. 3. Protocolli per l’accesso a risorse distribuite Il fenomeno di inversione di priorità. Protocolli non-preemptive Protocolli ad eredità della priorità. Politica di gestione dello stack di risorse. Tempi di blocco dell’elaborazione. Analisi della schedulability. 4. gestione del sovraccarico Definizione di carico computazionale. Metodi per la gestione del sovraccarico. Controllo d’accesso. SCheduling robusto. Elaborazione non perfetta. Salto del job. Scheduling elastico. Gestione degli overrun. Meccanismo di prenotazione delle risorse. Tecniche di richiamo delle risorse. 5. aspetti implementativi Meccanismi di kernel per il supporto real-time Strutture dati richieste. Rappresentazione temporale Problemi di overhead. Primitive fondamentali del kernel. Stati del processo e transizione di stati. Sincronicità e asincronicità. Struttura del corso 6 crediti consistenti in lezioni frontali, esercitazioni e laboratorio. L’esame consiste in una prova orale.
    • Language-based technology for security (9 cfu)

      • Overview: Traditionally, computer security has been largely enforced at the level of operating systems. However, operating-system security policies are low-level (such as access control policies, protecting particular files), while many attacks are high-level, or application-level (such as email worms that pass by access controls pretending to be executed on behalf of a mailer application). The key to defending against application-level attacks is application-level security. Because applications are typically specified and implemented in programming languages, this area is generally known as language-based security. A direct benefit of language-based security is the ability to naturally express security policies and enforcement mechanisms using the developed techniques of programming languages. The aim of the course is to allow each student to develop a solid understanding of application level security, along with a more general familiarity with the range of research in the field. In-course discussion will highlight opportunities for cutting-edge research in each area. The course intends to provide a variety of powerful tools for addressing software security issues: - To obtain a deeper understanding of programming language-based concepts for computer security. - To understand the design and implementation of security mechanisms. - To understand and move inside the research in the area of programming languages and security. Content: This course combines practical and cutting-edge research material. For the practical part, the dual perspective of attack vs. protection is threaded through the lectures, laboratory assignments, and projects. For the cutting-edge research part, the course's particular emphasis is on the use of formal models of program behaviour for specifying and enforcing security properties. Topics include: - Certifying Compilers - Code obfuscation - In-lined Reference Monitors - Formal Methods for security - Security in web applications - Information Flow Control Learning Goals: After the course, students should be able to apply practical knowledge of security for modern programming languages. This includes the ability to identify application- and language-level security threats, design and argue for application- and language-level security policies, and design and argue for the security, clarity, usability, and efficiency of solutions, as well as implement such solutions in expressive programming languages. Student should be able to demonstrate the critical knowledge of principles behind such application-level attacks as race conditions, buffer overruns, and code injections. You should be able to master the principles behind such language-based protection mechanisms as static security analysis, program transformation, and reference monitoring.
    • Complex Information Systems and Vertical Applications (6 cfu)

      • Obiettivi The course aims at providing a background in principles and practice of management of complex application systems in the field of vertical (maritime) applications. In detail, aspects such as communication fundamentals, modulation techniques, propagation effects, Long Range and Short Range communication protocols, cellular networks (with a focus on 5G), satellite technologies and data acquisition, custody and management will be covered in relation to connected and unmanned shipping, intermodal digital logistics in a sustainable growth perspective.
    • Software verification methods (6 cfu)

      • Obiettivi Il corso si propone di introdurre e sperimentare la tecnica di verifica di correttezza di sistemi (software e hardware) chiamata Model Checking. Si svilupperanno i prerequisiti necessari e si approfondira' lo studio e l'utilizzo di metodi algoritmici (efficienti) per la verifica basati sul Model Checking. L'utilizzo di tecniche di Model Checking permette di verificare effettivamente la correttezza di classi significative di programmi superando i limiti delle soluzioni tradizionali basate su testing e simulazione. Syllabus Logica temporale. Automi e parole infinite. Algoritmi di verifica: le tecniche di base (linear time-branching time) L'esplosione del numero degli stati: l Model Checking simbolico e la tecnica dell'astrazione Strumenti e pacchetti. Casi di studio Struttura del corso. 6 CFU. L’esame consta di una prova orale ed eventualmente di un progetto didattico.
    • Web security (6 cfu)

      • Obiettivi In questo corso si trattano gli aspetti salienti dei problemi relativi alla sicurezza nell'uso delle applicazioni web, e si vedono alcune possibili contromisure agli attacchi che possono essere portati. Dopo una breve introduzione alle problematiche di sicurezza in generale e a quelle relative all'uso del world wide web, vengono presentati i principali tipi di attacco a cui gli utenti web sono soggetti (come il cross site scripting, o il phishing), descrivendo la struttura del software che viene tipicamente utilizzato (tramite esempi tratti da attacchi veri ma per i quali esistono delle patch ampiamente diffuse), e le azioni, gli strumenti software e le applicazioni web utilizzabili per tali attacchi. Quindi, si considerano le tipiche contromisure per prevenire o per segnalare gli attacchi descritti. Gli attacchi considerati non si limitano a quelli che richiedono profonde conoscenze tecniche da parte degli attaccanti, ma vengono descritti anche attacchi che si basano sulle debolezze umane (social engineering). Syllabus 1. Introduzione e raccolta informazioni preliminari 2. cross site scripting 3. cross site request forgery 4. vulnerabilita' dei protocolli internet di livello applicativo 5. attacchi incrociati 6. vulnerabilita' delle applicazioni per cloud computing 7. attacchi ai mezzi mobili 8. phishing 9. ingegneria sociale tramite web 10. attacchi ai capi 11. casi di studio
    • Optical amplification and sensing (9 cfu)

      • Obiettivi Il presente corso, articolato in due parti, dopo una introduzione ai concetti fondamentali sui componenti ottici più comuni, si concentrerà sulle tecnologie di amplificazione ottica e sensoristica in fibra più diffuse. Il corso fornirà anche un modulo di laboratorio, con un approccio hands-on, in cui lo studente apprenderà come utilizzare in pratica i dispositivi in fibra ottica, e come effettuare misure ed esperimenti con componenti ed amplificatori ottici. L’amplificazione ottica è stata una delle tecnologie abilitanti più importanti degli ultimi anni nelle comunicazioni, che ha consentito l’aumento straordinario delle capacità e delle distanze trasmissive alla base dell’odierno sviluppo di Internet e dei servizi basati su rete. Negli ultimi anni, un nuovo settore sta emergendo, quello dei sensori in fibra ottica, in cui i componenti ottici ed in fibra ottica sono utilizzati per il rilevamento di molti parametri fisici, chimici ed ambientali, trovando innumerevoli applicazioni in un’ampia gamma di settori, dall’ingegneria elettrica, elettronica e nucleare, all’ingegneria civile fino al settore dell’energia. Syllabus Amplificatori ottici e sensori in fibra ottica - Le sorgenti luminose per le comunicazioni ottiche: equazioni di rate nei semiconduttori ed il diodo ad emissione luminosa (LED), il meccanismo di retroazione ottica ed il laser, laser a semiconduttore, laser a singolo modo e multi-modali - Fotodiodi: fotodiodi pin e fotodiodi a valanga - Componenti passivi: fibra ottica, accoppiatore ottico, interferometro Mach-Zehnder, tecnologie di filtri ottici, filtri ottici sintonizzabili, multiplatore e de-multiplatore ottico - Dispositivi non reciproci: isolatore e circolatore ottico - Basi di amplificazione ottica: emissione stimolata ed amplificazione ottica, caratteristiche fondamentali degli amplificatori ottici, guadagno, cifra di rumore, potenza di saturazione - Amplificatori ottici discreti e distribuiti: amplificatori Raman e amplificatori in fibra drogata all’Erbio (EDFA), amplificatori ottici a semiconduttore (SOA), processi parametrici ed amplificatori parametrici - Sensori in fibra ottica: introduzione alla sensoristica in fibra ottica, sensori distribuiti basati su effetto Raman e Brillouin, sensori basati su reticoli di Bragg in fibra Laboratorio di amplificazione ottica e componenti - Utilizzare un power-meter ottico, utilizzare i fotodiodi pin ed i fotodiodi a valanga - Misura di parametri indipendenti dalla lunghezza d’onda su componenti ottici passivi. - Utilizzare l’analizzatore di spettro ottico nelle misure di componenti ottici - Caratterizzare un laser - Misura di guadagno e saturazione su amplificatori ottici - La cifra di rumore degli amplificatori ottici: fondamenti della misura - Caratterizzare un EDFA - Caratterizzare la larghezza di riga: rilevazione ottica omodina ed eterodina - Misure dinamiche su oscilloscopio e misure di spettro elettrico Struttura del corso 9 crediti consistenti in lezioni frontali, esercitazioni e laboratorio. L’esame consiste in una prova scritta.
    • Embedded systems (6 cfu)

      • Obiettivi Il corso copre le principali fasi dello sviluppo di sistemi embedded, con particolare attenzione al le tecniche basate su modelli (model-based) e all’uso di metodi formali per l'analisi delle proprietà del sistema. Verranno esaminati problemi e soluzioni relativi a tutte le fasi di sviluppo, comprendendo: analisi dei requisiti, progettazione a livello di sistema, modelli orientati ai componenti, modelli software, verifica di proprietà, scelta e progettazione dell’architettura, generazione di codice e testing. Syllabus 1) Modello di sviluppo di sistemi embedded a. I sistemi embedded e l'impatto sulla moderna elettronica industriale b. Le fasi del processo di sviluppo, progettazione basata su modelli. c. Modelli di calcolo per sistemi embedded: macchine a stati finiti, FSM gerarchiche, automi temporizzati, dataflows. d. Analisi dei requisiti utente, test di sistema, tracciamento dei requisiti scelta e progettazione dell’architettura, modelli orientati ai componenti, modelli software, raffinamento, preservazione della semantica, generazione di codice. Strumenti, metodi e standard per la modellazione di sistema. e. Introduzione alle tecniche di verifica, analisi funzionale e temporale. f. Generazione automatica di codice. g. Tecniche di test, test di conformità, il concetto di copertura nel test, copertura MC/DC. 2) Programmazione di Sistemi Embedded: sistemi operativi e comunicazione wireless – Tecnologie ed esempi. Struttura del corso 6 crediti consistenti in lezioni frontali, esercitazioni e laboratorio. L’esame consiste in una prova orale e nella discussione di un semplice progetto assegnato allo studente.
    • Business process modeling (6 cfu)

      • The course presents techniques for Business Analytics according to the process-driven view of Business Process Modeling. It presents the main concepts and problematic issues related to the process management, where processes are understood as workflow over some basic activities, and to show some of the languages, conceptual models and tools that can help to handle the main problems in a proper way. During the course, the students will become acquainted with the technical terminology of the area, with several rigorous models that can be used to structure and compose processes, with the logical properties that such processes can be required to satisfy and with specific analysis and verification techniques. Moreover they will be given the possibility to experiment with some advanced tools for the design and analysis of business processes. Syllabus - Introduction to key issues in business process management. - Terminology (business process, business process management, business process management system, business process model, process orchestration, business process lifecycle, workflow) and classification (orchestration vs choreography, automation, structuring). - Hints on the evolution of business process architectures. - Process modeling. - Conceptual models and levels of abstraction. - Functional decomposition and modularity. - Process orchestration. - Process properties. - Orchestration patterns (sequencing, parallel split, exclusive split, and-join, exclusive join) and structured workflow. - Rigorous workflow models: Petri nets and workflow nets. - Tool-supported workflow design and analysis experimentation with state-of-the-art integrated tools for business process design, analysis and verification. s.
    • Distributed and parallel data bases (6 cfu)

      • Obiettivi Il corso presenta i principi relativi alla tecnologia delle basi di dati in ambiente distribuito ed in ammbiente parallelo. Vengono trattati i temi classici relativi ai Sistemi per la Gestione di Basi di Dati: architettura, progettazione, elaborazione delle interrogazioni, gestione delle transazioni. Syllabus 1) Architettura dei SGBD distribuiti 2) Progettazione di basi di dati distribuite a. Progetto di frammentazione b. Progetto di allocazione 3) Elaborazione delle interrogazioni distribuite a. Decomposizione della interrogazione b. Ottimizzazione delle strategie d’accesso 4) Gestione delle transazioni distribuite a. Atomicità b. Controllo di concorrenza c. Affidabilità 5) Basi di dati parallele a. Architettura shared nothing e partizionamento dei dati b. Algoritmi paralleli per gli operatori relazionali c. Ottimizzazione delle interrogazioni parallele L’esame consiste in una prova orale.

Questo sito utilizza solo cookie tecnici, propri e di terze parti, per il corretto funzionamento delle pagine web e per il miglioramento dei servizi. Se vuoi saperne di più, consulta l'informativa