84401 - SISTEMI CONTEXT-AWARE

Anno Accademico 2024/2025

  • 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 tramite Virtuale.

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.

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

SDGs

Istruzione di qualità Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.