CODICE 86985 ANNO ACCADEMICO 2022/2023 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 Thing" come paradigma della stretta relazione tra mondo fisico e Web, in cui le tecnologie Web (HTTP, REST) possono essere impiegate per reccogliere 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 il corso inventeranno, progetteranno e realizzeranno (“make”) un dispositivo seguendo il processo di progettazione ingegneristico. Il corso 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 Scopo dell'insegnamento è fornire le basi per la progettazione e lo sviluppo di sistemi hardware/software che partendo dall’acquisizione di informazioni sul mondo reale tramite sensori arrivino alla memorizzazione di informazioni su un database ospitato nel Cloud. 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 Lo studente deve possedere conoscenze di base di programmazione e di progettazione di sistemi digitali. MODALITA' DIDATTICHE L’insegnamento è costruito in parte da lezioni frontali e in parte da esercitazioni pratiche. In particolare, agli studenti saranno forniti contenuti, nella forma di slides corredate da video-tutorial di spiegazione, che potranno fruire prima delle lezioni frontali; durante le quali il docente applicherà i contenuti a problemi complessi, approfondirà gli argomenti trattati, seguirà la produzione di elaborati da parte degli studenti suddivisi in gruppi e discuterà con loro delle principali difficoltà incontrate. Gli studenti possono utilizzare i propri calcolatori durante la lezione per mettere in pratica quanto proposto dal docente. Durante le esercitazioni, gli studenti devono affrontare al calcolatore problemi reali che possono essere risolti applicando le tecniche viste nei tutorial e approfondite durante le lezioni frontali. PROGRAMMA/CONTENUTO Il seguente elenco riporta i contenuti affrontati durante l’insegnamento, i contenuti possono essere scaricati al seguente link: https://bit.ly/unige_makers 01 - Introduction to IoT, WoT and Physical Computing 02 - JavaScript 03 - HTTP 04 - NodeJS 05 - REST API 06 - WoT Proxy 07 - Persisting Data 08 - Unit Testing 09 - Securing 10 - Interoperability and Semantic Altri argomenti: A - The Arduino Platform B - Serial Communication C - Sensors TESTI/BIBLIOGRAFIA 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 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 Commissione d'esame RICCARDO BERTA (Presidente) ALESSANDRO DE GLORIA FRANCESCO BELLOTTI (Presidente Supplente) 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. MODALITA' DI ACCERTAMENTO Durante l'orale, il docente chiederà allo studente di illustrare i concetti imparati a lezione. Per ogni concetto, lo studente dovrà, oltre alla definizione, descrivere le condizioni per la sua applicazione, 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. Calendario appelli Data appello Orario Luogo Tipologia Note 17/02/2023 09:00 GENOVA Esame su appuntamento 15/09/2023 09:00 GENOVA Esame su appuntamento