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: Università di Pisa
    Scuola Superiore S. Anna
  • 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
    Ambriola Vincenzo, PO, INF/01, 6 CFU
    Attardi Giuseppe, PO, INF/01, 9 CFU
    Brogi Antonio, PO, INF/01, 9 CFU
    Bruni Roberto, RU, INF/01, 6 CFU
    Danelutto Marco, PA, INF/01, 9 CFU
    Ferragina Paolo, PO, INF/01, 6 CFU
    Montanari Ugo, PO, INF/01, 6 CFU
    Vanneschi Marco, PO, INF/01, 6 CFU
    SCUOLA SUPERIORE S.ANNA
    Castoldi Piero, PA, ING-INF/03, 6 CFU
    Ciaramella Ernesto, PA, ING-INF/03, 6 CFU
    Di Natale Marco, PA, ING-INF/05, 6 CFU
    Di Pasquale Fabrizio, PA, ING-INF/03, 6 CFU
    Forestieri Enrico, PO, ING-INF/03, 6 CFU
    Prati Giancarlo, PO, ING-INF/03, 6 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. Tra le grandi imprese si segnalano Microsoft, Hewlett Packard, IBM, Selex Sistemi Integrati ed altre aziende del Gruppo Finmeccanica, Athos Origin, TXT e-solutions, Alcatel-Lucent, Marconi-Ericsson. 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 Centro di Eccellenza per l’Ingegneria dell’Informazione e della Comunicazione è 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.
  • 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 (60 CFU)

Insegnamento CFU
Esame a scelta 9
Sistemi distribuiti: paradigmi e modelli 9
Sistemi ad alte prestazioni e piattaforme abilitanti 6
Reti di accesso, metropolitane e di dorsale 12
Gestione e configurazione delle reti 9
Programmazione avanzata 9
Algorithm engineering 6

Secondo anno (60 CFU)

Insegnamento CFU
Modelli di calcolo 9
Teoria e tecnica delle comunicazioni ottiche 12
Tesi di laurea 15
Ingegneria dei servizi software 9
Gruppo: GR9 9
Gruppo: GR8 6

Gruppi per attività a scelta nel CDS Informatica e networking

Gruppo GR8 (6 CFU)

  • Descrizione: Complementari da 6 CFU da scegliere a seconda del piano studio
  • Note: Piano di studio "Distributed Systems and Applications": scegliere una attivita' nel gruppo GR6i

    Piano di studio "Distributed Systems and Infrastructures": scegliere una attivita' nel gruppo GR6c

    Piano di studio "Distributed Systems and Architectures": scegliere una attivita' nel gruppo GR6a

Gruppo GR6c (6 CFU)

  • Descrizione: Complementari da 6 CFU di comunicazioni

Attività contenute nel gruppo

Nome CFU
Ambienti virtuali su rete 6
Laboratorio di sistemi fotonici 6
Sistemi embedded 6
Sistemi real-time 6
Teoria dell'affidabilità 6

Gruppo GR6i (6 CFU)

  • Descrizione: Complementari da 6 CFU di informatica

Attività contenute nel gruppo

Nome CFU
Algoritmi paralleli e distribuiti 6
Applicazioni parallele e distribuite 6
Basi di dati distribuite e parallele 6
Complementi di piattaforme abilitanti distribuite 6
Componenti distribuite 6
Information retrieval 6
Laboratorio di progettazione di software distribuito 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
Programmazione concorrente 6
Sistemi operativi distribuiti 6
Sistemi peer to peer 6
Tollerenza ai guasti in sistemi distribuiti 6
Virtualizzazione dei sistemi: metodologie, progetto e utilizzo 6

Gruppo GR6a (6 CFU)

  • Descrizione: Complementari da 6 CFU di ing-comunicazioni

Attività contenute nel gruppo

Nome CFU
Architetture di commutazione ed elaborazione dati a pacchetto 6
Aspetti architetturali e di progetto di sistemi multimediali 6
Prestazioni di reti multimediali 6

Gruppo GR9 (9 CFU)

  • Descrizione: Complementari da 9 CFU da scegliere a seconda del piano di studio
  • Note: Piano di studio "Distributed Systems and Applications": scegliere una attivita' nel gruppo GR9i

    Piano di studio "Distributed Systems and Infrastructures": scegliere una attivita' nel gruppo GR9c

    Piano di studio "Distributed Systems and Architectures": scegliere una attivita' nel gruppo GR9a

