Skip to main content
CODE 86985
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

This course looks at the Internet of Things (IoT) as the general theme of physical/real-world things becoming increasingly visible and actionable via Internet and Web technologies. The goal of the course is to provide students with a comprehensive understanding of the IoT.

 

AIMS AND CONTENT

LEARNING OUTCOMES

By looking at real-world application scenarios, the students will understand the most important IoT technologies and the fundamental Web architectural principles. The students will have the opportunity to apply these technologies to develop some real-world use cases, using open-source platforms for implementing prototypes and testing them as running applications.

AIMS AND LEARNING OUTCOMES

Regular attendance and active participation in the proposed educational activities (lectures and practical laboratories) along with individual study will enable students to:

  • define the requirements of a complete system consisting of sensors, local processing, locale/remote processing, persistence, and access through mobile devices.
  • acquire real-world measurements through sensors.
  • process the collected data in the immediate vicinity of the sensor using embedded systems.
  • collect data on a remote server hosting a non-relational database.
  • visualize data graphs through mobile devices (smartphones)
  • interact with the physical world through actuators.

The student will be familiar with the concept of REST APIs and he will be able to apply it using HTTP, NodeJS, and MongoDB technologies. By the end of the course, the student will be capable of designing and implementing a complete hardware/software system in the field of IoT.

PREREQUISITES

To effectively engage with the contents of the course, the following basic knowledge is required: programming with the C programming language and fundamental concepts of digital systems design.

TEACHING METHODS

The teaching approach consists of both lectures and practical exercises. In particular, students will be provided with content in the form of slides accompanied by explanatory video tutorials, which they can access before the lectures. During the lectures, the instructor will apply the content to complex problems, delve deeper into the topics covered, oversee the production of assignments by students in groups, and discuss the main difficulties encountered. Students are encouraged to use their own computers during the lecture to actively engage with the material presented by the instructor. During the practical exercises, students will tackle real-world problems on their computers, applying the techniques learned from the tutorials and further explored during the lectures.

SYLLABUS/CONTENT

The following list outlines the topics covered in the course. Some of the materials used during the lectures, including slides and source code for exercises, can be downloaded from the following link: https://github.com/riccardoberta/makers

  1. Introduction to IoT, WoT, and Physical Computing
  2. Edge Devices
  3. Sensors
  4. JavaScript
  5. HTTP
  6. NodeJS
  7. REST API
  8. WoT Proxy
  9. Persisting Data
  10. Securing
  11. Interoperability and Semantics
  12. GUI (Graphical User Interface)

By accessing the GitHub repository, you will have access to the lecture materials, including slides and notebooks, to further explore and study the course topics.

The United Nations has formulated a list of 17 goals under the 2030 Agenda for Sustainable Development, ranging from eradicating poverty and hunger to improving health, education, and reducing inequalities and injustices. Every product relies on physical resources to exist. Digital products are no exception, even though we cannot physically touch the digital world, it has a rapidly growing environmental impact on our planet. For digital designers, there is a unique creative opportunity to enhance the benefits of dematerializing various products, which requires applying specific knowledge of digital sustainability, adopting new tools, and evolving design methods. As designers, we have the ability to enable companies to deliver products that are not only desirable and profitable but also human-centered and environmentally respectful. When designing with sustainability in mind, we develop digitally efficient systems in terms of energy consumption (Goal 12: Responsible Consumption and Production). Throughout the course, we will help students gain clarity on the impact of digital systems on the physical environment, highlighting the challenges that exist in the digital space when aiming to create a more sustainable world. Furthermore, when presenting examples of digital system implementations, we will use scenarios aimed at promoting the sustainable use of natural resources (Goal 13: Climate Action, Goal 15: Life on Land, Goal 14: Life Below Water), improving life in cities (Goal 11: Sustainable Cities and Communities, Goal 3: Good Health and Well-being), and in industries (Goal 9: Industry, Innovation, and Infrastructure).

RECOMMENDED READING/BIBLIOGRAPHY

All the slides, source code, and other educational materials used during the lectures will be available on aul@web. In general, the lecture notes and materials on aul@web are sufficient for exam preparation. The following books are recommended as supplementary texts:

  • Michael Margolis, "Arduino Cookbook," O'Reilly
  • Dominique Guinard, "Building the Web of Things," Manning
  • Tom Hughes-Croucher, "Node Up and Running," O'Reilly
  • Leonard Richardson, "RESTful Web APIs," O'Reilly
  • Marijn Haverbeke, "Eloquent JavaScript: A Modern Introduction to Programming," No Starch Press

These books can provide additional insights and resources for further study on the topics covered in the lectures.

TEACHERS AND EXAM BOARD

Exam Board

RICCARDO BERTA (President)

CHRISTIAN GIANOGLIO

FRANCESCO BELLOTTI (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam consists of an oral examination on the theoretical topics covered in the lectures and a discussion of the exercises carried out during the lessons. In particular, students must demonstrate a full understanding of the concepts underlying the development of RESTful APIs and their application to the design and implementation of IoT applications. The exam will assess students' comprehension of the concepts, their ability to apply the algorithms, and their practical implementation skills.

ASSESSMENT METHODS

The details regarding the exam preparation methods and the level of depth required for each topic will be provided during the course lectures. During the oral examination, the instructor will ask the student to explain the concepts learned in class. For each concept, the student will need to provide not only the definition but also describe the conditions for its application, as well as any advantages and disadvantages associated with it. When discussing the exercises completed during the course, the student will be expected to describe the design choices made, the possible alternatives considered and discarded, and the reasons behind those decisions. The problems and questions presented will assess the student's ability to apply their knowledge in practical situations that may occur in real life.

Exam schedule

Data appello Orario Luogo Degree type Note
14/02/2025 09:00 GENOVA Esame su appuntamento
10/06/2025 09:00 GENOVA Scritto
24/06/2025 09:00 GENOVA Scritto
08/07/2025 09:00 GENOVA Scritto
22/07/2025 09:00 GENOVA Scritto
09/09/2025 09:00 GENOVA Scritto
12/09/2025 09:00 GENOVA Esame su appuntamento

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Industry, innovation and infrastructure
Industry, innovation and infrastructure
Sustainable cities and communities
Sustainable cities and communities
Responbile consumption and production
Responbile consumption and production