Programming is a primarily practical science and, like most practical sciences, it is structured around projects. This is the premise on which the course Programming Projects II is based. The main objective of the course is to expand students’ knowledge in the field of programming by introducing them to a new area: programming for mobile devices. Since the world of mobile application development is very broad, the course will focus on the system that currently has the greatest presence in the market: Android. The course also aims to provide students with techniques and knowledge that will enable them to face the world of programming with the necessary tools. It intends to use a predominantly practical methodology in order to teach this new knowledge. Therefore, it will be common for theoretical concepts to be accompanied by exercises and/or projects, both individual and team-based.
Titular Professors
Professors
It is recommended that the student has basic knowledge of programming in object-oriented languages, in Java, as well as a general understanding of software development concepts. It is also advisable to be familiar with good practices in code design and structure.
Introduce the student in the world of mobile programming. Introduce the student in the world of development for Android. Provide the student with tools and knowledge for the design of software architectures for Android.
1. Introduction to mobile technologies development
2. Introduction to the Android platform and its development environment
3. Development of user interfaces and user interaction
4. Applications with multiple activities and fragments in Android
5. Flexible and adaptable user interfaces
6. Management and retrieval of data from remote services and back-end systems
7. Maps and use of third-party services
The course is based on the Project-Based Learning (PBL) methodology, a teaching approach in which students acquire knowledge through the development of a project, following the Learn by Doing principle.
Within the context of the Programming Projects II course, it is considered that the best way to consolidate knowledge is through the development of a complete project, covering all phases of the software life cycle: from requirements analysis to implementation, testing and software demonstration.
Work is carried out in teams, incorporating collaborative programming techniques such as pair programming, which promotes joint work by two students on the same codebase, fostering development quality, continuous review and shared learning. Aspects related to project development such as planning, team coordination, communication, oral presentation and conflict resolution are considered an integral part of the learning process and contribute to the acquisition of professional competencies related to the engineering field.
Specifically, students develop an Android programming project in teams, combining in-class work sessions with autonomous work outside the classroom. The total workload of the project is aligned with the ECTS credits assigned to the course.
The grade for the subject will be calculated from the set of exercises and practice they develop throughout the subject: Subject grade = 30% * Exercises_Grade + 70% * Project_Grade The teacher will monitor the classroom regularly with the groups. Individual and group interviews may be conducted. Students will perform demonstrations of their software project, justifying design, implementation, etc. decisions. The subject will not be assessed by exams, so there will be no semester exam.
- Correctly apply programming knowledge through the development of practical activities and projects.
- Design and implement functional and technically correct software solutions in accordance with the specified requirements.
- Meet the technical and functional criteria defined in the project rubric.
- Demonstrate the ability to work consistently and progressively throughout the semester.
- Actively participate in class and show engagement in the development of activities and the project.
- Work effectively as part of a team, assuming individual responsibilities within the collective project.
- Justify the technical decisions adopted during the development of the project in individual or group interviews.
- Demonstrate autonomy, initiative, and problem-solving skills.
- Comply with the minimum criteria established in the project brief.
Android Programming: The Big Nerd Ranch Guide (3rd Edition)
- ISBN-13: 978-0134706054
- ISBN-10: 0134706056
Android Studio 3.5 Development Essentials - Java Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Java and Android Jetpack
- ISBN-13: 978-1951442019
- ISBN-10: 1951442016
Jetpack Compose 1.8 Essentials: Developing Android Apps with Jetpack Compose 1.8, Android Studio, and Kotlin
- ISBN-13: 978-1965764190
- ISBN-10: 1965764193
GENERAL https://developer.android.com/guide/index.html https://developer.android.com/guide/index.html https://developer.android.com/about/dashboards/index.html TEMA 1 https://developer.android.com/studio/index.html http://socialcompare.com/en/comparison/android-versions-comparison https://developer.android.com/studio/run/oem-usb.html TEMA 2 https://material.io/guidelines/ https://developer.android.com/design/material/index.html https://developer.android.com/training/material/index.html https://developer.android.com/guide/topics/ui/declaring-layout.html http://www.vogella.com/tutorials/AndroidListView/article.html https://www.raywenderlich.com/124438/android-listview-tutorial https://material.io/guidelines/components/snackbars-toasts.html http://www.truiton.com/2015/06/android-snackbar-example/ https://developer.android.com/training/appbar/index.html http://www.vogella.com/tutorials/AndroidActionBar/article.html https://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/ https://developer.android.com/guide/topics/ui/dialogs.html https://material.io/guidelines/components/dialogs.html TEMA 3 https://developer.android.com/guide/components/intents-filters.html TEMA 4 https://developer.android.com/guide/components/fragments.html https://www.pluralsight.com/blog/software-development/android-fragments https://medium.com/@ali.muzaffar/should-i-use-fragment-or-activity-in-android-5dbcc2703ecc TEMA 5 https://developer.android.com/training/basics/data-storage/databases.html http://www.vogella.com/tutorials/AndroidSQLite/article.html#creating-and-updating-database-with-sqliteopenhelper https://developer.android.com/guide/components/broadcasts.html http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html https://developer.android.com/training/basics/network-ops/connecting.html https://developer.android.com/reference/java/net/HttpURLConnection.html https://developer.android.com/reference/android/os/AsyncTask.html http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html http://www.androidhive.info/2014/05/android-working-with-volley-library-1/ https://developer.android.com/training/volley/index.html TEMA 6 https://developer.android.com/training/location/index.html https://developer.android.com/guide/topics/location/strategies.html https://developer.android.com/guide/topics/location/index.html https://developer.android.com/training/permissions/requesting.html http://www.vogella.com/tutorials/AndroidPermissions/article.html