84401 - SISTEMI CONTEXT-AWARE

Anno Accademico 2023/2024

  • 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)

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à dell’utente. 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 dell’attività; -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