Academic Year 2023-2024



Ivan Scagnetto
Course Year
Unit Credits
Teaching Period
Second Period
Course Type
Prerequisites. Computer Architecture, Operating Systems and Laboratory, Programming and Laboratory, Object Oriented Programming and Laboratory, Computer Networks.
Teaching Methods. Practical lessons will be held in the laboratory, in order to allow students to experiment with several IoT-technologies and tools.
Verification of Learning. Development, oral presentation and discussion of a project, agreed with the teacher, about the topics of the course.

Sector-specific skills:

1) Knowledge and understanding: the student will acquire specific knowledge about programming IoT systems and about the issues related to their operation. She/He will also learn how to evaluate and how to choose among several technologies, protocols, techniques and algorithms, depending on the purpose of the implementation and on the design specifications.

2) Applying knowledge and understanding: thanks to the lab activities, the student will get specific skills in the application of the acquired knowledge of IoT systems to real case-studies.

Cross-sectoral skills/soft skills:

1) Making judgements: the student will acquire a critical appraisal skill in appropriately selecting technologies, algorithms and programming techniques according to their outcome on the correct and effective implementation of an IoT system in different application contexts.

2) Communication skills: the student will learn how to describe an IoT system using a technically correct and appropriate terminology.

3) Learning skills: the student will learn how to be autonomous in expanding his knowledge of IoT systems beyond the notions and examples learned and analyzed during the course, discovering and exploiting connections with other courses such as operating systems, computer networks, and programming.

Testo in Inglese

The aim of the course is to provide students with basic knowledge and practical skills in designing and implementing hardware/software systems in the Internet of Things (IoT) scenario.

Indeed, the new “ubiquitous computing” model is quickly overlapping and replacing the classic desktop paradigm (which characterized the computing world for many years), thanks to technological advances that allow the user to interact with networking devices, (smart) sensors and interconnected actuators, in order to exchange data and to remotely program systems by sending commands of various kinds. Thus, the focus shifts from human-machine interaction to machine-to-machine interaction (M2M) with the use of protocols and algorithms suitable for the transmission and the efficient manipulation of data streams.

Main topics:

1) Hardware: rapid prototyping platforms (Arduino), single-board computers (Raspberry), sensors, wireless communication technologies.

2) IoT communication protocols.

3) Design and implementation of IoT systems.

4) Programming issues related to IoT: concurrency, real-time computing, synchronization, event/error handling.

5) Frameworks for building IoT applications.

6) Introduction to autonomous systems/drones.

Lecture slides and teaching materials provided by the teacher.