Corso di studi: Informatica e networking (Laurea magistrale)
- Denominazione: Informatica e networking
- Facoltà: SCIENZE MATEMATICHE, FISICHE E
NATURALI
- Classe di appartenenza: LM-18
INFORMATICA
- Interateneo: Si
- Lista Atenei: Scuola Superiore
Sant'Anna, Pisa
- Interfacoltà: No
- Obiettivi formativi: Il Corso di Laurea
Magistrale in Informatica e Networking (Computer Science and Networking:
nel seguito CSN) è stato progettato per rispondere alla crescente
domanda di una emergente figura professionale, che richiede laureati
magistrali in grado di padroneggiare, in modo integrato, tanto le
tecnologie informatiche quanto quelle di networking nella progettazione
e realizzazione di infrastrutture hardware-software distribuite
innovative e di essere capace, al tempo stesso, di analizzare i
requisiti e di procedere, mediante soluzioni ad alto valore aggiunto,
alla progettazione e realizzazione di applicazioni basate su servizi
distribuiti in svariati settori dell’industria, commercio, ricerca,
servizi sociali e al cittadino, pubblica amministrazione.
Una tale
figura professionale non ha riscontri nell’attuale panorama delle lauree
nazionali e pochissimi sono anche gli esempi a livello internazionale.
Negli ultimi venti anni Internet ha sostanzialmente trasformato
l’approccio all’attuazione di molte attività industriali, sociali, di
ricerca e concernenti la vita di tutti i giorni. Recentemente il mondo
della ricerca e dell’industria ICT ha messo in evidenza come siano
necessarie, nei prossimi 10-15 anni, ulteriori forti evoluzioni e
cambiamenti alle infrastrutture di calcolo e comunicazione per andare
incontro a nuove e pressanti esigenze da parte di svariate aree
applicative, come automazione industriale, e-business, sistemi real-time
e mission-critical, gestione di emergenze e disastri, ubiquitous health
care, urban sensors, gestione delle fonti energetiche, e molte altre
ancora. Le evoluzioni e cambiamenti tecnologici, che sono già
parzialmente in atto (Future Internet), devono rispondere all’esigenza
che nuove applicazioni possono nascere nell’arco di tempo di pochi mesi,
invece che di diversi anni come tradizionalmente, e quindi di permettere
un uso ben più efficace e sicuro delle reti e dei sistemi distribuiti da
parte di industrie e società nel prossimo futuro anche su scala
world-wide. Il laureato magistrale in CSN sarà in grado di svolgere
attività che richiedono l'uso di metodologie avanzate nella analisi,
progettazione, sviluppo e gestione di infrastrutture distribuite e di
applicazioni in rete basate su tali infrastrutture. A questo scopo, i
laureati possiederanno una profonda conoscenze delle basi fondazionali
dell’informatica e delle comunicazioni, e conoscenze specialistiche
delle tecnologie informatiche e di comunicazione riguardo a: *
sistemi distribuiti e piattaforme abilitanti, architetture a servizi,
sistemi ad alte prestazioni, pervasive & mobile computing, * reti
di accesso su vari livelli di scala geografica, trasmissione e
tecnologie ottiche, modelli e tecniche di ingegneria del traffico, *
paradigmi, modelli e strumenti di programmazione e sviluppo
applicazioni, di analisi, progettazione e valutazione di sistemi e
applicazioni, pilotate da parametri di Qualità del Servizio. LM-CSN
si avvarrà di laboratori avanzati di architettura, programmazione,
comunicazione in configurazioni complesse centralizzate, parallele e
distribuite, organizzati in modo da permettere ad ogni studente di
accedere ed utilizzare apparecchiature e strumenti in modo
indipendente. LM-CSN intende avere una caratterizzazione e
organizzazione di tipo internazionale, basata su corsi tenuti in lingua
inglese, allo scopo di attrarre studenti da varie parti del mondo,
grazie al prestigio delle istituzioni proponenti ed alla qualità della
ricerca nei rispettivi settori riconosciuta a livello internazionale. È
previsto il contributo di docenti del Dipartimento di Ingegneria
dell’Informazione, in particolare appartenenti al settore
scientifico-disciplinare ING-INF/03 operanti nell’area Networking.
Esiste la volontà di verificare, successivamente all’attivazione, la
formalizzazione della collaborzione in una laurea magistrale di tipo
interfacoltà.
- Numero posti: 40
- Numero programmato: Locale
- Motivazioni numero programmato: Il
laureato in Informatica e Networking deve possedere una spiccata
capacità di progettazione, prototipazione, sperimentazione,
ottimizzazione e valutazione di sistemi ed applicazioni complesse. A
questo fine, un buon numero di insegnamenti sarà dotato di laboratori,
sia presso il polo didattico e il Dipartimento di Informatica
dell’Università di Pisa che presso la Scuola Superiore Sant’Anna, in cui
sviluppare e affinare queste capacità. Si tratta di sofisticati ed
avanzati laboratori di architettura, programmazione e comunicazione in
complesse configurazioni hardware-software centralizzate, parallele e
distribuite. Vista questa caratterizzazione, i laboratori saranno
realizzati e organizzati in modo da permettere ad ogni studente di
accedere ed utilizzare apparecchiature e strumenti in modo indipendente.
L’accesso ai laboratori è quindi possibile, con efficienza di profitto,
solo su classi di non elevata numerosità.
L’internazionalizzazione
del presente corso di laurea magistrale è ulteriore elemento che
contribuisce ad aumentare significativamente il bacino di utenza
potenzialmente interessato all’ammissione ma che, di conseguenza,
richiede accurata selezione delle candidature che pervengono su base
mondiale. Anche in base alle recenti immatricolazioni in corsi di
laurea specialistica nel settore ICT, si stima che la richiesta di
laureati in Informatica e Networking si aggirerà, almeno inizialmente,
su qualche decina di unità: il numero di studenti indicato (40) tiene
conto della prevista domanda di studenti stranieri, ed al contempo rende
possibile attirare un congruo numero di studenti italiani
particolarmente meritevoli. Tutte le motivazioni suddette sono
grandemente rafforzate dal fatto che la Scuola Superiore Sant’Anna ha
come scopo statutario, in analogia ad altre scuole superiori italiane,
l’istruzione e la formazione di studenti con caratteristiche di
eccellenza. I programmi di formazione offerti dalla Scuola Sant’Anna,
sono tutti, senza esclusione, a numero programmato al fine del
mantenimento di un rapporto controllato docente/allievo, necessario a
garantire la qualità dello standard formativo assunti dalla Scuola.
- Numero stimato immatricolati: 40
- Requisiti di ammissione: Il Corso di
Laurea Magistrale in Informatica e Networking è a numero programmato
locale, limitato a 40 posti. Per l’ammissione al Corso è quindi prevista
una Prova di Selezione, aperta anche a studenti europei ed
extra-europei. La Prova di Selezione, da effettuare qualunque sia il
numero delle domande, consta di una prova scritta e/o di una prova orale
secondo quanto stabilito annualmente dal Consiglio di Corso di Studi. La
Commissione di Selezione è composta da docenti dell’Università di Pisa e
della Scuola Superiore Sant’Anna secondo quanto previsto dalla
Convezione tra le due istituzioni. Per essere ammessi alla Prova di
Selezione, i candidati devono essere in possesso di requisiti
curriculari relativi ai fondamenti delle scienze e tecnologie
dell’informazione. I requisiti curriculari minimi sono i seguenti: - 12
CFU complessivi in uno o più dei settori scientifico-disciplinari
MAT/01, MAT/02, MAT/03, MAT/04, MAT/05, MAT/06, MAT/07, MAT/08, MAT/09,
FIS/01, FIS/02, FIS/03; - 60 CFU complessivi in uno o più dei settori
scientifico-disciplinari INF/01, ING-INF/03, ING-INF/05. Tali requisiti
sono automaticamente soddisfatti dalle seguenti classi di laurea e
lauree o diplomi di laurea: - Classe 26, relativa al DM 509/1999
(Scienze e Tecnologie Informatiche); - Classe L-31, relativa al DM
270/2004 (Scienze e Tecnologie Informatiche); - Classe 9, relativa al DM
509/1999 (Ingegneria dell’Informazione), lauree o diplomi di laurea:
Ingegneria Informatica, Ingegneria delle Telecomunicazioni; - Classe
L-8, relativa al DM 270/2004(Ingegneria dell’Informazione), lauree o
diplomi di laurea: Ingegneria Informatica, Ingegneria delle
Telecomunicazioni. I requisiti curriculari minimi devono comunque essere
soddisfatti per candidati in possesso di laurea o diploma di laurea
diversi dai precedenti o in classi diverse dalle precedenti. Per
l’ammissione alla Prova di Selezione sono validi titoli rilasciati da
Università straniera, valutati equivalenti ad una delle suddette classi
o comunque idonei a rispettare i requisiti curriculari. In tutti i casi,
l’adeguatezza delle conoscenze e delle competenze dei candidati è
comunque accertata mediante la Prova di Selezione. Requisito per
l’adeguatezza della preparazione è altresì una buona conoscenza della
lingua inglese, che rappresenta la lingua con cui vengono tenuti gli
insegnamenti.
- Specifica CFU: 17/25 studio individuale,
8/25 attività in aula.
- Modalità determinazione voto di Laurea:
Voto di laurea in 110-esimi. Il voto viene determinato sommando
alla media degli esami, pesata rispetto al numero di CFU, la valutazione
della discussione della tesi. Questa valutazione, compresa tra 0 e 11
punti, viene data sulla base di criteri stabiliti dal Consiglio di Corso
di Studi.
- Attività di ricerca rilevante: Il
Dipartimento di Informatica dell’Università di Pisa consta di 22
professori ordinari, 18 professori associati, 15 ricercatori, 1
ricercatore in formazione e 4 assistenti. La maggioranza dei docenti
afferisce al settore scientifico disciplinare INF/01-Informatica. Sono
coperti anche i settori MAT/08-Analisi Numerica, MAT/09-Ricerca
Operativa, FIS/07-Fisica Applicata e BIO/10-Biochimica. Il Dottorato di
Ricerca in Informatica ha sede amministrativa presso il Dipartimento di
Informatica e fa parte della Scuola di Dottorato di Eccellenza in
Scienze di Base "Galileo Galilei".
Se consideriamo la
classificazione dell'Association for Computing Machinery (ACM), la
principale organizzazione che raccoglie professionisti, docenti e
ricercatori informatici, la ricerca nel dipartimento ricade nelle
seguenti aree: Computer Systems Organization, Software, Data, Theory of
Computation, Mathematics of Computing, Information Systems, Computing
Methodologies , Computer Applications, in ognuna delle quali il
dipartimento è attivo in molti qualificati progetti nazionali ed
internazionali, oltre che in collaborazione con le più significative
industrie del settore. La natura multidisciplinare del dipartimento
con una varietà di competenze culturali, scientifiche e tecnologiche
permette di guidare gli studenti all'interno di percorsi formativi
rivolti sia alla ricerca di base (fondazionale e/o sperimentale) che
all'acquisizione di abilità professionali attuabili nel mondo del
lavoro. Pertanto, nel Dipartimento di Informatica sono presenti quelle
competenze scientifico/tecnologiche coerenti, rilevanti e necessarie per
formare un laureato magistrale nella classe LM-18. Il Dipartimento di
Ingegneria dell’Informazione contribuisce con competenze scientifiche di
altissima qualificazione con gruppi di ricerca, nel settore ING-INF/03 e
nel campo del networking, attivi su apparati, protocolli e tecniche di
comunicazione su reti fisse e wireless, che collaborano attivamente con
i gruppi proponenti del Dipartimento di Informatica. Il Centro di
Eccellenza per l’Ingegneria dell’Informazione e della Comunicazione
(CEIIC) della Scuola Superiore Sant'Anna comprende personale
universitario della Scuola Superiore Sant'Anna e ricercatori aggregati
del co-locato Laboratorio Nazionale di Reti Fotoniche del CNIT
(Consorzio Nazionale Interuniversitario per le Telecomunicazioni).
L’attuale consistenza del Centro è di circa 50 persone tra professori,
ricercatori, allievi perfezionandi, assegnisti di ricerca e
collaboratori di ricerca. Le attività di ricerca del CEIIC includono
un largo ventaglio di tematiche di ricerca applicata e di ricerca di
base sia per quanto riguarda gli aspetti teorici che quelli sperimentali
nel campo delle telecomunicazioni afferenti al settore disciplinare
ING-INF/03 e dei Sistemi di Elaborazione delle Informazioni afferenti al
settore disciplinare ING-INF/05. In particolare, relativamente al
settore ING-INF/03 le macro-aree coperte riguardano le tecniche di
controllo del servizio, le reti ottiche di backbone e di accesso, le
reti wireless, le tecnologie e i componenti fotonici, i sistemi e le
tecniche di comunicazione ottica e le tecniche di processamento
tutto-ottico del segnale.
- Docenti referenti: UNIVERSITA’ DI
PISA
Attardi Giuseppe, PO, INF/01, 9 CFU Baiardi Fabrizio, PO,
INF/01, 9 CFU Brogi Antonio, PO, INF/01, 9 CFU Danelutto Marco,
PA, INF/01, 9 CFU Ferragina Paolo, PO, INF/01, 9CFU Montanari Ugo,
PO, INF/01, 9 CFU Scutellà Maria Grazia, PA, MAT/08, 6
CFU Vanneschi Marco, PO, INF/01, 9 CFU
SCUOLA SUPERIORE
S.ANNA Castoldi Piero, PA, ING-INF/03, 12 CFU Ciaramella Ernesto,
PA, ING-INF/03, 9 CFU Contestabile Giampiero, RU, ING-INF/03, 9
CFU Di Pasquale Fabrizio, PA, ING-INF/03, 9 CFU Forestieri Enrico,
PO, ING-INF/03, 9 CFU Prati Giancarlo, PO, ING-INF-03, 6
CFU Valcarenghi Luca, RU, ING-INF/03, 9 CFU
- Percorso di eccellenza:
Istituzionalmente la Scuola Superiore Sant'Anna prevede che il
reclutamento dei propri allievi avvenga attraverso procedure volte ad
accertare l'elevata preparazione e le potenzialità di sviluppo culturale
e professionale dei candidati. Questa caratterizzazione verrà adottata
anche per gli studenti della Laurea Magistrale in Informatica e
Networking. Il superamento del concorso di ammissione ai Corsi ordinari
dà automaticamente accesso alla LM e esonera dalla partecipazione alle
prove selettive per l’ammissione della LM. Un percorso di eccellenza
verrà istituito anche da parte dell'Università di Pisa.
- Rapporto con il mondo del lavoro: I
rapporti con il mondo del lavoro rappresentano un ulteriore punto di
forza della Laurea Magistrale in Informatica e Networking, grazie ai
rapporti di collaborazione con imprese nazionali e multinazionali del
settore, e con enti pubblici locali e nazionali. Si segnalano Microsoft,
Hewlett Packard, IBM, Selex Sistemi Integrati ed altre aziende del
Gruppo Finmeccanica, Athos Origin, TXT e-solutions, Alcatel-Lucent,
Marconi-Ericsson, Telecom, List, Amazon, Google, Yahoo. Tra gli enti
pubblici, rapporti costanti si hanno con CNR e tutte le altre principali
istituzioni di ricerca, Agenzia Spaziale Italiana, CNIT, diverse reti di
eccellenza europee, nonchè pubbliche amministazioni locali e
periferiche.
In particolare il CEIIC è parte del Centro Integrato di
Ricerca sulle Reti e Tecnologie Fotoniche (IRCPhoNeT) insieme al
Laboratorio Nazionale di Reti Fotoniche e al Laboratorio di Ricerca e
Sviluppo Marconi-Ericsson di Pisa. I tre laboratori sono insediati nello
stesso edificio sull’area di ricerca del CNR di S. Cataldo e collaborano
mediante un accordo di ricerca di lungo termine su attività di ricerca e
formative. Inoltre il CEIIC ha accordi di ricerca con altre aziende
italiane del gruppo Finmeccanica (es. Selex Communications), Rete
Ferrovie Italiane, e altre piccole e medie imprese per le quali svolge
attività di ricerca nel campo delle reti di comunicazione e relative
tecnologie. Questo ricco insieme di rapporti con il mondo del lavoro
costituisce la base su cui realizzare collaborazioni didattiche sotto
forma di esercitazioni speciali (sotto la responsabilità dei docenti),
stage e tesi esterne, per permettere agli studenti di verificare la loro
preparazione professionale mediante attività in contesti ad alta
tecnologia e/o in applicazioni distribuite a diretto contatto con
l'utenza. Queste esperienze verranno organizzate sulla base degli
indirizzi scelti dagli studenti. Molto importante è il fatto che
alcuni tipi di contatti sono funzionali al sostegno economico degli
studenti ed alla possibile assunzione dopo il conseguimento della
laurea.
- Informazioni aggiuntive: MOTIVAZIONI
DELL’ISTITUZIONE DEL CORSO INTERATENEO
Una figura professionale, che
possieda elevate competenze scientifiche e tecnologiche tanto nelle
discipline informatiche che in quelle di networking in maniera
fortemente integrata, non ha riscontri nell’attuale panorama delle
lauree nazionali e pochissimi sono anche gli esempi a livello
internazionale. Molto significativo è il fatto che, a livello
internazionale, le discipline dell’ICT tendano ad integrarsi sempre più
allo scopo di affrontare in modo nuovo e più efficace lo studio e la
realizzazione di sistemi distribuiti ed applicazioni distribuite. Per
questi motivi, l’attuazione della Laurea Magistrale in Informatica e
Networking richiede elevate competenze ed esperienze, scientifiche e
tecnologiche, in entrambi i settori. Tali competenze con l’obiettivo
primario della stretta relazione tra ricerca e didattica, non si
riscontrano in un singolo dipartimento universitario ma vanno ricercate
in più sedi ad alta specializzazione. Le desiderate caratteristiche di
complementarietà e, al tempo stesso, di integrazione sono attuabili con
successo nell’ambito della collaborazione tra - le aree
scientifico-disciplinari comprese nel Dipartimento di Informatica e nel
Dipartimento dell’Ingegneria dell’Informazione dell’Università di
Pisa, - il Centro di Eccellenza per l’Ingegneria dell’Informazione e
della Comunicazione della Scuola Superiore Sant’Anna. La
collaborazione tra Università di Pisa e Scuola Superiore Sant’Anna
permette di integrare e valorizzare al meglio le rispettive competenze
ed esperienze nei settori delle scienze e tecnologie di informatica e
delle comunicazioni per costruire la nuova figura professionale ad alta
specializzazione e qualificazione. Le istituzioni proponenti hanno
una elevata reputazione scientifica, riconosciuta a livello
internazionale, anche grazie alla partecipazione, tuttora in atto, a
rilevanti progetti di ricerca e reti di eccellenza a livello europeo e
nazionale, ed a importanti collaborazioni con industrie nazionali e
multinazionali.
SBOCCHI OCCUPAZIONALI E PROFESSIONALI Lo
sbocco occupazionale naturale del laureato magistrale in CSN è -
nelle imprese operanti nel campo delle infrastrutture hardware-software
di calcolo networking, sistemi distribuiti, architetture a servizi,
sistemi ad alte prestazioni, cluster computing, grid computing, global
computing, cloud computing, - nelle imprese, enti pubblici e
pubbliche amministrazioni operanti nel campo delle applicazioni basate
su servizi distribuiti, come automazione industriale, e-business,
sistemi real-time e mission-critical, gestione di emergenze e disastri,
ubiquitous health care, intelligent urban sensors, telepresenza e
telecontrollo, gestione delle fonti energetiche, vehicular networks, e
molte altre ancora. Infine, il laureato magistrale in Informatica e
Networking sarà dotato di una preparazione culturale, scientifica,
tecnologica e metodologica di base che gli permetterà di accedere ai
livelli di studio universitario successivi alla laurea magistrale nei
settori dell’informatica e comunicazioni.
DECRETO RETTORALE
N. 11056 DEL 04/08/2009
Curriculum: Computer Science and Networking
Primo anno (57 CFU)
Insegnamento |
CFU |
Algorithm engineering |
9 |
Programmazione avanzata |
9 |
Gestione e configurazione
delle reti |
9 |
Fondamenti di segnali,
sistemi e reti |
12 |
Ingegneria del
teletraffico |
9 |
High Performance
Computing |
9 |
Secondo anno (63 CFU)
Insegnamento |
CFU |
Tesi di laurea |
15 |
Ingegneria dei servizi
software |
9 |
Esame a scelta |
9 |
Sistemi distribuiti:
paradigmi e modelli |
9 |
Gruppo: GR-a |
9 |
Gruppo: GR-c |
12 |
Gruppi per attività a scelta nel CDS Informatica e networking
Gruppo GR-a (9 CFU)
- Descrizione: Insegnamenti affini o
integrativi
Attività contenute nel gruppo
Nome |
CFU |
Algoritmi paralleli e
distribuiti |
6 |
Ambienti virtuali su rete |
6 |
Amplificazione ottica e
sensoristica |
9 |
Architetture, componenti e
servizi di rete |
9 |
Architetture di commutazione ed
elaborazione dati a pacchetto |
6 |
Aspetti prestazionali e di
progetto delle reti wireless |
6 |
Basi di dati distribuite e
parallele |
6 |
Commutazione fotonica |
9 |
Componenti distribuite |
6 |
Information retrieval |
6 |
Laboratorio di progettazione di
software distribuito |
6 |
Laboratorio di protocolli e
architetture di routing |
6 |
Laboratorio di sistemi
fotonici |
6 |
Metodi di ottimizzazione delle
reti |
6 |
Metodi formali per la
sicurezza |
6 |
Metodi per la specifica e la
verifica di processi di business |
6 |
Metodi per la verifica del
software |
6 |
Modelli di costo e
progettazione di supporti |
6 |
Pervasive computing |
6 |
Piattaforme abilitanti
distribuite |
6 |
Prestazioni di reti
multimediali |
6 |
Problemi di sicurezza in
applicazioni web |
6 |
Programmazione concorrente |
6 |
Propagazione e ottica
applicata |
6 |
Reti e tecnologie per le
telecomunicazioni |
9 |
Sistemi embedded |
6 |
Sistemi peer to peer |
6 |
Sistemi real-time |
6 |
Tecniche di data mining |
9 |
Tecniche numeriche e
applicazioni |
6 |
Teoria dell'affidabilità |
6 |
Teoria dell'informazione e
della trasmissione |
9 |
Teoria e tecnica delle
comunicazioni ottiche |
9 |
Tollerenza ai guasti in sistemi
distribuiti |
6 |
Gruppo GR-c (12 CFU)
- Descrizione: Insegnamenti
caratterizzanti
Attività contenute nel gruppo
Nome |
CFU |
Applicazioni parallele e
distribuite |
9 |
Architettura e progetto di
piattaforme di elaborazione complesse |
12 |
Modelli di calcolo |
9 |
Sicurezza delle reti |
9 |
Sistemi operativi
distribuiti |
6 |
Strumenti di programmazione per
sistemi paralleli e distribuiti |
6 |
Virtualizzazione dei sistemi |
6 |
Attività formative definite nel CDS Informatica e networking
Algorithm engineering (9 CFU)
- Obiettivi formativi: Obiettivi
In
questo corso studieremo, progetteremo e analizzeremo (con modelli
teorici e attraverso risultati sperimentali) soluzioni algoritmiche e
strutture dati avanzate per la risoluzione efficiente di problemi
combinatori che coinvolgono vari tipi di dato— quali interi, stringhe,
punti (geometrici), alberi, grafi. Il progetto interesserà alcuni
modelli di calcolo— RAM, 2-level memory, cache-oblivious, streaming— al
fine di ottenere soluzioni algoritmiche le cui valutazioni teoriche ben
riflettono le loro prestazioni reali, poiché tengono conto delle
caratteristiche architetturali e della gerarchia di memoria dei moderni
PC. Ogni lezione seguirà un approccio problem-driven che inizia
considerando un problema reale, lo astrae in modo combinatorio, e poi
procede al progetto e analisi di soluzioni algoritmiche tese a
minimizzare l’uso di alcune risorse computazionali quali: tempo, spazio,
communicazione, I/O, etc. Alcune soluzioni viste in classe saranno
discusse anche a livello sperimentale al fine di introdurre degli
strumenti appropriati per l’ingegnerizzazione e il tuning del
codice. Syllabus 1) RAM model a. Data compression: Huffman,
arithmetic, lz77, lz78, MTF, RLE, bzip, front coding b. Data indexing
and searching: integers (VEB and x/y fast trie), strings (trie, patricia
trie, suffix tree, suffix array), trees (ternary search trees). c.
Hashing: Universal, Perfect, Cuckoo, minimal ordered perfect. d.
Randomized data structures: Treaps, Skip lists, Bloom filter, count
min-sketch. e. Compressed data structures for sequences, trees and
graphs.
2) 2-level memory model a. Definition and
properties b. Data sorting (atomic items and strings) and
permuting c. Data indexing and searching: strings (2-level indexing,
String B-trees), geometric points (nearest neighbour search and locality
sensitive hashing) d. Data sketching: bloom filters and count-min
sketch
3) Cache-oblivious model a. Definition and
properties b. Matrix multiplication c. BST layout
Esame
scritto e orale
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste di una prova scritta e di una prova orale.
Amplificazione ottica e sensoristica (9 CFU)
- Obiettivi formativi: Obiettivi
Il
presente corso, articolato in due parti, dopo una introduzione ai
concetti fondamentali sui componenti ottici più comuni, si concentrerà
sulle tecnologie di amplificazione ottica e sensoristica in fibra più
diffuse. Il corso fornirà anche un modulo di laboratorio, con un
approccio hands-on, in cui lo studente apprenderà come utilizzare in
pratica i dispositivi in fibra ottica, e come effettuare misure ed
esperimenti con componenti ed amplificatori ottici. L’amplificazione
ottica è stata una delle tecnologie abilitanti più importanti degli
ultimi anni nelle comunicazioni, che ha consentito l’aumento
straordinario delle capacità e delle distanze trasmissive alla base
dell’odierno sviluppo di Internet e dei servizi basati su rete. Negli
ultimi anni, un nuovo settore sta emergendo, quello dei sensori in fibra
ottica, in cui i componenti ottici ed in fibra ottica sono utilizzati
per il rilevamento di molti parametri fisici, chimici ed ambientali,
trovando innumerevoli applicazioni in un’ampia gamma di settori,
dall’ingegneria elettrica, elettronica e nucleare, all’ingegneria civile
fino al settore dell’energia.
Syllabus
Amplificatori
ottici e sensori in fibra ottica - Le sorgenti luminose per le
comunicazioni ottiche: equazioni di rate nei semiconduttori ed il diodo
ad emissione luminosa (LED), il meccanismo di retroazione ottica ed il
laser, laser a semiconduttore, laser a singolo modo e multi-modali -
Fotodiodi: fotodiodi pin e fotodiodi a valanga - Componenti passivi:
fibra ottica, accoppiatore ottico, interferometro Mach-Zehnder,
tecnologie di filtri ottici, filtri ottici sintonizzabili, multiplatore
e de-multiplatore ottico - Dispositivi non reciproci: isolatore e
circolatore ottico - Basi di amplificazione ottica: emissione
stimolata ed amplificazione ottica, caratteristiche fondamentali degli
amplificatori ottici, guadagno, cifra di rumore, potenza di saturazione
- Amplificatori ottici discreti e distribuiti: amplificatori Raman e
amplificatori in fibra drogata all’Erbio (EDFA), amplificatori ottici a
semiconduttore (SOA), processi parametrici ed amplificatori
parametrici - Sensori in fibra ottica: introduzione alla sensoristica
in fibra ottica, sensori distribuiti basati su effetto Raman e
Brillouin, sensori basati su reticoli di Bragg in
fibra
Laboratorio di amplificazione ottica e componenti -
Utilizzare un power-meter ottico, utilizzare i fotodiodi pin ed i
fotodiodi a valanga - Misura di parametri indipendenti dalla
lunghezza d’onda su componenti ottici passivi. - Utilizzare
l’analizzatore di spettro ottico nelle misure di componenti ottici -
Caratterizzare un laser - Misura di guadagno e saturazione su
amplificatori ottici - La cifra di rumore degli amplificatori ottici:
fondamenti della misura - Caratterizzare un EDFA - Caratterizzare
la larghezza di riga: rilevazione ottica omodina ed eterodina -
Misure dinamiche su oscilloscopio e misure di spettro
elettrico
Struttura del corso 9 crediti consistenti in lezioni
frontali, esercitazioni e laboratorio. L’esame consiste in una prova
scritta.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova scritta.
Architettura e progetto di piattaforme di elaborazione complesse (12
CFU)
- Obiettivi formativi: Obiettivi
Il
corso tratta di modelli, metodologie di progetto e studi di casi di
architetture complesse, distribuite ed eterogenee, con particolare
riguardo a sistemi, sia generali che dedicati, basati su componenti ad
alta scala di integrazione, come multiprocessor on chip, graphic
processing unit, fpga, networks on chip e loro composizioni. Accanto ai
paradigmi architetturali, il corso studia modelli di programmazione e
strumenti di sviluppo applicazioni, con caratteristiche di
ottimizzazione dei pattern di comunicazione, delle gerarchie di memoria,
dell’eterogeneità, dell’adattività dinamica nella gestione delle
computazioni e delle risorse, del context-awareness, della mobilità, del
deployment statico e dinamico, rispetto ai modelli di costo in termini
di Qualità del Servizio, performance, tempo di risposta in real time,
banda di elaborazione, risparmio energetico. Vengono mostrati studi di
casi riferiti a tecnologie avanzate attraverso attività sperimentali e
di laboratorio.
Syllabus 1. Paradigmi architetturali a.
Architetture multiprocessor on chip b. Graphic processing units c.
Networks on chip d. Sistemi distribuiti basati su componenti ad alta
integrazione e. Strategie di comunicazione f. Gerarchie di
memoria g. Gestione della ridondanza 2. Modelli di programmazione
a. Adattività e context-awareness b. Deployment dinamico su
sistemi eterogenei c. Energy reliability d. Modelli di costo e QoS
per applicazioni su complessi ad alta integrazione 3. Studi di
casi
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in un progetto ed una prova orale.
Architetture, componenti e servizi di rete (9 CFU)
- Obiettivi formativi: Obiettivi
Il
corso fornisce i concetti elementari necessari a comprendere
l’architettura, gli elementi componenti ed i servizi delle moderne reti
a commutazione di pacchetto, con particolare riguardo a IPv6, mobile IP,
multicast, protocolli di trasporto, architetture per la garanzia della
Qualità di Servizio e nuove architetture peer-to-peer. La parte teorica
sarà inoltre accompagnata da esercitazioni sperimentali relative alla
simulazione di reti IP, alle modalità di funzionamento del TCP (Linux
TCP) e all'implementazione in ambiente linux di regole di filtraggio (e
natting) di pacchetti IP.
Syllabus 1) IPv6 e MIP a.
Caratteristiche generali di IPv6 e formato dell'header b. ICMPv6 e
procedure di Neighbour Discovery c. Transizione IPv4-IPv6 d.
Mobilità in ambito IP: MIPv4 e MIPv6 2) Multicast a.
Indirizzamento Multicast b. IGMP c. Protocolli di Routing
Multicast (DVMRP, PIM-SM, PIM-DM) 3) Livello di Trasporto a.
Panoramica sui principali protocolli: UDP, TCP, DCCP b. Flow control
e congestion control in ambito TCP e DCCP c. Meccanismi di stima del
RTT d. Tecniche di congestion avoidance (DECbit, RED, CHOKe, TCP
Vegas) 4) Qualità del servizio a. Politiche per la gestione delle
code (FIFO, code con priorità, GPS, WFQ, WF2Q) b. Caratterizzazione
del traffico mediante Token Bucket c. Architettura Intserv d.
Architettura DiffServ 5) Architetture P2P a. Descrizione generale
dell'architettura b. Classificazione delle architetture P2P ed
esempi 6) Laboratorio a. Simulazione di reti IP b. Analisi
simulativa di connessioni TCP c. Studio del TCP linux d. IPtables:
filtraggio di pacchetti IP e natting
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova orale con domande relative sia alla parte teorica
che all'esperienza di laboratorio.
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.
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.
High Performance Computing (9 CFU)
- Obiettivi formativi: Obiettivi
Questo
corso tratta di due aspetti fortemente interrelati nel campo del calcolo
ad alte prestazioni: 1. concetti fondamentali e tecniche di
strutturazione e progetti di computazioni parallele, metodologie e
paradigmi di parallelizzazione, modelli di programmazione parallela,
loro implementazione e modelli di costo; 2. architetture ad alte
prestazioni: multiprocessor a memoria condivisa, multicomputer a memoria
distribuita, cluster, ed altre. Entrambi gli aspetti sono studiati in
termini di modelli strutturali, supporti statici e dinamici al modelli
di programmazione, valutazione delle prestazioni, capacità di costruire
applicazioni complesse e/o piattaforme abilitanti per composizione,
anche attraverso esempi di casi applicativi reali. Sono studiate
caratteristiche e tendenze tecnologiche, come multi-/many-core e reti ad
alte prestazioni. Una parte iniziale è dedicata a rivedere concetti e
tecniche base dello studio strutturato all’architettura degli
elaboratori, allo scopo di uniformare diverse preparazioni di
base.
Syllabus 0. Computing architecture primer 1.
Metodologie per strutturare e programmare applicazioni parallele ad alte
prestazioni; fondamenti di modelli di costo: metriche, elementi di
teoria delle code e reti di code, bilanciamento del carico,
ottimizzazioni statiche e dinamiche 2. Paradigmi di
parallelizzazione: stream-parallel (pipeline, data-flow, farm, divide
and conquer, partizionamento funzionale), data-parallel (map, stencil
fissi e variabili, reduce, prefix), and loro composizioni 3.
Meccanismi di cooperazione: comunicazioni dedicate e collettive, oggetti
condivisi, strumenti di compilazione, supporti a tempo di esecuzione e
loro ottimizzazioni 4. Multiprocessor a memoria condivisa. SMP, NUMA,
modelli di costo; reti di interconnessione e loro valutazione: reti
indirette e multistadio, reti diretti e cubi, fat tree, reti
on-chip 5. Architetture a memoria distribuita: multicomputer,
cluster, piattaforme distribuite eterogenee, reti di comunicazione ad
alte prestazioni 6. Aspetti avanzati di ricerca e/o tecnologici:
multi-/many-core, multithreading simd/vectorizzazione/gpu, calcolo
pervasivo ad alte prestazioni.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova scritta ed una prova orale.
Ingegneria del teletraffico (9 CFU)
- Obiettivi formativi: Obiettivi
Il
corso presenta i concetti fondamentali relativi alla teoria ed
all’ingegneria del traffico nelle reti di telecomunicazioni. Vengono
introdotti i processi di Markov a tempo discreto (catene) e quelli a
tempo continuo. Viene inoltre presentata la teoria elementare ed
intermedia delle code utili alla trattabilità dei modelli fondamentali
di sistemi ad attesa e a perdita impiegati per l’analisi di reti a
commutazione di pacchetto e di circuito. La trattazione degli indici
prestazionali fondamentali viene presentata passando ove necessario a
domini trasformati (Laplace, Zeta). Sono infine presentati i teoremi
fondamentali per la trattazione di reti di code markoviane aperte e
chiuse e le reti di tipo BCMP. Il corso presenta inoltre i metodi
numerici fondamentali per la trattazione di problemi di analisi delle
prestazioni riconducibili a soluzioni basate su approcci markoviani.
Syllabus 1) Processi di Markov a stato discreto a.
Processi di Markov a stato discreto e tempo discreto (Catene di
Markov) b. Processi di Markov a stato discreto e tempo continuo 2)
Processi puntuali a. Processi di sola nascita e di sola morte b.
Processo di Bernoulli a tempo continuo e tempo discreto c. Processo
di Poisson 3) Processi di nascita e morte a. Condizioni di
ergodicità b. Valutazione dei momenti di primo e secondo ordine 4)
Generalità sull’analisi del traffico in rete a. Modelli stocastici
b. Modelli deterministici c. Non stazionarietà del traffico.
Definizioni TCBH, ADPH 5) Code Markoviane a. notazione di Kendall;
Geo/Geo/1, M/M/Ns, M/M/Ns/0, M/M/1/Nw; b. Formula B di Erlang,
Formula C di Erlang, Formula di Engset. c. Problemi e relative
soluzioni per il calcolo numerico delle formule Erlang B e Erlang C.
Sviluppo di funzioni MATLAB per il calcolo delle probabilità di perdita
in code M/M/1/Ns e M/M/Ns/Nw. Soluzione mediante MATLAB di sistemi a
coda M/Cox2/1/Nw, M/H2/1/Nw e M/E2/1/Nw. d. Approccio
Matrix-Geometric per la soluzione di Catene di Markov descritte da
matrici di Hessenberg a blocchi. e. Applicazione dell’approccio
Matrix-Geometric per lo studio di sistemi a coda M/Cox2/1.
6)
Code non Markoviane: a. La trattazione di una semplice coda non
markoviana: la coda M/G/1; b. la catena di Markov immersa; analisi
della coda in regime asintotico. c. Code M/G/1 con classi di utenza
e con priorità
7) Reti di code: a. Reti di code markoviane
aperte e chiuse. Reti di code acicliche. b. Teorema di Burke.
Teorema di Jackson. c. Teorema di Gordon-Newell. d. Algoritmo
della convoluzione e approccio Mean Value Analysis per la soluzione
delle reti di code di Gordon-Newell. e. Reti di code BCMP. Indici
prestazionali in reti di code markoviane chiuse e BCMP.
8)
Tecniche numeriche per la soluzione di catene di Markov a. Librerie
Matfun e Stats di MATLAB. Generazione di osservazioni di vv.aa. di
Erlang k, iperesponenziale, ipoesponenziale e di Coxn. b. Grafico
quantile-quantile. Decomposizione agli autovalori per il calcolo del
transitorio in Catene di Markov. c. Metodi diretti per il calcolo
delle probabilità asintotiche di stato di Catene di
Markov.
L’esame consiste in una prova scritta, una prova Matlab
ed una prova orale.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova scritta, una prova di laboratorio ed una prova
orale.
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.
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.
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.
Sistemi distribuiti: paradigmi e modelli (9 CFU)
- Obiettivi formativi: Obiettivi
Il
corso affronta sistematicamente tutta una serie di argomenti legati ai
modelli di programmazione per architetture parallele e/o distribuite. Il
filo conduttore è rappresentato dai modelli di programmazione parallela
strutturata, come quelli basati su algorithmic skeletons o su parallel
design patterns. Questi modelli di programmazione vengono utilizzati per
discutere: - l’idea generale di forme di parallelismo strutturate
esposte al programmatore di applicazioni come meccanismi primitivi
dell’ambiente di programmazione parallelo - le tecnologie ed i
paradigmi che si possono utilizzare per implementare in modo efficiente
forme di parallelismo strutturate su diversi tipi di architetture
(hardware e software) che includono le architetture più diffuse al
momento come reti di workstation e macchine multi/many core - una
metodologia generale e modulare per la progettazione ed implementazione
di applicazioni parallele a partire da un insieme di building block di
cui si conoscano forma di parallelismo, prestazioni e caratteristiche di
composizionalità. Il corso prevede una parte “teorica” e una parte
di laboratorio che consisterà nella presentazione di un insieme di
ambienti di programmazione parallela strutturati e di tecniche di
implementazione (in aula) e la realizzazione di un semplice progetto
(individuale) di una applicazione parallela o di un supporto per forme
di parallelismo strutturate.
Syllabus 1. Modelli di
programmazione parallela strutturati basati su algorithmic skeletons:
potere espressivo, tipi di skeleton, modello di programmazione,
composizione, semantica, parametri funzionali e non funzionali, tecniche
di implementazione basate su process template e su macro data flow,
modelli di prestazioni e tecniche di ottimizzazione. 2.
Implementazione di pattern paralleli: progettazione di template per
macchine parallele/distribuite, tecniche particolari per architetture a
memoria distribuita e a memoria comune, tecniche di trasformazione ed
ottimizzazione, tecniche per il controllo delle caratteristiche non
funzionali di computazioni parallele. 3. Metodologia per lo sviluppo
composizionale di applicazioni parallele: definizione dell’insieme dei
building block, tecniche di progettazione strutturate, tecniche per il
monitoraggio e per il controllo delle caratteristiche non funzionali.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste nella realizzazione di un progetto individuale seguito da una
prova orale.
Sistemi embedded (6 CFU)
- Obiettivi formativi: Obiettivi
Il
corso copre le principali fasi dello sviluppo di sistemi embedded, con
particolare attenzione al le tecniche basate su modelli (model-based) e
all’uso di metodi formali per l'analisi delle proprietà del sistema.
Verranno esaminati problemi e soluzioni relativi a tutte le fasi di
sviluppo, comprendendo: analisi dei requisiti, progettazione a livello
di sistema, modelli orientati ai componenti, modelli software, verifica
di proprietà, scelta e progettazione dell’architettura, generazione di
codice e testing.
Syllabus 1) Modello di sviluppo di sistemi
embedded a. I sistemi embedded e l'impatto sulla moderna elettronica
industriale b. Le fasi del processo di sviluppo, progettazione basata
su modelli. c. Modelli di calcolo per sistemi embedded: macchine a
stati finiti, FSM gerarchiche, automi temporizzati, dataflows. d.
Analisi dei requisiti utente, test di sistema, tracciamento dei
requisiti scelta e progettazione dell’architettura, modelli orientati ai
componenti, modelli software, raffinamento, preservazione della
semantica, generazione di codice. Strumenti, metodi e standard per la
modellazione di sistema. e. Introduzione alle tecniche di verifica,
analisi funzionale e temporale. f. Generazione automatica di
codice. g. Tecniche di test, test di conformità, il concetto di
copertura nel test, copertura MC/DC. 2) Programmazione di Sistemi
Embedded: sistemi operativi e comunicazione wireless – Tecnologie ed
esempi.
Struttura del corso 6 crediti consistenti in lezioni
frontali, esercitazioni e laboratorio. L’esame consiste in una prova
orale e nella discussione di un semplice progetto assegnato allo
studente.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova orale e nella discussione di un semplice progetto
assegnato allo studente.
Sistemi operativi distribuiti (6 CFU)
- Obiettivi formativi: Obiettivi
Il
corso fornisce i concetti e le tecniche necessarie ad estendere la
definizione di Sistema Operativo, già nota per una singola macchina
fisica, fino a comprendere piattaforme di esecuzione più complesse,
inerentemente parallele e distribuite. Vengono confrontate più
tecnologie di esecuzione distribuita e realizzazioni di Sistema
Operativo Distribuito (DOS), analizzando le diverse astrazioni di
sistema fornite, le problematiche conseguenti, le scelte di
implementazione, le potenzialità ottenibili. Una parte importante
del corso è costituita dalla presentazione dal punto di vista
tecnologico di un Sistema Operativo Distribuito di
riferimento.
Syllabus Richiami e fondamenti Modelli di
sistema distribuito e meccanismi di base Sistemi middleware, qualità
del servizio DOS single-sistem-image (SSI) Istanze di kernel
cooperanti, implementazione, applicabilità; DOS geografici
Organizzazioni virtuali; sicurezza, meccanismi di comunicazione e
cooperazione; File system distribuiti su larga scala; Meccanismi
di esecuzione Eterogeneità delle risorse nei DOS Tipi di risorse
e vincoli imposti al sistema Impatto sulle astrazioni e
l'implementazione del sistema Complementi DOS ed architetture di
calcolo gerarchiche multilivello DOS e virtualizzazione : interpreti
di sistema, contenimento, virtualizzazione,
paravirtualizzazione Future Internet e DOS
Struttura del
corso 6 CFU, di cui 4 CFU su DOS SSI e geografici. Il corso assume la
disponibilità di un laboratorio per gli studenti. La prova d'esame
consiste in un orale con discussione di un progetto legato ad uno dei
Sistemi Operativi Distribuiti presentati nel corso.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: La prova
d'esame consiste in un orale con discussione di un progetto legato ad
uno dei Sistemi Operativi Distribuiti presentati nel
corso.
Strumenti di programmazione per sistemi paralleli e distribuiti (6
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
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 (6 CFU)
- Obiettivi formativi: Obiettivi
Il
corso propone l’analisi e l’approfondimento di metodi numerici per la
risoluzione di problemi applicativi. Particolare rilievo e’ dato alle
tecniche di algebra lineare numerica piu’ frequentemente usate nelle
applicazioni.
Syllabus 1. Preliminari di algebra lineare:
diagonalizzabilita’ e forme canoniche, matrici definite positive,
decomposizione ai valori singolari, norme, condizionamento di una
matrice 2. Metodi diretti per sistemi lineari: matrici elementari,
fattorizzazioni LU, LLh, QR, rotazioni di Givens, metodi di Cholesky e
di Householder 3. Metodi iterativi per sistemi lineari: metodi
classici, ultrarilassamento, metodo del gradiente coniugato 4. Metodi
iterativi per sistemi non lineari: metodo di Newton, metodi
quasi-Newton 5. Metodi iterativi per il calcolo di autovalori:
condizionamento del problema, metodo delle potenze, metodi LR e QR,
tridiagonalizzazione di una matrice simmetrica 6. Problema lineare ai
minimi quadrati: equazioni normali, uso della SVD 7. Metodi per
matrici tridiagonali: riduzione ciclica, uso delle successioni di Sturm,
tecniche divide et impera 8. Matrici non negative: teorema di
Perron-Frobenius, matrici stocastiche 9. Trasformata discreta di
Fourier: alcune applicazioni
L’esame consiste in una prova
orale.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova orale.
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.
Tollerenza ai guasti in sistemi distribuiti (6 CFU)
- Obiettivi formativi: Obiettivi
Il
corso introduce le tematiche di tolleranza ai guasti per sistemi
distribuiti. Verranno descritti in dettaglio le tecniche di replicazione
software, azioni atomiche, strategie di checkpointing e protocolli di
rollback recovery. Ciascuna tecnica verrà studiata nel contesto in cui è
stata originalmente introdotta e successivamente approfondita nel
contesto dei sistemi paralleli e distribuiti. Verranno approfonditi
alcuni dettagli di implementazione, come le memorie stabili, e verrà
fatta una panoramica sui modelli di valutazione degli overhead
introdotti dai supporti alla tolleranza ai guasti. Un parte del corso è
dedicata allo studio sperimentale delle tecniche esistenti e di
implementazione, tramite sessioni in laboratorio.
Syllabus 1)
Tecniche di tolleranza ai guasti per sistemi distribuiti a.
Replicazione software b. Azioni atomiche c. Checkpointing e
Rollback Recovery d. Modelli di costo dei supporti alla tolleranza ai
guasti 2) Supporti a. Primitive di comunicazione di supporto
b. Memoria Stabile c. Message Logging d. Garbage collection di
checkpoint 3) Laboratorio a. Implementazione di strategie di
checkpointing e rollback recovery esistenti b. Implementazione canali
di comunicazione con message logging c. Supporto alla tolleranza ai
guasti per modelli di programmazione parallela
Struttura del
corso 6 crediti (3 su tecniche (1) e supporti (2), 3 di laboratorio.
L’esame consiste nello studio di approfondimento in termini di progetto
di un aspetto trattato nel corso, di natura non necessariamente
programmativa, e di un esame orale in cui discutere tale studio.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste nello studio di approfondimento in termini di progetto di un
aspetto trattato nel corso, di natura non necessariamente programmativa,
e di un esame orale in cui discutere tale studio.
Virtualizzazione dei sistemi (6 CFU)
- Obiettivi formativi: Obiettivi
Il
corso tratta delle tecniche di virtualizzazione nei sistemi di
elaborazione ai vari livelli. Il corso è organizzato su due argomenti
fondamentali che descrivono (1) le tecniche di virtualizzazione e (2) i
principali utilizzi dei sistemi virtualizzati. Questi due argomenti
saranno complementati da una’analisi più approfondita sulle metodologie
di virtualizzazione dei vari componenti di un sistema di calcolo
integrate da esperienze di progettazione e utilizzo di sistemi
virtualizzati.
Syllabus 1) Approcci alla virtualizzazione
a. Virtualizzazione al livello delle applicazioni, del SO, della
macchina fisica b. Metodolologie di virtualizzazione: simulazione,
traduzione del codice binario, para-virtualizzazione c. Costo della
virtualizzazione e benchmarking d. Virtualizzazione di singole
machine e cluster di macchine 2) Uso ed applicazioni della
virtualizzazione a. Consolidamento e parallelismo in eccesso b.
Gestione dinamica delle risorse fisiche c. Gestione delle risorse
virtualizzate 3) Metodologie per la virtualizzazione di un sistema di
calcolo a. Virtualizzazione del processore b. Virtualizzazione
della memoria c. Virtualizzaione dei dispositivi di I/O (storage,
rete, …) 4) Casi di studio a. Soluzioni di virtualizzazione
complete: installazione e configurazione. Gestione del ciclo di vita
delle macchine virtuali, migrazione. b. Esercizi di virtualizzazione
di kernel didattici (trap-and-emulate, interposizione al livelllo del
SO, …) 5) interrelazioni tra virtualizzazione e
sicurezza.
Struttura del corso 6 crediti uniformemente
distribuiti sugli argomenti 1, 2, 3 ognuno dei quali conterrà
esercitazioni e esperienze di laboratorio tratte da 4. L’esame consiste
in una prova orale con discussione di un semplice progetto assegnato
allo studente.
- Propedeuticità: Le propedeuticità ed
eventuali obblighi di frequenza sono stabiliti dal Consiglio di Corso di
Studi.
- Modalità di verifica finale: L’esame
consiste in una prova orale con discussione di un semplice progetto
assegnato allo studente.
|
|