Salta al contenuto principale
CODICE 90524
ANNO ACCADEMICO 2025/2026
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 2° Semestre
PROPEDEUTICITA
Propedeuticità in uscita
Questo insegnamento è propedeutico per gli insegnamenti:
  • COMPUTER SCIENCE 11964 (coorte 2025/2026)
  • CAPSTONE PROJECT 101810

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

Apprendere metodi, protocolli, architetture e piattaforme per lo sviluppo di applicazioni distribuite e mobili per l'Internet delle Cose, inclusi protocolli machine-to-machine, algoritmi distribuiti per la tolleranza ai guasti e la replica, piattaforme basate su architetture orientate ai servizi, sistemi operativi embedded, dati in tempo reale e 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
    gestire le relazioni sociali all'interno di un piccolo team di studenti con un atteggiamento collaborativo e una comunicazione costruttiva in diversi ambienti
    prendere decisioni indipendenti, avere un atteggiamento collaborativo e gestire risorse umane e materiali e coordinamento durante la progettazione e lo sviluppo di un sistema IoT non banale

 

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 di programmazione event-driven e IoT in Node,js.

Sviluppo in team di un progetto finale.

Gli esercizi di programmazione e il progetto finale sono sviluppati con il sistema collaborativo di controllo delle versioni  GitHub Classroom 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

 - ThingWorx

 - 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

Esame orale e discussione progetto

 

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.

Il progetto finale ha l'obiettivo di verificare la capacità

    di prendere decisioni indipendenti riguardo alla scelta di sensori/attuatori e alla programmazione di dispositivi
    di progettare e implementare un'architettura IoT partendo da requisiti informali
    di utilizzare una piattaforma IoT.

La valutazione si basa sull'idoneità dell'architettura scelta, sull'efficacia, scalabilità, usabilità e correttezza del sistema implementato.

La presentazione e discussione del progetto ha lo scopo di verificare le attitudini collaborative degli studenti nell'ideare e sviluppare un progetto all'interno di un piccolo team.
La valutazione si basa sul livello di comprensione del funzionamento complessivo e dei dettagli tecnici del progetto.

 

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