Salta al contenuto principale
CODICE 90524
ANNO ACCADEMICO 2024/2025
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 2° Semestre
MATERIALE DIDATTICO AULAWEB

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

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.

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

Commissione d'esame

GIORGIO DELZANNO (Presidente)

DANIELE D'AGOSTINO

DAVIDE ANCONA (Presidente Supplente)

LEZIONI

INIZIO LEZIONI

In accordo con il calendario approvato dal Consiglio di Corso di Laurea di Informatica.

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.

Agenda 2030

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