Course Syllabus
Aims
The “Internet of Things” is reshaping the world by more and more integrating our lives with technological components. The course aims at providing the general understanding and concepts about the technologies behind the Internet of Things (IoT) and in particular to applications to the so-called Industry 4.0. The course will discuss IoT design considerations, constraints and interfacing between the physical world and IoT devices, and how to make design trade-offs between hardware and software. Key aspects of networking will be covered to understand how devices are connected.
Contents
The technologies involved in the IoT hardware/software stack encompass a broad spectrum, including embedded systems, sensors, operating systems, networking, communication protocols, data management and analysis. The course will introduce the main concepts of each domain, with more focus on some specific selected aspects. The course will include hands-on lectures on the basics of programming for the IoT using the Python programming language.
Detailed program
- Definition of “Internet of Things” and Industry 4.0
- Technological trends which brought to IoT
- Impact of IoT on society and examples of applications
- Definition and architecture of embedded systems
- Interfacing of embedded systems with the physical world (sensors and actuators)
- Operating systems and real-time scheduling
- Basic of Finite State Machines
- Basic networking hardware and software stacks
- Network protocols (MQTT, CoAP) and data formats (JSON, XML) for the IoT
- Introduction to the Python programming language
- Python programming skills related to MQTT, JSON, HTTP
- The tkinter Python library for graphical interfaces
- The flask web framework and REST API
Prerequisites
The following prerequisites may be useful, but given the introductory nature of the course, they are not mandatory:
- computer programming
- software architecture of computers
- computer networks
Teaching form
The course is organized in frontal lectures that will cover all the topics listed in the program. Frontal lectures amount to around 2/3 of the course. The remaining lessons will consist in laboratory lectures and exercises related to the programming of IoT devices.
Textbook and teaching resource
All the material presented during the lessons is available from the course webpage as slides in PDF format. Additional resources include the following books:
David Hanes et al., “IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things”, Cisco Press, 2017.
Andy King, “Programming the Internet of Things: An Introduction to Building Integrated, Device-to-Cloud IoT Solutions”, O’Reilly, 2021.
Semester
Second
Assessment method
The exam consists of a single written test with questions and exercises related to the arguments presented during the course. There are no intermediate tests during the semester. An optional oral exam can be agreed upon request 1 by the student or by the teacher.
Office hours
Appointments can be requested to the teacher by sending an email to tullio.facchinetti@unipv.it .
The date and time of the appointment will be agreed according to the needs of both teacher and student.