Context Aware Systems

Master Degree in Computer Science, University of Bologna

Course Syllabus

Context aware Systems is a 6-credits academic course of the Master Degreee in Computer Science, University of Bologna, Italy. 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, he/she: -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.


The course addresses the design and deployment of ubiquitous and context-aware services and applications, made possible by the pervasive diffusion on the market of devices able to sense the environment and to analyze the data. The course program is structured in three main blocks. First, the course illustrates the design principles, architectures and applications of context-aware systems, considering different physical meaning of context on specific use-cases (e.g. location-aware, activity aware, emotion aware and neighbor aware). A special focus will be considered for the case of location-aware systems, by presenting technologies, languages and tools for the location acquisition, modeling (geo-data formats), visualization (mapping APIs), storage (geographic information systems) and analysis (location intelligence). Second, we will revise the architecture of generic context-aware systems and the stages of the context-cycle (context acquisition, modeling and representation).  Finally, the third part will address the design and deployment of applications and services for mobile and pervasive environment, both from point of view of software architectures and middleware.

  • Introduction
  • Context-aware Systems and Context-aware Computing
    • The Context cycle: definition and use-cases
    • Location-aware systems: location-based services and localization technologies
    • Location-aware systems: mapping technologies
    • Location-aware systems: geo-data and geo-database
    • Activity-aware systems: enabling technologies
    • Emotion-aware systems: enabling technologies
    • Neighbor-aware systems: enabling technologies
  • Context-aware Systems and Context-aware Computing
    • Context-acquisition via IoT sensors
    • Context modeling and representation via semantic approaches
    • Context reasoning 
  • Mobile Systems and Mobile Computing
    • Mobile technologies, devices and operating systems: overview 
    • Architectures and protocols for mobility management and service continuity
    • Mobile Middleware: Service Discovery 
    • Mobile Middleware: Data synchronization and Mobile Cloud



The examination consists of two parts: (i) a seminar on a research topic related to novel aspects of mobile, ubiquitous computing AND a (iigroup project, on topics proposed by the lecturer (see the Project section) or proposed by the students (and approved by the lecturer).

  • Project Proposals [PDF]
  • Support Files [ZIP]
  • File parcheggi.txt [FILE]


List of related books.

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


Slides (author: Prof. Marco Di Felice):

  • Introduction to the course [PDF]
  • Introduction to context-aware systems [PDF]
  • Location-aware systems: Positioning techniques and technologies [PDF]
  • Location-aware systems: Geodata formats [PDF][GEOJSON EXERCISE: Support Files]
  • Location-aware systems: Web mapping APIs [PDF][OPENLAYERS EXERCISE: Support Files]
  • Location-aware systems: Spatial Database [PDF][POSTGIS EXERCISE: Support Files][EXAMPLES]
  • Location-aware systems: Spatial-data analysis and Location Intelligence [PDF][ANALYSIS EXERCISE: Support Files][PY_SCRIPTS]
  • Location-aware systems: SDK and APIs for Position acquisition in indoor and outdoor environments [PDF]
  • Activity-aware systems: Applications and Software architectures [PDF]
  • Activity-aware systems: Activity Recognition, Principles of Data Mining [PDF]
  • Activity-aware systems: Activity Recognition, Python for Data Science [PDF][PY EXERCISE: Support Files]
  • Affective-aware computing: Applications and Methodologies [PDF]
  • Neighbour-aware computing: Device to Device Communication  [PDF]
  • Context-aware systems: Privacy in Location Based Services [PDF]
  • Context-aware systems: Context Acquisition in IoT Scenarios [PDF]
  • Context-aware systems: Context Modeling [PDF]



Location-aware systems

  • Varshavsky, A. & Patel, S. Krumm, J. (Ed.) Location in Ubiquitous Computing, Ubiquitous Computing Fundamentals, Chapman and Hall/CRC, 2010, 285-320
  • Jeffrey Hightower, Gaetano Borriello, Location Systems for Ubiquitous Computing [PDF]
  • Faheem Zafari, Athanasios Gkelias, Kin K. Leung,  A Survey of Indoor Localization Systems and Technologies [PDF]
  • GEOJSON standard, technical specification [PDF]
  • Spatial Analysis in R, tutorial [PDF]
  • POSTGIS Spatial operations, tutorial [PDF]
  • Geospatial Data Science, Quick Start Guide, Packt Publishing 2019 [LINK]
  • Geoawesomeness: news related to location-aware systems [LINK]



  • Localization technologies: Indoor Atlas framework  [LINK]
  • Google Earth, Desktop version [LINK]
  • POSTGRES & POSTGIS Database Management Systems [LINK]
  • OpenLayers, Javascript Mapping APIs [LINK]
  • Android Location Fused Provider API [LINK]


  • Localization technologies & BLE Beacons: The Physical Web Project [LINK]