Informazioni in aggiornamento fino al 30/06/2026 CODICE 90524 ANNO ACCADEMICO 2026/2027 CFU 6 cfu anno 1 COMPUTER SCIENCE 11964 (LM-18) - GENOVA 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 DAVIDE ANCONA Ricevimento: Su appuntamento richiesto per email o con Teams GIORGIO DELZANNO Ricevimento: Su appuntamento, in presenza o via Teams 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 Città e comunità sostenibili OpenBadge SOFT SKILLS - Gestione progettuale base 1 - A