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 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 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 Commissione d'esame GIORGIO DELZANNO (Presidente) DANIELE D'AGOSTINO DAVIDE ANCONA (Presidente Supplente) 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. 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. 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. Calendario appelli Data appello Orario Luogo Tipologia Note 13/02/2026 09:00 GENOVA Esame su appuntamento 18/06/2026 09:00 GENOVA Esame su appuntamento 31/08/2026 09:00 GENOVA Esame su appuntamento 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