Gruppo GR9c (9 CFU)

  • Descrizione: Complementari da 9 CFU di comunicazioni

Attività contenute nel gruppo

Nome CFU
Amplificazione ottica e sensoristica 9
Commutazione fotonica 9
Propagazione ed ottica applicata 9
Reti e tecnologie per le telecomunicazioni 9

Gruppo GR9i (9 CFU)

  • Descrizione: Complementari da 9 CFU di informatica

Attività contenute nel gruppo

Nome CFU
Metodi di ottimizzazione delle reti 9
Paradigmi ed architetture avanzate 9
Sicurezza delle reti 9
Strumenti di programmazione per sistemi paralleli e distribuiti 9
Tecniche di data mining 9
Tecniche numeriche e applicazioni 9
Teoria dell'informazione e della trasmissione 9

Gruppo GR9a (9 CFU)

  • Descrizione: Complementari da 9 CFU di ing-comunicazioni

Attività contenute nel gruppo

Nome CFU
Architetture, componenti e servizi di rete 9
Aspetti prestazionali e di progetto delle reti wireless 9
Ingegneria del teletraffico 9

Attività formative definite nel CDS Informatica e networking

Algorithm engineering (6 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
    b. Data processing: randomized, adaptive, self-adjusting
    c. Data indexing and searching: strings, geometric points, trees and graphs
    2) 2-level memory model
    a. Definition and properties
    b. Data sorting and permuting
    c. Data indexing and searching: strings and multi-dimensional data
    d. Data sketching: bloom filters and count-min sketch
    3) Cache-oblivious model
    a. Definition and properties
    b. Matrix multiplication
    c. VEB layout
    d. Tree mapping

    Struttura del corso
    6 crediti. L’esame consiste di una prova scritta e di 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 di una prova scritta e di una prova orale.

Algoritmi paralleli e distribuiti (6 CFU)

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

    Struttura del corso
    6 crediti. L’esame consiste in una prova scritta che comprende il progetto di algoritmi e domande teoriche.
  • 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 che comprende il progetto di algoritmi e domande teoriche.

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.

Applicazioni parallele e distribuite (6 CFU)

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

    Struttura del corso
    3 CFU di lezione frontale + 3 CFU di laboratorio. L'esame consiste in una prova orale e nella discussione di un progetto sviluppato 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 consiste in una prova orale e nella discussione di un progetto sviluppato durante il corso.

Architetture, componenti e servizi di rete (9 CFU)

  • Obiettivi formativi: Obiettivi
    l modulo 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 alle modalità di funzionamento del TCP e all'implementazione in ambiente linux di un software router.

    Syllabus
    1) IPv6 e MIP
    a. Caratteristiche generali di IPv6 e formato dell'header
    b. Transizione IPv4-IPv6
    c. 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. UDP
    b. TCP
    c. DCCP
    4) Qualità del servizio
    a. Politiche per la gestione delle code
    b. Architettura Intserv
    c. Architettura DiffServ
    5) Architetture P2P
    a. Descrizione generale dell'architettura
    b. Classificazione delle architetture P2P ed esempi

    6) Laboratorio
    a. Congestion Control nel TCP
    b. Sofware router in ambiente Linux

    Struttura del corso
    9 crediti (6 architetturali e 3 di laboratorio). L’esame consiste in una prova orale con domande relative sia alla parte teorica che all'esperienza 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 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 packet switching, presentandone gli schemi principali con relativa analisi delle prestazioni e problematiche. Di seguito verrà affrontato il tema dell’elaborazione dei pacchetti, presentando i più noti algoritmi di lookup e di classificazione attualmente in uso. Infine verrà trattato il tema del riconoscimento di pattern di dati, attraverso l’uso di tecniche probabilistiche (mediante l’uso di strutture dati evolute quali Bloom Filter) e deterministiche (mediante l’uso di automi a stati finiti deterministici).

    Syllabus
    1) Generalità sui sistemi di commutazione
    a. Commutazione di circuito
    b. Commutazione di pacchetto
    2) Architetture di commutazione di pacchetto
    a. Output Queued Switches (OQ)
    i. Ritardo medio e massimo throughput
    ii. Output link scheduling
    b. Input Queued Switches (IQ)
    i. Switching fabrics, crossbar.
    ii. Head Of the Line blocking (HOL)
    iii. Scheduling (MWM, MSM, etc.)
    c. Combined Input-Output queueing (CIOQ)
    i. Emulazione di OQ
    3) Packet Processing
    a. Exact/Prefix match lookup
    i. Unibit e Multibit Trie
    ii. Lulea-Compressed Tries
    iii. Tree bitmap
    b. Classificazione
    i. Schemi mono/multi dimensionali
    c. Pattern Matching
    i. Tecniche stocastiche
    ii. Tecniche deterministiche

    Struttura del corso
    6 crediti. L’esame consiste in una prova orale e include la 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 include la discussione di un semplice progetto assegnato allo studente.

