Corso di studi: Informatica e networking (Laurea magistrale)

  • Denominazione: Informatica e networking
  • Facoltà: SCIENZE MATEMATICHE, FISICHE E NATURALI
  • Classe di appartenenza: LM-18 INFORMATICA
  • Interateneo: Si
  • Lista Atenei: Scuola Superiore Sant'Anna, Pisa
  • Interfacoltà: No
  • Obiettivi formativi: Il Corso di Laurea Magistrale in Informatica e Networking (Computer Science and Networking: nel seguito CSN) è stato progettato per rispondere alla crescente domanda di una emergente figura professionale, che richiede laureati magistrali in grado di padroneggiare, in modo integrato, tanto le tecnologie informatiche quanto quelle di networking nella progettazione e realizzazione di infrastrutture hardware-software distribuite innovative e di essere capace, al tempo stesso, di analizzare i requisiti e di procedere, mediante soluzioni ad alto valore aggiunto, alla progettazione e realizzazione di applicazioni basate su servizi distribuiti in svariati settori dell’industria, commercio, ricerca, servizi sociali e al cittadino, pubblica amministrazione.
    Una tale figura professionale non ha riscontri nell’attuale panorama delle lauree nazionali e pochissimi sono anche gli esempi a livello internazionale.
    Negli ultimi venti anni Internet ha sostanzialmente trasformato l’approccio all’attuazione di molte attività industriali, sociali, di ricerca e concernenti la vita di tutti i giorni. Recentemente il mondo della ricerca e dell’industria ICT ha messo in evidenza come siano necessarie, nei prossimi 10-15 anni, ulteriori forti evoluzioni e cambiamenti alle infrastrutture di calcolo e comunicazione per andare incontro a nuove e pressanti esigenze da parte di svariate aree applicative, come automazione industriale, e-business, sistemi real-time e mission-critical, gestione di emergenze e disastri, ubiquitous health care, urban sensors, gestione delle fonti energetiche, e molte altre ancora. Le evoluzioni e cambiamenti tecnologici, che sono già parzialmente in atto (Future Internet), devono rispondere all’esigenza che nuove applicazioni possono nascere nell’arco di tempo di pochi mesi, invece che di diversi anni come tradizionalmente, e quindi di permettere un uso ben più efficace e sicuro delle reti e dei sistemi distribuiti da parte di industrie e società nel prossimo futuro anche su scala world-wide.
    Il laureato magistrale in CSN sarà in grado di svolgere attività che richiedono l'uso di metodologie avanzate nella analisi, progettazione, sviluppo e gestione di infrastrutture distribuite e di applicazioni in rete basate su tali infrastrutture.
    A questo scopo, i laureati possiederanno una profonda conoscenze delle basi fondazionali dell’informatica e delle comunicazioni, e conoscenze specialistiche delle tecnologie informatiche e di comunicazione riguardo a:
    * sistemi distribuiti e piattaforme abilitanti, architetture a servizi, sistemi ad alte prestazioni, pervasive & mobile computing,
    * reti di accesso su vari livelli di scala geografica, trasmissione e tecnologie ottiche, modelli e tecniche di ingegneria del traffico,
    * paradigmi, modelli e strumenti di programmazione e sviluppo applicazioni, di analisi, progettazione e valutazione di sistemi e applicazioni, pilotate da parametri di Qualità del Servizio.
    LM-CSN si avvarrà di laboratori avanzati di architettura, programmazione, comunicazione in configurazioni complesse centralizzate, parallele e distribuite, organizzati in modo da permettere ad ogni studente di accedere ed utilizzare apparecchiature e strumenti in modo indipendente.
    LM-CSN intende avere una caratterizzazione e organizzazione di tipo internazionale, basata su corsi tenuti in lingua inglese, allo scopo di attrarre studenti da varie parti del mondo, grazie al prestigio delle istituzioni proponenti ed alla qualità della ricerca nei rispettivi settori riconosciuta a livello internazionale. È previsto il contributo di docenti del Dipartimento di Ingegneria dell’Informazione, in particolare appartenenti al settore scientifico-disciplinare ING-INF/03 operanti nell’area Networking. Esiste la volontà di verificare, successivamente all’attivazione, la formalizzazione della collaborzione in una laurea magistrale di tipo interfacoltà.
  • Numero posti: 40
  • Numero programmato: Locale
  • Motivazioni numero programmato: Il laureato in Informatica e Networking deve possedere una spiccata capacità di progettazione, prototipazione, sperimentazione, ottimizzazione e valutazione di sistemi ed applicazioni complesse. A questo fine, un buon numero di insegnamenti sarà dotato di laboratori, sia presso il polo didattico e il Dipartimento di Informatica dell’Università di Pisa che presso la Scuola Superiore Sant’Anna, in cui sviluppare e affinare queste capacità. Si tratta di sofisticati ed avanzati laboratori di architettura, programmazione e comunicazione in complesse configurazioni hardware-software centralizzate, parallele e distribuite. Vista questa caratterizzazione, i laboratori saranno realizzati e organizzati in modo da permettere ad ogni studente di accedere ed utilizzare apparecchiature e strumenti in modo indipendente. L’accesso ai laboratori è quindi possibile, con efficienza di profitto, solo su classi di non elevata numerosità.
    L’internazionalizzazione del presente corso di laurea magistrale è ulteriore elemento che contribuisce ad aumentare significativamente il bacino di utenza potenzialmente interessato all’ammissione ma che, di conseguenza, richiede accurata selezione delle candidature che pervengono su base mondiale.
    Anche in base alle recenti immatricolazioni in corsi di laurea specialistica nel settore ICT, si stima che la richiesta di laureati in Informatica e Networking si aggirerà, almeno inizialmente, su qualche decina di unità: il numero di studenti indicato (40) tiene conto della prevista domanda di studenti stranieri, ed al contempo rende possibile attirare un congruo numero di studenti italiani particolarmente meritevoli.
    Tutte le motivazioni suddette sono grandemente rafforzate dal fatto che la Scuola Superiore Sant’Anna ha come scopo statutario, in analogia ad altre scuole superiori italiane, l’istruzione e la formazione di studenti con caratteristiche di eccellenza. I programmi di formazione offerti dalla Scuola Sant’Anna, sono tutti, senza esclusione, a numero programmato al fine del mantenimento di un rapporto controllato docente/allievo, necessario a garantire la qualità dello standard formativo assunti dalla Scuola.
  • Numero stimato immatricolati: 40
  • Requisiti di ammissione: Il Corso di Laurea Magistrale in Informatica e Networking è a numero programmato locale, limitato a 40 posti. Per l’ammissione al Corso è quindi prevista una Prova di Selezione, aperta anche a studenti europei ed extra-europei. La Prova di Selezione, da effettuare qualunque sia il numero delle domande, consta di una prova scritta e/o di una prova orale secondo quanto stabilito annualmente dal Consiglio di Corso di Studi. La Commissione di Selezione è composta da docenti dell’Università di Pisa e della Scuola Superiore Sant’Anna secondo quanto previsto dalla Convezione tra le due istituzioni. Per essere ammessi alla Prova di Selezione, i candidati devono essere in possesso di requisiti curriculari relativi ai fondamenti delle scienze e tecnologie dell’informazione. I requisiti curriculari minimi sono i seguenti: - 12 CFU complessivi in uno o più dei settori scientifico-disciplinari MAT/01, MAT/02, MAT/03, MAT/04, MAT/05, MAT/06, MAT/07, MAT/08, MAT/09, FIS/01, FIS/02, FIS/03; - 60 CFU complessivi in uno o più dei settori scientifico-disciplinari INF/01, ING-INF/03, ING-INF/05. Tali requisiti sono automaticamente soddisfatti dalle seguenti classi di laurea e lauree o diplomi di laurea: - Classe 26, relativa al DM 509/1999 (Scienze e Tecnologie Informatiche); - Classe L-31, relativa al DM 270/2004 (Scienze e Tecnologie Informatiche); - Classe 9, relativa al DM 509/1999 (Ingegneria dell’Informazione), lauree o diplomi di laurea: Ingegneria Informatica, Ingegneria delle Telecomunicazioni; - Classe L-8, relativa al DM 270/2004(Ingegneria dell’Informazione), lauree o diplomi di laurea: Ingegneria Informatica, Ingegneria delle Telecomunicazioni. I requisiti curriculari minimi devono comunque essere soddisfatti per candidati in possesso di laurea o diploma di laurea diversi dai precedenti o in classi diverse dalle precedenti. Per l’ammissione alla Prova di Selezione sono validi titoli rilasciati da Università straniera, valutati equivalenti ad una delle suddette classi o comunque idonei a rispettare i requisiti curriculari. In tutti i casi, l’adeguatezza delle conoscenze e delle competenze dei candidati è comunque accertata mediante la Prova di Selezione. Requisito per l’adeguatezza della preparazione è altresì una buona conoscenza della lingua inglese, che rappresenta la lingua con cui vengono tenuti gli insegnamenti.
  • Specifica CFU: 17/25 studio individuale, 8/25 attività in aula.
  • Modalità determinazione voto di Laurea: Voto di laurea in 110-esimi. Il voto viene determinato sommando alla media degli esami, pesata rispetto al numero di CFU, la valutazione della discussione della tesi. Questa valutazione, compresa tra 0 e 11 punti, viene data sulla base di criteri stabiliti dal Consiglio di Corso di Studi.
  • Attività di ricerca rilevante: Il Dipartimento di Informatica dell’Università di Pisa consta di 22 professori ordinari, 18 professori associati, 15 ricercatori, 1 ricercatore in formazione e 4 assistenti. La maggioranza dei docenti afferisce al settore scientifico disciplinare INF/01-Informatica. Sono coperti anche i settori MAT/08-Analisi Numerica, MAT/09-Ricerca Operativa, FIS/07-Fisica Applicata e BIO/10-Biochimica. Il Dottorato di Ricerca in Informatica ha sede amministrativa presso il Dipartimento di Informatica e fa parte della Scuola di Dottorato di Eccellenza in Scienze di Base "Galileo Galilei".
    Se consideriamo la classificazione dell'Association for Computing Machinery (ACM), la principale organizzazione che raccoglie professionisti, docenti e ricercatori informatici, la ricerca nel dipartimento ricade nelle seguenti aree: Computer Systems Organization, Software, Data, Theory of Computation, Mathematics of Computing, Information Systems, Computing Methodologies , Computer Applications, in ognuna delle quali il dipartimento è attivo in molti qualificati progetti nazionali ed internazionali, oltre che in collaborazione con le più significative industrie del settore.
    La natura multidisciplinare del dipartimento con una varietà di competenze culturali, scientifiche e tecnologiche permette di guidare gli studenti all'interno di percorsi formativi rivolti sia alla ricerca di base (fondazionale e/o sperimentale) che all'acquisizione di abilità professionali attuabili nel mondo del lavoro. Pertanto, nel Dipartimento di Informatica sono presenti quelle competenze scientifico/tecnologiche coerenti, rilevanti e necessarie per formare un laureato magistrale nella classe LM-18.
    Il Dipartimento di Ingegneria dell’Informazione contribuisce con competenze scientifiche di altissima qualificazione con gruppi di ricerca, nel settore ING-INF/03 e nel campo del networking, attivi su apparati, protocolli e tecniche di comunicazione su reti fisse e wireless, che collaborano attivamente con i gruppi proponenti del Dipartimento di Informatica.
    Il Centro di Eccellenza per l’Ingegneria dell’Informazione e della Comunicazione (CEIIC) della Scuola Superiore Sant'Anna comprende personale universitario della Scuola Superiore Sant'Anna e ricercatori aggregati del co-locato Laboratorio Nazionale di Reti Fotoniche del CNIT (Consorzio Nazionale Interuniversitario per le Telecomunicazioni). L’attuale consistenza del Centro è di circa 50 persone tra professori, ricercatori, allievi perfezionandi, assegnisti di ricerca e collaboratori di ricerca.
    Le attività di ricerca del CEIIC includono un largo ventaglio di tematiche di ricerca applicata e di ricerca di base sia per quanto riguarda gli aspetti teorici che quelli sperimentali nel campo delle telecomunicazioni afferenti al settore disciplinare ING-INF/03 e dei Sistemi di Elaborazione delle Informazioni afferenti al settore disciplinare ING-INF/05. In particolare, relativamente al settore ING-INF/03 le macro-aree coperte riguardano le tecniche di controllo del servizio, le reti ottiche di backbone e di accesso, le reti wireless, le tecnologie e i componenti fotonici, i sistemi e le tecniche di comunicazione ottica e le tecniche di processamento tutto-ottico del segnale.
  • Docenti referenti: UNIVERSITA’ DI PISA
    Attardi Giuseppe, PO, INF/01, 9 CFU
    Baiardi Fabrizio, PO, INF/01, 9 CFU
    Brogi Antonio, PO, INF/01, 9 CFU
    Danelutto Marco, PA, INF/01, 9 CFU
    Ferragina Paolo, PO, INF/01, 9CFU
    Montanari Ugo, PO, INF/01, 9 CFU
    Scutellà Maria Grazia, PA, MAT/08, 6 CFU
    Vanneschi Marco, PO, INF/01, 9 CFU

    SCUOLA SUPERIORE S.ANNA
    Castoldi Piero, PA, ING-INF/03, 12 CFU
    Ciaramella Ernesto, PA, ING-INF/03, 9 CFU
    Contestabile Giampiero, RU, ING-INF/03, 9 CFU
    Di Pasquale Fabrizio, PA, ING-INF/03, 9 CFU
    Forestieri Enrico, PO, ING-INF/03, 9 CFU
    Prati Giancarlo, PO, ING-INF-03, 6 CFU
    Valcarenghi Luca, RU, ING-INF/03, 9 CFU
  • Percorso di eccellenza: Istituzionalmente la Scuola Superiore Sant'Anna prevede che il reclutamento dei propri allievi avvenga attraverso procedure volte ad accertare l'elevata preparazione e le potenzialità di sviluppo culturale e professionale dei candidati. Questa caratterizzazione verrà adottata anche per gli studenti della Laurea Magistrale in Informatica e Networking. Il superamento del concorso di ammissione ai Corsi ordinari dà automaticamente accesso alla LM e esonera dalla partecipazione alle prove selettive per l’ammissione della LM. Un percorso di eccellenza verrà istituito anche da parte dell'Università di Pisa.
  • Rapporto con il mondo del lavoro: I rapporti con il mondo del lavoro rappresentano un ulteriore punto di forza della Laurea Magistrale in Informatica e Networking, grazie ai rapporti di collaborazione con imprese nazionali e multinazionali del settore, e con enti pubblici locali e nazionali. Si segnalano Microsoft, Hewlett Packard, IBM, Selex Sistemi Integrati ed altre aziende del Gruppo Finmeccanica, Athos Origin, TXT e-solutions, Alcatel-Lucent, Marconi-Ericsson, Telecom, List, Amazon, Google, Yahoo. Tra gli enti pubblici, rapporti costanti si hanno con CNR e tutte le altre principali istituzioni di ricerca, Agenzia Spaziale Italiana, CNIT, diverse reti di eccellenza europee, nonchè pubbliche amministazioni locali e periferiche.
    In particolare il CEIIC è parte del Centro Integrato di Ricerca sulle Reti e Tecnologie Fotoniche (IRCPhoNeT) insieme al Laboratorio Nazionale di Reti Fotoniche e al Laboratorio di Ricerca e Sviluppo Marconi-Ericsson di Pisa. I tre laboratori sono insediati nello stesso edificio sull’area di ricerca del CNR di S. Cataldo e collaborano mediante un accordo di ricerca di lungo termine su attività di ricerca e formative. Inoltre il CEIIC ha accordi di ricerca con altre aziende italiane del gruppo Finmeccanica (es. Selex Communications), Rete Ferrovie Italiane, e altre piccole e medie imprese per le quali svolge attività di ricerca nel campo delle reti di comunicazione e relative tecnologie.
    Questo ricco insieme di rapporti con il mondo del lavoro costituisce la base su cui realizzare collaborazioni didattiche sotto forma di esercitazioni speciali (sotto la responsabilità dei docenti), stage e tesi esterne, per permettere agli studenti di verificare la loro preparazione professionale mediante attività in contesti ad alta tecnologia e/o in applicazioni distribuite a diretto contatto con l'utenza. Queste esperienze verranno organizzate sulla base degli indirizzi scelti dagli studenti.
    Molto importante è il fatto che alcuni tipi di contatti sono funzionali al sostegno economico degli studenti ed alla possibile assunzione dopo il conseguimento della laurea.
  • Informazioni aggiuntive: MOTIVAZIONI DELL’ISTITUZIONE DEL CORSO INTERATENEO
    Una figura professionale, che possieda elevate competenze scientifiche e tecnologiche tanto nelle discipline informatiche che in quelle di networking in maniera fortemente integrata, non ha riscontri nell’attuale panorama delle lauree nazionali e pochissimi sono anche gli esempi a livello internazionale. Molto significativo è il fatto che, a livello internazionale, le discipline dell’ICT tendano ad integrarsi sempre più allo scopo di affrontare in modo nuovo e più efficace lo studio e la realizzazione di sistemi distribuiti ed applicazioni distribuite.
    Per questi motivi, l’attuazione della Laurea Magistrale in Informatica e Networking richiede elevate competenze ed esperienze, scientifiche e tecnologiche, in entrambi i settori. Tali competenze con l’obiettivo primario della stretta relazione tra ricerca e didattica, non si riscontrano in un singolo dipartimento universitario ma vanno ricercate in più sedi ad alta specializzazione. Le desiderate caratteristiche di complementarietà e, al tempo stesso, di integrazione sono attuabili con successo nell’ambito della collaborazione tra
    - le aree scientifico-disciplinari comprese nel Dipartimento di Informatica e nel Dipartimento dell’Ingegneria dell’Informazione dell’Università di Pisa,
    - il Centro di Eccellenza per l’Ingegneria dell’Informazione e della Comunicazione della Scuola Superiore Sant’Anna.
    La collaborazione tra Università di Pisa e Scuola Superiore Sant’Anna permette di integrare e valorizzare al meglio le rispettive competenze ed esperienze nei settori delle scienze e tecnologie di informatica e delle comunicazioni per costruire la nuova figura professionale ad alta specializzazione e qualificazione.
    Le istituzioni proponenti hanno una elevata reputazione scientifica, riconosciuta a livello internazionale, anche grazie alla partecipazione, tuttora in atto, a rilevanti progetti di ricerca e reti di eccellenza a livello europeo e nazionale, ed a importanti collaborazioni con industrie nazionali e multinazionali.

    SBOCCHI OCCUPAZIONALI E PROFESSIONALI
    Lo sbocco occupazionale naturale del laureato magistrale in CSN è
    - nelle imprese operanti nel campo delle infrastrutture hardware-software di calcolo networking, sistemi distribuiti, architetture a servizi, sistemi ad alte prestazioni, cluster computing, grid computing, global computing, cloud computing,
    - nelle imprese, enti pubblici e pubbliche amministrazioni operanti nel campo delle applicazioni basate su servizi distribuiti, come automazione industriale, e-business, sistemi real-time e mission-critical, gestione di emergenze e disastri, ubiquitous health care, intelligent urban sensors, telepresenza e telecontrollo, gestione delle fonti energetiche, vehicular networks, e molte altre ancora.
    Infine, il laureato magistrale in Informatica e Networking sarà dotato di una preparazione culturale, scientifica, tecnologica e metodologica di base che gli permetterà di accedere ai livelli di studio universitario successivi alla laurea magistrale nei settori dell’informatica e comunicazioni.


    DECRETO RETTORALE N. 11056 DEL 04/08/2009

