Internet Of Things 2025

10606829 - INTERNET OF THINGS: ALGORITHMS AND SERVICES

(A. A. 2024/2025)

Technology is moving beyond the personal computer to everyday devices with embedded technology and connectivity as computing devices become progressively smaller and more powerful. We are going through a new phase of computing evolution that involves processing capabilities in everything: objects, places, people, and processes. Almost any device, from clothing to tools to appliances to cars to homes to the human body to your coffee mug, can be embedded with chips to connect the device to an infinite network of other devices.

The Internet of Things (IoT) goes beyond the realm of personal computers: devices, networks, and cloud services are being merged with people and their activities - individuals or groups - to provide new and exciting possibilities in everything we do. Such highly interconnected computational components act autonomously and intelligently through the use of software agents that seamlessly integrate humans in the loop, creating new opportunities for intelligent systems where humans and agents interact continuously.

"Ubiquitous computing names the third wave in computing, just now beginning. First were mainframes, each shared by lots of people. Now we are in the personal computing era, person and machine staring uneasily at each other across the desktop. Next comes ubiquitous computing, or the age of calm technology, when technology recedes into the background of our lives" -- Mark Weiser, 1988


Course Objectives

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


Syllabus

The course is organized in the following modules:

  • Module 1: Service Design for the Internet of Things.
    • Introduction to the main concepts of the IoT and design aspects of IoT platform enabled applications. Overview of specific IoT services such as Transportation/Mobility, Energy, Retail and Healthcare. Study of specific use cases and IoT projects. Experience/Interaction design for IoT applications.
    • Introduction to research areas of Ambient Intelligence, Collective Intelligence, Participatory sensing and Crowdsensing. Presentation of scientific & technological challenges.
  • Module 2: Embedded Operating Systems and Hardware Platforms.
    • Introduction to embedded operating systems and offered services. Overview of IoT peratings systems (Riot-OS, Contiki, TinyOS). Deployment methodology and offered services. Task scheduling and power management in low-power and real-time operating system.
    • Hardware prototyping platforms. The ESP 32 platform. The ST Microelectronnics NUCLEO platform and the ARM Cortex M architecture.
  • Module 3: Algorithms.
    • Adaptive sampling and filtering algorithms.
    • Techniques for Fulfilling the Time-Bound Requirements of Time-Sensitive IoT Applications.
    • Data-Driven Synchronization for Internet-of-Things Systems
    • Practical Data Prediction for Real-World Wireless Sensor Networks
    • Model-Based Approaches to Sensor Data Compression
  • Module 4: Performance Evaluation.
    • Introduction to different aspects of performance evaluation for IoT applications. Elements of network performance and wireless communication. Measuring power consumption and energy efficiency. Looking into the security and privacy of data.
    • Tools for conducting performance evaluation. Overview of software simulators. Synthetic models for wireless channels, node mobility and application traffic generation. Using real-world datasets.
    • Experimentation-as-a-service: IoT Lab for very large scale open real-world experimentation.
  • Module 5: Data, Analytics, Security, Privacy.
    • Introduction to data processing architectures. Big Data analytics in IoT enabled applications. AIOT: Artificial Intelligence for IoT. Cloud vs Edge computing, technical challenges and service level requirements. Basic notions of Fog computing and research challenges.
    • Presentation of Amazon Web Services for the Internet of Things. Detailed presentation of IoT Core, IoT Analytics, GreenGrass. SageMaker @ Edge
    • Machine-to-Machine (M2M) communication, basic principles of interoperability.
    • Securing the Internet of Things, TinyDTLS and Elliptic Curve Cryptography.
    • Blockchain for IoT. Opportunities and Challenges of Smart Contracts for IoT. Introducing IoT data in Smart Contracts using Oracles. IOTA: open-source distributed ledger and cryptocurrency designed for the Internet of things.
    • Privacy Preserving Computation. Privacy preserving aggregation and group computation.

The material presented throughout the semester is based to a large extend on the Short Course on IoT


