Full text
Tutorizando el aprendizaje proactivo de nuevas tecnologías: Taller de programación Android* Maria J. Blesa Amalia Duch Joaquim Gabarró Hugo Hernández Maria Serna Departament de Llenguatges i Sistemes Informàtics Facultat d’Informàtica de Barcelona Universitat Politècnica de Catalunya Campus Nord, 08034 BARCELONA {mjblesa,duch,gabarro,hhernandez,mjserna}@lsi.upc.edu Resumen Mediante el Programa Google EMEA’s AndroidEDU, la UPC ha impartido un novedoso taller de programación para Android. Durante diez semanas se tratan diferentes temas sobre este sistema y una veintena de alumnos trabajan ejercicios en grupos reducidos. Los grupos colaboran para investigar y solucionar las dificultades técnicas que surgen. Posteriormente, cada grupo realiza y defiende un proyecto propio. El interés en Android ha permitido fomentar el aprendizaje proactivo, con muy buenos resultados. Como profesores esta experiencia nos ha permitido afrontar nuevos retos docentes, obligándonos a replantear nuestro rol, a crear material docente adecuado a los nuevos medios de difusión social (foro FIB, YouTube, etc.), y a suplir la falta de experiencia en el tema con una interesante colaboración profesoralumno. Summary Within the AndroidEDU Google EMEA Program, the UPC has organized a innovative programming workshop for Android. For ten weeks, twenty students (who are organized in small groups) deal with different topics about Android. Those groups work together to investigate and resolve technical difficulties that may arise. By the end of the course, each group works on and fends for its own project. *Trabajo parcialmente financiado por la mención de la Generalitat de Catalunya a ALBCOM como grupo de investigación consolidado (ref. 2009 SGR 1137) y por los proyectos del Ministerio de Ciencia y Tecnología: TIN2007-66523 (FORMALISM) para M. Blesa, J. Gabarró y M. Serna, y TIN2010-17254 (FRADA) para A. Duch. H. Hernández está financiado por el Comissionat per a Universitats i Recerca del DIUE de la Generalitat de Catalunya y por el European Social Fund. The growing interest in Android has allowed us to apply proactive learning techniques with very good results. As teachers, this experience has allowed us to meet new challenges, since it has forced us to rethink our role, to create educational material accordant with the new communication media (forum FIB, YouTube, etc.), and to supply the lack of expertise with an interesting collaboration between teachers and students. Palabras clave Google AndroidEDU, Android, taller de programación, nuevas tecnologías. 1. Motivación A través del programa AndroidEDU EMEA[2] la empresa Google lanzó una convocatoria dirigida a las universidades con el propósito de fomentar el desarrollo de experiencias docentes utilizando el sistema Android y específicas para teléfonos móviles. Para participar en el programa era necesario presentar una propuesta de desarrollo de un sistema novedoso en ingeniería móvil que requiriera un número limitado de teléfonos pero que al mismo tiempo pudiera alcanzar a una amplia audiencia. El sistema propuesto debía ser escalable y la propuesta debía facilitar el hacer la ciencia de la computación tangible para los estudiantes. La propuesta sometida a dicho programa por los autores de este trabajo resultó ser una de las seleccionadas y para facilitar su puesta en marcha Google le donó 20 teléfonos al departamento de Llenguatges i Sistemes Informàtics (LSI) de la Universitat Politècnica de Catalunya (UPC). Este es el origen del Taller de Programación de Aplicaciones Android para Google Phones con acrónimo TPAAGP objeto de este trabajo. Se trata de
322 Sesión 6B: Métodos pedagógicos innovadores III una asignatura de libre elección (ALE) que ofrece la UPC a alumnos de diferentes titulaciones. El cupo de estudiantes en el taller está restringido al número de teléfonos del que disponemos. TPAAGP es un curso muy práctico de 4-ECTS que requiere que los alumnos que lo cursan tengan un buen conocimiento del lenguaje de programación Java y una buena cultura general de algoritmos y estructuras de datos. Tras dos cuatrimestres impartiendo este taller, consideramos que se trata de una experiencia a compartir ya que los resultados han sobrepasado nuestras expectativas. Primero, los estudiantes se muestran mucho más proactivos y motivados que en otros cursos más convencionales y los proyectos resultantes, tanto en sus contenidos como en su presentación, son de gran calidad. Segundo, hay un cambio de rol en el papel del profesor, ya que actúa más de guia (coach) que como profesor convencional. Tercero, al utilizar tecnología punta este taller aporta aires nuevos a contenidos clásicos como son la programación y las estructuras de datos. A la vista de los resultados obtenidos, afirmamos que las nuevas tecnologías son un elemento motivador muy útil en la enseñanza universitaria. Creemos que este es un factor todavía por explotar en algunas áreas. A continuación describimos el curso (en la Sección 2) dando los contenidos, el método de evaluación y el material de consulta y soporte utilizado para su impartición. Seguidamente, la Sección 3 describe la valoración del curso realizada en la segunda edición del curso por parte de los estudiantes. El trabajo concluye con la Sección 4, donde reflexionamos sobre diversos aspectos que consideramos novedosos dentro del ámbito universitario y que creemos que pueden llegar a ser útiles dado que, al menos para este curso, ya lo han sido. 2. El curso El curso TPAAGP dura diez semanas y su orientación, como ya se ha dicho, es muy práctica desde el principio. Como se supone que los estudiantes tienen conocimientos previos de programación orientada a objetos utilizando Java, el curso se puede enfocar desde el principio en los detalles de programación del sistema Android, motivo por el cual, el curso es realmente un taller de programación. TPAAGP está pensado para ser altamente interactivo tanto entre profesores y estudiantes como entre estudiantes. El taller está organizado de tal manera que cada semana se explica un tema nuevo a través de distintos ejemplos, con énfasis en la implementación. La complejidad de los temas tratados semanalmente se incrementa gradualmente a lo largo del curso. Al final de cada sesión se deja un ejercicio de programación en el que los estudiantes deben trabajar durante la semana para, en la siguiente sesión, proponer una solución que será discutida y comentada entre los demás estudiantes y los profesores. Estos trabajos conforman una evaluación continuada de los estudiantes que se completa con el desarrollo de un proyecto de dificultad media en el que se combinan y aplican todos los conocimientos adquiridos durante el desarrollo del taller. 2.1. Contenidos A continuación damos los detalles sobre las sesiones que conforman el curso. 1a sesión: Introducción. En la primera sesión del taller se muestra cómo instalar el entorno de programación y todas las herramientas de desarrollo. Se introduce también la filosofía de los proyectos en Android a través de un primer programa muy sencillo (la versión Android del clásico programa Hola mundo) y se muestra cómo utilizar unas cuantas herramientas (widgets) básicas de las aplicaciones de Android como son, por ejemplo, los botones, los menús, etc. Como trabajo para esta sesión se pide a los estudiantes un programa para jugar a piedra, tijeras y papel. Se trata de un programa sencillo que permite utilizar algunas de las herramientas mencionadas y que a los estudiantes les resulta muy motivador. En particular se muestran muy creativos en la presentación gráfica del juego. 2a sesión: Widgets y ficheros. Las aplicaciones y los widgets conforman la capa más alta en la arquitectura de los proyectos del sistema Android. En la segunda sesión se profundiza en la estructura de dichas aplicaciones y se presentan elementos avanzados tales como las listas tanto estáticas como dinámicas (incluidas por defecto en el sistema) que facilitan su desarrollo. Por otro lado, la mayor parte de las aplicaciones reales necesitan almacenar información y Android
XVII Jornadas de Enseñanza Universitaria de la Informática 323 permite hacerlo en el dispositivo móvil mediante diferentes técnicas. La más sencilla, el manejo de ficheros, se introduce en esta sesión. El programa que se pide al finalizar la sesión es desplegar y fusionar de manera dinámica listas de contactos leídas de diversos ficheros. 3a sesión: Localización. El tema de la tercera semana es la localización, incluyendo la utilización del GPS del teléfono y de aplicaciones web híbridas que combinan mapas con otra información. En particular, se muestra cómo obtener y actualizar la localización del teléfono, cómo utilizar el emulador para simular cambios de posición en el entorno de programación y cómo, con pocas líneas de código, se puede incluir un MapView (clase específica de Android para la visualización de mapas) en una aplicación. Cabe destacar la conexión de la clase MapView con todo el potente sistema de Google Maps. En efecto, esta clase requiere acceso a Internet para poder llamar a los servidores de Google y así obtener los mapas (que no dejan de ser propiedad de Google). El programa que se pide al finalizar la sesión consiste en desplegar mapas en la pantalla del teléfono y mostrar puntos y trayectorias específicas en él. 4a sesión: Bases de datos. En la segunda sesión se explicó como almacenar datos utilizando ficheros. Este sistema funciona bien cuando la cantidad de datos es pequeña o la información es del mismo tipo. Sin embargo para almacenar grandes cantidades de datos estructurados es mejor utilizar una base de datos relacional. Android incluye un pequeño sistema de base de datos: SQLite [17] al que se le dedica esta semana del taller. Se trata de un pequeño y potente motor de base de datos SQL muy difundido que también se utiliza en PHP, iPhone, Skype, Mozilla Firefox, etc. Como trabajo de esta sesión se pide integrar en bases de datos parte de los conocimientos adquiridos en ejercicios previos, como por ejemplo gestionar localizaciones generadas en la Sesión 3 almacenándolas en la base de datos del sistema. 5a sesión: Threads. El tema de la quinta semana de taller son los threads, una característica que Android hereda del lenguaje de programación Java y que permite la ejecución en paralelo de varias tareas. Esta característica es especialmente útil en la programación de teléfonos móviles ya que los usuarios de estos sistemas se vuelven cada vez más impacientes y quieren aplicaciones que respondan de manera instantánea, lo que es difícil de conseguir pues los recursos de un teléfono son limitados. Mediante los threads es posible, por ejemplo, abrir una ventana de diálogo con el usuario para avisarle que la aplicación está realizando la operación requerida, lo que ayuda a disminuir su impaciencia. El trabajo de la sesión consiste en transformar una de las aplicaciones previamente programadas para que utilice threads, por ejemplo, programar una aplicación que cada determinado tiempo pida actualizar la localización del teléfono sin interrumpir la ejecución de otras aplicaciones. 6a sesión: Gráficos para el diseño de juegos. Durante la sexta sesión se introducen los aspectos fundamentales de las librerías gráficas de Android. El ejercicio de esta sesión se basa en el desarrollo de un juego de tenis. Durante la sesión, cada grupo de estudiantes desarrolla una parte de los gráficos del juego de manera que al final todos disponen de la versión completa. Como trabajo semanal se proponen otros juegos. 7a sesión: Comunicaciones entre procesos. Un tema de particular importancia en Android es el de las comunicaciones internas del sistema y la conforman los intents (mecanismos de comunicación entre distintas aplicaciones del sistema) y las llamadas a procesos remotos (con acrónimo en inglés RPCs). Tanto los intents como las RPCs fomentan de manera muy eficaz un alto grado de modularidad y de independencia en las aplicaciones. En Android prácticamente todo funciona por medio de estos mecanismos, de modo que es muy fácil reutilizar o sustituir componentes. Por ejemplo, si una aplicación requiere enviar un SMS y hay un intent para ello, éste puede ser utlizado por la aplicación. Para consolidar la sesión se pide crear una aplicación que pueda imprimir en la pantalla del dispositivo móvil datos de tipo texto provenientes de intents creados por otras aplicaciones. 8a sesión: Conexiones y navegación. Además de su utilidad básica de realizar llamadas, el teléfono se utiliza cada vez más como dispositivo móvil para ac-
324 Sesión 6B: Métodos pedagógicos innovadores III (a) Android Dev Phone 1 (b) Nexus One Figura 1: Teléfonos provistos por Google ceder a Internet. Android está perfectamente equipado para estas funcionalidades ya que proporciona un navegador web muy completo basado en el proyecto de código abierto WebKit [18]. Se trata del mismo motor que puede encontrarse por ejemplo en Google Chrome y Safari. Además, se explican funcionalidades que Android proporciona a sus programas de acceso a servicios estándar de red como son los sockets TCP/IP, las conexiones HTTP mediante el lenguaje JavaScript o las conexiones Bluetooth entre teléfonos. Como trabajo se pide programar aplicaciones que se conecten mediante JavaScript a diversas páginas web y que se instale y se pruebe en los teléfonos un chat de Bluetooth proporcionado en [13]. 9a sesión: Gestión de SMS y llamadas. La gestión de SMS y llamadas en Android es ya muy completa y central para las aplicaciones de telefonía. Los trabajos prácticos de esta sesión son, por ejemplo, sistemas de alarma que se activan y desactivan con llamadas o SMS, sistemas de votaciones y/o encuestas, o un juego de batallas navales. 10a sesión: Distribución de proyectos. En esta sesión se entregan y discuten los proyectos finales y se atiende a una charla invitada de alguna empresa del sector. 2.2. Material Para la impartición de este curso se ha recurrido a una cantidad significativa de material docente y de soporte. Dicho material se describe a continuación. Teléfonos Google. El Programa AndroidEDU de Google dotó nuestra propuesta con 10 teléfonos Android Dev 1 Phone y 10 teléfonos Nexus One (véase Figura 1). El Android Dev Phone 1 es una variante de HTC T-Mobile G1 diseñado exclusivamente como herramienta para desarrolladores de aplicaciones para el sistema operativo Android de Google. Ambos teléfonos funcionan con Android (1.0 en Dev Phone 1 y 2.2 en Nexus One), tienen Wi-Fi (802.11 b/g), Bluetooth (Bluetooth 2.0), radio GSM cuatribanda y USB (USB 2.0). La capacidad de almacenamiento es sensiblemente mayor en el Nexus One (512MB RAM, microSD card de 4GB y hasta 32GB), que en el Dev Phone 1 (192MB, microSD card de 1 GB y hasta 16 GB), así como su potencia de procesamiento (CPU de 1 GHz vs. CPU de 528 MHz). Para más detalles sobre las especificaciones y detalles de estos teléfonos, véase [4] para el Android Dev Phone 1, y [14] para el Nexus One. Aunque el kit de desarrollo de software (Software Development Kit (SDK) en inglés) para Android incluye un emulador aceptablemente bueno, para los estudiantes siempre resulta muy atractivo e interesante disponer de teléfonos reales sobre los que probar sus aplicaciones. Si además son teléfonos de última generación (y, por tanto, de precio bastante elevado en el mercado), que todavía no están a disposición del público en general (como ha sido nuestro caso), la espectación y el interés que despiertan son remarcables. Poder disponer de tal hardware ha sido un plus importante para este curso. Bibliografía. Cuando impartimos la primera edición del taller había muy pocos libros de Android. El curso ha sido preparado basándonos principalmente en los siguientes dos libros: • M. Murphy. Beginning Android. Apress Ed, 2009. • Z. Mednieks R. Rogers, J. Lombardo and B. Meike. Android Application Development. O’Reilly Media Ed., 2009. Ambos son muy prácticos, suponen un buen conocimiento del lenguaje de programación Java, están muy enfocados a la parte de implementación, incluyen muchas discusiones acerca del código de diversas aplicaciones y sobre cómo, progresivamente ir mejorando la eficiencia de los programas y adecuándolos a las restricciones específicas que imponen las
XVII Jornadas de Enseñanza Universitaria de la Informática 325 limitaciones de memoria y batería de los dispositivos móviles. Una característica importante de estos dos libros es que las editoriales ofrecen por Internet el código fuente de todos los programas que en ellos se muestran, de manera que es muy fácil acceder a ellos para probarlos, modificarlos y reutilizarlos. En apenas un año, se ha incrementado notablemente la bibliografía y el material electrónico de soporte al aprendizaje de Android. Actualmente estamos consultando y contrastando las referencias [8, 7, 3, 11, 12] para considerar usarlas en futuras ediciones del curso. En soporte electrónico también existe mucho material acerca de Android (guías, vídeos, etc.), siendo los foros de desarrolladores posiblemente los más abundantes. Un recurso electrónico imprescindible en este curso es la guia en línea para desarrolladores de Android que ofrece Google: Android’s Developer’s Guide [5]. Esta guía es muy completa en cuanto a que contiene todo lo que forma parte del sistema pero, al mismo tiempo, es poco explicativa y a menudo resulta difícil encontrar una información específica debido al gran volumen de datos que contiene. Sitio web y Foro en línea. Todos los contenidos del curso, incluyendo referencias bibliográficas, enlaces a recursos electrónicos y proyectos realizados en ediciones anteriores del curso pueden encontrarse en http://albcom.lsi.upc.edu/tpaagp/. Desde esta página web, los estudiantes y profesores también pueden acceder a un foro en línea en el cual compartir sus dudas y soluciones, hacer comentarios, etc. Dicho foro es uno de los que la Facultat d’Informàtica de Barcelona gestiona y pone a disposición de sus estudiantes y profesores dentro de la herramienta web Racó [16]. 2.3. Evaluación La evaluación en TPAAGP se divide en dos partes. La primera es una evaluación continuada de los trabajos semanales. La segunda es la evaluación del proyecto final. Para la evaluación de los trabajos semanales se les pide a los estudiantes (por equipos de dos o tres) que enseñen y expliquen en cada sesión el trabajo encargado en la sesión anterior. Además, cada equipo debe hacer un informe semanal explicando cómo han hecho el trabajo, con qué dificultades se encontraron, cómo las resolvieron y, si no lo hicieron, cómo creen que lo pudieron haber hecho. Con este informe semanal los profesores podemos evaluar el trabajo realizado durante las sesiones y adecuar contenidos. Para evaluar el aprovechamiento, y como ya habíamos mencionado anteriormente, se les pide que realicen un proyecto de dificultad media. Este proyecto es propuesto por los profesores (aunque excepcionalmente hemos aceptado proyectos propuestos por los estudiantes) y cada equipo realiza un proyecto distinto. Para realizar el proyecto los equipos tienen un periodo de dos meses en el que no hay clases de TPAAGP de tal forma que pueden dedicar el tiempo designado a ellas a la realización del proyecto. Como producto final, los estudiantes deben entregar el código completo de la aplicación que hayan desarrollado así como una documentación técnica. También deben hacer una presentación oral y pública de su proyecto incluyendo una demostración en vivo del funcionamiento de su programa. Finalmente se les pide que entreguen un vídeo de presentación del proyecto que incluya una demostración de cómo funciona. Todo este material se piden en inglés, en parte para facilitar la familiarización de los estudiantes con esta lengua, y en parte para poder mostrar a Google los trabajos realizados al final del curso. A continuación resumimos los proyectos realizados hasta ahora (véase el sitio web del curso para más detalles). •Guide and vote (guía y vota). Guía al usuario del teléfono a lo largo de una visita turística a distintos puntos de interés de una localización concreta. •Catch the thief (pilla al ladrón). Es un juego en el que hay varios policias y un ladrón. Todos están distribuidos y se mueven sobre una terreno de juego cuadricular compartido. El objetivo es que los policías rodeen al ladrón. •Phone that guides a group (teléfono que guía un grupo). El teléfono calcula el mejor punto de encuentro para un grupo de amigos que están cerca y que quieren encontrase.
326 Sesión 6B: Métodos pedagógicos innovadores III •Tracking a Bluetooth device (rastreando un dispositivo Bluetooth). Varios teléfonos colaboran en el rastreo de la trayectoria que describe un dispositivo ajeno que dispone de Bluetooth (por ejemplo un viejo teléfono móvil o un ordenador). •Personal Trainer (entrenador personal). Implementa un entrenador personal que sugiere, gestiona y mantiene un plan personalizado de ejercicios deportivos en el cual se determinan distancias a correr, calorías a consumir, etc. •Distributed Tetris (Tetris distibuido). Permite jugar al popular Tetris de manera distribuida entre varios jugadores organizados por turnos. •Easy Parking (fácil aparcamiento). Permite recordar el lugar de aparcamiento de nuestro coche y mostrar su ubicación en Google Maps. También mediante Google Maps, se puede calcular en cualquier momento el mejor camino de vuelta a él. Permite gestionar también la compartición del vehículo por varios usuarios. •Zimbra Synchronization Provider (proveedor de sincronización con Zimbra). Permite sincronizar un teléfono Android con el proveedor de correo de Zimbra. 3. Valoración de los estudiantes Para dar una valoración de los resultados desde el punto de vista de los estudiantes, diseñamos un cuestionario de 15 preguntas que fue contestado por 11 de los 20 estudiantes del taller del cuatrimestre de otoño del presente curso. A cada pregunta los estudiantes podían contestar con un número del 1 (muy en desacuerdo) al 5 (muy de acuerdo). Los resultados obtenidos están desplegados en el Cuadro 1. Como puede verse en el cuadro, la valoración global que tienen los estudiantes de la asignatura es positiva (Pregunta 15). Todas las respuestas indican que los contenidos de la asignatura son novedosos y de interés actual (Pregunta 1) y que en general el taller les ha aportado conocimientos de utilidad para su futura experiencia profesional (Pregunta 14). El hecho de tener profesores que actúen como guias en una búsqueda personal de conocimientos (Preguntas 2 y 3) ha sido valorado muy positivamente así como el material de soporte de la asignatura (Pregunta 7). Con respecto al método de evaluación, los resultados indican que parece adecuado (Pregunta 9), tanto por la existencia de ejercicios semanales (Pregunta 8) como por la realización y características del proyecto final (Preguntas 11 y 13). Los contenidos desde el punto de vista de su interés y dificultad (Preguntas 4 y 5) están valorados positivamente, sin embargo, la forma de impartirlos (Pregunta 6) es un punto a mejorar. Es posible que obre en nuestra contra en este punto la poca experiencia que tenemos programando en Android. Otros puntos a mejorar son los correspondientes a las Preguntas 10 y 12. Los estudiantes no parecen valorar positivamente el que los trabajos y algunas presentaciones se pidan en inglés. Sin embargo, lo consideramos necesario para poder dar a conocer los resultados del curso y el trabajo de los propios estudiantes. Por tanto, debemos reforzar el explicarles el motivo de esta petición para facilitar que lo vean como algo provechoso para ellos. En general, los resultados indican que un alto interés por el tema de estudio suple limitaciones docentes y/o mecanismos de evaluación sofisticados. 4. Impresiones e intuiciones Como profesores hemos de decir que este curso nos ha sorprendido muy gratamente. Acostumbrados a impartir asignaturas teóricas en las que el común denominador es la indiferencia por parte de la mayoría de los estudiantes de Informática de nuestra Universidad, no esperábamos encontrarnos con estudiantes tan motivados y trabajadores en este curso. Cabe mencionar que esta motivación inicial no ha disminuido a lo largo del curso y que de hecho se consolida en el desarrollo del proyecto final, de cuyos resultados nos sentimos muy satisfechos. La sorpresa es aún mayor cuando reflexionamos sobre la carga lectiva del curso (4 créditos ECTS), ya que consideramos que el trabajo global que realizan los estudiantes es mayor los créditos reconocidos. Adicionalmente, esta experiencia nos ha permitido adoptar nuevas posiciones y retos docentes, obligándonos a replantear nuestro rol habitual. En efecto, tradicionalmente estamos acostumbrados a cur-
XVII Jornadas de Enseñanza Universitaria de la Informática 327 Cuestión Puntuación Media 12345 1. Los contenidos de esta asignatura son novedosos y de interés actual. - - - 2 9 4.8 2. Es positivo tener profesores que guien en la búsqueda de conocimientos. - 1 2 2 6 4.2 3. Valoro positivamente la investigación que requiere esta asignatura. - - 2 8 1 3.9 4. Los temas tratados semanalmente me han resultado interesantes. - 1 4 5 1 3.5 5. Los temas tratados semanalmente tienen un grado de dificultad adecuado. - 1 4 4 2 3.6 6. Los temas tratados semanalmente se impartieron adecuadamente. 1 3 4 3 - 2.8 7. El material de soporte para la realización de la asignatura es adecuado. - - 2 6 3 4.1 8. Valoro de manera positiva la existencia de ejercicios semanales. - - 1 4 6 4.5 9. Me parece adecuado el método de evaluación de la asignatura. - - 4 6 1 3.7 10. Me parece adecuado que los trabajos se hagan en inglés. 1 1 1 5 3 3.7 11. Los proyectos finales son interesantes y de una dificultad adecuada. - - 1 8 2 3.9 12. Es adecuado hacer una presentación oral pública del proyecto. 2 1 3 4 1 3.1 13. Es adecuado realizar un vídeo que presente el proyecto. - 1 2 4 4 4.0 14. Este curso aporta conocimientos útiles para mi futuro profesional. - - 2 2 7 4.5 15. Mi valoración global de la asignatura es positiva. - 1 1 8 1 3.8 Cuadro 1: Resultados del cuestionario realizado en el cuatrimestre de otoño del curso 2010-2011 para valorar los resultados del taller TPAAGP. Para cada pregunta, se muestra el número de votos para las puntuaciones entre 1 (muy en desacuerdo) y 5 (muy en acuerdo). (a) Proyecto Distributed Tetris (b) Proyecto Catch the thief (c) Proyecto Guide and Vote (d) Vídeos en YouTube Proyecto Fecha de subida Reproducciones Guide and vote 23 jul. 2010 94 Catch the thief 23 jul. 2010 87 Phone that guides a group 23 jul. 2010 52 Tracking a Bluetooth 23 jul. 2010 76 Personal Trainer 02 feb. 2011 46 Distributed Tetris 02 feb. 2011 45 Easy Parking 02 feb. 2011 80 Zimbra Provider 08 feb. 2011 34 Cuadro 2: Imágenes capturadas de algunos de los vídeos de presentación de los proyectos (Subfig. (a), (b) y (c)) y número de reproducciones de todos los vídeos en YouTube a fecha de 8 de Mayo de 2011 (Subfig. (d)).
328 Sesión 6B: Métodos pedagógicos innovadores III sos en los que el profesor se considera un experto en el tema y por tanto es la principal fuente de conocimiento para los estudiantes. Es el caso, por ejemplo, en la docencia de disciplinas bien establecidas como la programación o las estructuras de datos. Sin embargo, en el ámbito universitario esta situación es muy difícil de mantener (si no imposible) cuando se trata de un curso de una tecnología punta, como es el caso de Android. En nuestro caso hemos cambiado el rol de profesor experto a profesor guia o entrenador en el aprendizaje. Desde el punto de vista de la Universidad, este curso ha permitido que se dieran de manera natural situaciones que son muy difíciles de encontrar en otros cursos universitarios. Nos referiremos específicamente al tipo de curso y a las relaciones Universidad-Empresa. A pesar de que las nuevas tendencias parecen indicar que es deseable una relación más estrecha entre la Universidad y el mundo empresarial, es muy difícil encontrar cursos que lo permitan. En TPAAGP establecer esta relación fue algo que surgió de manera espontánea, no sólo por la relación directa con Google, sino también porque al final del curso siempre intentamos ponernos en contacto con alguna empresa del sector. Por otra parte, el taller TPAAGP puede considerarse un curso integrador: no sólo se trabaja Android como tema nuevo y de tecnología punta, sino que se deben aplicar muchos conocimientos consolidados provenientes de asignaturas de diversas índoles: programación, algoritmos y estructuras de datos, sistemas distribuidos, bases de datos, ingeniería de software, entre otros. Esto convierte a TPAAGP en un curso difícil pero al mismo tiempo idóneo para enfrentar a los estudiantes al tipo de tareas que muy probablemente requerirán en su vida profesional. A fin de dar una mayor visibilidad al trabajo de los estudiantes y facilitarles posibles contactos, tanto en el mundo empresarial como a nivel de colaboraciones con otros desarrolladores de Android, se ha creado el canal tpagpUPC en YouTube accessible via http://www.youtube.com/user/tpagpUPC. El Cuadro 2 muestra algunas imágenes de los vídeos incluídos en dicho canal, así como información referente al número de reproducciones a fecha de 8 de Mayo de 2011. Junto con el sitio web de la asignatura, dicho canal pretende también dar visibilidad a la asignatura y captar nuevos estudiantes. Los vídeos representan una nueva forma de difusión del trabajo en temas tecnológicos. Para desarrollarla plenamente sería deseable que los futuros ingenieros tuvieran algún tipo de formación en aspectos relacionados con la comunicación multimedia. Agradecimientos Nuestro agradecimiento al Programa AndroidEDU del Google’s EMEA Engineering University Programs por el hardware aportado para este proyecto. Referencias [1] ADT Plugin for Eclipse (developer.android.com/sdk/eclipse-adt.html). [2] AndroidEDU EMEA (sites.google.com/site/androideduemea). [3] E. Burnette. Hello, Android. Introducing Google’s Mobile Development Platform. The Pragmatic Bookshelf, 2009. [4] HTC (www.htc.com/www/product/g1). [5] Android Developers: The Developer’s Guide (developer.android.com/guide). [6] Eclipse (www.eclipse.org). [7] C. Collins F. Ableson and R. Sen. Unlocking Android: A Developer’s Guide. Manning Publications, 2009. [8] C. Haseman. Android Essentials. Apress Ed, 2008. [9] Android Developers: Hello, World. (developer.android.com/guide/tutorials/helloworld.html). [10] Java Platform (www.oracle.com/technetwork/java/javase). [11] J. Ledford. Web Geek’s Guide to the AndroidEnabled Phone. QUE Ed., 2009. [12] M. Miller. Google-pedia: The ultimate Google resource. QUE Ed., 2008. [13] M. Murphy. Beginning Android. Apress Ed, 2009. [14] Google Phone Gallery (www.google.com/phone/detail/nexus-one). [15] Z. Mednieks R. Rogers, J. Lombardo and B. Meike. Android Application Development. O’Reilly Media Ed., 2009. [16] Racó de la FIB (raco.fib.upc.edu). [17] SQLite (sqlite.org). [18] The WebKit Open Source Project (webkit.org).