CODICE 90524 ANNO ACCADEMICO 2025/2026 CFU 9 cfu anno 1 COMPUTER SCIENCE 11964 (LM-18) - GENOVA 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 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 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 Città e comunità sostenibili