Aspetti architetturali e di progetto di sistemi multimediali (6 CFU)

  • Obiettivi formativi: relativi problemi legati alla qualità del servizio ed alla sicurezza. La presentazione delle architetture MoIP è orientata ad evidenziare le differenze con la rete telefonica classica e fra le diverse soluzioni (SIP e H.323) proposte per questi sistemi. Il corso si prefigge, inoltre, l’obiettivo di presentare le diverse soluzioni e tecniche di progettazione a cui si può fare riferimento per garantire ai sistemi MoIP un’affidabilità ed una qualità del servizio percepita dall’utente finale almeno paragonabile a quelle offerte dalla rete telefonica, e per ridurre i rischi legati alle diverse tipologie di attacchi informatici, specifici di questi sistemi.

    Syllabus
    1) Offerta di servizi telefonici su reti IP
    a. Struttura della rete telefonica
    b. Evoluzione verso servizi Multimedia over IP (MoIP)
    c. Architettura ITU-T H.323
    d. Architettura SIP
    e. Elementi architetturali per servizi di Telefonia su IP
    f. Architettura IP Multimedia Subsystem (IMS)
    2) Aspetti progettuali dei sistemi MoIP
    a. Definizioni di Qualità del Servizio in sistemi MoIP
    b. Tecniche per la valutazione della QoS
    c. Tecniche per la progettazione di sistemi a QoS garantita
    d. Problemi di sicurezza nei sistemi MoIP
    e. Soluzioni per i problemi di sicurezza in sistemi MoIP
    Struttura del corso
    6 crediti (4 sugli aspetti architetturali, 2 sugli aspetti progettuali di sistemi MoIP). 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.

Aspetti prestazionali e di progetto delle reti wireless (9 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 e MAN, 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) Reti radiomobili
    a. Organizzazione generale di una rete radiomobile,
    b. Architettura di una rete GSM
    c. Architettura di una rete UMTS
    d. Gestione della mobilità e delle sessioni nelle reti cellulari
    2) 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. Sicurezza nelle reti IEEE 802.11
    3) Reti WiMAX
    a. Architettura di una rete WiMAX
    b. Lo standard IEEE 802.16
    4) Wireless Mesh Networks (WMN)
    a. Protocolli MAC
    b. Capacità
    c. Protocolli di Routing
    d. Protocolli di Trasporto
    e. Aspetti di Fairness
    f. Aspetti di QoS, Sicurezza e Management
    g. Il gruppo di lavoro IEEE 802.11s
    5) Attività di Laboratorio
    a. Aspetti di progettazione delle reti cellulari
    b. Aspetti prestazionali e di progetto delle reti IEEE 802.11
    c. Aspetti prestazionali e di progetto delle reti WiMAX
    d. Tecniche per il miglioramento delle prestazioni di WMN

    Struttura del corso
    9 crediti (6 su architetture e protocolli e 3 per le attività di laboratorio). 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.

Basi di dati distribuite e parallele (6 CFU)

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

    Struttura del corso
    6 crediti (2 su architettura e progettazione, 1 sulle interrogazioni, 2 sulle transazioni e 1 sulle BD parallele). 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.

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.

