This course aim to introduce principles of Distributed Programming of Cyber-physical Systems and IoT in particular. Lectures will be arranged in three modules: Design of Distributed Applications; Languages and Tools for Distributed Programming; Monitoring of Cyber-physical Systems.
Design And Analysis Of Distributed Algorithm, Nicola Santoro, Wiley
Notes available at the Lecture Web Site.
Learning Objectives
The lecture aims to introduce students to basic principles of distributed systems in order to get familiar with the challenging aspects of this kind of systems. Students will get familiar with modern languages, tools and methodologies that allow to design and to develop Software for IoT. The use of these tools and methodologies will let them able to design and develop distributed systems based on the coordination of intelligent devices.
Prerequisites
Basic knowledge of Computer Programming and Networks.
Teaching Methods
Lectures
Type of Assessment
The exam consists of two parts:
- a short report;
- a oral exam.
To be admitted to the oral exam the short report must be previously accepted.
Course program
Design of Distributed Applications
+ Principles of Distributed Systems
+ Basic Problems and Protocols
+ Leader Election
+ Message Routing and Shortest Paths
+ Distributed Set Operations
+ Computing in Presence of Faults
Languages and Tools for Distributed Programming
+ Tuple spaces based langauges
+ Aggregate Computing
Monitoring of Cyber-physical Systems
+ Principles of System Monitoring
+ Logic based monitoring
+ Qualitative monitoring
+ Quantitativer monitoring
+ Monitoring of Spatial Properties