Curriculum: Computer Science and Networking

Primo anno (57 CFU)

Insegnamento CFU
Algorithm engineering 9
Programmazione avanzata 9
Gestione e configurazione delle reti 9
Fondamenti di segnali, sistemi e reti 12
Ingegneria del teletraffico 9
High Performance Computing 9

Secondo anno (63 CFU)

Insegnamento CFU
Tesi di laurea 15
Ingegneria dei servizi software 9
Esame a scelta 9
Sistemi distribuiti: paradigmi e modelli 9
Gruppo: GR-a 9
Gruppo: GR-c 12

Gruppi per attività a scelta nel CDS Informatica e networking

Gruppo GR-a (9 CFU)

  • Descrizione: Insegnamenti affini o integrativi

Attività contenute nel gruppo

Nome CFU
Algoritmi paralleli e distribuiti 6
Ambienti virtuali su rete 6
Amplificazione ottica e sensoristica 9
Architetture, componenti e servizi di rete 9
Architetture di commutazione ed elaborazione dati a pacchetto 6
Aspetti prestazionali e di progetto delle reti wireless 6
Basi di dati distribuite e parallele 6
Commutazione fotonica 9
Componenti distribuite 6
Information retrieval 6
Laboratorio di progettazione di software distribuito 6
Laboratorio di protocolli e architetture di routing 6
Laboratorio di sistemi fotonici 6
Metodi di ottimizzazione delle reti 6
Metodi formali per la sicurezza 6
Metodi per la specifica e la verifica di processi di business 6
Metodi per la verifica del software 6
Modelli di costo e progettazione di supporti 6
Pervasive computing 6
Piattaforme abilitanti distribuite 6
Prestazioni di reti multimediali 6
Problemi di sicurezza in applicazioni web 6
Programmazione concorrente 6
Propagazione e ottica applicata 6
Reti e tecnologie per le telecomunicazioni 9
Sistemi embedded 6
Sistemi peer to peer 6
Sistemi real-time 6
Tecniche di data mining 9
Tecniche numeriche e applicazioni 6
Teoria dell'affidabilità 6
Teoria dell'informazione e della trasmissione 9
Teoria e tecnica delle comunicazioni ottiche 9
Tollerenza ai guasti in sistemi distribuiti 6

