About the Course

Students will learn the architectures and methodologies at the basis of the Internet of Things (IoT), and will develop advanced competences about network protocols, integration of mobile and pervasive end-devices in a Machine-to-Machine (M2M) paradigm. Devices considered for integration will include sensors and actuators as well as more complex boards. Middleware platforms for M2M-based IoT systems will be illustrated as well as edge/distributed/gateway computing principles. New services, service platforms and application scenarios will be illustrated, designed and experimented, with high emphasis on advanced and visionary services.


The class will introduce the enabling technologies, protocols, software architectures and applications for the development of the emerging Internet of Things (IoT) paradigm. After a short introduction to pervasive computing and the emerging fields of applications (e.g. Industry 4.0, domotics, intelligent transportation systems, wearable devices, etc.) the class will provide a exhaustive illustration of the enabling components of IoT systems. These will include wireless communications among end-devices and towards infrastructures, data processing, languages for the development of applications and prototypes (Arduino, STM32 Nucleo, etc.). Specifically, the components of typical IoT system will be illustrated by following a data-oriented approach: from data generation on behalf of sensors to data transmission in WSAN, WPAN, WLAN, up to cloud streaming and storages, and including the data processing and integration in complex software systems. A short summary of the course contents includes:
  • Introduction to IoT systems: definitions, applications, enabling technologies
  • IoT components: from sensors to gateway.
    • Sensors and actuators, sketchy illustration of design principles of electronic circuit boards, sensing and data acquisition policies.
    • Microcontrollers and System on Chip (SoC) prototypes' programming (e.g. Arduino, STM32 Nucleo, ESP8266, etc.)
    • Machine-to-machine (M2M) communication technologies for WPAN (BLE, IEEE 802.15.4, etc.), WLAN and WSAN (LoRA, Dash7, Spirit, etc.)
    • 6LowPAN and RPL protocols
    • Non-IP Stacks (Zigbee, Dash-7, Z-Wave)
  • IoT components: from gateway to cloud.
    • Session layer protocols: XMPP, CoAP, MQTT, AMQP, WebSocket, etc.
    • The Web of Things and Semantic Web approaches for M2M and IoT
  • IoT storage and analytics
    • Architectures for data storage and processing: cloud/fog/edge computing
    • IoT platforms: AWS IoT, Watson IoT, ThingSpeak, etc.
    • IoT & Big-data
    • Machine learning principles (classification, clustering, regression, anomaly detection, etc.) and applications for sensor data analysis.
  • Frameworks for integrated development of IoT applications: AllJoyn, Google Thing, Apple HomeKit, etc.
  • IoT Open Issues and bottlenecks.


The course is scheduled on the Second Semester. Lessons will start on February 27 2019, and will approximatively end by the first week of June.
  • 02/27/2019 --- Course Introduction


Here we will publish the materials (software and slides) illustrated during the lessons.

  • Slides of the first lesson (Introduction). Please note the big size (123 MB). Ok, Download the 123 MB pdf!!!
  • Introduction to Wireless concepts. Ok, Download
  • Introduction to IoT Standards. Ok, Download
  • IoT Boards for Prototyping. Download
  • IoT Wireless technologies: LPWAN and LoRA PDF
  • IoT Network Layer solutions: IPv6 and 6LoWPAN PDF
  • IoT Session Layer protocols: MQTT and CoAP PDF
  • The Web of Things PDF
  • Sensor Data Management and Analytics PDF
  • List of topics for students' presentations (TBD)
  • Calendar of students' presentations (TBD)


Here we will publish news related to events of interest, and we will emphasize the main outcomes produced by the course (i.e. best students' projects, software and publications).