L'insegnamento fornisce elementi di base per la progettazione e lo sviluppo di applicazioni multimediali, nel contesto dell'Internet of Things (IoT), attraverso l'impiego di sistemi embedded e di sensori. La piattaforma di riferimento per l’insegnamento è lo smartphone che verrà utilizzato per le esercitazioni e per il progetto finale.
L’insegnamento affronta le basi dello sviluppo software ( realizzazione di Apps) su terminali mobili Android quali i moderni smartphone o quelli relativi alla così detta "Internet of Things". Le problematiche affrontate riguardano la rappresentazione, l'elaborazione e l'acquisizione di segnali multi-sensori tra i quali l'audio, le immagini, il segnale radio (WiFi) e segnali inerziali (tramite l'accelerometro embedded del telefono). Allo stesso tempo, vengono presentate le principali tecniche di elaborazione del segnale tramite algoritmi di Machine Learning e DSP insieme alle più moderne tecniche di Deep Learning (AI e Reti Neurali).
L'insegnamento affronta le problematiche relative alla rappresentazione, l'elaborazione e il recupero di dati multimediali tra i quali suoni, musica, grafica, immagini e video ma altresì informazione di localizzazione o proveniente da sensori quali l'accelerometro al fine di realizzare le moderne applicazioni (App).
Allo stesso tempo, all'interno dell'insegnamento vengono presentate le principali caratteristiche architetturali delle moderne reti di telecomunicazioni nella loro evoluzione verso l'Internet del futuro: integrazione tra rete fissa e mobile, separazione tra il trasporto dei dati e il controllo e gestione della rete, virtualizzazione delle funzioni di rete, flessibilità, programmabilità, efficienza energetica.
La partecipazione attiva alle attività formative proposte (lezioni ed esercitazioni) e lo studio individuale permetterà agli studenti di:
- comprendere ed utilizzare una terminologia corretta per l'identificazione delle principali componenti e funzionalità di app mobili multimediali implementate su sistemi embedded;
- analizzare la struttura e le funzioni dell'Internet of Things;
- conoscere e saper applicare adeguatamente i principali metodi per elaborare segnali e dati eterogenei acquisiti dai sensori di un sistema embedded e in particolare di uno smartphone;
identificare e analizzare le componenti e le funzionalità principali di un'App per Android;
- creare App Android nel contesto dell'Internet of Things implementando soluzioni basate su:
Sono utili per affrontare efficacemente i contenuti dell’insegnamento le conoscenze di base acquisite negli insegnamenti di FONDAMENTI DI PROGRAMMAZIONE PER L’ELABORAZIONE DI SEGNALI e DATI, PROGRAMMAZIONE DEI SISTEMI ELETTRONICI, SISTEMI ELETTRONICI EMBEDDED e rappresentano un supporto importante le conoscenze dell'insegnamento, che si svolge parzialmente in parallelo, di ELABORAZIONE E TRASMISSIONE DI SEGNALI E IMMAGINI.
Lezioni frontali ed esercitazioni in aula.
La frequenza NON E' OBBLIGATORIA ma è fortemente consigliata.
L'insegnamento prevede una prima parte di didattica frontale durante la quale verranno esposti i principali concetti teorici che verranno poi dimostrati attraverso esercitazioni congiunte (al calcolatore ed allo smartphone) per la realizzazione delle prime App propedeutiche allo sviluppo del proprio progetto di esame.
In seguito è prevista anche una fase di sviluppo progettuale a gruppi.
Introduzione ai paradigmi di sviluppo di applicazioni mobili.
Panoramica dell’ecosistema Android.
Concetti di base di Internet of Things (IoT).
Struttura di un progetto Android (Android Studio).
Activity, Fragment, Intent.
Gestione del ciclo di vita.
UI/UX Design: Layout, Widgets.
Task asincroni
Broadcast Receivers
Registrazione e riproduzione di audio.
Acquisizione segnale inerziale (accelerometro)
Acquisizione segnale radio (WiFi, Bluetooth)
Cattura di immagini da fotocamera
Protocollo MQTT
Paradigma client (App) - Server.
Cenni teorici di Machine Learning e Deep Learning (AI).
Utilizzo ed integrazione di piattaforme IoT esterne come ESP32, Arduino, Raspberry (facoltativo).
Valutazione e progetto finale
Sviluppo di un progetto pratico di gruppo.
Presentazione e discussione del progetto.
Gli studenti con disturbi dell'apprendimento ("disturbi specifici di apprendimento", DSA) potranno utilizzare modalità e supporti specifici che verranno di volta in volta stabiliti d'intesa con il delegato DITEN nel Comitato di Ateneo per l’inclusione delle studentesse e degli studenti con disabilità o con DSA.
Ricevimento: Il ricevimento studenti è su appuntamento da concordare con il docente tramite email: andrea.sciarrone@unige.it
Verificare il sito del CORSO DI LAUREA TRIENNALE in INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE: https://corsi.unige.it/corsi/9273/studenti-orario
Presentazione orale di un progetto realizzato dallo studente, demo di funzionamento e relativa discussione tecnica.
Scopo principale della prova d'esame è valutare il grado di raggiungimento degli obiettivi formativi da parte dello studente.
Più nel dettaglio le modalità di accertamento delle App progettate terranno conto dei seguenti aspetti:
Codice funzionante che produce risultati in linea con le specifiche fornite dal docente (requisito minimo per il superamento della prova);
Efficacia e chiarezza nella presentazione dei risultati
Spiegazione e giustificazione dei risultati, alla luce della teoria
Stile e leggibilità del codice prodotto
Anche se con peso minore, vengono valutati la “pulizia del codice”, il rispetto dei principi di programmazione orientata agli oggetti, l’uso appropriato delle interfacce, la separazione corretta dei file sorgenti.
Efficienza di calcolo dei programmi.
Maggiori informazioni per il corso sono reperibili su la pagina AULAWEB del corso e alla pagina web: http://www.dsp.diten.unige.it/index.php/teachings/multimedia-apps-and-future-internet.