Gruppo GR-c (12 CFU)

  • Descrizione: Insegnamenti caratterizzanti

Attività contenute nel gruppo

Nome CFU
Applicazioni parallele e distribuite 9
Architettura e progetto di piattaforme di elaborazione complesse 12
Modelli di calcolo 9
Sicurezza delle reti 9
Sistemi operativi distribuiti 6
Strumenti di programmazione per sistemi paralleli e distribuiti 6
Virtualizzazione dei sistemi 6

Attività formative definite nel CDS Informatica e networking

Algorithm engineering (9 CFU)

  • Obiettivi formativi: 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
    1) RAM model
    a. Data compression: Huffman, arithmetic, lz77, lz78, MTF, RLE, bzip, front coding
    b. Data indexing and searching: integers (VEB and x/y fast trie), strings (trie, patricia trie, suffix tree, suffix array), trees (ternary search trees).
    c. Hashing: Universal, Perfect, Cuckoo, minimal ordered perfect.
    d. Randomized data structures: Treaps, Skip lists, Bloom filter, count min-sketch.
    e. Compressed data structures for sequences, trees and graphs.

    2) 2-level memory model
    a. Definition and properties
    b. Data sorting (atomic items and strings) and permuting
    c. Data indexing and searching: strings (2-level indexing, String B-trees), geometric points (nearest neighbour search and locality sensitive hashing)
    d. Data sketching: bloom filters and count-min sketch

    3) Cache-oblivious model
    a. Definition and properties
    b. Matrix multiplication
    c. BST layout

    Esame scritto e orale
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste di una prova scritta e di una prova orale.

