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.
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.
Regular attendance and active participation in the proposed educational activities (lectures and practical laboratories) along with individual study will enable students to:
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.
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.
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.
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
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).
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:
These books can provide additional insights and resources for further study on the topics covered in the lectures.
Ricevimento: Appointments. Writing to riccardo.berta@unige.it
RICCARDO BERTA (President)
CHRISTIAN GIANOGLIO
FRANCESCO BELLOTTI (President Substitute)
https://corsi.unige.it/9273/p/studenti-orario
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.
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.