Complementi di piattaforme abilitanti distribuite (6 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso approfondisce e sviluppa, rispetto ai corsi fondamentali, lo studio delle problematiche legate alle piattaforme abilitanti distribuite, quali Grid e Cloud. Ciò avviene anche attraverso l'esame delle soluzioni allo stato dell'arte, l'analisi nel dettaglio della loro tecnologia e l'utilizzo pratico di alcune piattaforme abilitanti distribuite di ultima generazione.

    Syllabus
    Introduzione al middleware distribuito
    Approfondimento dei concetti e tecniche di grid computing
    Componenti e soluzioni per il grid computing
    Virtualizzazione delle risorse
    Tecnologie di virtualizzazione
    Approfondimento dei concetti e tecniche di cloud computing
    Esempi pratici di cloud computing
    Strumenti di sviluppo applicazioni per grid e cloud

    Struttura del corso
    9 CFU distribuiti in due moduli. Il primo modulo (6 CFU) comprende lo studio delle piattaforme grid e cloud, il secondo modulo (3 CFU) prevede esercizi pratici per lo sviluppo di applicazioni e utilizzo delle piattaforme.

    Modalità di verifica
    L'esame consiste in una prova orale sulle tematiche del corso, con discussione di un progetto realizzato dallo 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 sulle tematiche del corso, con discussione di un progetto realizzato dallo studente.

Componenti distribuite (6 CFU)

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

Esame a scelta (9 CFU)

  • Obiettivi formativi: Fermo restando che la scelta di questo insegnamento può essere effettuta 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 negli insegnamenti dei gruppi GR9a, GR9c, GR9i.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: Dipendente dall'esame scelto.

Gestione e configurazione delle reti (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso introduce i fondamenti della gestione di rete e dei servizi in reti metropolitane e core, passando in rassegna i relativi protocolli e tecniche. Si occupa inoltre dei problemi di ingegneria del traffico nelle reti di trasporto ottiche che supportano il protocollo Internet (IP). Infine applica i concetti studiati agli ambienti di simulazione e a nodi di rete reali e a tipici scenari di rete.

    Syllabus
    1) Sistemi di gestione di rete
    a. Fondamenti di gestione di rete
    b. Gestione di reti IP
    c. Gestione di reti di trasporto
    d. Gestione di applicazioni distribuite
    2) Laboratorio di ingegneria del traffico
    a. Concetti e terminologia di base su Internet (IP, livello ottico)
    b. Standard internazionali (OIF, ITU, IETF)
    c. Metodi per il progetto di reti di telecomunicazioni
    d. Robustezza ai guasti in reti ottiche IP su WDM
    e. Teoria della disponibilità e affidabilità
    f. Infrastrutture di rete per grid computing
    g. Metrologia di rete orientata alle applicazioni
    h. Applicazione sperimentale dei concetti
    3) Laboratorio di software
    a. Modellazione e simulazione di rete: introduzione ad OPNET
    b. Modellazione di processi con OPNET + esercizi
    c. Variabili statistiche, attributi + esercizi
    d. Processi dinamici + esercizi
    e. Simulazione di una rete semplice
    f. Router commerciali: architetture e configurazioni
    g. Valutazioni sperimentali dei protocolli OSPF, MPLS ed RSVP
    h. Schemi di ripristino in reti MPLS
    i. Multiplatori add/drop: architetture e configurazioni

    Struttura del corso
    9 crediti di lezioni frontali ed esercitazioni di laboratorio. L’esame consiste in una prova orale e di una possibile 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 di una possibile discussione di un semplice progetto assegnato allo studente.

Information retrieval (6 CFU)

  • Obiettivi formativi: 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.
  • 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 eventuale prova scritta o progetto.