Ambienti virtuali su rete (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale e una discussione di un semplice progetto assegnato allo studente.

Amplificazione ottica e sensoristica (9 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova scritta.

Architettura e progetto di piattaforme di elaborazione complesse (12 CFU)

  • Obiettivi formativi: 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
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in un progetto ed una prova orale.

Architetture, componenti e servizi di rete (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso fornisce i concetti elementari necessari a comprendere l’architettura, gli elementi componenti ed i servizi delle moderne reti a commutazione di pacchetto, con particolare riguardo a IPv6, mobile IP, multicast, protocolli di trasporto, architetture per la garanzia della Qualità di Servizio e nuove architetture peer-to-peer. La parte teorica sarà inoltre accompagnata da esercitazioni sperimentali relative alla simulazione di reti IP, alle modalità di funzionamento del TCP (Linux TCP) e all'implementazione in ambiente linux di regole di filtraggio (e natting) di pacchetti IP.


    Syllabus
    1) IPv6 e MIP
    a. Caratteristiche generali di IPv6 e formato dell'header
    b. ICMPv6 e procedure di Neighbour Discovery
    c. Transizione IPv4-IPv6
    d. Mobilità in ambito IP: MIPv4 e MIPv6
    2) Multicast
    a. Indirizzamento Multicast
    b. IGMP
    c. Protocolli di Routing Multicast (DVMRP, PIM-SM, PIM-DM)
    3) Livello di Trasporto
    a. Panoramica sui principali protocolli: UDP, TCP, DCCP
    b. Flow control e congestion control in ambito TCP e DCCP
    c. Meccanismi di stima del RTT
    d. Tecniche di congestion avoidance (DECbit, RED, CHOKe, TCP Vegas)
    4) Qualità del servizio
    a. Politiche per la gestione delle code (FIFO, code con priorità, GPS, WFQ, WF2Q)
    b. Caratterizzazione del traffico mediante Token Bucket
    c. Architettura Intserv
    d. Architettura DiffServ
    5) Architetture P2P
    a. Descrizione generale dell'architettura
    b. Classificazione delle architetture P2P ed esempi
    6) Laboratorio
    a. Simulazione di reti IP
    b. Analisi simulativa di connessioni TCP
    c. Studio del TCP linux
    d. IPtables: filtraggio di pacchetti IP e natting
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale con domande relative sia alla parte teorica che all'esperienza di laboratorio.

