Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2017/2018
Tipologia di insegnamento: 
Caratterizzante
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Corso di Laurea Magistrale in INFORMATICA APPLICATA
Settore disciplinare: 
INFORMATICA (INF/01)
Crediti: 
12
Anno di corso: 
2
Docenti: 
Ciclo: 
Annualita' Singola
Ore di attivita' frontale: 
96

Obiettivi

Lo studente deve dimostrare di conoscere e saper comprendere aspetti
avanzati del networking con reti di sensori, dalle strategie a livello MAC fino alle applicazioni, con le quali orientarsi
tra le tecniche di acquisizione, gestione e analisi di dati dei sensori in un contesto sia teorico che pratico. Lo
studente, inoltre, deve dimostrare di conoscere e saper comprendere aspetti avanzati dei sistemi e delle architetture
distribuite in un contesto sia teorico che pratico.
E' necessario, inoltre, che lo studente dimostri capacità di elaborare relazioni scritte e orali inerenti le soluzioni concepite per specifici problemi applicativi.

Prerequisiti

Per gli studenti di Informatica Applicata è necessario avere acquisito le conoscenze
e le competenze trasmesse dai seguenti corsi: Programmazione I, Programmazione II, Sistemi Operativi, Algoritmi
e Strutture Dati e Reti di Comunicazione.

Contenuti

Con la parte I, il corso introduce alle tematiche della emergente tecnologia dell’Internet delle Cose (Internet of Things, IoT) che pervade ormai la vita quotidiana moderna, nella quale centinaia di migliaia di oggetti eterogenei
sono interconnessi attraverso canali di comunicazioni wireless e non, per fornire informazioni e controllo sul mondo
fisico che ci circonda. Dopo una panoramica sulle principali tecnologie abilitanti le applicazioni di IoT, cioè, la comunicazione wireless, i sistemi RFID,
il Cloud Computing, il focus sarà posto sulle reti di sensori wireless (Wireless Sensor Networks, WSN). Delle WSN
saranno esaminate le caratteristiche principali, i componenti di un nodo sensore, gli obiettivi ed i principi di
progettazione di un’architettura WSN, i principali protocolli a livello MAC e di networking. Saranno inoltre esaminate
le possibilità per realizzare una visione dati centrica della comunicazione nelle WSN.
La parte II, introduce ai sistemi ed alle architetture per l’IoT dal punto di vista dei sistemi e delle architetture distribuite
e della loro programmazione. In primis, il corso analizza le problematiche alla base dei sistemi distribuiti,
ovvero la comunicazione e la definizione di tempo e stato distribuito. Successivamente vengono analizzati alcuni
algoritmi di controllo impiegati per la gestione delle risorse distribuite: Algoritmi di sincronizzazione e coordinamento;
Deadlock; Schedulazione; Elezioni del leader; Allocazione dei processi; Rilevazione della terminazione; Consenso;
Allocazione, migrazione e bilanciamento del carico; Distributed Shared Memory. La fase successiva affronta il tema
dei filesystem distribuiti dal punto di vista teorico/progettuale e successivamente dal punto di vista implementativo
analizzando alcuni casi di studio quali: NFS, ANDREW, CODA, GFS, HDFS. Infine il corso presenta un’introduzione
all’ecosistema Hadoop soffermandosi in particolare su tre moduli: Zookeeper, Spark, Storm.
Il corso prevede una parte di laboratorio nella quale sperimentare con i SO per WSN e relativi simulatori di WSN e
con l’ecosistema Hadoop.

Metodi didattici

La didattica è svolta mediante lezioni frontali, seminari di esperti nel settore e da parte degli stessi studenti ed attività
di laboratorio.

Verifica dell'apprendimento

L’obiettivo della procedura di verifica consiste nel quantificare, per ogni studente, il livello di raggiungimento degli
obiettivi formativi precedentemente indicati. La procedura di verifica consiste in (a) un seminario su un tema scelto dallo
studente e/o dai docenti (20%) o, in alternativa, (b) in una proposta di progetto da svolgersi in gruppo su un’applicazione di
interesse individuata dagli studenti e/o dai docenti (40%), attraverso i quali è possibile valutare le capacità di lavorare in un team e di preparare relazioni scritte e orali inerenti la soluzione proposta ai temi/problemi ad essi assegnati e di un esame finale orale ((a) 80%- (b) 60%) che verte su tutti gli argomenti previsti dal programma.

Testi

[1] F. Zhao, L. Guibas, Wireless Sensor Networks – An Information Processing Approach, Elsevier, 2004;
[2] H. Karl, A. Willig, Protocols and Architectures for Wireless Sensor Networks, Wiley, 2006
[3] W. Stallings, Wireless communication and networks, 2nd Ed., Pearson
[4] A. Forster, Introduction to Wireless Sensor Networks, Wiley
[5] D. Dhamdhere, “Operating Systems: A Concept-Based Approach”, McGraw-Hill Companies, 2008.
[6] A. S. Tanenbaum, M. Van Steen, “Distributed Systems: Principles and Paradigms”, Prentice Hall, 2002.
[7] G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, "Distributed Systems: Concepts and Design", 2009.
[8] P. K. Sinha, " Distributed Operating Systems: Concepts and Design ", 1997.
[9] A. S. Tanenbaum, "Distributed Operating Systems", 1997.
[10] T. White, "Hadoop: The Definitive Guide, 4th Edition", O’Reilly, 2015.
[11] B. Reed, F. Junqueira, "ZooKeeper. Distributed Process Coordination", O’Reilly, 2013.
[12] M. Zaharia, H. Karau, A. Konwinski, P. Wendell, "Learning Spark Lightning-Fast Big Data Analysis", O’Reilly,
2015.
[13] G. Eisbruch, J. Leibiusky, D. Simonassi, "Getting Start with Storm", O’Reilly, 2015.

Altre informazioni

Tutte le informazioni di dettaglio sul corso sono reperibili sulla pagina del Corso in piattaforma di e-learning del
Dipartimento di Scienze e Tecnologie: http://e-scienzeetecnologie.uniparthenope.it/
in particolare:
Parte I: http://e-scienzeetecnologie.uniparthenope.it/course/view.php?id=152
Parte II: http://e-scienzeetecnologie.uniparthenope.it/course/view.php?id=64