Ingegneria dei servizi software (9 CFU)

  • Obiettivi formativi: Obiettivi
    L’obiettivo del corso è presentare gli aspetti principali della progettazione e della realizzazione dei servizi software. Dopo avere introdotto gli standard attualmente adottati per la realizzazione di servizi Web, il corso verte sulle caratteristiche della architetture orientate ai servizi e analizza le tecniche utilizzate per realizzare applicazioni individuando, componendo e adattando servizi esistenti. Viene quindi illustrato l’utilizzo di linguaggi che permettono sia la specifica che l’implementazione di processi aziendali (“business processes”) mediante flussi di lavoro. Vengono poi descritte le tecniche utilizzate per garantire proprietà non funzionali dei servizi, quali qualità del servizio e aspetti di sicurezza. L’ultima parte del corso è dedicata a descrivere il ruolo dell’ingegneria dei servizi nel contesto più generale della economia basata sui servizi (e della cosiddetta “scienza dei servizi”), illustrando le relazioni tra aspetti ingegneristici e aspetti economici dei servizi (“business models”, contratti di servizio) e l’importanza della “separation of concerns” nella progettazione dei servizi.

    Syllabus
    1. Protocolli e architetture dei servizi software
    a. Standard di base dei servizi Web
    b. Architetture orientate ai servizi

    2. Metodologie di progettazione e realizzazione di servizi software
    a. Individuazione, composizione e adattamento di servizi esistenti
    b. Definizione e implementazione di processi aziendali (“business processes”) mediante flussi di lavoro
    c. Linguaggi per la specifica e l’esecuzione di business processes
    d. Trattamento e analisi di proprietà non funzionali dei servizi (qualità del servizio, sicurezza)

    3. Ruolo dell’ingegneria dei servizi nel contesto dell’economia basata sui servizi
    a. relazioni tra aspetti ingegneristici e aspetti economici dei servizi (business models, contratti di servizio)
    b. aspetti della “separation of concerns” nella progettazione dei servizi

    Struttura del corso
    Il corso è articolato su 9 crediti, 6 dei quali dedicati agli aspetti di progettazione e realizzazione dei servizi software e 3 al ruolo dell’ingegneria dei servizi nel contesto dell’economia basata sui servizi. L’esame prevede una prova scritta o la realizzazione di 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 prevede una prova scritta o 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.

    9 crediti (6 architetturali e 3 di laboratorio). 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 Matlab ed una prova orale.

Laboratorio di progettazione di software distribuito (6 CFU)

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

    Struttura del corso
    6 crediti. L’esame consiste in un colloquio individuale con discussione di un progetto realizzato 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 consiste in un colloquio individuale con discussione di un progetto realizzato durante il corso.

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 di ottimizzazione delle reti (9 CFU)

  • Obiettivi formativi: 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.
    Struttura del corso
    9 crediti (1/2 sui problemi di base, 5/4 su modelli e metodi per problemi “NP-Hard” e 3 su rilevanti applicazioni). L’esame consiste in una prova scritta seguita da 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 seguita da una prova orale.

Metodi formali per la sicurezza (6 CFU)

  • Obiettivi formativi: Obiettivi
    introduzione ad alcune nozioni e problemi relativi alla sicurezza delle applicazioni di rete e presentazione di alcuni formalismi e tecniche per affrontarli.

    Syllabus
    - Introduzione alla sicurezza
    - Modelli per la sicurezza
    - Protocolli crittografici:
    - descrizione formale
    - proprietà di sicurezza
    - tecniche di analisi statiche e dinamiche
    - Language-based security:
    - problemi e proprietà
    - formalismi, metodi e tecniche
    - history-based security
    - sicurezza dei servizi web e della loro orchestrazione

    Struttura del corso: 6 CFU. Esame con prova orale.
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: Esame con prova orale.

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.

Metodi per la verifica del software (6 CFU)

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

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.

Modelli di costo e progettazione di supporti (6 CFU)

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