Architetture di commutazione ed elaborazione dati a pacchetto (6 CFU)

  • Obiettivi formativi: 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
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale e include la discussione di un semplice progetto assegnato allo studente.

Aspetti prestazionali e di progetto delle reti wireless (6 CFU)

  • Obiettivi formativi: 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
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: Esame orale.

Commutazione fotonica (9 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale ed eventualmente nella valutazione relazioni sulle esperienze di laboratorio.

Gestione e configurazione delle reti (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso ha come obiettivo di fornire agli studenti una critica carrellata sull’evoluzione dei protocolli di telecomunicazione. Il corso si focalizzerà principalmente sui protocolli dell’architettura Internet (TCP/IP) e sul protcollo Ethernet. Infine verranno presentati i più recenti standard proposti. Protocolli (ad es. MPLS) ed algoritmi per l’ingegneria del traffico verranno introdotti. Verranno forniti elementi di simulazione ad eventi discreti. I concetti presentati in classe saranno oggetto di esperimenti in laboratorio.

    Syllabus
    1) Reti di telecomunicazione
    • Elementi di trasmissione dati (4 hours)
    o Trasmissione digitale ed analogica
    o Conversione analogica/digitale
    o Mezzi di propagazione
    o Comunicazioni orientate alla connessione e non orientate alla connessione
    o Comunicazione a pacchetto
    • Ripasso della architettura protocollare ISO/OSI e TCP/IP (2 hours)
    • MAC and Logical Link Control (4 hours)
    o Automatic Repeat reQuest (ARQ)
    o Pipelining
    • Ethernet (6 hours)
    o CSMA/CD
    o Repeaters, Bridges, Switches
    o Ethernet Commutato
     1GbE, 10GbE, oltre 10GbE
    o VLAN
    • Protocollo IP (4 hours)
    o Classi
    o Subnetting
    o Supernetting
    o Fondamenti di instradamento
     OSPF
    o Quality del Servizio
     IntServ
     DiffServ
    • MPLS (4 hours)
    o OSPF-TE
    o RSVP-TE
    • Reti Ottiche (4 hours)
    o SONET/SDH
    o Wavelength Division Multiplexing (WDM)
    • Sopravvivenza ai guasti nelle reti ed affidabilità (6 hours)
    o Sopravvivenza ai guasti in reti IP, MPLS ed Ottiche
    o Cenni di teoria dell’affidabilità
    • Introduzione alla simulazione ad eventi discreti (6 hours)
    2) Lab of Traffic Engineering
    • Laboratorio di Ingegneria del traffico
    o Metodi per la progettazione di reti di telecomunicazione
    o Esercizi in laboratorio

    Struttura del corso
    9 crediti di lezioni frontali ed esercitazioni di laboratorio.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova scritta e di una possibile discussione di un semplice progetto assegnato allo studente.

High Performance Computing (9 CFU)

  • Obiettivi formativi: 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.

  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova scritta ed una prova orale.

