- Docente: Marco Di Felice
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Moduli: Marco Di Felice (Modulo 1) Angelo Trotta (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea Magistrale in Informatica (cod. 5898)
-
Orario delle lezioni (Modulo 1)
dal 22/02/2024 al 16/05/2024
-
Orario delle lezioni (Modulo 2)
dal 21/02/2024 al 15/05/2024
Conoscenze e abilità da conseguire
Al termine del corso, lo studente è in grado di progettare, sviluppare e valutare sistemi ubiqui ed applicazioni operanti su dispositivi mobili in grado di adattarsi alle caratteristiche del contesto ed alla posizione/mobilità dellutente. Al termine del corso, lo studente: - conosce le basi del context-aware computing e le principali tecniche per la localizzazione di utenti/dispositivi e per il riconoscimento dellattività; -conosce i principali modelli per la rappresentazione e manipolazione di dati di contesto; -conosce i principali middleware ed architetture software per lo sviluppo di applicazioni e servizi adattivi ed ubiqui.
Contenuti
Il corso affronta tematiche legate alla progettazione e realizzazione di sistemi ed applicazioni ubiqui e context-aware, resi oggi possibili dalla diffusione pervasiva di dispositivi in grado di fare sensing dell’ambiente e di elaborare i dati raccolti. Il programma del corso è suddiviso in due blocchi principali. Nel primo blocco, vengono presentate le definizioni di “contesto” e di sistema context-aware, le architetture software di riferimento e le tipologie, soffermandosi in particolare sulla progettazione ed implementazione di sistemi location-aware ed activity-aware. Viene dedicato molto spazio alla gestione di dati spaziali, illustrando, nel dettaglio, le tecnologie per la localizzazione, visualizzazione di dati geospaziali su mappe, storage e location intelligence. Nel secondo blocco viene discusso il ciclo di vita della progettazione di sistemi context-aware distribuiti, con enfasi su approcci di mobile edge computing in cui l'allocazione del workload tiene conto della posizione attuale degli utenti/dispositivi. A tal proposito, vengono presentate tecnologie e framework di edge computing per containerizzazione del software (Docker), orchestrazione dei task (Docker Swarm e Kubernates), e migrazione dei servizi sulla base della mobilità. Nell'ultima settimana del corso, sono previsti seminari da parte di aziende che operano nel settore.
Segue l'elenco degli argomenti trattati nel corso:
Introduzione e definizione di contesto e di sistema context-aware
Casi d’uso di sistemi context-aware
Sistemi location-aware
- Location-based services
- Tecnologie per la localizzazione
- Mapping APIs
- Spatial database management systems
- Location intelligence
- Privacy e dati spaziali
Sistemi activity-aware
- Architetture e algoritmi per Human Activity Recognition (HAR)
- HAR mediante tecniche AI di apprendimento supervisionato
Architetture di mobile edge computing
- Definizione ed esempi di applicazione del mobile edge computing
- Tecniche di modularizzazione del software (mediante container Docker)
- Orchestrazione di servizi e workload (Docker Swarm, Kubernates)
- Metriche per allocazione dei task sulla base del contesto utente/dispositivo (es. posizione)
Testi/Bibliografia
Slides e dispense rese disponibili sulla pagina Web del corso:
https://site.unibo.it/iot/en/teaching-1/context-aware-systems
Letture consigliate:
- Richard Ferraro, Murat Aktihanoglu, Location Aware Applications, Manning Editions
- Stefan Posland, Ubiquitous Computing: Smart Devices, Environments And Interactions, Wiley Edition
Metodi didattici
Il corso prevede lezioni frontali ed esercitazioni svolte in aula, mediante l'ausilio di PC e proiettore.
Modalità di verifica e valutazione dell'apprendimento
Il corso prevede un seminario (obbligatorio) ed un progetto (obbligatorio). Il seminario viene svolto durante l'ultima settimana del corso, e consiste in una presentazione di 20-30 minuti nella quale lo studente presenta un argomento di ricerca legato al programma di corso, prendendo spunto da un articolo scientifico o da un tool esistente. Il progetto consiste nello sviluppo di un sistema software con caratteristiche di context-awareness. La traccia del progetto viene proposta dagli studenti ed approvata dal docente, o direttamente proposta dal docente. Il punteggio finale viene calcolato come media delle due prove.
Strumenti a supporto della didattica
Il materiale didattico (slides, codice) presentato a lezione viene messo a disposizione dello studente attraverso la pagina del corso sulla piattaforma Virtuale.
Orario di ricevimento
Consulta il sito web di Marco Di Felice
Consulta il sito web di Angelo Trotta