DE CONSUMIDOR A INVENTOR DE APLICACIONES CON MIT APP ...

Palabras clave: App Inventor, Pensamiento Computacional, Aplicaciones móviles, ... haciendo uso de las mismas estrategias que se usan en las Ciencias de la ...
452KB Größe 81 Downloads 74 vistas
DE CONSUMIDOR A INVENTOR DE APLICACIONES CON MIT APP INVENTOR Línea temática 3. Nuevas Tecnologías de la Información y la Comunicación en contextos formativos José Luis Núñez Montes. IES Isbilya (Sevilla). Formador del MIT en App Inventor. España. [email protected]

Resumen MIT App Inventor es un lenguaje visual para el desarrollo de aplicaciones móviles en la plataforma Android. El presente trabajo muestra una introducción a la herramienta y cómo utilizarla en el ámbito de la enseñanza la secundaria y postobligatoria. ¿La clave? Motivar al alumnado para crear sus propias apps y relacionarlas con la resolución de problemas cotidianos pasando de ser consumidores a creadores de tecnología.

Palabras clave: App Inventor, Pensamiento Computacional, Aplicaciones móviles, Desarrollo Aplicaciones, Educación secundaria.

1. Introducción Si observamos nuestro entorno más cercano, estaremos de acuerdo en que en los últimos años el uso de las tecnologías de la información y la comunicación se ha vuelto muy cotidiano. Multitud de personas utilizan diariamente ordenadores, teléfonos móviles, tabletas, reproductores de música y vídeos, televisiones inteligentes, etc. y todos estos aparatos con conexión a Internet. La mediatización multimedia ha posibilitado el despliegue de contenidos en todos estos dispositivos llevando información prácticamente en tiempo real a todas las personas conectadas. Hablamos ya de Internet no solo como fuente de información sino también como un lugar virtual donde desarrollamos parte de nuestra vida, ya sea desde el punto de vista laboral, o de ocio. El uso de las TIC en las aulas como herramientas en el aprendizaje es una tarea que docentes de todo el mundo están llevando a cabo desde hace unos años. Hay estudios que demuestran la influencia positiva de dichas herramientas. El presente trabajo corresponde a una experiencia personal de cómo implicar al estudiante en su propio proceso de aprendizaje dándole una herramienta de creación de contenidos digitales que promueve lo que denominamos el Pensamiento Computacional. Se trata pues de convertir al alumno en centro de la resolución de problemas, desarrollador de sus propias aplicaciones informáticas y a la vez motor de cambio para el intercambio de ideas.

2. Pensamiento computacional En 2006 Jeannette M. Wing, Profesora de Ciencias de la Computación en la Universidad de Carnegie Mellon, publica un artículo de nombre Computational Thinking (Wing, 2006) donde argumenta que todos deberíamos tener la habilidad de afrontar y resolver problemas haciendo uso de las mismas estrategias que se usan en las Ciencias de la Computación, seamos o no informáticos. Lo define como la capacidad de "resolver problemas, diseñar sistemas y comprender el comportamiento humano, haciendo uso de los conceptos fundamentales de la informática" (Wing, 2006). Esta competencia permitiría al individuo ser capaz de aplicar distintos niveles de abstracción para encarar la resolución de problemas mediante la algoritmia y su propio pensamiento. Wing propone que el Pensamiento Computacional debe ser incluido en la formación de niños y niñas como un ingrediente fundamental para el aprendizaje de disciplinas relativas a ciencias, tecnología, ingeniería y matemáticas(STEM). Las ideas de Wing tienen como precedente el trabajo de Seymour Papert destacado científico, matemático y profesor que pasó gran parte de su vida enseñando e investigando en el MIT. Uno de los más importantes trabajos que desarrolló Papert fue una visión del aprendizaje denominada Construccionismo (Papert & Harel, Constructionism. Situating constructionism, 1991). Influenciado por Piaget, desarrolló un lenguaje de programación de ordenadores denominado LOGO que permitía a sus estudiantes servirles de instrumento didáctico para la construcción de sus conocimientos (Papert S. , 1980). Papert, pionero también en el campo de la inteligencia artificial, destacaba en sus investigaciones la importancia de las estrategias del pensamiento lógico-matemáticas y aprender haciendo. En el año 2012 Alfred V.Aho simplificó la definición de Pensamiento Computacional definiéndolo como el proceso de formulación de problemas, de tal manera que las soluciones al mismo pudieran ser representadas como sentencias informáticas y algoritmos (Aho, 2012). Posteriormente, la Royal Society (2012) también ofreció su propia definición explicando que es el proceso de reconocimiento de aspectos de la informática en el mundo que nos rodea y la

