CODICE 86985 ANNO ACCADEMICO 2019/2020 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 Il corso 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 Il corso, 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 del corso è fornire le basi per la progettazione e lo sviluppo di sistemi hardware/software che partono dai sensori e arrivino alla memorizzaizone di informazoni su database in cloud. Lo studente viene introdotto ai concetti API REST e aiutato a comprenderli attraverso un esercizio svolto al calcolatore durante le lezioni frontali. L'insegnamento si pone nella direzione di formare una figura professionale capace di progettare e realizzare applicazioni software su diversi dispositivi, dai sensori al cloud. PREREQUISITI Lo studente deve possedere conoscenze di base di programmazione e di progettazione di sistemi digitali. MODALITA' DIDATTICHE Il corso è costruito da una parte di lezione frontale e una parte di esercitazione. Durante la lezione frontale, il docente presenta gli argomenti fornendo sempre esempi di codice che vengono provati su strumenti di compilazione. 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 durante le lezioni frontali. PROGRAMMA/CONTENUTO Il seguente elenco riporta i contenuti affrontati a lezione, per ogni contenuto un link porta alle note di ogni lezione: 01 - Introduction to IoT, WoT and Physical Computing [LINK] 02 - The Arduino Platform [LINK] 03 - Serial Communication [LINK] 04 - Sensors [LINK] 05 - JavaScript and HTTP [LINK] 06 - NodeJS [LINK] 07 - REST API [LINK] 08 - Implementing Web Things [LINK] 09 - Interoperability and Semantic [LINK] 10 - Sharing & Securing [LINK] TESTI/BIBLIOGRAFIA Lecture notes 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 scrivere a riccardo.berta@unige.it Commissione d'esame RICCARDO BERTA (Presidente) ALESSANDRO DE GLORIA LEZIONI INIZIO LEZIONI come da calendario didattico 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. In particolare, lo studente deve dimostrare di aver comprso appieno i concetti alla base dello sviluppo di API secondo il paradigma RESTful. MODALITA' DI ACCERTAMENTO Durante l'orale, il docente chiede allo studente di illustrare alcuni concetti imparati a lezione. Per ogni concetto, lo studente deve anche presentare le condizioni per la sua applicazione, gli eventuali vantaggi e svantaggi. Durante la prova, il docente accerta che i concetti siano stati appresi ad un livello di conoscenza tale da permettere allo studente di applicarli in casi reali. Calendario appelli Data appello Orario Luogo Tipologia Note 27/01/2020 09:30 GENOVA Esame su appuntamento 24/02/2020 09:30 GENOVA Esame su appuntamento 15/06/2020 09:30 GENOVA Esame su appuntamento 06/07/2020 09:30 GENOVA Esame su appuntamento 24/07/2020 09:30 GENOVA Esame su appuntamento 14/09/2020 09:30 GENOVA Esame su appuntamento 28/10/2020 09:30 GENOVA Esame su appuntamento