Skip to main content
CODE 90524
ACADEMIC YEAR 2026/2027
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INFO-01/A
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester

OVERVIEW

Internet of Things (IoT) concerns systems where physical devices are connected to the Internet.
IoT is central to Computer Science, considering also that global IoT device connections are expected to continue to grow for many years to come.
This course is focused on the tasks of designing and implementing IoT systems, covering all their main layers (edge, transport and
computing): sensors, actuators, and device programming; IoT protocols; event-driven programming and cloud computing.

AIMS AND CONTENT

LEARNING OUTCOMES

The teaching unit aims to provide students with a general understanding of learning methods, protocols, architectures, and platforms for the development of distributed and mobile applications for the Internet of Things, including machine to machine protocols, distributed algorithms for fault tolerance and replication, service oriented architectures platforms, embedded operating systems, real time and streaming data, geolocation, and collaborative framework

AIMS AND LEARNING OUTCOMES

At the end of the course, students will be able to

  • apply the basic concepts of event-driven programming to the development of IoT systems
  • master basic knowledge of sensors/actuators, microcontrollers and device programming
  • master the most useful IoT protocols and design and implement an IoT architecture starting from informal requirements
  • use an IoT platform
  • design and develop a simple IoT system

PREREQUISITES

Object-Oriented Programming
Concurrent and Distributed Programming and Systems
Operating Systems and Networks
 

TEACHING METHODS

Lectures in classroom devoted to theory and demos.

Individual  assignments on event-driven and IoT programming in Node.js.
Individual virtual lab assignments on device programming and IoT platforms.

 

The  assignments are developed with the GitHub collaborative version control system, to better support students and instructors interactions

Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the course to agree on any teaching arrangements which, whilst respecting the course objectives, take into account individual learning styles. 

The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.

SYLLABUS/CONTENT

 

JavaScript

Node.js

Device Programming

- sensors and actuators

- Physical Web with Estimote Beacon

- Raspberry

-SensorLab per Android: Dashboard per dati sensoriURL

-Javascript for Mobile Apps: React Native

-Arduino Programming

-Low.js: Node.js for microcontrollersURL

-Microbit, Javascript and Micropython

IoT Application Layer: network and protocols

-Network protocols: BLE, 6LowPan, ZigBee, ThreadFile

-Physical Web in Node.js: Noble, Express and ClusterFolder

-Protocols in Node.js: COAP, MQTT, Websocket in Node.js

-Node.js Serverside: Schedulers with Immediate and NextTick, Fork and ClusterFile

-Smart Cities, IoT and data interoperability

IoT Platforms

 - Node-RED

 - InfluxDB and Grafana

 - Ubidots

RECOMMENDED READING/BIBLIOGRAPHY

Published on the course web site of the Unige Aulaweb portal.

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Individual programming and virtual lab assignments.

Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa

ASSESSMENT METHODS

The individual programming assignments aim to evaluate the ability of application of the basic concepts of event-driven programming
and learning of the most useful IoT protocols. The evaluation is based on the correctness, efficiency and readability of the code.

The virtual lab assignments have the aim to verify the ability

- to make independent decisions about sensors/actuators and device programming
- to use an IoT platform
- to integrate new functionalities into an IoT system, starting from informal requirements

The evaluation is based on the correctness, reliability, and scalability  of the adopted solutions.

 

FURTHER INFORMATION

For further information, please refer to the course’s AulaWeb module or contact the instructor.

Students with valid certifications for Specific Learning Disorders (SLD) may request accommodations for exams at least 7 days prior to the exam date by filling out the “accommodation request form” (available via online services at https://modulionline.unige.it/richiesta-adattamenti# no-back), which will be automatically forwarded by the system to the instructor in charge of the course and to the faculty liaison for students with disabilities and SLDs in their School/Department. 

The student will receive a copy of their request. 

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Sustainable cities and communities
Sustainable cities and communities

OpenBadge

SOFT SKILLS - Gestione progettuale base 1 - A
SOFT SKILLS - Gestione progettuale base 1 - A