Paradigmi ed architetture avanzate (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso tratta di modelli architettuali e di studi di casi di architetture di calcolo avanzate, 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, anche 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

    Struttura del corso
    9 CFU (6 CFU sulle parti 1 e 2, 3 CFU per lo studio di casi con attività di laboratorio). L’esame consiste in una prova scritta 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 ed una prova orale.

Pervasive computing (6 CFU)

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

  • 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.

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.

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.

Programmazione concorrente (6 CFU)

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

Propagazione ed ottica applicata (9 CFU)

  • Obiettivi formativi: Propagazione ed ottica applicata

    Il presente corso, articolato in tre moduli, fornirà i fondamenti di campi elettromagnetici , ed esaminerà in dettaglio le implicazioni nell’ambito dell’ottica applicata e della propagazione guidata, in fibra o in guida dielettrica, così come nell’ambito della di propagazione wireless.
    Più in dettaglio, il modulo di insegnamento sui fondamenti di campi elettromagnetici e propagazione offrirà allo studente un’introduzione iniziale ai concetti fondamentali connessi alla teoria dei campi elettromagnetici e sarà quindi incentrato sulla teoria delle linee di trasmissione, la propagazione delle guide d’onda dielettriche, gli amplificatori ed i laser in fibra o in guida d’onda. Una parte non trascurabile sarà dedicata al design di specifiche componenti ottiche in fibra ed in guida, fornendo elementi di analisi e la logica sottostante al comportamento dei dispositivi ottici in modo tale da rendere lo studente capace di applicare indipendentemente i concetti fondamentali al design di dispositivi reali di interesse pratico; verranno inoltre descritti metodi numerici per l’analisi modale, basati sugli elementi finiti, così come strumenti di modellazione statica e dinamica di amplificatori ottici in fibra ed in guida.
    Il modulo di insegnamento 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, ed illustrerà inoltre i principali settori di applicazione dell’ottica.
    Il modulo di insegnamento sulle reti di comunicazione wireless approfondirà in particolare gli aspetti legati alla trasmissione wireless, e tratterà i fondamenti, le tecnologie utilizzate ed i protocolli esistenti nelle comunicazioni su reti wireless.

    Gli argomenti trattati nel corso, suddivisi in aree tematiche, sono:

    Campi elettromagnetici e propagazione

    - Equazioni di Maxwell
    - Linee di trasmissione
    - Propagazione e riflessione di onde piane
    - Guide d’onda dielettriche rettangolari
    - Guide d’onda cilindriche: le fibre ottiche
    - Il metodo agli elementi finiti per l’analisi modale e la propagazione in guida d’onda
    - Amplificatori ottici e laser in fibra ottica
    - Amplificatori ottici e laser integrati in guida d’onda


    Fondamenti di ottica applicata

    - Ottica geometrica e l’ottica dei raggi luminosi
    - Ottica matriciale
    - Equazioni di Maxwell in ottica
    - Il fenomeno della polarizzazione
    - Interferenza e diffrazione
    - Ottica quantistica
    - I laser e le loro applicazioni

    Comunicazioni wireless

    - Introduzione alla trasmissione wireless
    - Nozioni fondamentali sulle reti wireless

    Struttura del corso

    9 crediti consistenti in lezioni frontali ed esercitazioni. L’esame consiste in una prova orale e di una possibile 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 di una possibile discussione di un semplice progetto assegnato allo studente.

Reti di accesso, metropolitane e di dorsale (12 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso introduce i fondamenti dei processi stocastici e teoria dei segnali avanzata applicata alla stime e i fondamenti di teoria delle code. Il corso coprirà anche le tecnologie di rete wireless e i relativi protocolli. Infine presenterà le principali architetture per i segmenti di accesso, metropolitani e di core.

    Syllabus
    1) Processi stocastici e teoria delle code
    a. Concetti generali
    b. Percorsi casuali e altre applicazioni
    c. Rappresentazione spettrale
    d. Stima dello spettro
    e. Catene e processi di Markov
    f. Teoria delle reti elementare
    g. Teoria delle reti intermedia
    2) Reti di comunicazione senza fili
    a. Introduzione alle trasmissioni e alle reti senza fili
    b. Protocolli per reti senza fili
    c. Reti CDMA
    d. IEEE 802.11 (WiFi)
    e. IEEE 802.16 (WiMax)
    f. Reti senza fili magliate
    g. Reti senza fili di sensori
    3) Progetto di reti
    a. Gerarchia di rete
    b. Segmento di accesso
    c. Segmento metropolitano
    d. Segmento di core
    e. Architetture future

    Struttura del corso
    12 crediti consistenti in lezioni frontali ed esercitazioni. L’esame consiste in una prova orale e di una possibile 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 di una possibile discussione di un semplice progetto assegnato allo studente.

