Salta al contenuto principale
CODICE 90524
ANNO ACCADEMICO 2026/2027
CFU
SETTORE SCIENTIFICO DISCIPLINARE INFO-01/A
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 2° Semestre

PRESENTAZIONE

L'Internet of Things (IoT) riguarda i sistemi in cui i dispositivi fisici sono connessi a Internet.
L’IoT è fondamentale per l’informatica, dato che si prevede che le connessioni globali dei dispositivi IoT continueranno a crescere per molti anni a venire.
L'insegnamento è incentrato sulle attività di progettazione e implementazione di sistemi IoT, e copre tutti i loro livelli principali (edge, trasporto e
informatica): sensori, attuatori e programmazione di dispositivi; protocolli IoT; programmazione guidata dagli eventi e cloud computing.

 

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L’insegnamento si propone di fornire una comprensione dei metodi, dei protocolli, delle architetture e delle piattaforme per lo sviluppo di applicazioni distribuite e mobili nell’ambito dell’Internet delle Cose, inclusi protocolli machine-to-machine, algoritmi distribuiti per la tolleranza ai guasti e la replica, architetture orientate ai servizi, sistemi operativi embedded, gestione di dati in tempo reale e in streaming, geolocalizzazione e framework collaborativi.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Al termine dell'insegnamento, lo studente/la studentessa sarà in grado di

  • applicare i concetti base della programmazione event-driven allo sviluppo di sistemi IoT
  • padroneggiare nozioni base su sensori/attuatori, microcontrollori e programmazione dei dispositivi
  • gestire i protocolli IoT più utili e progettare e implementare un'architettura IoT partendo da requisiti informali
  • utilizzare una piattaforma IoT
  • progettare e sviluppare un semplice sistema IoT 

 

PREREQUISITI

Programmazione Object-Oriented
Programmazione e sistemi concorrenti e distribuiti
Sistemi operativi e reti

 

MODALITA' DIDATTICHE

Lezioni frontali in aula dedicate alla teoria e alle demo.

Esercizi individuali su event-driven e IoT programming in Node.js.
Esercitazioni individuali di laboratorio virtuale su device programming e piattaforme IoT.

Gli esercizi di programmazione sono sviluppati con il sistema collaborativo di controllo delle versioni  GitHub, per migliorare l'interazione tra studenti e docenti

 

PROGRAMMA/CONTENUTO

JavaScript

Node.js

Device Programming

- sensori e attuatori

- Physical Web con Estimote Beacon

- Raspberry

-SensorLab per Android: Dashboard per dati sensoriURL

-Javascript per Mobile Apps: React Native

-sviluppo su Arduino

-Low.js: Node.js per microcontrollersURL

-Microbit, Javascript e Micropython

IoT Application Layer: reti e protocolli

-Protocolli di rete: BLE, 6LowPan, ZigBee, ThreadFile

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

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

-Node.js Serverside: Scheduler con Immediate and NextTick, Fork and ClusterFile

-Smart Cities, IoT and data interoperability

Piattaforme IoT

 - Node-RED

 - InfluxDB and Grafana

 - Ubidots

 

TESTI/BIBLIOGRAFIA

Disponibili sul sito del corso del portale Aulaweb Unige.

 

DOCENTI E COMMISSIONI

LEZIONI

INIZIO LEZIONI

In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/11964/studenti-orario

 

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

Esercitazioni individuali di programmazione e di laboratorio virtuale

Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa

 

 

MODALITA' DI ACCERTAMENTO

Gli esercizi individuali di programmazione servono a valutare la capacità di applicazione dei concetti base della programmazione guidata dagli eventi e l'apprendimento dei protocolli IoT più utili. La valutazione si basa sulla correttezza, efficienza e leggibilità del codice.

Le esercitazioni di laboratorio virtuale hanno l'obiettivo di verificare la capacità di

  • prendere decisioni indipendenti su sensori/attuatori e device programming

  • utilizzare una piattaforma IoT

  • integrare nuove funzionalità in un sistema IoT, a partire da requisiti informali

La valutazione si basa su correttezza, affidabilità e scalabilità delle soluzioni adottate.

 

ALTRE INFORMAZIONI

Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.

Agenda 2030

Agenda 2030
Città e comunità sostenibili
Città e comunità sostenibili

OpenBadge

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