Programação de Dispositivos Móveis

Base Knowledge

Basic programming skills

Teaching Methodologies

  • Learning strategy supported by experimenting with the material exposed in class, through the development of software modules, with practical examples. A student’s academic success implies continuous student study in and out of class.
  • Theoretical classes – The exhibition is held with the support of slides and exploration of applications previously created and completed in the classroom. Student participation in the application of the acquired knowledge is required.
  • Practical classes – In the practical component, students develop software modules. There is special emphasis on the phases of problem analysis and solution development. In order to increase the usability of interactive mobile systems, the application of Interaction Design rules is also necessary.
  • The acquisition of the most theoretical concepts will be assessed through written tests. Practical skills will be assessed based on practical work.

Learning Results

Students should acquire knowledge that will allow them to develop applications for mobile systems, considering the specificities of these devices, developing the following skills:

  • Development of applications for mobile devices
  • Analysis and proposal of functionalities and forms of interaction that are appropriate to the objectives and contexts for using the applications
  • Adaptation and optimization of implementations according to the capabilities of the devices
  • Creation of modular applications following appropriate programming standards
  • Development of object-oriented programming capabilities
  • Component-based application development
  • Use of diverse spatial and environmental information in the context of applications
  • Persistently managing and maintaining data on systems with limited capabilities
  • Making applications available to specific and/or broad audiences.

Program

  • Concepts about mobile systems, disseminated systems and ubiquitous systems.
  • Fundamentals on object-oriented programming
  • Concepts about interaction and usability of applications for mobile devices.
  • Mobile applications development.
  • Programming pervasive systems/environmental intelligence.
  • Application distribution and version management.

Curricular Unit Teachers

José Manuel Meireles Marinho

Grading Methods

  • Written Exam (all assessment periods)

    • Weight in final grade: 4
    • Minimum requirement: 25%
    • Covers all the content taught
  • Critical analysis of user interfaces

    • Focuses on projects developed by students from previous academic years
    • Activity carried out in class, with prior notice to students of the period of completion
    • Groups of two members
    • Weight in final grade: 1.5
    • No minimum grade required
  • Mini-tests

    • Conducted at the end of the last class of the second, third, sixth, seventh, ninth, and tenth weeks.
    • Covers content taught during the week
    • Weight of each mini-test: 0.375
    • Maximum total weight in final grade: 1.5
    • No minimum grade required
  • Practical Work

    • Groups of 2 members
    • Prototype evaluation
      • Conducted in the classes during the eighth week
      • Weight in final grade: 3
      • Minimum requirement: 25%
    • Weekly progress evaluation
      • Conducted in class
      • Weight in final grade: 4
    • Final project evaluation
      • Submission deadline: 11:59 PM on the day before the exam support period
      • Submission through Nónio
      • Mandatory defense
        • Conducted during the exam support period
        • Changes to the project may be requested during the defense
      • Weight in final grade: 6
      • Minimum requirement: 25%

 


    Internship(s)

    NAO

    Bibliography

    Recommended bibliography:

    • “Flutter documentation”, https://flutter.dev/docs
    • “Dart documentation”, https://dart.dev/guides
    • “Dart packages”, https://pub.dev/
    • “Nielsen and Norman Usability Group”, https://www.nngroup.com/topic/mobile-and-tablet-design/

     

    Complementary bibliography:

    • Banga, C. and Weinhold, J. (2014). Essential Mobile Interaction Design: Perfecting Interface Design in Mobile Apps (Usability).
    • Katz, M., Moore, K. & Ngo, V. (2021). Flutter Apprentice (First Edition): Learn to Build Cross-Platform Apps. Raywenderlich Tutorial Team Editor.
    • Sande, J. & Galloway, M. (2021). Dart Apprentice (First Edition): Beginning Programming with Dart. Raywenderlich Tutorial Team Editor.
    • Zaccagnino, C. (2020). Programming Flutter: Native, Cross-Platform Apps the Easy Way (The Pragmatic Programmers). Michael Suaine Editor.