84401 - Context-Aware Systems

Academic Year 2026/2027

  • Moduli: Marco Di Felice (Modulo 1) Angelo Trotta (Modulo 2)
  • Teaching Mode: In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Science (cod. 6698)

Learning outcomes

At the end of the course, the student is able to design, deploy and evaluate ubiquitous systems and mobile applications able to adapt their behaviors to the context characteristics and to the current location/activity of the user. At the end of the course, the student: -knows the fundamental concepts of context-aware computing, and the main techniques for the localization of users/devices and the human activity recognition; -knows the fundamental models of context-data representation and managing; - knows the main middleware and software architectures in order to deploy adaptive and ubiquitous applications and services

Course contents

The course addresses the design and development of ubiquitous and context-aware systems and applications, enabled by the pervasive deployment of devices capable of sensing their surrounding environment and processing the collected data. The course is organized into three main modules.

The first module introduces the concepts of context and context-aware systems, together with their reference software architectures and classification. Particular emphasis is placed on the design and implementation of location-aware and activity-aware systems. Significant attention is devoted to the management of spatial data, including localization technologies, geospatial data visualization on digital maps, spatial data storage, and location intelligence.

The second module focuses on the design lifecycle of distributed context-aware systems, with particular emphasis on mobile edge computing architectures, where workload allocation takes into account the current location of users and devices. The course presents edge computing technologies and frameworks for software containerization (Docker), workload orchestration (Docker Swarm and Kubernetes), and service migration driven by user mobility.

Finally, the third module introduces application-independent architectures for context modeling and context reasoning. Particular attention is devoted to modern context reasoning techniques based on Large Language Models (LLMs) and AI agents.

The course covers the following topics.

Introduction to Context-Aware Computing

 

Location-Aware Systems

  • Location-based services.
  • Localization technologies.
  • Mapping APIs.
  • Spatial Database Management Systems (Spatial DBMSs).
  • Location intelligence.
  • Privacy issues in geospatial data management.

Activity-Aware Systems

  • Wearable computing
  • Architectures and algorithms for Human Activity Recognition (HAR).
  • AI-based supervised learning techniques for HAR.

Edge computing and mobility-aware Systems

  • Fundamentals and application scenarios of mobile edge computing.
  • Software modularization through Docker containers.
  • Service and workload orchestration using Docker Swarm and Kubernetes.
  • Context-aware task allocation metrics based on user and device context (e.g., location).

Context-modeling and reasoning

  • Context modeling with Large Language Models (LLMs) and Agentic AI.
  • Architectures and techniques for context reasoning.
  • Design of AI-agent-based context-aware applications.

Readings/Bibliography

Slides are available on the Virtuale platform.

Suggested readings:

  • Richard Ferraro, Murat Aktihanoglu, Location Aware Applications, Manning Editions
  • Stefan Posland, Ubiquitous Computing: Smart Devices, Environments And Interactions, Wiley Edition

Teaching methods

The teaching methods include frontal lectures and classroom exercises.

Assessment methods

The course includes one optional seminar and one mandatory project.

The seminar takes place during the final week of the course, and consists of a 20–30 minute presentation in which the student presents a research topic related to the course content, based on a scientific article or an existing tool.
The seminar topic can be selected from a list provided by the instructors or proposed independently by the student.
The seminar is evaluated on a four-point scale: Insufficient, Sufficient, Good, Excellent.

The project involves the development of a software system with context-aware features.
As with the seminar, the project topic may be proposed by the student (subject to approval) or directly assigned by the instructor.
The project is graded on a 30-point scale.

The final grade is calculated considering the project grade and the seminar evaluation, based on the following conditions:

  1. If the seminar is not taken, the maximum final grade attainable is 23.

  2. If the seminar is taken with a Pass evaluation, the maximum final grade attainable is 25.

  3. If the seminar is taken with a Good evaluation, the maximum final grade attainable is 28.

  4. If the seminar is taken with an Excellent evaluation, the maximum final grade attainable is 30 with honors.

 

Teaching tools

Teaching materials (slides, code examples) are made available to students through the Virtuale platform.

Office hours

See the website of Marco Di Felice

See the website of Angelo Trotta

SDGs

Quality education Industry, innovation and infrastructure

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.