Mobile Devices Programming - LEIC



Computer Science and Computer Engineering

Curricular Unit (UC)

Mobile Devices Programming

Optional  X
Scientific Area  IC
Year:3rd Semester:5th ECTS: 6 Total Hours:160
Contact Hours T: TP:67.5 PL: S: OT:
Professor in charge

 Paulo Alexandre Leal Barros Pereira

T - Theoretical; TP - Theory and practice; PL - Laboratory; S - Seminar; OT - Tutorial.

  • Intended learning outcomes

    Upon completion of this course, students will be able to:

    1. Evaluate mobile device application’s design decisions;
    2. Describe the architecture of mainstream platforms that target mobile devices;
    3. Develop (design, implement, debug and deploy) mobile device applications.
  • Syllabus

    Developing mobile device applications, materialized with the Android platform.

    1. The Android platform: architecture, programming model and tools;
    2. Production cycle: Development, installation, execution monitoring and debug;
    3. Applications’ anatomy: component types (Activities, Services, Broadcast Receivers e Content Providers) and dynamic binding through Intents;
    4. Components activation: life-cycle; threading model; hosting and cross-process communication;
    5. Creating graphical user interfaces: control hierarchies; event model; threading model;
    6. Local data storage: file system and RDBMS SQLite
    7. Communication with remote servers (e.g. using HTTP protocol);
    8. Best-practices considering de target platform characteristics.
  • Evidence of the syllabus coherence with the curricular unit’s intended learning outcomes

    Mobile application development requires additional design concerns, considering the existing computational resources. Thus, in addition to the study of existing techniques, one must understand the targeted platform and the observable design decisions that have been undertaken.

    The syllabus is thus in coherence with the objectives, to address all aspects of mobile application development for the chosen platform. The syllabus’ points I, III, and IV enable the concretization of the first objective. During the contents’ presentation, the teacher promotes discussions of programming best practices (topic VIII) applied to real problems. Such an approach, accompanied by a detailed study of the underlying platform, is in coherence with the second objective. The remaining topics (II, V, VI and VII) enable the creation of complete solutions and are therefore aligned with the third learning outcome.


  • Teaching methodologies (including evaluation)

    A theoretical and practical methodology is used along 15 sessions of 1.5 hours and 15 sessions of 3 hours each, for 67.5 contact hours, with 162 hours of student work. An interactive approach is used for the presentation of topics and discussion of practical examples (case-based learning). In addition to the theoretical and practical sessions, students solve in group during the semester, a practical assignment described at the semester’s start and organized in multiple deliverables. The evaluation of learning outcomes 1 and 2 is performed through written examination and learning outcomes 1 to 3 are evaluated based on the resolution of the practical assignment, which is subject to oral presentation and viva voce examination.

    The Final Grade (FG) is computed by FG = 0.4*TCG + 0.8*LCG, with TCG being the Theoretical Component Grade and LCG the Laboratory Component Grade. For approval, the minimum values for TCG and LCG are 10 points.

  • Evidence of the teaching methodologies coherence with the curricular unit’s intended learning outcomes

    Theoretical and practical classes are taught to present the main concepts and techniques used to create mobile device targeted applications. Through this methodology, students face real world problems and their corresponding solutions, aiming at reaching learning outcomes 1 and 2. Through the resolution of the practical assignment, performed in group to promote peer discussion and in open laboratory with teacher support, students are confronted with a real world problem that enables them to practice and consolidate the concepts and techniques taught in this UC, thus producing a complete and representative solution and, consequently, leading to learning outcomes 1 to 3.

  • Main Bibliography:

    M. Nakamura, M. Gargenta, Learning Android, 2nd Edition, O’Reilly, 2014. ISBN 9781449319236

    A. Leiva, Kotlin for Android Developers: Learn Kotlin the easy way while developing an Android App, CreateSpace Independent Publishing Platform, 2016. ISBN 9781530075614