aplicación de herramientas y técnicas de ésta para la comprensión y el razonamiento sobre los sistemas y procesos tanto naturales como artificiales. Entre tantas definiciones una perspectiva interesante, que relaciona el Pensamiento Computacional con el curriculum de enseñanza secundaria, proviene de un curso sobre los Principios de Ciencias de la Computación del College Board y la National Science Foundation (NSF) (http://www.csprinciples.org/). En el curso, el Pensamiento Computacional se centra en siete grandes ideas: 1. La computación es una actividad creativa humana. 2. La abstracción permite centrarnos en la información realmente relevante según el nivel de detalle que necesitemos para comprender y resolver los problemas. 3. Los datos y la información facilitan la creación del conocimiento. 4. Los algoritmos son herramientas para el desarrollo y expresan soluciones a cuestiones susceptibles de ser informatizadas. 5. La programación es un proceso creativo que produce artefactos computacionales. 6. Los dispositivos digitales, sistemas y redes que los interconectan permiten y fomentan la resolución de problemas utilizando aproximaciones basadas en los ordenadores. 7. La informática permite la innovación en otros campos incluyendo la ciencia, ciencias sociales, humanidades, artes, medicina, ingeniería y negocios. En otros talleres organizados por la Asociación de Profesores de Informática (CSTA) y la Sociedad Internacional para la Tecnología en la Educación (ISTE) se proporcionó una "definición operativa de Pensamiento Computacional para educación secundaria" (Barr & Stephenson, 2011) explicando que el proceso de resolución de problemas incluye, aunque no limita, las siguientes características: • • • • • •

Formulación problemas de tal manera que se permita el uso de un ordenador y otras herramientas para ayudar a resolverlos. Organización lógica y análisis de datos. Representación de los datos a través de abstracciones tales como modelos y simulaciones. Automatización de soluciones a través del pensamiento algorítmico (estableciendo una serie de pasos ordenados). Identificación, análisis e implementación de posibles soluciones con el objetivo de conseguir la combinación más efectiva y eficiente de pasos y recursos. Generalización y transferencia de este de proceso de resolución de problemas para ser capaces de resolver otros diferentes de manera similar.

Estas habilidades son mejoradas por determinadas actitudes que forman parte de la dimensión esencial del Pensamiento Computacional y que son: • • • • • •

Confianza en el manejo de problemas complejos. Persistencia en el trabajo a pesar de las dificultades. Capacidad de trabajar con ambigüedades. Habilidad para tratar con problemas indefinidos. Dejar las diferencias a un lado y ser capaces de trabajar con otras personas para conseguir un objetivo común. Conocer las fortalezas y debilidades de cada uno cuando se trabaja en equipo.

El presente trabajo pretende mostrar al lector la capacidad que tiene App Inventor como herramienta para desarrollar el Pensamiento Computacional en niños y niñas que estudian

educación secundaria y bachillerato. Se trata pues de una experiencia de aula basada en las ideas anteriormente expuestas que promueven la resolución de problemas usando una metodología de aprender haciendo e incidiendo en las estrategias propias comentadas previamente.

3. ¿Qué es App Inventor? MIT App Inventor es una innovadora plataforma de desarrollo de aplicaciones móviles para Android que se basa en un lenguaje de programación visual sencillo e intuitivo. El objetivo principal de App Inventor es democratizar el desarrollo de software, esto es, que cualquier persona con un mínimo de entrenamiento sea capaz de crear su propia aplicación móvil en un corto espacio de tiempo. La facilidad de uso y el hecho de ser gratuita han conseguido que esta herramienta cuente, a día de hoy, con más de tres millones usuarios activos en todo el mundo en más de doscientos países. Su origen tuvo lugar en el año 2009 en los laboratorios de Google cuando el Profesor del MIT Hal Abelson y el trabajador de Google Mark Friedman dirigieron un equipo de desarrollo para programar una plataforma que permitiera crear aplicaciones móviles sin importar los conocimientos previos de informática que se tuvieran. ¿La clave del éxito? MIT App Inventor convierte fácilmente a sus usuarios en creadores de su propia tecnología y éstos, a su vez, pueden compartir sus aplicaciones con otras personas haciendo uso de Internet. El hecho de que los estudiantes puedan llevar sus propias apps en sus dispositivos es un aliciente muy positivo ya que es una muestra fantástica del trabajo realizado. Al mismo tiempo, MIT App Inventor puede ser una excelente herramienta para desarrollar el Pensamiento Computacional en las aulas de secundaria ya que promueve todas las ideas expuestas con anterioridad con el añadido de que incorpora la ubicuidad de la tecnología que usa.

4. Requerimientos para usar MIT App Inventor Los requerimientos ideales para el uso de MIT App Inventor en el aula son los siguientes: • • • •

Ordenadores con conexión a Internet estable. Dispositivos móviles con Android: teléfonos inteligentes o tabletas. Conexión WIFI accesible por los estudiantes y que permita la conexión de los dispositivos móviles con los equipos. Cada estudiante debe disponer de su propia cuenta de correo de Gmail.

Existe la posibilidad de desplegar un servidor propio de la plataforma que permita el trabajo en red sin conexión a Internet al igual que el desarrollo de aplicaciones móviles utilizando un emulador, esto es, sin usar dispositivos reales, sin embargo estas opciones presentan ciertas limitaciones a tener en cuenta. MIT App Inventor ofrece una aplicación Android, MIT AI2 Companion, que permite emparejar el dispositivo móvil con el ordenador donde se está creando la aplicación para ir comprobando en vivo los cambios que en ella vayamos realizando en el proceso de desarrollo.

5. Metodologías La realización de cualquier programa informático responde al desafío de crear una herramienta para alcanzar cierto objetivo que resuelva una necesidad sea de productividad o de ocio. La particularidad del desarrollo software en dispositivos móviles tiene además que satisfacer ciertas limitaciones propias de los equipos donde funcionarán: • •

Las interfaces visuales deben ser lo suficientemente limpias y claras para ser usadas en pantallas pequeñas, ser accesibles y fácilmente manejables. Idealmente las apps deberían estar optimizadas para no ocupar demasiada memoria.

Con esta serie de premisas en mente podemos plantear un problema en clase e intentar resolverlo haciendo uso de las distintas estrategias propias del Pensamiento Computacional. Uno de los métodos propuestos por el Profesor David Wolber de la Universidad de San Francisco(USF) con App Inventor, consiste en ofrecer al estudiante las bases de un determinado tema haciendo un tutorial paso a paso donde el estudiante gane confianza y construya en pocos minutos su propia app (Wolber, 2010). Una vez hecha la aplicación base, los estudiantes se dividen en pequeños grupos para discutir cuestiones conceptuales sobre la aplicación y la teoría que subyace en ella para posteriormente debatir en clase. Después de la etapa de debate los estudiantes personalizan la aplicación añadiéndoles funcionalidades extras y capacidades que originalmente no tenía. Finalmente, tras dos o tres repeticiones del proceso Construcción-ConceptualizaciónPersonalización se le da al estudiante la libertad de elegir una app de su interés para que la inventen. Esta fase final la denominamos Creación.

Imagen 1 Construcción-Conceptualización-Personalización-Creación

Otra metodología, no necesariamente ligada a la informática, es la denominada Pensamiento de Diseño (Design Thinking). Con este método los estudiantes dejan de lado la aproximación clásica a la resolución de problemas y desarrollan ideas en base a la empatía y las necesidades de los usuarios, creando prototipos, buscando la retroalimentación y realizando pruebas. ¿Qué metodología usar? Cualquiera de los métodos puede ser efectivo en el aula, si bien son parecidos según el utilizado se incidirá más en unos aspectos u otros. Los más populares son los siguientes:

• • • •

Samsung Mobile App Academy (Samsung, 2015) First Code Academy (Sun, s.f.) Technovation Entrepreneurship (Technovation, s.f.) IDEO Design thinking for Educators Toolkit (IDEO, s.f.)

La mayoría coinciden en la importancia del planteamiento del problema a resolver, afrontándolo, eso sí, de maneras distintas. En esta fase, los alumnos y alumnas deben recopilar el máximo de información sobre el desafío que tienen entre manos, analizar la relevancia de las distintas partes, estructurarlo, estudiar el problema y determinar utilizando la abstracción las diferentes particularidades que se plantean. Los estudiantes aquí no tienen por qué utilizar el ordenador y se pueden usar materiales tradicionales como papel, lápiz, rotuladores, pegatinas y demás para dibujar ideas, prototipos, simulaciones, etc.

6. Trabajando con MIT App Inventor 6.1. Desarrollo de la interfaz visual

Si hay algo donde destaca MIT App Inventor frente a otros lenguajes de programación tradicionales es en la interfaz visual que presenta al usuario para desarrollar la aplicación. Basada en la filosofía de arrastrar y soltar, los estudiantes en un primer paso diseñan la apariencia de su aplicación. La plataforma proporciona al programador un espacio de trabajo donde podremos añadir los distintos componentes que tendrá la app: etiquetas, botones, selectores de lista, imágenes, sensores, etc. Además, cada componente presenta una serie de propiedades específicas que son personalizables por el programador, tanto en la vista de diseño como en tiempo de ejecución mediante bloques.

Imagen 2 Diseñador de MIT App Inventor

6.2. Programación de la aplicación: Editor de bloques

Una vez que se han establecido los componentes en la vista de diseño, el desarrollador debe asignar un comportamiento lógico a su aplicación, utilizando para ello el Editor de Bloques. Los bloques de App Inventor proporcionan una manera muy sencilla de entrar en el mundo de la programación ya que eliminan prácticamente la dificultad inherente a cualquier lenguaje

tradicional de tener que aprender la sintaxis del mismo. El resultado es que el estudiante aprende, mediante las propias "pistas" que los bloques ofrecen al encajar entre ellos, los que tienen sentido reduciendo en gran medida las posibilidades de error y la frustración inicial de aprender un lenguaje de programación convencional. App Inventor se basa en el paradigma de programación orientada a eventos. Esto significa que el programador define el comportamiento de su aplicación considerando las distintas acciones que el usuario de la app podrá efectuar con los distintos componentes o los eventos que en la misma se pueden suceder. De esta manera, la complejidad de manejar las distintas situaciones que se puedan dar se reducen a considerar los manejadores de eventos: Si el evento "tal" ocurre, entonces hacer determinadas instrucciones. Un ejemplo de esto puede ser la gestión del evento Clic de un botón:

Imagen 3 Gestión del evento Clic para un botón

6.3. Realización de pruebas

MIT App Inventor permite probar en vivo las aplicaciones utilizando para ello una aplicación denominada MIT AI2 Companion. El objetivo de esta app no es otro que emparejar nuestro dispositivo con el equipo donde estamos desarrollando y visualizar en tiempo real como va quedando nuestra aplicación. Este software de pruebas evita el tener que generar versiones preliminares con su correspondiente instalación en el dispositivo para verificar su correcto funcionamiento. Es sin duda un paso fundamental antes de generar el producto final.

Imagen 4 MIT AI2 Companion permite emparejar nuestro dispositivo móvil con el equipo

Algunas consideraciones que debemos tener en cuenta a la hora de trabajar con MIT AI2 Companion son: • • •

En su instalación necesitará una gran cantidad de permisos debido a que nuestras aplicaciones podrán ser programadas para casi cualquier cosa. El ordenador y el dispositivo móvil deben compartir la misma red informática para evitar posibles problemas en el enlace entre ambos. Es altamente recomendable tenerlo actualizado a la última versión para garantizar que funciona con la plataforma de MIT App Inventor.

6.4 Instalación

Una vez depurada la aplicación podemos obtener un fichero empaquetado y listo para ser instalado en cualquier dispositivo Android. El proceso de generación de este fichero, denominado APK, realizará la traducción del código de bloques de App Inventor para obtener un producto final compatible con dispositivos Android. Dicho producto final lo podremos descargar a nuestro ordenador personal o instalar directamente en el dispositivo mediante un código QR.

6.5 Publicación de la aplicación

Uno de los factores más positivos del desarrollo de aplicaciones con MIT App Inventor es la facilidad que ofrece la herramienta para publicar nuestra creación. La propia plataforma ofrece la posibilidad de compartir nuestra app con el mundo en una Galería de aplicaciones (Gallery) totalmente gratuita. De esta manera, usuarios de MIT App Inventor de todo el mundo pueden compartir conocimientos, ideas y creaciones animándose entre sí a distribuir sus propios contenidos digitales.

Imagen 5 Gallery permite publicar fácilmente nuestras apps y compartir el código

La generación de un fichero compatible con dispositivos Android permite también la publicación de aplicaciones en cualquier mercado de apps tipo Google Play (Play Store), Amazon Underground o similar.

7. Impacto en los estudiantes y conclusiones Durante cuatro años, el uso de MIT App Inventor como herramienta para el desarrollo de aplicaciones móviles en un instituto de secundaria me ha servido para evaluar esta plataforma y su impacto en el proceso de enseñanza-aprendizaje de los alumnos y alumnas comprobando que: • • • • • • •

Los estudiantes disfrutan enormemente realizando sus propias aplicaciones y compartiéndolas con los compañeros. Ayuda como herramienta transversal para aprender no solamente informática, sino también otras materias como puedan ser matemáticas, tecnología, lengua, idiomas, etc. Motiva en la resolución de problemas. Fomenta el trabajo en equipo. Aumenta la creatividad sorprendentemente dando lugar a invenciones algunas veces totalmente inesperadas. Promueve el emprendimiento. Anima a los estudiantes a pasar de consumidores a creadores de contenidos.

En definitiva, MIT App Inventor se postula como una excelente herramienta para el desarrollo del Pensamiento Computacional.

Referencias bibliográficas − Abelson, H. (31 de julio de 2009). Google Research. Obtenido de App Inventor Pilot Announcement: android.html

http://googleresearch.blogspot.com/2009/07/app-inventor-for-



Aho, A. (July de 2012). Computation and computational thinking. (ACM, Ed.) The Computer Journal, 55(7), 832-835.



Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: What is involved and what is the role of the computer science education community? (2), 4854.



Grover, S., & Pea, R. (enero-febrero de 2013). Computational Thinking in K-12: A Review of the State of the Field. Educational Researcher, 42, 38-43.



IDEO. (s.f.). Toolkit. Obtenido de Design http://www.designthinkingforeducators.com/toolkit/



Núñez, J. (octubre de 2015). Udemy. Obtenido de Curso de desarrollo de aplicaciones móviles con App Inventor: https://www.udemy.com/desarrollo-de-aplicacionesmoviles-con-app-inventor/



Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. New York, US: Basic books.



Papert, S., & Harel, I. (1991). Constructionism. Situating constructionism. Ablex Publishing Corporation.

Thinking

for

Educators:



Royal Society. (2012). Shut down or restart: The way forward for computing in UK Schools. Royal Socity. Obtenido de Royal Society: http://royalsociety.org/ education/policy/computing-in-schools/report/



Samsung. (2015). Guide to Teaching Mobile App Development. Obtenido de Samsung Mobile App Academy: http://www.scholastic.com/samsungacademy/teachers.aspx



Sun, M. (s.f.). Desing Thinking & App Inventor. Obtenido de First Code Academy: https://docs.google.com/presentation/d/1QJKBhD_0JOJv1uIC15gRKuw_vTiuW5mjvmXp946QDk/edit



Technovation. (s.f.). Technovation Entrepreneurship curriculum. Obtenido de Technovation Entrepreneurship: http://www.technovationchallenge.org/



Wing, J. (marzo de 2006). Computational Thinking. (ACM, Ed.) Communications of the ACM, 49, 33-35.



Wolber, D. (17 de junio de 2010). Teaching an App Inventor Course. Obtenido de AppInventor.org: http://www.appinventor.org/TeachingAI



Wolber, D. (2011). Proceedings of the 42nd ACM technical symposium on Computer science education. App Inventor and Real-World Motivation (págs. 601-606). New York: ACM.



Wolber, D., Abelson, H., Spertus, E., & Looney, L. (2014). App Inventor 2. Create your own apps. O'Reilly Media Inc.