Reti e tecnologie per le telecomunicazioni (9 CFU)

  • Obiettivi formativi: Obiettivi
    L’obiettivo del corso è di fornire allo studente un’ampia panoramica dell’architettura e dei protocolli utilizzati nelle reti di telecomunicazione e delle tecnologie a livello fisico per trasmettere i dati. Inoltre viene fornita un’introduzione sugli strumenti utilizzati per la progettazione delle reti di telecomunicazione. Il corso è diviso in tre moduli. Il primo modulo riguardante le reti di telecomunicazione introduce i concetti fondamentali dell’interconnessione in rete di dispositivi. Quindi, il secondo modulo riguardante campi elettromagnetici e propagazione tratta in dettaglio lo strato fisico delle reti e fornisce le basi di propagazione guidata e non e di trasmissione dati. Infine, il terzo modulo riguardante l’ottimizzazione delle reti idi telecomunicazione introduce gli strumenti utilizzati nella modellazione ed ottimizzazione delle reti di telecomunicazione.

    Syllabus
    1) Reti di Telecomunicazione
    a. Introduzione alle reti di telecomunicazione
    b. Commutazione a pacchetto ed a circuito
    c. Livelli protocollari e protocolli
    d. Mezzi di trasmissione
    e. Il livello fisico
    f. I protocolli di livello 2, livello 3 e livello 4
    g. MPLS, VLAN, VPN
    h. Introduzione alla Qualità del Servizio (QoS) ed all’ instradamento ed al controllo di ammissione basati sulla QoS
    i. Codifica vocale, Skype
    2) Campi elettromagnetici e propagazione
    a. Equazioni di Maxwell
    b. Linee di trasmissione
    c. Propagazione e riflessione di onde piane
    d. Guide d’onda dielettriche rettangolari
    e. Guide d’onda cilindriche: le fibre ottiche
    f. Il metodo agli elementi finiti per l’analisi modale e la propagazione in guida d’onda
    g. Amplificatori ottici e laser in fibra ottica
    h. Amplificatori ottici e laser integrati in guida d’onda
    3) Ottimizzazione delle reti di telecomunicazione
    a. Introduzione alla programmazione lineare
    b. Introduzione alla teoria dei grafi
    c. Introduzione all’instradamento ed all’assegnazione delle lunghezze d’onda
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: L’esame consta di un colloquio orale sui temi trattati a lezione ed un’eventuale discussione di una tesina assegnata allo studente.

Sicurezza delle reti (9 CFU)

  • Obiettivi formativi: Il corso introduce i principali concetti e gli strumenti metodologi per analizzare un sistema
    informatico dal punto di vista della sicurezza e per aumentare il livello di sicurezza offerto dal
    sistema stesso. Il corso adotta un approccio sistemico alla sicurezza vista come una proprietà del
    sistema informatico complessivo a partire dal livello del sistema operativo.
    1. Concetti di Base
    a. Attributi di sicurezza e relazione con altri attributi di un sistema
    i. Confidenzialità
    ii. Integrità
    iii. Disponibilità
    b. Vulnerabilità
    c. Minaccia
    d. Attacco
    i. Attacchi elementari
    ii. Attacchi complessi
    e. Contromisura
    f. Rischio
    2. Analisi delle Vulnerabilità
    3. Analisi delle Minacce
    4. Analisi delle Contromisure
    a. Contromisure a livello hardware/firmware
    b. Contromisure a livello di nucleo del sistema operativo
    c. Contromisure a livello delle applicazioni
    d. Contromisure a livello di rete
    e. Sviluppo di software sicuro
    f. Strumenti per la rilevazione delle intrusioni
    i. Firewall
    ii. Intrusion Detection System
    iii. Network Intrusion Detection System
    g. Politica di Sicurezza
    5. Analisi del Rischio
    a. Approcci qualitativi
    b. Approcci quantitativi
    c. Approcci ibridi
  • Propedeuticità: Le propedeuticità ed eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di Studi.
  • Modalità di verifica finale: Prova orale.