Individual Assignment

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 required to buy an open-design development board based on ESP-32 with WiFi and LoRA connectivity capabilities, such as one of the following: WiFi LoRa 32 (V3) provided by Heltec, WiFi LoRa 32 (V3) provided by Heltec or TTGO T-Beam V1.1 ESP32 provided by LILYGO or other variants.

Students are required to buy an electronics components kit. The electronic components kit in combination with the ESP32 will be used to learn the basics of embedded programming and circuit assembly. Additional components may be needed, depending on your design choices for the realization of the individual assignments.

  • Individual Assignment

The assignment is done by each student individually. Clearly you should discuss with other students of the course about the assignments. However, you must understand well your solutions, the code and the final write-up must be yours and written in isolation. In addition, even though you may discuss about how you could implement an algorithm, what type of libraries to use, and so on, the final code must be yours. You may also consult the internet for information, as long as it does not reveal the solution. If a question asks you to design and implement an algorithm for a problem, it's fine if you find information about how to resolve a problem with character encoding, for example, but it is not fine if you search for the code or the algorithm for the problem you are being asked. For the projects, you can talk with other students of the course about questions on the programming language, libraries, some API issue, and so on, but both the solutions and the programming must be yours. If we find out that you have violated the policy and you have copied in any way you will automatically fail. If you have any doubts about whether something is allowed or not, ask the instructor.


Group Assignment

Students are organized in groups of three and take over the design, development and evaluation of a pervasive system.

The development will be based on the ESP32 board allowing the students to try out their ideas and to quickly create prototypes for evaluation. Each project will be demonstrated at the end of the semester along with a detailed presentation of the evaluation of the end-to-end performance.

The group assignment thematic area, expected results and delivery schedule will be presented in detail during the 1st Lecture.

  • 1st Delivery: Initial Idea Pitch
  • 2nd Delivery: Intermediate Delivery
  • Exam: Final Delivery


Final Exam

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.

You can find detailed information on what you are expected to submit, how and when for each of the individual assignment, the three deliveries of the group project on the previous sections by following the links "Instructions".

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.


Instructors


Location & Schedule

  • Wednesday, 15:00 - 17:00, DIAG A5
  • Friday, 13:00 - 16:00, DIAG A7


Contact & Discussions

A Google Classroom is available using the following code: lbnrx37


Course Plan & Detailed Material

The material presented throughout the semester is based to a large extend on the Short Course on IoT

  • Lecture 1. Presentation of Course Plan, Requirements, Course work and Final Exam. Introduction to the Internet of Things, Application areas and Use cases. Data driven time synchronization and adaptive sampling. node vs edge vs cloud computing approaches. Presentation of Group Projects Thematic Area
  • Lecture 2. Introduction to Embedded OS, Concepts, Challenges. Coding in FreeRTOS
  • Lecture 3. Evaluation Metrics for IoT. Performance Evaluation. Real World dataset, Synthetic Models and Experiments
  • Lecture 4. Energy Saving and Duty Cycling.
  • Lecture 5. Optimal Sampling Strategies, Event Detection and Adaptive Thresholds.
  • Lecture 6. Anomaly detection and Outlier detection.
  • Lecture 7. Window-based event processing. Group Projects: Initial Ideas Pitch.
  • Lecture 8. Low-Power Long-Range Networks
  • Lecture 9. Cloud-Edge Processing Continuum. Cloud-based IoT services. Amazon Web Services.
  • Lecture 10. Cloud-Edge Processing Continuum. Edge-based IoT services. Amazon Web Services.
  • Lecture 11. AI at Edge. Low-power AI
  • Lecture 12. Individual Project Presentations
  • Lecture 13. Federated Learning and Edge Computing (Part 1)
  • Lecture 14. Federated Learning and Edge Computing (Part 2)
  • Lecture 15. Group Projects: Demo of main components.
  • Lecture 16. Security for IoT (Part 1)
  • Lecture 17. Security for IoT (Part 2)
  • Lecture 18. Crowd sensing and Mobile Computing
  • Lecture 19. Blockchains for the IoT
  • Lecture 20. Group project workshop.
  • Lecture 21. Group project workshop.
  • Lecture 22. Group Project Final Presentation (Part 1)
  • Lecture 23. Group Project Final Presentation (Part 2)


Previous Years