Course program
The course aims to introduce students to the main concepts behind the Internet of Things (IoT) necessary to (a) understand the meaning of digital ubiquity and how connections, sensors, and data are revolutionizing business by examining emerging application scenaria and studying characteristic design approaches of pervasive systems and embedded networks; (b) build physical prototypes of smart objects that embedded processing capabilities to almost any device, from clothing to appliances to homes to cars to business machines taking into consideration the constrained resources available on embedded systems; (c) design robust and efficient information & communication infrastructures for the acquisition, processing and storage of sensor data; (d) examine essential algorithmic techniques and performance limits and provide the foundations for algorithms engineering in open-design; (e) evaluate the performance of the solution implemented in terms of network, energy, and cybersecurity requirements using real-world experimentation facilities.
This course introduces the students to programming for embedded devices, real-time operating systems and hardware platforms based on the ARM Cortex-M architecture. Techniques for task scheduling and power management in low-power and real-time operating systems. Networking technologies and standards for low-power and long-range wide area networks. Advanced techniques for over-the-air programming in lossy wireless networks. Low-power cryptographic mechanisms for data encryption and network security.
The students will study data processing architectures that achieve certain service level requirements (a) based on the cloud computing paradigm to integrate sensors data with web and mobile services; (b) combining Big Data analytics for stream processing of sensor data; (c) building upon the edge computing and fog computing paradigms to take advantage all the resources available on the cloud-edge-device processing continuum; (d) utilize distributed ledger technologies and smart contracts to integrate sensor data in advanced services; (e) protect the privacy and confidentiality of date by utilizing privacy preserving aggregation and group computation techniques. The course focuses on technologies to collect, integrate and processing data in the most efficient way rather than in exploiting those data to distill new knowledge (e.g. machine learning).
The course is characterized by a learn-by-doing approach. To pass the exam students have to carry out individual assignments and a final group project.
Prerequisites
DEPENDABLE DISTRIBUTED SYSTEMS
ALGORITHM DESIGN
Frequency
The course is conducted through weekly in-person lectures held twice per week.
Exam mode
Students will need to carry out a single assignment that realizes an IoT system. The assignment is individual and needs to be submitted through Google Classroom.
Students are organized in groups of three and take over the design, development and evaluation of a pervasive system.
The course will be evaluated based on the performance of (a) the individual assignment, (b) the three deliveries of the group project and the overall quality of the group project, and (c) the active participation of the student during the semester.
Additional information about exam products are given during the class and communicated through the Google Classroom system. We strongly suggest students to attend the class and to participate to these activities in order to complete the assignments within the dates of the course.
Bibliography
Connected Things Connecting Europe, Communications of the ACM, March 2019.
Digital Ubiquity: How Connections, Sensors, and Data Are Revolutionizing Business, Harvard Business Review, November 2014.
The Future of Sensing is Batteryless, Intermittent, and Awesome, 15th ACM Conference on Embedded Network Sensor Systems (SENSYS), November 2017.
Internet of Things (IoT) Operating Systems Support, Networking Technologies, Applications,and Challenges: A Comparative Review, IEEE Communications Surveys & Tutorials, Vol. 20, No. 3, 2018.
Application Domain-Based Overview of IoT Network Traffic Characteristics, ACM Computing Surveys, Vol. 53, No. 4, July 2020.
A Survey of Enabling Technologies of Low Power and Long Range Machine-to-Machine Communications, IEEE Communications Surveys & Tutorials, Vol. 19, No. 4, 2017.
Flexible experimentation in wireless sensor networks, Communications of the ACM, January 2012.
A Framework to Implement IoT Network Performance Modelling Techniques for Network Solution Selection, MDPI Sensors, 16(12), article 2038, 2016.
Analytics for the Internet of Things: A Survey, ACM Computing Surveys, Vol. 51, No. 4, July 2018.
Applications of Distributed Ledger Technologies to the Internet of Things: A Survey, ACM Computing Surveys, Vol. 52, No. 6, November 2019.
Lesson mode
The course is conducted through weekly in-person lectures held twice per week. The course combines theoretical instruction with hands-on programming exercises. Practical aspects, such as implementing algorithms and working with cloud-based resources (AWS), are integrated into the teaching and supported through regular hands-on assignments. Students are expected to actively participate, bring their laptops to class for in-lecture coding activities, and progressively develop their own toolkit for solving real-world IoT problems.