Sistemi ad alte prestazioni e piattaforme abilitanti (6 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso tratta delle architetture di sistemi ad alte prestazioni secondo diversi modelli ed approcci, in particolare sistemi multiprocessor a memoria condivisa ed a memoria distribuita, cluster, multi cluster, grid, cloud, farms, data centre. Tali sistemi vengono studiati in termini di modello architetturale, supporti statici e dinamici a modelli computazionali e di programmazione parallela e distribuita, valutazione delle prestazioni, capacità di essere combinati in piattaforme abilitanti complesse ed eterogenee, fornendo esempi di campi di applicazione. Vengono approfondite le caratteristiche e le tendenze tecnologiche, come l’utilizzo di tecnologie multicore/GPU e reti ad alta velocità.

    Syllabus
    1. Modelli architetturali generali di sistemi a moduli cooperanti
    2. Analisi e valutazione delle prestazioni di sistemi paralleli e distribuiti
    3. Architetture a memoria condivisa: SMP, NUMA, COMA
    4. Architetture a memoria distribuita ad accoppiamento stretto e lasco
    5. Cluster, multicluster, farms, grid, cloud, data centre
    6. Caratteristiche di compilatori e supporti a tempo di esecuzione
    7. Piattaforme complesse eterogenee
    8. Impatto tecnologico su moduli di elaborazione e di comunicazione e su piattaforme

    Struttura del corso
    6 CFU. L’esame consiste in una prova scritta 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 ed una prova orale.

Sistemi distribuiti: paradigmi e modelli (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso tratta dei paradigmi e dei modelli di programmazione utilizzati per sistemi distribuiti e paralleli sia a livello delle applicazioni che degli strumenti di supporto. Partendo da modelli di programmazione strutturata (algorithmical skeleton, parallel design pattern) o basati sul concetto di componente o di servizio, verranno presi in considerazione sia i problemi relativi agli aspetti funzionali (potere espressivo, modularità, riuso) che quelli relativi agli aspetti non funzionali (performance, fault tolerance, adattività). Il modulo di laboratorio permetterà di sperimentare diversi approcci e soluzioni sulle architetture distribuite maggiormente diffuse, come reti di workstation, griglie computazionali e cloud.

    Syllabus
    1) Paradigmi per la programmazione parallela e distribuita
    a. Programmazione strutturata
    b. Componenti
    c. Workflow
    2) Modelli implementativi
    a. Posix-TCP/IP-SSH/SCP
    b. RPC/RMI
    c. Distributed Virtual Shared Memory
    d. Parallel Virtual File Systems
    e. Sistemi “Middleware”
    3) Laboratorio
    a. Ambienti a skeleton
    b. Ambienti a componenti
    c. Implementazione di semplici supporti run time
    d. Implementazione di semplici applicazioni

    Struttura del corso
    9 crediti (3 sui paradigmi, 3 sui modelli implementativi e 3 di (preparazione alle attività di) laboratorio). 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.

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.

Strumenti di programmazione per sistemi paralleli e distribuiti (9 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso tratta della progettazione,valutazione e utilizzo di strumenti e ambienti di programmazione per applicazioni di sistemi paralleli e distribuiti. I paradigmi di programmazione, e relativi modelli di costo, riguardano le computazioni ad alte prestazioni di tipo stream- e data-parallel, distributed shared memory, programmazione adattiva e context-aware, programmazione ad eventi ad alte prestazioni, programmazione real-time, programmazione di politiche di tolleranza ai guasti, ed altri. 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 e data-parallel
    2. Distributed shared memory
    3. Programmazione adattiva e context-aware
    4. Programmazione ad eventi ad alte prestazioni
    5. Programmazione real-time
    6. Programmazione di politiche di tolleranza ai guasti,
    7. Ambienti e strumenti di sviluppo
    8. Supporti a tempo di esecuzione
    9. Studi di casi

    Struttura del corso
    9 CFU (6 sulla metodologia, 3 su studi di casi e attività di laboratorio). L’esame consiste in una prova scritta 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 ed 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 (9 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

    Struttura del corso
    9 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.

Teoria dell'affidabilità (6 CFU)

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

Teoria dell'informazione e della trasmissione (9 CFU)

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

Teoria e tecnica delle comunicazioni ottiche (12 CFU)

  • Obiettivi formativi: Obiettivi
    Il corso introduce gli studenti ai principi fondamentali della teoria della comunicazione e della trasmissione con particolare enfasi sulle caratteristiche spettrali dei segnali e sulle prestazioni e complessità dei sistemi ottici. Vengono illustrati i più comuni effetti trasmissivi che devono essere presi in considerazione nella progettazione di moderni sistemi ottici ad alta capacità e vengono introdotti i fondamenti della modulazione e demodulazione ottica. Vengono altresì analizzate le strutture di trasmettitori e ricevitori ottici ad alte prestazioni e le loro proprietà rispetto al rumore.
    Programma
    1. Teoria della trasmissione numerica
    a. Trasmissione numerica su canali gaussiani
    b. Progetto di sistema per canali limitati in banda
    c. Equalizzazione adattativa
    d. Codifica di canale e di linea
    2. Progetto di sistemi ottici
    a. Amplificazione e rumore ottico
    b. Propagazione su fibra ottica
    c. Effetti trasmissivi lineari e non lineari
    3. Fondamenti di comunicazione ottica
    a. Trasmettitori ottici e formati di modulazione
    b. Impatto degli effetti lineari e non lineari nelle fibre ottiche
    c. Ricevitori ottici e rumore
    Struttura del corso
    12 crediti consistenti in lezioni frontali ed esercitazioni. 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.

Tesi di laurea (15 CFU)

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

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: metodologie, progetto e utilizzo (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.