CODICE 86985 ANNO ACCADEMICO 2024/2025 CFU 6 cfu anno 3 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01 LINGUA Italiano SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE L'insegnamento presenta il tema generale di Internet of Things (IoT) come paradigma della stretta relazione tra mondo fisico e Web, in cui le tecnologie Web (HTTP, REST) possono essere impiegate per raccogliere informazioni e attuare decisioni nel mondo reale. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI L’insegnamento, ispirato dal “Maker Movement”, ha l’obiettivo di incoraggiare lo studente nella realizzazione di progetti che abbiamo componenti hardware e software. Gli studenti durante l'insegnamento inventeranno, progetteranno e realizzeranno (“make”) un dispositivo seguendo il processo di progettazione ingegneristico. L'insegnamento parte da quanto gli studenti hanno appreso negli insegnamenti di “Fondamenti di Programmazione”, che introduce i concetti di programmazione procedurale C anche su microcontrollore, “Elettronica dei sistemi Digitali”, “Elettronica” e “Architetture dei Sistemi Elettronici” per realizzare prototipi che potranno integrare parti meccaniche, circuiti elettronici di controllo (costruiti attorno alla piattaforma Arduino) e applicazioni software locali e remote. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO La frequenza e la partecipazione attiva alle attività formative proposte (lezioni frontali e laboratori tecnico-pratici) e lo studio individuale consentiranno di definire i requisiti di un sistema completo di sensori, elaborazione locale, elaborazione e persistenza remota e fruizione tramite dispositivi mobili acquisire misure nella realtà tramite sensori elaborare i dati raccolti nelle immediate vicinanze del sensore sfruttando i sistemi embedded raccogliere i dati su un server remoto ospitante un database non relazionale visualizzare grafici dei dati tramite dispositivi mobili (smartphone) intevenire sulla realtà tramite attuatori Lo studente dovrà conoscere il concetto di API REST e lo dovrà saper mettere in pratica sfruttando gli strumenti HTTP, NodeJS e MongoDB. Al termine dell’insegnamento, lo studente sarà in grado di progettare e realizzare un sistema hardware/software completo nell’ambito IoT. PREREQUISITI Sono necessarie per affrontare efficacemente i contenuti dell’insegnamento le seguenti conoscenze di base: programmazione con il linguaggio di programmazione C e i principali rudimenti della progettazione di sistemi digitali. MODALITA' DIDATTICHE L’insegnamento comprende lezioni frontali ed esercitazioni pratiche, alternate a seconda delle necessità. In particolare, prima delle lezioni frontali saranno fornite agli studenti slide, video-tutorial e codice sorgente; durante le lezioni il docente applicherà a problemi complessi i concetti descritti nel materiale fornito, approfondirà gli argomenti trattati, seguirà la produzione di elaborati scritti da parte degli studenti e discuterà con loro delle principali difficoltà incontrate. Gli studenti possono in modo facoltativo utilizzare i propri calcolatori durante la lezione per mettere in pratica quanto proposto dal docente. Durante le esercitazioni, gli studenti devono risolvere al calcolatore problemi reali applicando le tecniche descritte nei tutorial e approfondite durante le lezioni frontali. La frequenza in presenza delle lezioni frontali e delle esercitazioni pratiche è fortemente consigliata. PROGRAMMA/CONTENUTO Il seguente elenco riporta i contenuti affrontati durante l’insegnamento. Parte del materiale usato a lezione (slide e codice sorgente delle esercitazioni) può essere scaricato al seguete link: https://github.com/riccardoberta/makers Introduction to IoT, WoT and Physical Computing Edge Devices Sensors JavaScript HTTP NodeJS REST API WoT Proxy Persisting Data Securing Interoperability and Semantic GUI Le Nazioni Unite hanno stilato un elenco di 17 obiettivi nell'ambito dell'agenda 2030 per lo sviluppo sostenibile, che spaziano dalla fine della povertà e della fame nel mondo al miglioramento della salute e dell'istruzione, fino alla riduzione delle disuguaglianze e delle ingiustizie. Ogni prodotto si basa su risorse fisiche per esistere. I prodotti digitali non fanno eccezione, anche se non possiamo toccare il mondo digitale, esso ha un impatto ambientale in rapida crescita sul nostro pianeta. Per i progettisti digitali esiste un'opportunità creativa unica per incrementare i vantaggi della de-materializzazione di diversi prodotti e ciò richiede l'applicazione di conoscenze specifiche sulla sostenibilità digitale, l'adozione di nuovi strumenti e l'evoluzione dei metodi di progettazione. Come progettisti abbiamo la possibilità di consentire alle aziende di fornire prodotti non solo desiderabili e redditizi, ma anche centrati sull'uomo e rispettosi dell'ambiente. Quando progettiamo tenendo conto della sostenibilità, sviluppiamo sistemi digitali efficienti dal punto di vista energetico (12. Consumo e produzione responsabili). Durante l’insegnamento, aiuteremo gli studenti a fare chiarezza sull'impatto dei sistemi digitali sull'ambiente fisico cercando di evidenziare le sfide che esistono nello spazio digitale quando si vuole creare un mondo più sostenibile. Inoltre, nel presentare esempi di implementazione di sistemi digitali, si si utilizzeranno scenari volti a favorire un uso sostenibile delle risorse naturali (13. Azione per il clima, 15. Vita sulla terraferma, 14. Vita sotto l'acqua), al miglioramento della vita nelle città (11. Città e comunità sostenibili, 3. Buona salute e benessere) e nelle industrie (9. Industria, innovazione e infrastrutture). TESTI/BIBLIOGRAFIA Tutte le slide e il codice sorgente utilizzati durante le lezioni e altro materiale didattico saranno disponibili su aul@web. In generale, gli appunti presi durante le lezioni e il materiale su aul@web sono sufficienti per la preparazione dell'esame. I libri sotto indicati sono suggeriti come testi di appoggio. Michael Margolis, Arduino Cookbook, O'Reilly Dominique Guinard, Building the Web of Things, Manning Tom Hughes-Croucher, Node Up and Running, O'Reilly Leonard Richardson, RESTful Web APIs, O'Reilly Marijn Haverbeke, Eloquent JavaScript: A Modern Introduction to Programming, No Starch Press Questi libri possono fornire ulteriori approfondimenti e risorse per uno studio più approfondito sugli argomenti trattati a lezione. DOCENTI E COMMISSIONI RICCARDO BERTA Ricevimento: Il docente riceve su appuntamento, per prendere appuntamento è possibile contattare il docente tramite Microsoft Teams (preferibilmente) o tramite email a riccardo.berta@unige.it LEZIONI INIZIO LEZIONI https://corsi.unige.it/9273/p/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consiste in una interrogazione orale sugli argomenti teorici presentati a lezione e nel commento delle esercitazioni svolte durante le lezioni. In particolare, lo studente deve dimostrare di aver compreso appieno i concetti alla base dello sviluppo di API secondo il paradigma RESTful e di saperli applicare alla progettazione e implementazione di applicazioni IoT. Agli studenti con disturbi specifici di apprendimento (DSA) sarà consentita l’adozione di specifiche modalità e supporti che saranno stabiliti caso per caso in accordo col Delegato dei corsi di Ingegneria nella Commissione per l’inclusione di studenti con disabilità. MODALITA' DI ACCERTAMENTO I dettagli sulle modalità di accertamento e sul grado di approfondimento richiesto per ogni argomento verranno dati nel corso delle lezioni. Durante l'orale, il docente chiederà allo studente di illustrare i concetti imparati a lezione. Per ogni concetto, lo studente dovrà ricordare la definizione, descrivere le condizioni per la sua applicazione e discutere creticametne gli eventuali vantaggi e svantaggi. Nel commentare le esercitazioni realizzate durante l’insegnamento, allo studente verrà richiesto di descrivere le scelte progettuali compiute, le possibili alternative scartate e le motivazioni. I problemi presentati e le domande poste permetteranno di valutare la capacità di applicare le conoscenze in situazioni realistiche. Agenda 2030 Imprese, innovazione e infrastrutture Città e comunità sostenibili Consumo e produzione responsabili