Salta al contenuto principale
CODICE 86985
ANNO ACCADEMICO 2022/2023
CFU
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

Commissione d'esame

RICCARDO BERTA (Presidente)

ALESSANDRO DE GLORIA

FRANCESCO BELLOTTI (Presidente Supplente)

LEZIONI

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