|Mobile Applications Programming||834PAMO|
|1||Master||Computer Systems Engineering (Mobile Computation)||6 ects|
|Learning Period:||Language of Instruction:||Total Hours:|
|Learning Outcomes of the Curricular Unit:|
|This course aims to provide students with solid knowledge about the technologies, development platforms and solutions currently used for existing mobile devices. The main objectives of this course go through the identification and characterization of the major available mobile platforms, the knowledge of the used communication protocols by most of these platforms and the study of architectures and programming tools used for developing mobile applications on these platforms. Students should be familiar with the concepts and existing mobile technologies, and also the key technologies and mobile application development tools. Students should also be able to develop mobile applications for Android devices, involving not only the aspects related with graphical interfaces, but also the aspects of communication at the application level and security.|
|1. Introduction to Mobile Applications|
2. Design and Architecture of Mobile Applications
3. Mobile applications development tools
4. Programming mobile Applications with Android
|Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:|
|The contents are consistent with the learning objectives since they address the main issues on the characterization of existing mobile platforms and programming applications for these platforms, which must be mastered by the students at the end of the course. In particular it begins by addressing the fundamental concepts associated with the different aspects that characterize the existing mobile platforms and tools as well as the structure of applications for these platforms. In particular, the study covers the Android platform and associated tools. All covered topics are exemplified with several practical exercises. The learning objectives are therefore aligned with the themes addressed both at the practical and theoretical-practical levels, and applied on various concrete examples both in classes and homework assignments.|
|Teaching Methodologies (Including Evaluation):|
|This course is organized into theoretic-practical (TP) and practical (PR) classes. The teaching methodology used within TP classes is based on the oral presentation of the course contents with exemplification of concrete exercises covering the presented topics, especially he one related with programming mobile applications for the addressed platforms. Meanwhile, in the context of laboratory classes, students have the opportunity to apply and develop additional exercises that complement the basis of experience with the covered topics. The assessment is continuous, contemplating in equal parts the TP and PR components. The TP component is assessed by an exam at the end of the semester. The PR component is assessed through practical projects whose requirements are proposed during the semester.|
|Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:|
|Teaching methodologies applied in this course seek to lead students to contact and know the different aspects of the existing mobile platforms and tools as well as the implementation of applications for these platforms. Furthermore, it intents students to develop practical skills in structuring and developing mobile applications, implemented using the proposed mobile tools. The theoretic-practical classes, and in particular the laboratory classes, allow permanent contact with modeling and implementation tasks of mobile applications, thus facilitating the gradual progress in developing these applications for existing platforms. This experience and contact with concrete practical contexts improves the knowledge about mobile platforms and existing development tools, which is essential for increasing the technical and programming skills in this area.|
| G. Coulouris, J. Dollimore & T. Kindberg, Distributed Systems: Concepts and Design, 5th Edition, Addison Wesley, 2011.|
 T. Mikkonen, Programming Mobile Devices: an introduction for practitioners, John Wiley & Sons, 2007.
 K. Topley, J2ME in a Nutshell, O'Reilly Java series, O'Reilly, 2002
 Android Developers, http://developer.android.com/, visitado em Setembro 2010.
 J. Box, D. Fox, Building Solutions with the Microsoft .Net Compact Framework: Architecture and Best Practices for Mobile Development, Addison-Wesley, 2003.