Internet-of-Things Algorithms and Services

Course objectives

General Objectives. The course is mainly addressed to Computer Engineers and Computer Scientists and aims at providing the basic skills to design, implement and test a pervasive system, namely a system that allows users to access services of interest always and everywhere. We will discuss the technologies, protocols, functionalities and algorithms to realise a pervasive system capable to provide specific services (e.g. services for mobile users, services for the IoT etc.) subject to the constraints and challenges of the wireless links and the limited resources of the devices connected to form the pervasive system (e.g. energy constraints, mobility, noise, limited CPU power, limited bandwidth, etc.)

Channel 1
ANDREA VITALETTI Lecturers' profile

Program - Frequency - Exams

Course program
The program of the course is available at http://ichatz.me/Site/InternetOfThings2023 and is divided into modules Module 1: Designing Applications for the Internet of Things. Module 2: Embedded Operating Systems and Hardware Platforms. Module 3: Networks, Protocols, Security. Module 4: Performance Evaluation. Module 5: Data, Analytics, Privacy.
Prerequisites
Some knowledge of C programming helps, but it is not mandatory
Books
All the reference material is clearly referenced on http://ichatz.me/Site/InternetOfThings2023
Teaching mode
The course is currently delivered in mixed mode. If the COVID conditions recommend it and / or there are indications from the university, the delivery method may be changed The reference site is http://ichatz.me/Site/InternetOfThings2021 A Google Classroom is available using the following code: 372j6wc A slack channel is available at the following URL: https://iot2021diag.slack.com
Frequency
In class
Exam mode
The course includes individual and group assessments as detailed in http://ichatz.me/Site/InternetOfThings2023
Lesson mode
The course is currently delivered in mixed mode. If the COVID conditions recommend it and / or there are indications from the university, the delivery method may be changed The reference site is http://ichatz.me/Site/InternetOfThings2021 A Google Classroom is available using the following code: 372j6wc A slack channel is available at the following URL: https://iot2021diag.slack.com
ANDREA VITALETTI Lecturers' profile

Program - Frequency - Exams

Course program
The program of the course is available at http://ichatz.me/Site/InternetOfThings2023 and is divided into modules Module 1: Designing Applications for the Internet of Things. Module 2: Embedded Operating Systems and Hardware Platforms. Module 3: Networks, Protocols, Security. Module 4: Performance Evaluation. Module 5: Data, Analytics, Privacy.
Prerequisites
Some knowledge of C programming helps, but it is not mandatory
Books
All the reference material is clearly referenced on http://ichatz.me/Site/InternetOfThings2023
Teaching mode
The course is currently delivered in mixed mode. If the COVID conditions recommend it and / or there are indications from the university, the delivery method may be changed The reference site is http://ichatz.me/Site/InternetOfThings2021 A Google Classroom is available using the following code: 372j6wc A slack channel is available at the following URL: https://iot2021diag.slack.com
Frequency
In class
Exam mode
The course includes individual and group assessments as detailed in http://ichatz.me/Site/InternetOfThings2023
Lesson mode
The course is currently delivered in mixed mode. If the COVID conditions recommend it and / or there are indications from the university, the delivery method may be changed The reference site is http://ichatz.me/Site/InternetOfThings2021 A Google Classroom is available using the following code: 372j6wc A slack channel is available at the following URL: https://iot2021diag.slack.com
IOANNIS CHATZIGIANNAKIS Lecturers' profile

Program - Frequency - Exams

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.
IOANNIS CHATZIGIANNAKIS Lecturers' profile

Program - Frequency - Exams

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.
  • Lesson code10606829
  • Academic year2025/2026
  • CourseEngineering in Computer Science and Artificial Intelligence
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDING-INF/05
  • CFU6