Informatica e networking

Università degli Studi di Pisa
A Pisa

Chiedi il prezzo
Vuoi parlare del corso con un consulente?
Confronta questo corso con altri simili
Leggi tutto

Informazione importanti

  • Laurea
  • Pisa
Descrizione

Il Corso di Laurea Magistrale in Informatica e Networking (Computer Science and Networking) è 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.
Recentemente il mondo della ricerca e dell'industria 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, motori di ricerca, sistemi real-time e mission-critical, gestione di emergenze e disastri, ubiquitous health care, urban sensors, gestione delle fonti energetiche, e molte altre ancora.
A questo scopo, i laureati possiederanno profonde conoscenze informatiche e di comunicazioni 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 strumenti di programmazione e sviluppo applicazioni, di analisi, progettazione e valutazione di sistemi e...

Informazione importanti
Sedi

Dove e quando

Inizio Luogo
Consultare
Pisa
Lungarno Antonio Pacinotti, 43 , 56122, Pisa, Italia
Visualizza mappa

Opinioni

Non ci sono ancora opinioni su questo corso

Cosa impari in questo corso?

Networking

Programma

  • High Performance Computing (9 cfu)

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

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

  • Programmazione avanzata (9 cfu)

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

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


  • Ingegneria del teletraffico (9 cfu)

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

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

  • Algorithm engineering (9 cfu)

    • Obiettivi
      In questo corso studieremo, progetteremo e analizzeremo (con modelli teorici e attraverso risultati sperimentali) soluzioni algoritmiche e strutture dati avanzate per la risoluzione efficiente di problemi combinatori che coinvolgono vari tipi di dato— quali interi, stringhe, punti (geometrici), alberi, grafi. Il progetto interesserà alcuni modelli di calcolo— RAM, 2-level memory, cache-oblivious, streaming— al fine di ottenere soluzioni algoritmiche le cui valutazioni teoriche ben riflettono le loro prestazioni reali, poiché tengono conto delle caratteristiche architetturali e della gerarchia di memoria dei moderni PC.
      Ogni lezione seguirà un approccio problem-driven che inizia considerando un problema reale, lo astrae in modo combinatorio, e poi procede al progetto e analisi di soluzioni algoritmiche tese a minimizzare l’uso di alcune risorse computazionali quali: tempo, spazio, communicazione, I/O, etc. Alcune soluzioni viste in classe saranno discusse anche a livello sperimentale al fine di introdurre degli strumenti appropriati per l’ingegnerizzazione e il tuning del codice.
      Syllabus
      1) RAM model
      a. Data compression: Huffman, arithmetic, lz77, lz78, MTF, RLE, bzip, front coding
      b. Data indexing and searching: integers (VEB and x/y fast trie), strings (trie, patricia trie, suffix tree, suffix array), trees (ternary search trees).
      c. Hashing: Universal, Perfect, Cuckoo, minimal ordered perfect.
      d. Randomized data structures: Treaps, Skip lists, Bloom filter, count min-sketch.
      e. Compressed data structures for sequences, trees and graphs.

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

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

      Esame scritto e orale
  • Gestione e configurazione delle reti (9 cfu)

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

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

      Struttura del corso
      9 crediti di lezioni frontali ed esercitazioni di laboratorio.
  • Fondamenti di segnali, sistemi e reti (12 cfu)

    • Obiettivi
      Il corso introduce i fondamenti di teoria dei segnali, dei processi stocastici, i fondamenti di teoria delle code alcuni elementi di base dell’elettromagnetismo e alcuni strumenti di analisi matematica. Il corso presenterà anche le principali architetture per i segmenti di accesso, metropolitani e di core.

      Syllabus
      1) Teoria dei segnali, complementi di matematiche
      a. Segnali continui e discreti a energia finita e potenza finita
      b. Segnali periodici
      c. Sistemi lineari tempo invarianti
      d. Descrizione dei segnali e dei sistemi nelle frequenze
      e. Strumenti avanzati di analisi matematica
      2) Processi stocastici e teoria delle code
      a. Concetti generali
      b. Probabilità e variabili casuali
      c. Processi stocastici
      d. Catene e processi di Markov
      e. Elementi di teoria delle code
      3) Progetto di reti
      a. Gerarchia di rete
      b. Segmento di accesso
      c. Segmento metropolitano
      d. Segmento di core
      e. Architetture future
  • Ingegneria dei servizi software (9 cfu)

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

      Syllabus
      1. Standard fondamentali dei servizi Web
      Standard utilizzati per lo scambio di messaggi, per la decrizione dei servizi e per la pubblicazione e la ricerca di servizi.
      2. Composizione di servizi
      Linguaggi per la specifica e l’esecuzione di processi aziendali. Modellazione e analisi di processi aziendali.
      3. Descrizioni avanzate di servizi
      Rappresentazione del comportamento dei servizi, politiche e accordi sul livello dei servizi.
      4. Tecnologie emergenti
      Introduzione a servizi RESTful e cloud computing.
      5. Attività di laboratorio
      Sviluppo di servizi Web in Java e di composizioni di servizi come processi aziendali utilizzando linguaggi per descrivere flussi di lavoro. Modellazione e analisi di processi aziendali.
  • Tesi di laurea (15 cfu)

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

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

      Syllabus
      1. Modelli di programmazione parallela strutturati basati su algorithmic skeletons: potere espressivo, tipi di skeleton, modello di programmazione, composizione, semantica, parametri funzionali e non funzionali, tecniche di implementazione basate su process template e su macro data flow, modelli di prestazioni e tecniche di ottimizzazione.
      2. Implementazione di pattern paralleli: progettazione di template per macchine parallele/distribuite, tecniche particolari per architetture a memoria distribuita e a memoria comune, tecniche di trasformazione ed ottimizzazione, tecniche per il controllo delle caratteristiche non funzionali di computazioni parallele.
      3. Metodologia per lo sviluppo composizionale di applicazioni parallele: definizione dell’insieme dei building block, tecniche di progettazione strutturate, tecniche per il monitoraggio e per il controllo delle caratteristiche non funzionali.
  • Esame a scelta (9 cfu)

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

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

    • Insegnamenti caratterizzanti
    • Architettura e progetto di piattaforme di elaborazione complesse (12 cfu)

      • Obiettivi Il corso tratta di modelli, metodologie di progetto e studi di casi di architetture complesse, distribuite ed eterogenee, con particolare riguardo a sistemi, sia generali che dedicati, basati su componenti ad alta scala di integrazione, come multiprocessor on chip, graphic processing unit, fpga, networks on chip e loro composizioni. Accanto ai paradigmi architetturali, il corso studia modelli di programmazione e strumenti di sviluppo applicazioni, con caratteristiche di ottimizzazione dei pattern di comunicazione, delle gerarchie di memoria, dell’eterogeneità, dell’adattività dinamica nella gestione delle computazioni e delle risorse, del context-awareness, della mobilità, del deployment statico e dinamico, rispetto ai modelli di costo in termini di Qualità del Servizio, performance, tempo di risposta in real time, banda di elaborazione,...

Confronta questo corso con altri simili
Leggi tutto