Mobile and Pervasive Computing


This course provides the basic knowledge on the characteristics of mobile and pervasive computing, models and techniques used in the development of applications that allows the studentds to:

Knowledge and understand:

  • characteristics of mobile and pervasive computing its architectures, models and techniques for programming this systems
  • basic knowledge on mobile networks and location techniques, and analise  specific problems and solutions for mobile applications
  • problems and techniques for sensing systems


  • design and implement ubiquitous mobile systems
  • implement and evalute solutions to address mobility specific issues of  mobility


General characterization





Responsible teacher

Nuno Manuel Ribeiro Preguiça, Vítor Manuel Alves Duarte


Weekly - 4

Total - 56

Teaching language



As prerequisites students should have previous acquaintance with programming and distributed systems.


The syllabus contents are presented throughout the semester through a set of slides that highlight the main concepts, as well as a set of articles updated annually, which translate the state of the art in the different domains, including the latest solutions and technologies.

Some bibliography:

  • Enabling the internet of things : fundamentals, design, and applications, Muhammad Azhar Iqbal, Sajjad Hussain, Huanlai Xing, Muhammad Ali Imran, Wiley, 2021.
  • Fundamentals of Mobile and Pervasive Computing, Adelstein, Gupta, Richard III, Schwiebert, 2005.
  • Fundamentals of Wireless Sensor Networks: Theory and Practice (Wireless Communications and Mobile Computing), Waltenegus Dargie, Christian Poellabauer, 2010.
  • Computer Networks: A Top-Down Approach, J. Kurose, K. Ross, Addison-Wesley, 6th edition, 2013.

Teaching method

A theoretical component with weekly classes focusing on introducing and discussing the course subjects.

A practical component with some classes reserved to present some of the tecnologies needed to the project, and finally the implementation of the integrated project that is partially realized in the laboratory classes, which aims to consolidate the acquired knowledge.

Evaluation method

The assessment has two components, a theoretical one (with a weight of 60% in the final grade) and a practical one (with a weight of 40%). 

All assessment tests (tests, project and exam) are classified on a scale from 0 to 20 with values rounded to one decimal.


Theoretical Component

The theoretical component evaluation consists of two individual tests (T1 and T2) or an exam (E). The grade for this component is obtained by the following formula:

NT = 0.3*T1 + 0.3*T2           or              NT = 0.6*E

NT must be greater that 9.5 points.

Note: to take the exam, the student must have obtained frequency (see rule below)


Laboratory Component

The laboratory component evaluation consists of a programming project in group. The grade for this component is obtained by the following formula:

NP = 0.4 * P



To obtain frequency it is necessary to have a grade greater than or equal to 9.5 in the 20 values scale, in the practical component.


Final Grade

The final grade (NF) will be calculated according to the following formula, rounded to the nearest integer:

 NF = NP + NT

Subject matter

  1. Introduction, examples, and challenges.
  2. Introduction to pervasive computing
    1. Devices
    2. Models for pervasive computing
  3. Pervasive Sensing
    1. Sensor networks
    2. IoT systems
  4. Location
    1. Concepts
    2. Technologies
  5. Programming mobile systems
    1. Models and architectures
    2. Native frameworks
    3. Web-based solutions
  6. Wireless networks
    1. Wireless networks
    2. Mobility
  7. Mobile Computing Specific Issues
    1. Interfaces
    2. Data management
    3. Context-awareness


Programs where the course is taught: