Programming of Cell Phones and Mobile Autonomous Devices

You are here

This subject has not requirements, but it has got previous capacities
Modern technology platforms incorporate increasingly autonomous mobile devices (usually wireless) as components of their infrastructure. This applies, for example, sensors, small robots, etc.., which are increasingly contributing to pervasive computing due to its (limited) computing power and low price. Often these devices have other features, and its use is not limited within the infrastructure. This applies, for example, to mobile phones, notebooks and so on.

The purpose of this course is to introduce students to programming some of those actual mobile devices for designing and managing applications of social and professional interest, and also to introduce them to programming the integration and interaction of the devices among themselves, as well as with people.


Person in charge

  • Pere Pau Vázquez Alcocer ( )

Weekly hours

Guided learning
Autonomous learning


Technical Competences of each Specialization


  • CTE11 - Capability to conceptualize, design, develop and evaluate human-computer interaction of products, systems, applications and informatic services.
  • CTE12 - Capability to create and exploit virtual environments, and to the create, manageme and distribute of multimedia content.

Generic Technical Competences


  • CG8 - Capability to apply the acquired knowledge and to solve problems in new or unfamiliar environments inside broad and multidisciplinary contexts, being able to integrate this knowledge.

Transversal Competences


  • CTR3 - Capacity of being able to work as a team member, either as a regular member or performing directive activities, in order to help the development of projects in a pragmatic manner and with sense of responsibility; capability to take into account the available resources.

Appropiate attitude towards work

  • CTR5 - Capability to be motivated by professional achievement and to face new challenges, to have a broad vision of the possibilities of a career in the field of informatics engineering. Capability to be motivated by quality and continuous improvement, and to act strictly on professional development. Capability to adapt to technological or organizational changes. Capacity for working in absence of information and/or with time and/or resources constraints.


  • CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
  • CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.


  1. Development of an App using Android
    Related competences: CB9, CTR3, CTR5, CTE11, CTE12, CB6, CG8,


  1. Introduction and environment configuration
    Introduction of the course and detailed description of the application to be developped as practical weekly exercise. Configuration of the (hardware and software) working environment and programming environment. First exercises with Android and design of the initial menus and components of the application. Installation on the devices.
  2. Content providers and storage
    Introduced some different content providers (media files, calendar, etc.) and explains how to access it. Storing options and its use are introduced.
  3. Menus and Databases
    Using menus (option menus, text menus, etc.) and databases within Android applications. Introduction to SQLite.

    Design and programming of a part of the practical application related with this topic.
  4. Threads and Intents
    Students are introduced to the need to use threads (the smallest sequence of programmed instructions that can be managed independently by an operating system scheduler) in mobile applications and how to program them using the class Thread from Java and the handler classes from Android.

    Also in this session, we introduce the Intents and learn how to apply them to handle basic phone features such as calls and SMSs messages. An intent is an abstract description of an operation to be performed, that provides a facility for performing late runtime binding between the code in different applications.

    Design and programming of a part of the practical application related with this topic.
  5. Location and mapping
    Geographical location and mapping on Android using the mobile devices' GPS (Global Positioning System) along with the Mapview and Google Maps tools. Simulation of geographic positioning and movement of devices using DDMS (Dalvik Debug Monitor Server).

    Design and programming of a part of the practical application related with this topic.
  6. Introduction to 2D and 3D graphics on Android devices
    Design methods of graphical 2D and 3D applications are introduced. This includes the definition of primitives such as animation.


Activity Evaluation act

Development of an Android App

Objectives: 1
Guided learning
Autonomous learning

App presentation

Week: 17
Type: assigment
Guided learning
Autonomous learning

Teaching methodology

The course is organized laboratory sessions. These sessions are entirely practical. The goal is to learn to program phones and other mobile devices with Android as it develops a real application. Every week of the year is dedicated to the development of a theme and the corresponding component of the application.

Each session is organized as follows: During the first 30-60 minutes of teaching, the teacher will perform a short introduction to the subject and the rest is dedicated to implement exercises. In some cases, the explanation will be a little longer.
Some days will be asked presenting exercises as individuals or groups.
The idea is that there is discussion and comments on these presentations.

Evaluation methodology

We evaluate two factors:

1. Participation in class:

- Weekly work 50%. Evaluated with the delivery of one or more small works, or partial delivery of the project, and taking into account attendance.

2. Final project that extends the contents of the weekly exercises: 50%




Previous capacities

Students need to be able to program with object-oriented languages. The course does not aim to teach a specific programming language, but the particularities of the platform. Development will be done in Java or Kotlin or similar, so prior knowledge of at least Java is required.