Ingegneria dei servizi software (9 CFU)

  • Obiettivi formativi: Obiettivi
    L’obiettivo generale del corso è introdurre gli aspetti principali della progettazione, dell’analisi e dello sviluppo dei servizi software. Dopo avere introdotto gli standard fondamentali dei servizi Web, il corso si focalizza sulla composizione di servizi come uno degli aspetti chiave delle architetture orientate ai servizi e sull’utilizzo di linguaggi per descrivere flussi di lavoro (“workflow languages”) per la specifica e l’esecuzione di processi aziendali (“business processes”). Viene discusso il ruolo dell’analisi di processi aziendali e vengono illustrati alcuni esempi di modellazione e di analisi di processi aziendali. Vengono inoltre discussi i vantaggi offerti da descrizioni avanzate dei servizi che includano politiche e informazioni sul comportamento dei servizi, e viene discusso il ruolo degli accordi sul livello del servizio (“service-level agreements”). Vengono infine introdotte alcune delle tecnologie emergenti quali servizi RESTful e cloud computing. Il corso comprende attività di laboratorio dedicate a sperimentare la progettazione, l’analisi, lo sviluppo e la messa in opera di semplici (composizioni di) servizi Web.

    Syllabus
    1. Standard fondamentali dei servizi Web
    Standard utilizzati per lo scambio di messaggi, per la decrizione dei servizi e per la pubblicazione e la ricerca di servizi.
    2. Composizione di servizi
    Linguaggi per la specifica e l’esecuzione di processi aziendali. Modellazione e analisi di processi aziendali.
    3. Descrizioni avanzate di servizi
    Rappresentazione del comportamento dei servizi, politiche e accordi sul livello dei servizi.
    4. Tecnologie emergenti
    Introduzione a servizi RESTful e cloud computing.
    5. Attività di laboratorio
    Sviluppo di servizi Web in Java e di composizioni di servizi come processi aziendali utilizzando linguaggi per descrivere flussi di lavoro. Modellazione e analisi di processi aziendali.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame prevede la realizzazione di un progetto e una prova orale.

Ingegneria del teletraffico (9 CFU)

  • Obiettivi formativi: 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.
    c. Problemi e relative soluzioni per il calcolo numerico delle formule Erlang B e Erlang C. Sviluppo di funzioni MATLAB per il calcolo delle probabilità di perdita in code M/M/1/Ns e M/M/Ns/Nw. Soluzione mediante MATLAB di sistemi a coda M/Cox2/1/Nw, M/H2/1/Nw e M/E2/1/Nw.
    d. Approccio Matrix-Geometric per la soluzione di Catene di Markov descritte da matrici di Hessenberg a blocchi.
    e. Applicazione dell’approccio Matrix-Geometric per lo studio di sistemi a coda M/Cox2/1.

    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. Algoritmo della convoluzione e approccio Mean Value Analysis per la soluzione delle reti di code di Gordon-Newell.
    e. Reti di code BCMP. Indici prestazionali in reti di code markoviane chiuse e BCMP.

    8) Tecniche numeriche per la soluzione di catene di Markov
    a. Librerie Matfun e Stats di MATLAB. Generazione di osservazioni di vv.aa. di Erlang k, iperesponenziale, ipoesponenziale e di Coxn.
    b. Grafico quantile-quantile. Decomposizione agli autovalori per il calcolo del transitorio in Catene di Markov.
    c. Metodi diretti per il calcolo delle probabilità asintotiche di stato di Catene di Markov.

    L’esame consiste in una prova scritta, una prova Matlab ed una prova orale.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova scritta, una prova di laboratorio ed una prova orale.

Laboratorio di protocolli e architetture di routing (6 CFU)

  • Obiettivi formativi: 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)
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale con test di laboratorio.

Laboratorio di sistemi fotonici (6 CFU)

  • Obiettivi formativi: Descrizione
    Il corso, di forte ispirazione sperimentale, introduce lo studente alla conoscenza e all’utilizzo dei principali componenti e delle tecniche sperimentali impiegate nell’ambito della fotonica. Il corso inoltre illustrerà i principi di funzionamento dei principali strumenti di analisi e di misura (tra cui oscilloscopi, oscilloscopi a campionamento, analizzatori di spettro). Gli Obiettivi del corso sono di Apprendere il funzionamento dei dispositivi e della strumentazione principalmente utilizzata in fotonica di apprendere tecniche basilari di misura di effettuare pratica in laboratorio.

    Syllabus
    1) Sorgenti laser e modulatori
    a. Laser DFB e Diodi Laser
    b. Laser Fabry-Pèrot
    c. Laser Mode-Locking
    d. Modulazione della luce
    i. Diretta
    ii. Esterna
    2) Dispositivi usati in fotonica
    a. Polarizzatori e controllori di polarizzazione
    b. Isolatori, Circolatori e Accoppiatori
    c. Filtri ottici
    d. Filtri Ottici Periodici
    e. Rivelatori
    f. OTDR
    g. Cenni di amplificazione ottica
    h. Accoppiamento fibra-aria-dispositivi
    3) Strumentazione
    a. Oscilloscopi a campionamento elettrico
    b. Oscilloscopi real-time
    c. Analizzatori di Spettro Ottico
    d. Polarimetri
    e. Controllori di temperatura
    f. Cenni di acquisizione dati e automatizzazione dei processi di misura
    Struttura del corso
    5 crediti consistenti in lezioni frontali ed esercitazioni. L’esame consiste in una prova orale e di una possibile tesina da realizzare in laboratorio.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale e di una possibile tesina da realizzare in laboratorio.

Metodi per la specifica e la verifica di processi di business (6 CFU)

  • Obiettivi formativi: Obiettivi:
    Il corso si pone l'obiettivo di illustrare i concetti principali e le
    problematiche inerenti la gestione di processi, intesi come flussi di
    lavoro (workflow) costruiti componendo certe attivita' atomiche, e di
    fornire una panoramica dei linguaggi, dei modelli concettuali e degli
    strumenti automatici basati su essi, che possono essere usati per
    affrontare le problematiche in maniera adeguata.
    Per realizzare tale obiettivo, il corso si propone di conciliare le
    tecniche di astrazione, con l'approccio strutturato e modulare e coi
    modelli operazionali propri della ricerca scientifica in ambito
    informatico, mostrando l'influenza esercitata dalle proprieta' di
    interesse ai fini della analisi e della verifica automatica sulla
    scelta dei linguaggi e modelli usati per la specifica e la
    progettazione di processi.
    Il percorso di apprendimento portera' gli studenti ad acquisire
    dimestichezza con i termini tecnici dell'area, con i diversi modelli
    per strutturare e comporre i processi in modo rigoroso, con le
    proprieta' logiche che questi modelli possono essere richiesti
    soddisfare e con le tecniche di analisi e verifica dei
    processi. Inoltre potranno sperimentare i concetti visti con strumenti
    automatici per progettare e analizzare processi.


    Syllabus:
    Introduzione alle problematiche relative alla gestione dei processi
    - Terminologia (business process, business process management,
    business process management system, business process model, process
    orchestration, business process lifecycle, workflow) e
    classificazione (orchestrazione vs coreografia, automazione,
    strutturazione)
    - Cenni sull'evoluzione dei sistemi di gestione di processi aziendali
    Modellazione di processi
    - Modelli concettuali e livelli di astrazione
    - Decomposizione funzionale e modularizzazione
    - Orchestrazione di processi
    - Proprieta' di interesse nella progettazione, analisi e verifica di
    processi basati su workflow
    - Pattern di orchestrazione (sequenza, split parallelo, split
    esclusivo, and-join, join esclusivo,...) e workflow strutturati
    - Modelli rigorosi per workflow: reti di Petri e workflow nets
    Strumenti automatici per la progettazione e analisi di workflow
    - sperimentazione su ambiente di progettazione di processi workflow
    con strumenti automatici per progettare, analizzare processi di workflow

    Esami:
    Il corso e' organizzato per una frequenza attiva e continua. L'esame comprende un progetto e una prova orale.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L'esame comprende un progetto e una prova orale.

Modelli di calcolo (9 CFU)

  • Obiettivi formativi: Obiettivi
    Vengono introdotti i principi della semantica operazionale, della semantica denotazionale e delle tecniche per metterle in relazione per un linguaggio imperativo e per un linguaggio funzionale di ordine superiore. Viene anche presentata la semantica operazionale e osservazionale di due calcoli per la descrizione di processi (CCS e pi-calcolo). Infine si esaminano i modelli operazionali con probabilità discrete e li si presentano dal punto di vista degli automi probabilistici.

    Syllabus
    1) Semantica operazionale e denotazionale di un semplice linguaggio imperativo (IMP)
    a. Introduzione e sistemi di prova con regole di inferenza
    b. Sintassi e semantica operazionale di IMP
    c. Tecniche di prova per induzione. (4h)
    d. Ordinamenti parziali completi
    e. Teorema del minimo punto fisso
    f. Segnature e algebre dei termini
    g. Semantica denotazionale di IMP
    h. Equivalenza tra semantica operazionale e denotazionale di IMP
    2) Semantica operazionale e denotazionale di un linguaggio funzionale higher order (HOL)
    a. Sintassi e semantica operazionale lazy di HOL
    b. Domini e costruzioni di domini
    c. Semantica denotazionale lazy di HOL
    d. Relazione tra semantica operazionale e denotazionale di HOL
    3) Sistemi di transizione e calcoli di processo per sistemi comunicanti mobili e probabilistici
    a. Sintassi e semantica operazionale di un calcolo di processi (CCS)
    b. Semantica osservazionale del CCS
    c. Logica di Hennessy-Milner
    d. Sintassi e semantica di un calcolo per processi mobili (pi-calculus)
    e. Modelli operazionali con probabilità discrete, processi di Markov
    f. Automi probabilistici (PA)
    g. Simulazione e bisimulazione di PA

    Struttura del corso
    9 crediti (4 su IMP, 2 su HOL e 3 sui calcoli di processo). L’esame finale consiste di una prova scritta e di una orale. La prova scritta finale può essere sostituita da due prove scritte da sostenere durante il corso.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame finale consiste di una prova scritta e di una orale. La prova scritta finale può essere sostituita da due prove scritte da sostenere durante il corso.

