APPROCCIO MAKERS ALLA PROGETTAZIONE ELETTRONICA

APPROCCIO MAKERS ALLA PROGETTAZIONE ELETTRONICA

_
iten
Codice
86985
ANNO ACCADEMICO
2021/2022
CFU
6 cfu al 3° anno di 9273 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE (L-8) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/01
LINGUA
Italiano
SEDE
GENOVA (INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE)
periodo
2° Semestre
materiale didattico

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

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 del corso è 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.

Modalità didattiche

L’insegnamento è costruito in parte da lezioni frontali e in parte da esercitazioni pratiche. In particolare, l’insegnamento adotta la metodologia della “flipped classroom”: 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, per ogni contenuto è presente un link che porta alle note e ai video-tutorial:

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

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

Modalità didattiche

L’insegnamento è costruito in parte da lezioni frontali e in parte da esercitazioni pratiche. In particolare, l’insegnamento adotta la metodologia della “flipped classroom”: 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.

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

Modalità 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.

Modalità 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. Inoltre, lo studente dovrà anche illustrare gli strumenti utilizzati durante l’implementazione sottolineando il suo contributo durante il lavoro di gruppo.