Università degli Studi di Napoli "Parthenope"

Teaching schedule

Academic year: 
2019/2020
Belonging course: 
Course of Master's Degree Programme on APPLIED COMPUTER SCIENCE (MACHINE LEARNING AND BIG DATA)
Disciplinary sector: 
INFORMATICS (INF/01)
Language: 
Italian
Credits: 
12
Year of study: 
2
Teachers: 
DI CAPUA MICHELE
Cycle: 
Annualita' Singola
Hours of front activity: 
96

Language

Lectures in Italian,
books in English

Course description

Knowledge and understanding: The student must demonstrate knowledge and ability to understand advanced aspects of networking with sensor networks, from strategies at the MAC level to applications, with which to navigate the techniques of acquisition, management and analysis of sensor data in a context both theoretical and practical. Furthermore, the student must demonstrate knowledge and ability to understand advanced aspects of the systems and architectures distributed in a theoretical and practical context.
Ability to apply knowledge and understanding: The student must demonstrate the ability to use his / her acquired knowledge to solve advanced problems of networking of sensors and heterogeneous devices and their integration with other IoT technologies, from the point of view of the specific application domain, and management of systems and architectures in the IoT application context.
Making judgments: The student must be able to know how to evaluate the quality of the proposed design and implementation solutions based on different and specific service quality criteria. Furthermore, he must know how to compare the aforementioned solutions with respect to some de facto standards available in literature and open-source software.
Communication skills: The student must be able to deal with and manage all the phases of a software project focused on IoT technologies. Therefore the student must be able to produce a detailed documentation of the requirements of the application domain, of the design and implementation, exposing the results obtained and highlighting the advantages and disadvantages of the proposed solutions, also with seminar activities (possibly in English). Capacity of learning: The student must be able to update and analyze in an autonomous way specific topics and applications of the IoT and the WSNs of distributed processing systems, also by accessing databases, on-line repositories of software and development frameworks and simulations of WSN and other methods made available by the network.

Prerequisites

For students of Machine Learning and Big Data it is necessary to have acquired the knowledge
and the skills transmitted by the following courses: Programming I, Programming II, Operating Systems, Algorithms
and Data Structures and Communication Networks.

Syllabus

With part I, the course introduces the issues of the emerging technology of the Internet of Things (IoT) that pervades modern everyday life, in which hundreds of thousands of heterogeneous objects they are interconnected through wireless and non-wireless communication channels to provide information and control over the physical world that surrounds us. After an overview of the main technologies enabling IoT applications, that is, wireless communication, RFID systems, Cloud Computing, the focus will be on wireless sensor networks (WSN). The WSN main characteristics, namely, the components of a sensor node, the objectives and principles of
design of a WSN architecture, the main protocols at the MAC and networking level, will be detailed.
Part II introduces systems and architectures for the IoT from the point of view of distributed systems and architectures and their planning. Firstly, the course analyses the problems underlying the distributed systems, that is, communication and definition of time and state of distribution. Then will be analysed some control algorithms used to manage distributed resources: synchronization and coordination algorithms; Deadlock; Scheduling; Leader elections; Process allocation; Termination detection; Consent; Allocation, migration and load balancing; Distributed Shared Memory. The next phase deals with the topic of distributed filesystems from the theoretical / design point of view and then from the implementation point of view,
analysing some case studies such as: NFS, ANDREW, CODA, GFS, HDFS. Finally, the course presents an introduction to the Hadoop ecosystem focusing in particular on three modules: Zookeeper, Spark, Storm. The course includes a part of the laboratory in which to experiment with the WSN OS and related WSN and with the Hadoop ecosystem.

Part I
1. Wireless communication principles
a. electromagnetic waves
b. Analog and digital signals
c. Relationship between frequency band and data rate
d. Effects of wave propagation and noise
e. Allocation of frequencies
f. Modulation and Multiplexing
2. Cellular networks
a. definition and basic concepts
b. architecture of a cellular network (GSM)
c. Databases in cellular networks
d. Reuse of frequencies
e. Position management
f. Paging
g. Handoff
h. Assignment of the channel
i. Evolution of cellular networks
3. RFID systems:
a. definition
b. components of an RFID system
c. Types of tags and readers
d. Life cycle tags and privacy and security issues
e. Inductive electromagnetic coupling and electromagnetic coupling with backscatter
f. Applications
4. Cloud computing:
a. Definition
b. cloud models
c. service models: SaaS, PaaS and IaaS
d. Virtualisation techniques
e. Load balancing
f. Scalability and elasticity
g. MapReduce
h. Examples of commercial clouds.
5. Wireless Sensor Networks
a. Introduction
b. Architecture of a sensor node
c. Architectures of sensor networks
d. Requirements and design constraints for MAC-level protocols for WSN
e. MAC-level protocols: contention based and scheduling based
f. MAC protocols: S-MAC, T-MAC, PAMAS, LEACH, SMACS, PLOT
g. Routing protocols for WSN: design constraints and requirements, unicast geographic routing; routing
perimeter; Other face routing; RSPG; Routing on a curve; Geographical and energy-aware routing;
Attribute-based routing: GHT, Directed diffusion, rumor routing.
h. Topology control and Time synchronisation: interval method and reference broadcasting;
i. Sensor Networks Database: Interface for queries; In-network aggregation; Data-centric storage;
Data indexes and query ranges.
j. Operating system for WSN: Contiki.

Part II
1. Introduction to distributed systems: Distributed architectural models and their programming. Principles, key characteristics, advantages and disadvantages. Project choices and related problems. Topologies, types of networks of
interconnection. Transmission media. Protocol and services. Performance.
2. Communication: Client-server and IPC paradigms. Group communication. Multicast. Invocation mechanisms e
remote call: Remote Method Invocation (RMI). Remote Procedure Call (RPC). Types and semantics. Examples.
3. Time and status of a distributed system: Time. State. Clock. Clock synchronisation. Precedences between events.
Recording of the global status.
4. Distributed control algorithms: Synchronisation and coordination algorithms. Deadlock. Scheduling.
Elections of a leader. Process allocation in distributed systems. Termination detection.
5. Processes: allocation, migration and load balancing.
6. Distributed File Systems: Template of file service and project issues. Case studies: NFS, AFS and CODA,
GFS, HDFS
7. Distributed Shared Memory
8. Apache Hadoop. Hadoop ecosystem: Zookeeper, Spark, Storm.

Teaching Methods

Teaching is carried out through lectures, seminars of experts in the field and by the students themselves and activities to be accomplished as laboratory.

Textbooks

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

All lectures are in pdf format, and are available through the e-learning platform of the Department of Science and Technology together with in-depth educational material (articles and extracts from reference texts, lecture notes by the lecturers).

Learning assessment

The goal of the verification procedure is to quantify, for each student, the level of achievement of the
training objectives previously indicated. The verification procedure consists (a) of a seminar on a topic chosen by the
student and / or by teachers (20%) or, alternatively, (b) in a project proposal to be carried out in a group on an application of
interest identified by students and / or teachers (40%) through which their ability for working in a team and for preparing documents discussing their solution to the addressed problems are evaluated, and in a final oral exam ((a) 80%, (b) 60%), consisting in questions covering the whole program topics.

More information

All detailed information on the course can be found on the course page in the e-learning platform
Department of Science and Technology: http://e-scienzeetecnologie.uniparthenope.it/
in particular:
Part I: http://e-scienzeetecnologie.uniparthenope.it/course/view.php?id=152
Part II: http://e-scienzeetecnologie.uniparthenope.it/course/view.php?id=64