Prestazioni di reti multimediali (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale.

Problemi di sicurezza in applicazioni web (6 CFU)

  • Obiettivi formativi: 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
  • Modalità di verifica finale: Esame orale.

Programmazione avanzata (9 CFU)

  • Obiettivi formativi: 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

    Struttura del Corso
    9 crediti (3 su pragmatica dei linguaggi, 3 su metafore di programmazione avanzate, 3 sulla programmazione web). L’esame consiste nella preparazione di elaborato finale scritto, a soluzione di un problema complesso di programmazione.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste nella preparazione di elaborato finale scritto, a soluzione di un problema complesso di programmazione.

Propagazione e ottica applicata (6 CFU)

  • Obiettivi formativi: Obiettivi
    Il presente corso, articolato in tre parti mira a fornire i concetti fondamentali sulla natura e l’utilizzo dei campi elettromagnetici, che sono alla base delle telecomunicazioni wired e wireless. La parte sui fondamenti di ottica applicata fornirà i concetti e le nozioni basilari sulle onde luminose, la loro natura, la loro descrizione e le loro caratteristiche fisiche; ne illustrerà inoltre i principali settori di applicazione ingegneristica, con particolare riguardo agli aspetti di telecomunicazioni. La parte sui fondamenti di campi elettromagnetici e propagazione fornirà prima allo studente un'introduzione ai concetti specificamente connessi alla teoria dei campi elettromagnetici e sarà quindi incentrato sulla teoria della propagazione delle guide d'onda dielettriche e delle fibre ottiche. La parte sulle reti di comunicazione wireless approfondirà gli aspetti legati alle trasmissioni radio e cellulari, trattando le tematiche di livello fisico che risultano fondamentali nelle comunicazioni su reti wireless.

    Syllabus
    Gli argomenti trattati nel corso sono i seguenti:
     L’ottica dei raggi luminosi
     Equazione della lente e applicazioni
     Ottica matriciale
     Equazioni di Maxwell
     Onde piane
     La polarizzazione
     Interferenza e applicazioni
     Diffrazione e trasformata di Fourier spaziale
     Soluzione delle equazioni di Maxwell
     Linee di trasmissione
     Propagazione e riflessione di onde piane
     Guide d'onda dielettriche rettangolari
     Guide d'onda cilindriche: fibre ottiche singolo modo e multimodo
     Trasmissione di segnali radio
     Antenne
     Propagazione di onde radio
     Tecniche per la trasmissione
     Tecniche di multiplazione
     Reti cellulari
     Ottica quantistica
     Concetto di fotone
     Emissione e assorbimento
     I laser e le loro applicazioni
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L'esame consiste in una prova scritta e di una possibile discussione orale.

Sistemi distribuiti: paradigmi e modelli (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso affronta sistematicamente tutta una serie di argomenti legati ai modelli di programmazione per architetture parallele e/o distribuite. Il filo conduttore è rappresentato dai modelli di programmazione parallela strutturata, come quelli basati su algorithmic skeletons o su parallel design patterns. Questi modelli di programmazione vengono utilizzati per discutere:
    - l’idea generale di forme di parallelismo strutturate esposte al programmatore di applicazioni come meccanismi primitivi dell’ambiente di programmazione parallelo
    - le tecnologie ed i paradigmi che si possono utilizzare per implementare in modo efficiente forme di parallelismo strutturate su diversi tipi di architetture (hardware e software) che includono le architetture più diffuse al momento come reti di workstation e macchine multi/many core
    - una metodologia generale e modulare per la progettazione ed implementazione di applicazioni parallele a partire da un insieme di building block di cui si conoscano forma di parallelismo, prestazioni e caratteristiche di composizionalità.
    Il corso prevede una parte “teorica” e una parte di laboratorio che consisterà nella presentazione di un insieme di ambienti di programmazione parallela strutturati e di tecniche di implementazione (in aula) e la realizzazione di un semplice progetto (individuale) di una applicazione parallela o di un supporto per forme di parallelismo strutturate.

    Syllabus
    1. Modelli di programmazione parallela strutturati basati su algorithmic skeletons: potere espressivo, tipi di skeleton, modello di programmazione, composizione, semantica, parametri funzionali e non funzionali, tecniche di implementazione basate su process template e su macro data flow, modelli di prestazioni e tecniche di ottimizzazione.
    2. Implementazione di pattern paralleli: progettazione di template per macchine parallele/distribuite, tecniche particolari per architetture a memoria distribuita e a memoria comune, tecniche di trasformazione ed ottimizzazione, tecniche per il controllo delle caratteristiche non funzionali di computazioni parallele.
    3. Metodologia per lo sviluppo composizionale di applicazioni parallele: definizione dell’insieme dei building block, tecniche di progettazione strutturate, tecniche per il monitoraggio e per il controllo delle caratteristiche non funzionali.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste nella realizzazione di un progetto individuale seguito da una prova orale.

Sistemi embedded (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale e nella discussione di un semplice progetto assegnato allo studente.

Sistemi operativi distribuiti (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: La prova d'esame consiste in un orale con discussione di un progetto legato ad uno dei Sistemi Operativi Distribuiti presentati nel corso.

Sistemi peer to peer (6 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso introduce le principali metodologie e tecniche per la progettazione e la
    realizzazione di sistemi P2P. In particolare verranno introdotte le problematiche
    relative alla definizione di overlay P2P strutturati e non.
    Le tecniche introdotte verranno inoltre esemplificate con riferimento ad un insieme di
    applicazioni reali. Il corso infine prevede la presentazione di un insieme di strumenti
    per la simulazione e la realizzazione di sistemi P2P.

    Syllabus
    1. sistemi P2P: classificazione e caretteristiche generali
    2. overlay P2P non strutturati
    a. routing,
    b. analisi di reti non strutturate: Random Graphs, Power Law Graphs,
    c. Small World Networks, Scale Free Networks
    d. reti ibride: elezione di superpeers
    e. esempi
    3. overaly P2P strutturati: Distributed Hash Tables
    a. indicizzazione distribuita
    b. routing
    c. bilanciamento del Carico
    d. esempi
    e. Range Query su DHT: Skip-Graphs
    f. Proximity Aware Overlays: Internet Coordinate Systems
    4. Cooperative Content Distribution
    a. strategie di distribuzione dei contenuti
    b. strategie di collaborazione: elementi di teoria dei giochi
    c. compressione delle informazioni: network Coding, Bloom Filters
    d. esempi
    5. DHT in applicazioni reali
    6. Voice Over Peer to Peer
    7. Strumenti di simulazione e di supporto per reti P2P :

    Struttura del Corso
    6 crediti. L'esame consiste in una prova scritta o nello svolgimento di un progetto. La
    prova orale è obbligatoria in entrambe i casi.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L'esame consiste in una prova scritta o nello svolgimento di un progetto. La
    prova orale è obbligatoria in entrambe i casi.

Sistemi real-time (6 CFU)

  • Obiettivi formativi: 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.

  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale.

Tecniche di data mining (9 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova scritta, un progetto di data mining ed una prova orale.

Tecniche numeriche e applicazioni (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale.

Tollerenza ai guasti in sistemi distribuiti (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: 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.

Virtualizzazione dei sistemi (6 CFU)

  • Obiettivi formativi: 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.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consiste in una prova orale con discussione di un semplice progetto assegnato allo studente.