CODE 86985 ACADEMIC YEAR 2024/2025 CREDITS 6 cfu anno 3 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - GENOVA 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 Introduction to IoT, WoT, and Physical Computing Edge Devices Sensors JavaScript HTTP NodeJS REST API WoT Proxy Persisting Data Securing Interoperability and Semantics 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 RICCARDO BERTA Ricevimento: Appointments. Writing to riccardo.berta@unige.it Exam Board RICCARDO BERTA (President) CHRISTIAN GIANOGLIO FRANCESCO BELLOTTI (President Substitute) LESSONS LESSONS START https://corsi.unige.it/9273/p/studenti-orario 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 Industry, innovation and infrastructure Sustainable cities and communities Responbile consumption and production