Politecnico di Torino | |||||||||||||||||
Anno Accademico 2016/17 | |||||||||||||||||
01QWRBH, 01QWRMV Programming for IoT applications |
|||||||||||||||||
Corso di Laurea Magistrale in Ict For Smart Societies (Ict Per La Societa' Del Futuro) - Torino Corso di Laurea Magistrale in Ingegneria Biomedica - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
Presentazione
Internet of Things indica una varietà di dispositivi collegati tramite Internet, inclusi dispositivi wearable, sensori installati all’interno di edifici e distretti per il monitoraggio energetico o la sorveglianza, nell’ambiente per il monitoraggio e il controllo di fenomeni naturali, all’interno dei mezzi di trasporto per la gestione del traffico ed infine all’interno di dispositivi medicali.
In questo contesto, lo scopo del corso è far acquisire allo studente capacità di programmare dispositivi embedded connessi in rete utilizzando paradigmi di programmazione distribuita, parallela e object oriented. Lo scopo finale sarà la capacità di programmazione nel campo Internet-of-Things e quello dei dispositivi Cyber-Physical. Dovranno essere acquisite capacità di implementazione e utilizzo di strumenti web services e middleware e relativi protocolli (SOAP, RestFULL). Lo studente dovrà acquisire inoltre la capacità di programmare secondo paradigmi publish/subscribe. Lo studente approfondirà i concetti e gli strumenti per l’interoperabilità tra dispositivi eterogenei, i protocolli Machine-to-Machine, i sistemi operativi orientati agli smart objects e la programmazione con constraints real-time e di consumo energetico. Infine, verranno trattati aspetti relativi alla sicurezza per l’accesso ai dispositivi e la comunicazione dei dati. Durante il corso verranno presentati casi di studio relativi a sistemi di monitoraggio industriale nell’ambito smart cities e include una serie di esercitazioni di laboratorio dove lo studente implementerà i concetti appresi programmando dispositivi networked embedded equipaggiati con sensori e attuatori e consentendo l’interazione remota con questi dispositivi. |
Risultati di apprendimento attesi
Il corso ha l’obiettivo di fornire agli studenti la conoscenza della programmazione object oriented e degli strumenti per la sua implementazione quali linguaggio Java. Conoscenza dei protocolli per l’implementazione dei paradigmi di comunicazione web service oriented. Conoscenza dei principali strumenti per la programmazione in ambiente real-time, in presenza di sensori e attuatori.
Lo studente dovrà maturare la capacità di affrontare e risolvere un problema tramite un’analisi object oriented e di formulare l’implementazione nel contesto di un sistema embedded networked e distribuito. |
Prerequisiti / Conoscenze pregresse
Conoscenza degli elementi di base della programmazione e architetture dei sistemi di calcolo, che vengono fornite nel corso di Informatica al primo anno del corso di laurea in Ingegneria.
|
Programma
Introduction to object oriented programming and Java (8 ore)
Objected oriented language concepts Java language, Safety critical java. Javascript, AJAX, PHP XML, JSON formats I/O programming Programming distributed objects using Web Services (8 ore) SOAP (Simple Object Access protocol) Web Services RestFULL Web Services Middleware programming (8 ore) Service Oriented Architectures Resource Oriented Architectures IoT network programming (8 ore) Publish/subscribe communication paradigms Interoperability across heterogeneous devices and technologies Machine to Machine protocols (M2M) OS for smart objects - an overview of resource constrained programming paradigms and APIs (8 ore) Multi-threaded and event-driven programming Real-time scheduling Security aspects Laboratorio (20 ore) Programming remote objects using Linksmart middleware (using RaspberryPI or similar) |
Organizzazione dell'insegnamento
Il corso è organizzato in una serie di lezioni frontali (40 ore) e in moduli di laboratorio (20 ore in totale). I laboratori saranno in parte esercitazioni guidate tramite le quali lo studente familiarizzerà con gli strumenti di programmazione imparati a lezione e in parte saranno orientate allo sviluppo di un progetto che gruppi di studenti (al massimo di 3 elementi) porteranno avanti durante il corso e che porteranno all’esame come parte della valutazione.
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Materiale didattico:
- Lecture notes fornite dal docente - Articoli scientifici forniti dal docente - Materiale SW e HW per i laboratori |
Criteri, regole e procedure per l'esame
Esame scritto:
- Domande a risposta multipla su tutto il programma svolto durante le lezioni frontali (valore complessivo: 10/30) Discussione del progetto: - Presentazione orale sul progetto svolto durante il corso (valore complessivo 20/30) |
Orario delle lezioni |
Statistiche superamento esami |
|