La programación es una ciencia principalmente práctica y, como la mayoría de ciencias prácticas, está estructurada en proyectos. Esta es la premisa de la que parte la asignatura de Proyectos de Programación II. El objetivo principal de la asignatura es ampliar los conocimientos de los alumnos en el campo de la programación, presentándolos un nuevo ámbito: la programación para dispositivos móviles. Dado que el mundo de la programación para dispositivos móviles es muy amplio, la asignatura se centrará en el sistema que, de momento, tiene una mayor presencia en el mercado. Este sistema es Android. La asignatura tendrá también como objetivo dotar al alumno de técnicas y conocimientos que le permitan afrontar el mundo de la programación con las herramientas necesarias. La asignatura pretende utilizar una metodología eminentemente práctica con el fin de impartir el nuevo conocimiento. De esta forma será habitual que los conocimientos vayan acompañados de ejercicios, y / o proyectos, tanto individuales como en equipo.
Profesores Titulares
Profesores Docentes
Se recomienda que el alumno tenga conocimientos básicos de programación en lenguajes orientados a objetos, en Java, así como una comprensión general de los conceptos de desarrollo de software. También es conveniente estar familiarizado con las buenas prácticas de diseño y estructuración del código.
Introducir al alumno en el mundo de la programación móvil. Introducir al alumno en el mundo del desarrollo para Android. Dotar al alumno de herramientas y conocimientos para el diseño de arquitecturas software para Android.
1. Introducción al desarrollo en tecnologías móviles
2. Introducción a la plataforma Android y su entorno de desarrollo
3. Desarrollo de interfaces de usuario e interacción con el usuario
4. Aplicaciones con múltiples actividades y fragmentos en Android
5. Interfaces de usuario flexibles y adaptables
6. Gestión y obtención de datos de servicios remotos y backend
7. Mapas y uso de servicios de terceros
La asignatura se basa en la metodología Project-Based Learning (PBL), una metodología docente en la que el alumno adquiere los conocimientos mediante el desarrollo de un proyecto, siguiendo el principio de Learn by Doing o “aprender haciendo”.
En el marco de la asignatura Proyectos de Programación II, se considera que la mejor manera de consolidar los conocimientos es a través del desarrollo de un proyecto completo, abarcando todas las fases del ciclo de vida del software: desde el análisis de los requisitos hasta la implementación, las pruebas y la demostración del software.
El trabajo se realiza en equipos, incorporando técnicas de programación colaborativa, como el pair programming, que promueve el trabajo conjunto de dos estudiantes sobre el mismo código, favoreciendo la calidad del desarrollo, la revisión continua y el aprendizaje compartido.
Los aspectos relacionados con el desarrollo del proyecto, como la planificación, la coordinación del equipo, la comunicación, la presentación oral y la resolución de conflictos, se consideran parte integrante del proceso formativo y contribuyen a la adquisición de competencias profesionales propias del ámbito de la ingeniería.
Concretamente, los estudiantes desarrollan un proyecto de programación en Android en equipos, combinando horas de trabajo presencial en el aula con horas de trabajo autónomo. La dedicación total del proyecto se ajusta a los créditos ECTS asignados a la asignatura.
La nota de la asignatura se calculará a partir del conjunto de ejercicios y la práctica que desarrollen a lo largo de la asignatura: Nota asignatura = 30% * Nota_Exercicis + 70% * Nota_Pràctica El profesor realizará un seguimiento regular en el aula con los grupos. Se podrán realizar entrevistas individuales y grupales. Los alumnos realizarán demostraciones de su proyecto de software, justificando las decisiones de diseño, implementación, etc. La asignatura no se evaluará mediante exámenes, de forma que no habrá examen semestral.
- Aplicar correctamente los conocimientos de programación mediante el desarrollo de actividades prácticas y proyectos.
- Diseñar e implementar soluciones de software funcionales y técnicamente correctas de acuerdo con los requisitos planteados.
- Alcanzar los criterios técnicos y funcionales definidos en la rúbrica del proyecto.
- Demostrar capacidad de trabajo continuado y progresivo a lo largo del semestre.
- Participar activamente en el aula y mostrar implicación en el desarrollo de las actividades y del proyecto.
- Trabajar de manera efectiva en equipo, asumiendo responsabilidades individuales dentro del proyecto colectivo.
- Justificar las decisiones técnicas adoptadas durante el desarrollo del proyecto en entrevistas individuales o grupales.
- Evidenciar autonomía, iniciativa y capacidad de resolución de problemas.
- Cumplir los criterios mínimos establecidos en el enunciado del proyecto.
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
1) Eclipse webpage: http://www.eclipse.org 2) MinGW webpage: http://www.mingw.org 3) Android developers webpage: http://developer.android.comGENERAL 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