84401 - Context-Aware Systems

Academic Year 2025/2026

  • Moduli: Marco Di Felice (Modulo 1) (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (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 topics related to the design and development of ubiquitous and context-aware systems and applications, made possible today by the widespread availability of devices capable of sensing their environment and processing collected data.

The course is organized into two main blocks.

In the first block, the definitions of “context” and “context-aware systems” are introduced, along with reference software architectures and system typologies, with a focus on the design and implementation of location-aware and activity-aware systems.
Special attention is given to spatial data management, including technologies for localization, visualization of geospatial data on maps, storage, and location intelligence.

The second block focuses on the lifecycle of designing distributed context-aware systems, with an emphasis on mobile edge computing approaches, where workload allocation takes into account the current location of users/devices.
Relevant technologies and frameworks for edge computing are presented, including:

  • Software containerization (Docker)

  • Task orchestration (Docker Swarm and Kubernetes)

  • Service migration based on device/user mobility

In the final week of the course, seminars by industry professionals working in the field are scheduled.

List of course topics:

Introduction and definitions of context and context-aware systems

Use cases of context-aware systems

Location-aware systems

  • Location-based services

  • Localization technologies

  • Mapping APIs

  • Spatial database management systems

  • Location intelligence

  • Privacy and spatial data

Activity-aware systems

  • Architectures and algorithms for Human Activity Recognition (HAR)

  • HAR using supervised AI techniques

Mobile edge computing architectures

  • Definition and application examples of mobile edge computing

  • Software modularization techniques (via Docker containers)

  • Orchestration of services and workloads (Docker Swarm, Kubernetes)

  • Metrics for task allocation based on user/device context (e.g., location)

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 mandatory 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 determined based on both the project grade and the seminar evaluation.


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

SDGs

Quality education Industry, innovation and infrastructure

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