• No se han encontrado resultados

Aplicación para Dispositivos Móviles con Sistema Operativo Android para el Aprendizaje de Conceptos Básicos de Lógica de Programación

N/A
N/A
Protected

Academic year: 2020

Share "Aplicación para Dispositivos Móviles con Sistema Operativo Android para el Aprendizaje de Conceptos Básicos de Lógica de Programación"

Copied!
101
0
0

Texto completo

(1)APLICACIÓN PARA DISPOSITIVOS MÓVILES CON SISTEMA OPERATIVO ANDROID PARA EL APRENDIZAJE DE CONCEPTOS BÁSICOS DE LÓGICA DE PROGRAMACIÓN. ESTUDIANTES: LOUIS STEVEN HERNÁNDEZ SÁNCHEZ - 20131078022 MARTÍN LEONARDO LOZADA CORTÉS - 20102078110. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D.C 2017.

(2) APLICACIÓN PARA DISPOSITIVOS MÓVILES CON SISTEMA OPERATIVO ANDROID PARA EL APRENDIZAJE DE CONCEPTOS BÁSICOS DE LÓGICA DE PROGRAMACIÓN. ESTUDIANTES: LOUIS STEVEN HERNÁNDEZ SÁNCHEZ - 20131078022 MARTÍN LEONARDO LOZADA CORTÉS - 20102078110. TRABAJO DE GRADO PARA OPTAR POR EL TÍTULO DE TECNÓLOGO EN SISTEMATIZACIÓN DE DATOS. TUTOR(A): ING. ROCÍO RODRÍGUEZ GUERRERO. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D.C 2017.

(3) Nota de Aceptación. ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________. _______________________ Ing. Rocío Rodríguez Guerrero Firma de la Tutora. _______________________ Ing. Sonia Alexandra Pinzón Núñez Firma de la Jurado. Bogotá D. C, 20 Septiembre de 2017.

(4) “Dedicado este logro a mi madre por su comprensión y apoyo incondicional, ya que de seguro nada de esto hubiera sido posible sin su ayuda; A mi padre que siempre se preocupó por yo fuera bien alimentado a la Universidad; A mis profesores especialmente algunos del área de programación aunque tuvimos nuestras diferencias siempre estuvieron dispuestos a aclarar mis dudas y confiaron en mí, aun cuando yo ni siquiera daba nada por mí mismo; A mis compañeros, en especial a Louis Steven que a pesar de los altos y bajos nunca perdió la fe”. Martín Leonardo Lozada Cortés. “Dedicado este logro a mis padres por todo su amor, sus regaños y por nunca darse por vencidos conmigo; a mis hermanos, familiares, profesores y amigos por su apoyo incondicional. Por último, pero probablemente el más importante, a Dios quien siempre me guió y me dio todas las competencias necesarias para poder conseguir todo aquello que alguna vez anhelado”. Louis Steven Hernández Sánchez..

(5) AGRADECIMIENTOS Agradecemos a todas las personas quienes de una u otra forma contribuyeron en el desarrollo de este proyecto, familiares, hermanos, amigos, compañeros y profesores. Agradecemos a la Universidad Distrital Francisco José de Caldas por todo el conocimiento, experiencias y buenos tratos que siempre nos han brindado. Agradecemos también a todos los estudiantes de primeros semestres de la carrera de Tecnología en sistematización de datos que participaron en las encuestas y en las pruebas de la aplicación ya que nos fueron de mucha ayuda y contribuyeron en la elaboración y perfeccionamiento del presente proyecto. Agradecemos a la Ingeniera Rocío Rodríguez Guerrero por su acompañamiento y asesoría durante en el desarrollo de este proyecto como nuestra tutora..

(6) TABLA DE CONTENIDO. RESUMEN. 12. ABSTRACT. 13. INTRODUCCIÓN. 14. 1. PLANEACIÓN. 15. 1.1. TÍTULO. 15. 1.2. TEMA. 15. 1.3. PLANTEAMIENTO DEL PROBLEMA. 15. 1.3.1. Descripción. 15. 1.3.2. Formulación del problema. 16. 1.4. ALCANCES Y LIMITACIONES. 16. 1.4.1. Alcances. 16. 1.4.2. Limitaciones. 17. 1.4.2.1. Geográfica. 17. 1.4.2.2. Técnica. 17. 1.4.2.3. Temático. 17. 1.4.2.4. Temporal. 17. 1.5. OBJETIVOS. 18. 1.5.1. Objetivo general. 18. 1.5.2. Objetivo Específicos. 18. 1.6. JUSTIFICACIÓN. 18. 1.7. MARCO DE REFERENCIA. 19. 1.7.1. Marco Histórico. 19. 1.7.1.1. Codecademy. 19. 1.7.1.2. Programming Hub. 19. 1.7.1.3. Codecombat. 20. 1.7.1.4. Programación fácil. 20. 1.7.3.4. Comparación entre aplicaciones.. 21. 1.7.2. Marco teórico. 22.

(7) 1.7.2.1. Enseñanza. 22. 1.7.2.2. Pedagogía. 22. 1.7.2.3. Modelo pedagógico constructivista. 22. 1.7.2.4. Software.. 23. 1.7.2.5. Lógica De programación. 23. 1.7.2.6. Software educativo. 23. 1.7.2.7. La tecnología en la educación. 24. 1.7.3. Marco conceptual. 25. 1.7.3.1. Aplicación Móvil. 25. 1.7.3.2. Sistemas operativos móviles. 25. 1.7.3.2.1. iOS. 25. 1.7.3.2.2. WindowsPhone. 25. 1.7.3.2.3. UbuntuTouch. 26. 1.7.3.2.4. WebOS. 26. 1.7.3.2.5. BlackBerry OS. 26. 1.7.3.2.6. Android. 27. 1.7.3.3. Java. 28. 1.7.3.4. XML. 29. 1.7.3.5. JDK. 29. 1.7.3.6. Java SDK manager. 29. 1.7.3.7. Android Studio. 30. 1.7.3.8. SQLite. 31. 1.7.3.9. El patrón Modelo Vista Controlador (MVC). 31. 1.7.4. Marco Metodológico 1.8. FACTIBILIDAD. 32 35. 1.8.1. Factibilidad técnica. 35. 1.8.2. Factibilidad legal. 35. 1.8.3. Factibilidad operativa. 36. 1.8.4. Factibilidad económica. 37. 1.9. CRONOGRAMA DE ACTIVIDADES 1.9.1 Fase de inicio. 37 38.

(8) 1.9.2 Fase de elaboración. 41. 1.9.3 Fase de Construcción. 44. 1.9.4 Fase de Transición. 47. 2. MODELADO DEL NEGOCIO. 49. 2.1. IDENTIFICACIÓN Y DEFINICIÓN DE LOS MÓDULOS DEL SISTEMA. 49. 2.2. DIAGRAMA DE PROCESOS. 50. 2.2.1. Subproceso de registro. 50. 2.2.2. Subproceso de Ingreso de sesión. 51. 2.2.3. Subproceso de módulo de Educación. 52. 2.2.4. Subproceso de Seguimiento de Avances. 53. 2.3. MODELO DEL DOMINIO. 54. 2.4. GLOSARIO DE TÉRMINOS. 57. 3. REQUERIMIENTOS. 58. 3.1. DEFINICIÓN DE REQUERIMIENTOS FUNCIONALES. 58. 3.2. DEFINICIÓN DE REQUERIMIENTOS NO FUNCIONALES. 59. 3.3. DEFINICIÓN DE ACTORES. 59. 3.4. LISTA PRELIMINAR DE CASOS DE USO POR ACTOR. 60. 3.5. MODELO DE CASOS DE CASOS DE USO. 61. 3.5.1. CASO DE USO ESTUDIANTE 3.6. DOCUMENTACIÓN DE CASOS DE USO 4. ANÁLISIS. 61 62 67. 4.1. DIAGRAMAS DE SECUENCIA. 67. 4.2. DIAGRAMA DE ACTIVIDAD. 70. 4.3. DIAGRAMA DE ESTADO. 73. 5. DISEÑO. 76. 5.1 LISTA PRELIMINAR DE CLASES. 76. 5.2. DIAGRAMA DE CLASES. 77. 5.3. MODELO DE INTERFAZ. 77. 6. IMPLEMENTACIÓN. 78. 6.1 SISTEMA DE PUNTUACIÓN. 78. 6.1.1 Sistema de puntuación de los ejercicios. 78.

(9) 6.1.2 Sistema de puntuación las evaluaciones. 78. 6.1.3 Puntaje General. 78. 6.2 MODELO PEDAGÓGICO. 79. 6.3. DIAGRAMA DE PAQUETES. 80. 6.4. DIAGRAMA DE DESPLIEGUE. 81. 6.5. DIAGRAMA DE COMPONENTES. 82. 7. PRUEBAS. 84. 7.1. PRUEBAS DE INTEGRACIÓN. 84. 7.2. PRUEBAS DE VALIDACIÓN DE APLICACIÓN. 85. 8. CONCLUSIONES. 96. 9. RECOMENDACIONES. 97.

(10) LISTA DE TABLAS Tabla 1: Comparación entre aplicaciones Tabla 2: Fases de la metodología RUP. Tabla 3: Costo Recursos Técnicos Requeridos. Tabla 4: Costo Operativos Tabla 5: Costo total del proyecto. Tabla 6: Glosario de términos. Tabla 7: Definición de requerimientos funcionales. Tabla 8: Definición de requerimientos no funcionales. Tabla 9: Definición de Actores.. 20 33 34 35 36 47 48 49 49. Tabla 10: Descripción Caso de uso 1: Registro de Datos nuevo usuario. Tabla 11: Descripción Caso de uso 2: Iniciar sesión Tabla 12: Descripción Caso de uso 3: Consultar Datos Estudiante. Tabla 13: Descripción Caso de uso 4: Modificar Datos Estudiante. Tabla 14: Descripción Caso de uso 5: Cerrar sesión. Tabla 15: Lista Preliminar de Clases Tabla 16|: Pruebas de integración. 52 53 54 55 56 66 73.

(11) LISTA DE FIGURAS Pág. Ilustración 1: Cronograma De actividades general. Ilustración 2: Fase de inicio Ilustración 3: Cronograma fase de Elaboración. Ilustración 4: Cronograma Fase de Construcción. Ilustración 5: Cronograma Fase de Transición Ilustración 6: Diagrama de Subproceso de Registro de datos Ilustración 7: Diagrama de Subproceso de inicio de sesión. Ilustración 8: Diagrama de subproceso de Módulo de Educación Ilustración 9: Diagrama de Subproceso de Seguimiento de avances. Ilustración 10: Modelado del Dominio. Ilustración 11: Caso de uso Estudiante. Ilustración 12: Modelado de Secuencia: Registrar Usuario.. 36 37 38 39 40 42 43 44 45 46 51 57. Ilustración 13: Modelado de Secuencia: Iniciar sesión. Ilustración 14: Modelado de Secuencia: Modificar Datos Estudiante. Ilustración 15: Modelado de Secuencia: Realizar Evaluación. Ilustración 16: Modelado de Secuencia: Seleccionar Tema Ejemplo. Ilustración 17: Modelado de Actividad: Registrar Usuario. Ilustración 18: Modelado de Actividad: Iniciar sesión Ilustración 19: Modelado de Actividad: Modificar Datos Estudiante. Ilustración 20: Modelado de Actividad: Realizar Evaluación.. 58 58 59 59 60 61 61 62. Ilustración 21: Modelado de Actividad: Seleccionar Tema Ejemplo. Ilustración 22: Modelado de Estado: Registrar Usuario. Ilustración 23: Modelado de Estado: Iniciar sesión Ilustración 24: Modelado de Estado: Modificar Datos Estudiante. Ilustración 25: Modelado de Estado: Realizar Evaluación. Ilustración 26: Modelado de Estado: Seleccionar Tema Ejemplo. Ilustración 27: Modelo pedagógico Ejercicio Ilustración 28: Modelo pedagógico Evaluación Ilustración 29: Diagrama de paquetes Ilustración 30: Diagrama de despliegue. 62 63 64 64 65 65 69 69 70 71. Ilustración 31: Diagrama de componentes. 72.

(12) RESUMEN El proyecto “Aplicación para dispositivos móviles con sistema operativo Android para el aprendizaje de conceptos básicos de lógica de programación”, es una aplicación enfocada a dispositivos móviles con S.O. Android desarrollada con la principal motivación de ser una herramienta de ayuda para el proceso de aprendizaje de los conceptos básicos de la lógica de programación tales como: variables, constantes, tipos de datos, operadores de datos, estructuras de control, estructuras repetitivas y funciones. Tras el levantamiento de la información, se establecieron los mecanismos para permitir al estudiante visualizar, afianzar y medir sus conocimientos en la lógica de programación de una manera didáctica mediante el modelo educativo constructivista y por medio de cuatro módulos: módulo de usuario, módulo de registro, módulo de enseñanza y módulo de evaluación. Para la realización de este proyecto se utilizó el entorno de desarrollo Android Studio 2.3.3 empleando el lenguaje de programación Java y el metalenguaje de marcas extensibles XML; así mismo, se empleó el motor de base de datos SQLite el cual cumple la función de alojar la información básica del estudiante, los temas o conceptos que se abordan en la aplicación, su progresión en estos temas, las notas de los ejercicios y las evaluaciones realizadas. Palabras Claves: Lógica de programación, Conceptos básicos, Java, Sistema Operativo Android, variables, constantes, tipos de datos, operadores de datos, estructuras de control, estructuras repetitivas..

(13) ABSTRACT The project "Application for mobile devices with Android operating system for learning basic concepts of programming logic" is an application focused on mobile devices with S.O. Android developed with the main motivation to be a tool to help the learning process of the basic concepts of programming logic such as variables, constants, data types, data operators, control structures, repetitive structures and functions. After the information was collected, mechanisms were established to allow students to visualize, consolidate and measure their knowledge in the programming logic in a didactic way through the constructive educational model and the means of four modules: user module, registration module, teaching module and evaluation module. For the realization of this project we used the development environment Android Studio 2.3.3 using the programming language Java and the meta-language of extensible marks XML. Also, the SQLite database engine was used, which fulfills the function of camping in the basic information of the student, the topics concepts that are approached in the device, its progression in these subjects, the notes of the exercises and the Evaluations carried out Keywords: Programming logic, Basic concepts, Java, Android operating system, variables, constants, data types, data operators, control structures, repetitive structures..

(14) INTRODUCCIÓN La enseñanza de los conceptos o fundamentos básicos de la lógica de programación, son un aspecto esencial en la formación de tecnólogos e ingenierías afines al desarrollo de software, dado que estos saberes, representan en sí mismos una de las bases primordiales en las cuales se cimientan las competencias que los estudiantes desarrollaran a lo largo de la carrera. Este proyecto tiene como finalidad el apoyar los procesos de aprendizaje de los conceptos más elementales de la lógica de programación teniendo en cuenta las dificultades que los estudiantes de primeros semestres poseen a la hora de intentar adquirir estos conocimientos, aprovechando diferentes ventajas y facilidades que ofrecen las tecnologías móviles. Las actividades y evaluaciones que se desarrollarán en la aplicación van orientadas a trabajar a lógica y los conocimientos que los estudiantes poseen sobre los temas fundamentales de la lógica de programación tales como: variables y constantes, tipos de datos, operaciones aritméticas, estructuras de control, estructuras de control iterativas y funciones. La aplicación, llamada Nozomu se desarrolló bajo los parámetros o lineamientos de la arquitectura Modelo Vista Controlador (MVC), la metodología Proceso Unificado Racional (RUP), así como la estructura de Bases Datos Relacionales (BDR). La arquitectura Modelo Vista Controlador (MVC) permite identificar, organizar y diferenciar cada una de las partes más importantes de los componentes de un software, como lo son la parte gráfica o visual de esta, la parte de almacenamiento y tratamiento de los datos; y por último la programación de esta. Por otro lado, la metodología RUP también conocida como Proceso Unificado Racional proporciona diferentes técnicas o maneras de analizar y describir cómo aplicar enfoques para el desarrollo del software, esta es una metodología provee un enfoque disciplinado para la asignación de tareas y responsabilidades. Su principal objetivo es asegurar la producción de software de alta calidad que satisfaga las necesidades de sus usuarios finales dentro de un presupuesto y tiempo predecibles. Por último, estructura de Bases Datos Relacionales (BDR) facilita el almacenamiento de los datos de los usuarios y su avance a través de las lecciones a través de tablas las cuales se entrelazan entre sí mediante relaciones o llaves foráneas y principales..

(15) 1. PLANEACIÓN 1.1. TÍTULO Aplicación para dispositivos móviles con sistema operativo Android para el aprendizaje de conceptos básicos de lógica de programación. 1.2. TEMA Proyecto tecnológico enfocado a la enseñanza virtual de los conceptos básicos de la lógica de programación, con un desarrollo enfocado a dispositivos móviles y conectado a una base de datos. 1.3. PLANTEAMIENTO DEL PROBLEMA 1.3.1. Descripción La programación es el proceso a través del cual un programa o aplicación informática es desarrollada. Se conoce como programación en ciencias de la computación, a los pasos que se abordan para crear el código fuente de un programa informático. De acuerdo con estos pasos, el código se escribe, se prueba y se perfecciona. En el contexto actual existen infinidad de opciones en línea y aplicaciones móviles, sitios web como CodeAcademy, ProgrammingHub y aprenderaprogramar.com entre otros; Que dan a conocer la sintaxis de diferentes lenguajes de programación por medio de videos y guías paso a paso, así mismo también hay canales en YouTube como Codigofacilito, AulaClic que brindan video tutoriales para el conocimiento de uso herramientas y entornos de desarrollo. Más, aun así, la mayoría de aplicaciones o páginas flaquean al momento de enseñar uno de los aspectos más importantes de la programación como lo es la lógica de programación, debido a que la programación es más que solo sintaxis de un lenguaje en específico, o entornos de desarrollo, consiste en generar una gran cantidad de habilidades en los estudiantes entre ellas: el entender un problema (analizar, abstraer, modelar), plantear soluciones efectivas (reflexionar sobre una abstracción, definir estrategias, seguir un proceso, aplicar una metodología, descomponer en subproblemas)1. Por esto mismo existe evidencia que sugiere que aprender a programar no es una tarea fácil, por ejemplo, con base en los datos suministrados por la coordinación del proyecto 1 Villalobos Salcedo J. A. (2015). Una Solución Integral Al Problema De Enseñar Y Aprender A Programar. Recuperado el 28. de noviembre de 2016, de Colombia Aprende. http://www.colombiaaprende.edu.co/html/mediateca/1607/articles-205832_recurso_1.pdf.

(16) curricular de Sistematización de Datos de la Universidad Distrital Francisco José de Caldas se evidencia que en los últimos tres años entre un 44% y un 65% de los estudiantes de primeros semestres reprobaron la materia introducción a algoritmos, la cual representa el primer contacto que estos poseen con la programación. De lo anterior se puede inferir que existe la necesidad de crear aplicativos basados en tipo de algún enfoque pedagógico que utilicen las ventajas de los dispositivos móviles, para así desarrollar la lógica necesaria en los estudiantes que los llevará a resolver problemas y avanzar en el aprendizaje de la programación. 1.3.2. Formulación del problema ¿Puede una aplicación móvil sobre plataforma Android afianzar, adiestrar y evaluar los conocimientos básicos de la lógica de programación con el fin de familiarizar a las personas interesadas en programar, en los conceptos básicos de la lógica de programación? 1.4. ALCANCES Y LIMITACIONES 1.4.1. Alcances Se desarrollará una aplicación de tipo educativo, que apoye a los estudiantes en sus respectivos procesos de aprendizaje, en el área de la lógica de programación. La aplicación Nozomu estará compuesta de cinco módulos definidos de la siguiente manera: Módulo de registro ● Registro de información del usuario como nombres, apellidos, teléfono, correo electrónico y nickname. ● Creación de la instancia del usuario. ● Guardado de los datos del usuario en una base de datos. Módulo de usuario ● Ingreso del usuario ● Guardar, editar y consultar información del usuario. ● Consultar el progreso del usuario. ● Acceder al resto de módulos Módulo de Educación ● Presentación de los conceptos y lineamientos básicos de la lógica de programación. ● Seguimiento de los temas que el usuario está aprendiendo..

(17) ● Desbloquear evaluaciones en el módulo de puntaje. Módulo de Puntaje Este módulo permite: ● Realizar pruebas a los usuarios mediante ejercicios prácticos de diagramación cuya dificultad irá en aumento a medida que vaya avanzando en las diferentes temáticas. ● Se asigna un puntaje valorativo al usuario según sus aciertos en las pruebas. 1.4.2. Limitaciones Para el desarrollo del proyecto se tendrán en cuenta limitaciones de varias índoles o características tales como: las temáticas, las técnicas, las geográficas y, por último, la temporal. 1.4.2.1. Geográfica ● Las pruebas de la aplicación se realizarán en los estudiantes que se encuentren cursando la carrera de Tecnología en Sistematización de datos en la facultad tecnológica. ● El desarrollo del proyecto se realizará en la Universidad Distrital Francisco José de Caldas, con apoyo del semillero de desarrollo de software libre GEHRIN. 1.4.2.2. Técnica ● Los dispositivos móviles sobre los cuales se ejecute la aplicación deben soportar la tecnología Android en las versiones mayores o iguales a la 4.1 correspondiente a “Jellybean” hasta la versión 7.1 correspondiente a “Nougat”. ● Los dispositivos móviles que soportan la aplicación no podrán tener una pantalla inferior a 3.7”, aunque la aplicación podrá ser visualizada en dispositivos con una pantalla de mayor o igual dimensión a las 3,7” 5.1” y 10.1”. 1.4.2.3. Temático Para el desarrollo de este proyecto fue necesario determinar qué temas son requeridos para comprender la lógica de programación, especialmente en la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas. Los temas que se van a presentar son: variables y constantes, tipos de datos, operadores de datos, estructuras de control (estructura if-else, switch), estructuras repetitivas (while, for, do while). 1.4.2.4. Temporal El proyecto tiene una estimación de tiempo de desarrollo de siete meses a partir.

(18) del 12 de diciembre del 2016 hasta el 13 de junio 2017. 1.5. OBJETIVOS 1.5.1. Objetivo general Desarrollar una aplicación enfocada a dispositivos móviles con S.O. Android, que permita presentar y ejercitar los conceptos básicos de la lógica de programación. 1.5.2. Objetivo Específicos ● Desarrollar un módulo que enseñe al usuario los conceptos y lineamientos básicos de la lógica de programación. ●Diseñar un sistema de calificación en la aplicación de tal manera que ubique al usuario en un respectivo nivel según su aprendizaje. ●Implementar un sistema que asigne ejercicios prácticos dependiendo del nivel de cada usuario. ●Desarrollar un módulo que permita la recolección de información del progreso del usuario a medida que avanza en las temáticas de la aplicación. ●Implementar un modelo pedagógico en la aplicación. 1.6. JUSTIFICACIÓN En el contexto actual, donde el uso y la masificación de las nuevas tecnologías, como lo son el internet o los dispositivos móviles inteligentes, se han vuelto tan importante, no es de extrañar que la tecnología se encuentre en prácticamente todos los ámbitos de nuestra vida, ya sean estos sociales, culturales, económicos e incluso educativos. Debido a las facilidades y flexibilidades que estas nuevas tecnologías nos ofrecen, poco a poco, se van convirtiendo en una de las opciones más factibles o viables a la hora de embarcarse en el aprendizaje de cualquier tema en el que estemos interesados. Teniendo en cuenta lo anteriormente mencionado y a su vez conociendo que una de las principales dificultades que enfrentan los estudiantes que empiezan a adentrarse en el desarrollo del software radica en el hecho de que gran parte del material que se encuentra en las aplicaciones o páginas web se especializan únicamente en enseñar la sintaxis de un lenguaje en específico, pero no en la enseñanza de la lógica, nace la idea de desarrollar la aplicación Nozomu, la cual, se desarrolla específicamente para dispositivos móviles con sistema operativo Android, permitiendo que los estudiantes por medio de teoría, ejemplos, ejercicios y evaluaciones conozcan, fortalezcan y refuercen sus conocimientos en los fundamentos de la lógica de programación, fundamental para el aprendizaje de cualquier lenguaje de programación o el desarrollo de cualquier aplicación. A su vez esta aplicación al ser desarrollada bajo el formato de software libre presenta grandes ventajas, tales como: Ventajas económicas ya que al ser libre no se requiere pagar por.

(19) licencias, código abierto el cual puede ser modificado o mejorado según las necesidades de los usuarios, libre albedrío para su distribución y divulgación, entre otras. 1.7. MARCO DE REFERENCIA 1.7.1. Marco Histórico En la actualidad las aplicaciones relacionadas a la enseñanza de programación en dispositivos móviles se encuentran mal direccionadas o dirigidas debido a que simplemente se limitan a mostrar texto plano en el que se “enseña” a los usuarios sintaxis de un lenguaje en específico. La mayoría de estas aplicaciones se especializan en un lenguaje de programación y aparte de ello no se molestan verdaderamente por que los usuarios aprendan algo en verdad, ya que no utilizan ningún modelo pedagógico de enseñanza, o utilizan alguno que no funciona en el aprendizaje de la lógica de programación. 1.7.1.1. Codecademy Codecademy es una plataforma de educación gratuita en línea que ofrece cursos de programación en lenguajes como JavaScript, PHP, Python y Ruby; y de lenguajes de marcado como HTML y CSS. Su popularidad se ha multiplicado a partir de su fundación en 2011 y se ha mantenido. Más de 24 millones de personas han tomado sus cursos y hoy en día sigue siendo de las mejores opciones para aquellos que quieren aprender a programar por su cuenta. Para motivar a los usuarios a participar, el sitio cuenta con un sistema de gamificación por el que ofrece insignias o medallas al completar ejercicios, cuenta con foros de discusión y un glosario por curso; así mismo, mantiene un registro de la puntuación total del usuario y la muestra a los demás usuarios. El sitio también permite que cualquier persona pueda crear y publicar un nuevo curso usando la herramienta de creación de cursos.2 1.7.1.2. Programming Hub Programming Hub es una aplicación que nos permite disponer rápidamente de manuales de programación para más de una docena de lenguajes: Python, Assembly, HTML, VB.NET, C, C++, C# (C Sharp), JavaScript, PHP, Ruby, CSS, Java, entre otros. Aquellos usuarios que cuenten con unos conocimientos mínimos de programación sí que encontrarán en Programming Hub un gran aliado. La interfaz de la app es muy intuitiva, y nos permitirá descargar nuevos temas fácilmente, así como filtrar las lecciones que más nos interesen dentro de cada lenguaje de programación. 2. ¿Qué es Codecademy? (2014) Recuperado el 16 de febrero de 2017 de Universidad tecnologica de bolivar: http://www.unitecnologica.edu.co/educacionadistancia/newletter/2014/boletin005/noti_apliaciones/004codecademy/index.html.

(20) También podremos copiar texto fácilmente, así como compartir temas enteros con otros usuarios. Programming Hub es una muy buena aplicación para estudiantes de programación. Su escaso peso (ocupa menos de 10 Mb) y su interfaz elegante la convierten en una de las mejores apps de su tipo para Android. Forma más rápida para aprender cualquier lenguaje de programación consultando programas Ready-Made y la teoría creada por expertos de la programación. Practique sus habilidades de codificación ejecutando el código en la función de patio.3 1.7.1.3. Codecombat CodeCombat es un juego para aprender a programar que cumple y muy bien con las expectativas. Nos pondremos a los mandos de un personaje medieval que debería ir avanzando por los diferentes niveles del juego, solucionando los problemas planteados. Es multijugador, completamente gratuito y, de nuevo, también está adaptado a su uso en el aula (permite crear clases). Aunque puede utilizarse para novatos en la programación está más orientado a secundaria y bachillerato, pues con él aprenderemos lenguajes avanzados como Python, Lua, JavaScript u otros que pueden resultar interesantes en edades avanzadas o incluso universidad. 4 1.7.1.4. Programación fácil Esta aplicación contiene cuatro cursos C++, Java, Python, Ruby actualmente solo se encuentra disponible el curso de C++, pero en la próxima actualización incluirá el curso de Java en la siguiente el de Python y en la última el de Ruby. 5. 3Programming. Hub (2014) Recuperado el 25 de febrero de 2017 de UpToDown: https://programming-hub.uptodown.com/android 4Apps y juegos para aprender a programar (2016) Recuperado el 17 de febrero de 2017 de educación 3.0: http://www.educaciontrespuntocero.com/recursos/apps-de-juegos-para-aprender-a-programar/30909.html 5 Programación Fácil (s.f.) Recuperado el 18 de febrero de 2017 de Google Play: https://play.google.com/store/apps/details?id=com.belzasar.programacionfacil&hl=es.

(21) 1.7.3.4. Comparación entre aplicaciones.. Tabla 1: Comparación entre aplicaciones. Codecadem y. Programming Hub. Programación fácil. Codecom bat. Nozomu. Presentación de Conceptos básicos de la lógica de programación.. ✔. ✔. ✔. ✔. ✔. Mostrar ejemplos de los temas presentados.. x. ✔. ✔. ✔. ✔. Asignar ejercicios prácticos dependiendo del tema visto por el usuario.. ✔. x. X. ✔. ✔. Evaluar al usuario los conocimientos presentados.. x. x. X. x. ✔. Clasificar al usuario según su nivel.. x. ✔. X. x. ✔. ✔. x. X. x. ✔. ✔. ✔. ✔. x. ✔. Aumentar la dificultad de los ejercicios y evaluaciones a medida que se progresado. Almacenar y mostrar el historial o progreso que el estudiante ha tenido.. Fuente: Autores..

(22) 1.7.2. Marco teórico 1.7.2.1. Enseñanza La enseñanza es la actividad humana intencional que aplica el currículo y tiene por objeto el acto didáctico. Consta de la ejecución de estrategias preparadas para la consecución de las metas planificadas, pero se cuenta con un grado de indeterminación muy importante puesto que intervienen intenciones, aspiraciones, creencias… elementos culturales y contextuales, en definitiva. Esta actividad se basa en la influencia de unas personas sobre otras. Enseñar es hacer que el alumno aprenda, es dirigir el proceso de aprendizaje.6 1.7.2.2. Pedagogía Con referencia a la educación: la analiza y valora, estudia su función, importancia y necesidad; en fin, se ocupa de la cuestión educativa. Durkheim señala que la educación es la materia objeto de la pedagogía. Es constante, mientras que la pedagogía no ha existido en todos los pueblos ni en todos los tiempos; el carácter intermitente de la pedagogía depende de la necesidad y posibilidades de reflexionar sobre la educación, referida a las prácticas y problemas que conforman el fenómeno educativo; además, es una disciplina con autonomía, identidad e intereses propios, que la impulsan en la dirección señalada por los elementos y formas de operar que la constituyen como un campo del saber y la practica especifica. 7 1.7.2.3. Modelo pedagógico constructivista El aprendizaje se logra, con la presencia de un estímulo ambiental específico. Los elementos claves son, el estímulo, la respuesta, y la asociación entre ambos. Así mismo, la memoria, no es tomada en cuenta, aunque se discute la adquisición de "hábitos", se le da muy poca atención a cómo esos hábitos se almacenan o se recuperan para uso futuro. El olvido se atribuye a la "falta de uso" de una respuesta al pasar el tiempo. El uso de la práctica periódica o la revisión sirve para mantener al estudiante listo para responder. Sin embargo, generalmente se acepta que los principios conductuales no pueden explicar adecuadamente la adquisición de habilidades de alto nivel o de aquellas que requieren mayor profundidad de procesamiento (por ejemplo: desarrollo del lenguaje, solución de problemas, generación de inferencias, pensamiento crítico).8. 6 Márquez. Y. (2010) Objetivos, elementos. dimensiones y niveles de la Didáctica. Recuperado el 22 de junio de 2017. dedidacticaunefa: http://didacticaunefa.blogspot.com.co/2010/05/objetivos-elementos-dimensiones-y.html 7Prendes M. Amorós L. (2015) Accesibilidad en aplicaciones informáticas. congreso en Santiago de Compostela. Recuperado el 23 de junio de 2017 de Universidad Americana de Morelos: https://prezi.com/c9n37vedgleo/educacion/ 8 Peggy A. Ertmer Y Timothy J. Newby. (2013). Conductismo, cognitivismo y constructivismo: una comparación de los aspectos críticos desde la perspectiva del diseño de instrucción. Recuperado el 23 de junio de 2017, Universidad Galileo: http://www.galileo.edu/faced/files/2011/05/1.-ConductismoCognositivismo-y-Constructivismo.pdf.

(23) 1.7.2.4. Software. Según Oxford University Press, el término software o programa se aplica a aquellos componentes de un sistema informático que no son tangibles, es decir, que físicamente no se pueden tocar. Para Freedman (1984) el programa es sencillamente el conjunto de instrucciones que contiene la computadora, ya sean instrucciones para poner en funcionamiento el propio sistema informático (software de sistema) o instrucciones concretas dirigidas a programas particulares del usuario (software específico). En otras palabras, según Sánchez Montoya (1995: 54) el programa supone un “conjunto de [...] pasos que indican a la máquina (hardware) aquello que debe hacer9. 1.7.2.5. Lógica De programación La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación con restricciones, programas DSL (de dominio específico) e híbridos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La programación lógica gira en torno al concepto de predicado, o relación entre elementos. Lógica es la técnica utilizada para desarrollar instrucciones en una secuencia para lograr determinado objetivo. Es la organización y planificación de instrucciones en un algoritmo, con el objetivo de tornar viable la implementación de un programa o software. La lógica de la programación es la organización coherente de las instrucciones del programa para que su objetivo sea alcanzado.10 1.7.2.6. Software educativo El término de software educativo (SE) se define de forma genérica como aplicaciones o programas computacionales que faciliten el proceso de enseñanza aprendizaje. Las expresiones software educativo, programas educativos y programas didácticos como sinónimos para designar genéricamente los programas para ordenador creados con la finalidad específica de ser utilizados como medio didáctico, es decir, para facilitar los procesos de enseñanza y de aprendizaje. Esta definición engloba todos los programas que han estado elaborados con fin didáctico, desde los tradicionales programas basados en los modelos conductistas de la enseñanza, los programas de Enseñanza Asistida por Ordenador (EAO), hasta los aun programas experimentales de Enseñanza Inteligente Asistida por Ordenador (EIAO), los cuales usan técnicas propias del campo de los Sistemas Expertos y de 9Prendes Espinosa M. P. Amorós Poveda L. (2013). Accesibilidad en aplicaciones informáticas. Recuperado el 23 de Junio. de 2017, de Grupo de Tecnología Educativa: http://tecnologiaedu.us.es/cuestionario/bibliovir/paz10.pdf 10Lógica de programación: el primer paso para aprender a programar. (2017). Recuperado el 24 de Junio de 2017, de Hostgator: https://blog.hostgator.mx/logica-de-programacion-primer-paso/.

(24) la Inteligencia Artificial en general, pretenden imitar la labora tutorial personalizada que realizan los profesores y presentan modelos de representación del conocimiento en consonancia con los procesos cognitivos que desarrollan los alumnos.11 1.7.2.7. La tecnología en la educación Martínez (1996), identifica por nuevas tecnologías “a todos aquellos medios de comunicación y tratamiento de la información que van surgiendo de la unión de los avances propiciados por el desarrollo de la tecnología electrónica y las herramientas conceptuales, tanto conocidas, como aquellas otras que vayan siendo desarrolladas como consecuencia de la utilización de estas mismas nuevas tecnologías y de avance del conocimiento humano”. El ordenador puede iniciar un cambio profundo en los procesos de aprendizaje si se superan las resistencias iniciales (Papert, 1995). Para avanzar en esta dirección, Escudero (1992) destaca los siguientes aspectos relativos al uso de las nuevas tecnologías en entornos educativos: el uso pedagógico, los profesores como sujetos activos para entender su práctica, el fácil acceso al uso de nuevos medios. Collins (1998), establece cinco usos diferentes de la tecnología informática dentro de las aulas: • Herramientas para llevar a cabo diversas tareas. • Sistemas integrados de aprendizaje. • Simuladores y juegos. • Redes de comunicación entre alumnos y profesores. • Entornos de aprendizaje interactivos. Entre las tecnologías que tenemos en la educación están el E-LEARNING, que consiste en un curso o plan formativo en un entorno virtual en el cual tiene lugar la interacción profesor-alumnos, también está el M-LEARNING que es e-Learning a través de dispositivos computacionales móviles, (PDA, Máquinas y teléfonos). El mlearning es la intersección de la computación móvil y e-Learning, se puede acceder a recursos de aprendizaje desde cualquier lugar, en cualquier momento, con capacidad de búsqueda, interacción, alto soporte y valoración de desempeño.12. 11Vidal Ledo M. Gómez Martínez F. (2010) Software educativos Recuperado el 30 de Junio de 2017, de Scielo:. http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S0864-21412010000100012 12Mayo. Cantón I.Baelo Álvarez R. Las tecnologías de la información y la comunicación en la educación superior. Recuperado el 30 de Junio de 2017, de Repositorio Revista Iberoamérica: http://rieoei.org/deloslectores/3034Baelo.pdf.

(25) 1.7.3. Marco conceptual 1.7.3.1. Aplicación Móvil Una aplicación móvil (también llamada APP) es simplemente un programa informático creado para llevar a cabo o facilitar una tarea en un dispositivo informático. Cabe destacar que, aunque todas las aplicaciones son programas, no todos los programas son aplicaciones. Existe multitud de software en el mercado, pero sólo se denomina así a aquel que ha sido creado con un fin determinado, para realizar tareas concretas. No se consideraría una aplicación, por ejemplo, un sistema operativo, ni una suite, pues su propósito es general. Las aplicaciones nacen de alguna necesidad concreta de los usuarios, y se usan para facilitar o permitir la ejecución de ciertas tareas en las que un analista o un programador han detectado una cierta necesidad. Pero las aplicaciones también pueden responder a necesidades lúdicas, además de laborales (todos los juegos, por ejemplo, son considerados aplicaciones). Se suele decir que para cada problema hay una solución, y en informática, para cada problema hay una aplicación.13 1.7.3.2. Sistemas operativos móviles 1.7.3.2.1. iOS. Es el sistema operativo diseñado por Apple para sus productos, iPhone, iPad, iPod Touch, y Apple TV, otros dispositivos como el iPod Nano y el iWatch utilizan otro sistema más básico y dirigido a una función más específica basado en iOS porque incorpora algunos de sus gestos e iconos y además se pueden sincronizar con teléfonos o Tablet. Presentado en 2007 junto con el primer teléfono de la compañía dedicada en sus inicios a revolucionar el mundo de los ordenadores de mesa y portátiles, el iOS marcó una pauta sin precedentes al llegar al mercado con un sistema que no necesitaba más teclas físicas que las del volumen, encendido, bloqueo y un solitario botón llamado “Home” que permitiera al usuario a volver al inicio en su pantalla, casi todo el sistema fue y sigue siendo usado con la pantalla táctil que incorporan sus dispositivos. 14 1.7.3.2.2. WindowsPhone. Windows Phone es un sistema operativo móvil desarrollado por la empresa Microsoft para teléfonos inteligentes y otros dispositivos móviles. Fue lanzado al mercado el 21 de octubre de 2010 en Europa y el 8 de noviembre en Estados Unidos, con la finalidad de suplantar el conocido Windows Mobile.. 13Definición. de Aplicación (s.f.). Recuperado el 7 de Junio de 2017 de mastermagazine: https://www.mastermagazine.info/termino/3874.php 14Definición de iOS (2014). Recuperado el 5 de Junio de 2017 de concepto definición: http://conceptodefinicion.de/ios/.

(26) Microsoft decidió realizar un cambio completo en este nuevo sistema operativo con respecto al otro, no solo se cambió el nombre, sino que se desarrolló desde cero, presentando una interfaz completamente nueva, mejor comportamiento y un mayor control sobre las plataformas de hardware que lo ejecutan, todo con el propósito de volver a ser competitivo en el mundo de los móviles. La primera generación de Windows Phone es Windows Phone 7 Series conocido también como Windows Phone 7, dicho número fue tomado debido a que su antecesor en el mercado era Windows Mobile 6.5. Cabe señalar que el Windows Phone presenta incompatibilidad con los Windows Mobile anteriores, los usuarios no serán capaces de actualizar el Windows en su teléfono y por ende deberán comprar uno nuevo con el reciente sistema operativo.15 1.7.3.2.3. UbuntuTouch. SO basado en Linux bajo la famosa firma Ubuntu. Presentado en el 2013 y con su última versión Ubuntu Touch, utiliza la misma base de código para todos los dispositivos, desde equipos de escritorio, servidores y nubes, a los teléfonos y factores de forma más pequeños con la llegada de Snappy, un sabor de Ubuntu dedicada a "cosas de Internet", como su refrigerador conectado o drone autónoma. 16 1.7.3.2.4. WebOS. WebOS es el sistema operativo presente en los últimos televisores de la coreana LG. Su particularidad es que ofrece una experiencia de usuario similar a la de un dispositivo móvil. La interfaz se ha cuidado al máximo para que resulte agradable, con transparencias, colores brillantes, transiciones e íconos. Se trata de un estilo artístico que rememora a los cómics. Este se encuentra basado en Linux y propiedad de LG que lo utiliza como sistema operativo para sus televisores inteligentes. Una nueva forma de controlar tu televisor LG con Smart TV.17 1.7.3.2.5. BlackBerry OS. Es un sistema operativo incluido en la gama de teléfonos móviles de la compañía canadiense Research In Motion (RIM) y que viene incorporado en los móviles fabricados por la empresa, que también llevan el apelativo BlackBerry, seguido. 15Definition. de Windows Phone (2015). Recuperado el 7 de Junio de 2017 de concepto definición: http://conceptodefinicion.de/windows-phone/ 16 Amate C. (2014) Conoce (bien) los principales sistemas operativos móviles. Recuperado el 2 Junio de 2017 de el blogthinkbig:http://blogthinkbig.com/sistemas-operativos-moviles/ 17Una mirada a WebOS, el nuevo sistema operativo de los TV LG (2014). Recuperado el 1 Junio de 2017 de el Tiempo:http://www.eltiempo.com/archivo/documento/CMS-14319418.

(27) por el modelo correspondiente. Esta familia de teléfonos móviles, pertenecientes a la gama de los Smartphones, son los preferidos por los profesionales que quieren, ante todo, la seguridad de sus correos electrónicos, así como la privacidad y salvaguarda de sus datos privados, aunque en los últimos años han ganado lugar entre el público masivo, dada la incorporación de herramientas de entretenimiento exclusivas. 18 1.7.3.2.6. Android. El sistema operativo de Google y el número uno en cuanto a popularidad. En el año 2003, Andy Rubin, Rich Miner, Nick Sears and Chris White daban forma a Android Inc. En sus inicios, se centraba en “el desarrollo de software para teléfonos móviles “. En agosto de 2007 Android Inc. fue por contactada por Google, dando éxito a Android es el 5 de noviembre de 2007. Ese día se fundaba la OHA (Open Handset Alliance), una alianza comercial de 35 componentes iniciales liderada por Google, que contaba con fabricantes de terminales móviles, operadores de telecomunicaciones, fabricantes de chips y desarrolladores de software Con una cuota de mercado cercana al 85% el sistema operativo de Google se caracteriza por ser abierto y disponible para cualquier fabricante interesado en utilizarlo para sus innumerables dispositivos de miles de formas y funcionalidades con todas las versiones de Android existentes. Además, la posibilidad de que cada fabricante incluya su propia capa sobre el original propicia que la experiencia de usuario no sea siempre la deseada por Google. Cada vez más, los desarrolladores dedican grandes esfuerzos a diseñar sus apps para los usuarios de Android. Android es el sistema operativo de más de mil millones de teléfonos inteligentes y tabletas.19 Entre las versiones que podemos encontrar en la página web oficial www.android.com están desde las más antiguas a las más actuales, entre las menos utilizadas están las siguientes: ● Android 1.0. Donut: Con innovación en la navegación y la multimedia. ● Android 2.0. Eclair: Permitía organizar aplicaciones y widgets a través de múltiples pantallas y en las carpetas además de fondos de pantalla en vivo. ● Android 2.2.Froyo: Typing, Voz que le permite introducir texto, y acciones de voz le permite controlar el teléfono, todo esto únicamente con el reconocimiento 18Blackberry. OS; sistema operativo móvil de RIM (2013). Recuperado el 7 Junio de 2017 de el culturacion:http://culturacion.com/blackberry-sistema-operativo-movil-de-rim/ 19Contreras L. (2012) introducción – ¿qué es Android?Recuperado el 8 de Junio de 2017 de blog historia de la informática:http://histinf.blogs.upv.es/2012/12/14/android/.

(28) de la voz. ● Android 3.0, Honeycomb: Optimizado para las tablets, esta versión abre nuevos horizontes donde quiera que estés. ● Android 4.0, Ice Cream Sandwich: Android vienen de edad con un nuevo diseño, refinado. Simple, hermoso y más allá inteligente. ● Android 5.0 Lollipop: Los cambios más prominentes en Lollipop incluye una interfaz de usuario rediseñada construida sobre un diseño de lenguaje responsivo denominado como "Material design", así como mejoras en el sistema de notificaciones que permiten que este sea accedido desde la pantalla de bloqueo, entre otros. ● Android 6.0 Marshmallow: Android Marshmallow ofrece soporte nativo para el reconocimiento de huellas digitales, lo que permite el uso de las mismas para desbloquear los dispositivos, y para la autenticación de Play Store o Android Pay. ● Android 7.0 Nougat: Presentado durante el evento Google I/O en mayo del 2016, Nougat se resume como una actualización de las novedades antes mencionadas en Marshmallow, la anterior versión de Android, siendo que sus principales características podemos resumirlas en los puntos siguientes: Multiventana, realidad virtual, Doze, Google Play. ● Android 8.0 O: El nombre en código de la siguiente versión de Android es Android “O” (O de Oreo, no Cero “0”) y fue anunciado por Google el pasado 21 de marzo del 2017 siendo que su primera versión “Alfa” fue publicada para dispositivos Google Pixel y Nexus el 22 de marzo del 2017. 20 1.7.3.3. Java Java es un lenguaje de programación que lleva entre nosotros más de 18 años, pero sigue siendo, en cierto modo, desconocido. Hace unos años, mencionar el nombre Java te recordaba a applets y aplicaciones Java multiplataforma. Hoy en día el nombre es quizá más reconocido gracias a las aplicaciones y juegos Java para teléfonos o los continuos problemas de seguridad que afectaron a la plataforma. Java es un lenguaje de programación creado en 1995 para el entorno de computación de mismo nombre por Sun Microsystems. Su nombre, se comenta, vendría de Java Coffee, una cafetería que regentaban con frecuencia los programadores y que, además, explicaría el logotipo de la humeante taza de café.. 20Castillo. A. (2015) la historia de Android: todas sus versiones.Recuperado el 6 de Junio de 2017 de artículos poderpda:http://www.poderpda.com/editorial/la-historia-de-android-todas-sus-versiones/.

(29) Su filosofía WORA (Write Once, Run Anywhere) permite a los desarrolladores portar sus aplicaciones a distintos sistemas sin apenas -o ningún- esfuerzo, aunque la gran variedad de dispositivos en los que se puede ejecutar Java lleva la segmentación entre applets Java, aplicaciones de escritorio, aplicaciones empresariales y aplicaciones para teléfonos móviles. En 2010, Oracle compró Sun Microsystems, convirtiéndose en el nuevo “dueño” de Java.21 1.7.3.4. XML XML es un metalenguaje de definición de documentos, estructurado mediante etiquetas o marcas. Su nombre viene de las palabras inglesas eXtensible Markup Language (Lenguaje de marcado ampliable o extensible). Fue desarrollado por la World Wide Web Consortium (W3C), con el objetivo de lograr páginas web mucho más semánticas, separando la estructura del contenido web y ofreciéndole al desarrollador la capacidad de crear vocabularios modulares personalizados. Se diferencia del tradicional HTML, en la capacidad que tiene de definir las etiquetas en función del tipo de dato con el que se está trabajando. Otra de las características de XML es que, al igual que HTML, trabaja con texto plano y se deriva de SGML. XML cuenta con una sintaxis y una estructura mucho más rígida que el HTML, lo cual lo hace mucho más complejo, pero a su vez, permite crear documentos mucho más estables, que cumplen a cabalidad con la normativa internacional.22 1.7.3.5. JDK Se trata de un conjunto de herramientas (programas y librerías) que permiten desarrollar (compilar, ejecutar, generar documentación, etc.) programas en lenguaje Java. Existen versiones del JDK para prácticamente todos los Sistemas Operativos y existen también distintos programas comerciales. Sun distribuye gratuitamente el JDK “oficial” para los siguientes sistemas operativos: Windows 95/98/NT, Solaris y Linux. Los JDK incorporan una herramienta de Debugger (detener la ejecución de un programa en la línea que se desee y poder conocer el valor de las variables en ese momento).23 1.7.3.6. Java SDK manager Se trata de un conjunto de herramientas dispuestas para crear programas y 21. Ramírez P. (2013) ¿Qué es Java? Recuperado el 5 de Junio de 2017 de artículos softonic: https://articulos.softonic.com/que-es-java 22Guerra L. R. (2016). Qué es XML.Recuperado el 28 de Mayo de 2017 de culturación: http://culturacion.com/que-es-xml/ 23López C. M. (s.f.). Qué es el JDK (Java Development Kit).Recuperado el 24 de Mayo de 2017 de la Universidad de Navarra: http://www.esi.unav.es/Asignaturas/Informat2/Clases/Clases9899/Clase01/JavaEntorno/tsld003.htm.

(30) aplicaciones. Una instancia en la cual los desarrolladores se convierten en colaboradores de las versiones beta. Primera aproximación: SDK responde a la denominación “Software Development Kit”, o “Paquete de Desarrollo de Software”. ¿De qué se trata? Pues SDK es un maletín virtual integrado con todo lo necesario para que los entendidos (y no tanto) se dispongan a trabajar y a crear. ¿El objetivo? Dar a conocer la marca y dar rienda suelta a la imaginación de los desarrolladores. Estos conjuntos llamados SDK se han convertido una modalidad muy utilizada por las empresas dado que de esa forma pueden exponer sus productos de forma transparente e integralmente. Los kits suelen incorporar además de herramientas de producción, soporte para que sea más fácil encontrar errores y depurarlos, además de un contacto directo con la compañía para consultas. Generalmente son gratuitos y se distribuyen vía Web, por eso se convierten en una tentación más dentro de la red para los ávidos buscadores de aventuras en bytes. Los desarrolladores se convierten en colaboradores y hasta en consumidores de los equipos de prueba. Es válido mencionar que no siempre es necesario contar con profundos conocimientos en programación informática, pues en ocasiones los aficionados pueden encontrarse con kits totalmente intuitivos, por tanto, muy fáciles de comprender.24 1.7.3.7. Android Studio Android Studio es un entorno de desarrollo integrado (IDE), basado en IntelliJ IDEA de la compañía JetBrains, que proporciona varias mejoras con respecto al plugin ADT (Android Developer Tools) para Eclipse. Android Studio utiliza una licencia de software libre Apache 2.0, está programado en Java y es multiplataforma. Fue presentado por Google el 16 de mayo del 2013 en el congreso de desarrolladores Google I/O, con el objetivo de crear un entorno dedicado en exclusiva a la programación de aplicaciones para dispositivos Android, proporcionando a Google un mayor control sobre el proceso de producción. Se trata pues de una alternativa real a Eclipse, el IDE recomendado por Google hasta la fecha, pero que presentaba problemas debido a su lentitud en el desarrollo de versiones que solucionaran las carencias actuales (es indispensable recordar que Eclipse es una plataforma de desarrollo, diseñada para ser extendida a través de plugin). Android Studio se ha mantenido durante todo este tiempo en versión beta, pero desde el 8 de diciembre de 2014, en que se liberó la versión estable de Android. 24Jiménez.. A. (2016). SDK: ¿Qué es y para qué sirve?Recuperado el 3 de Junio 2017 de Tendenciasmag: http://www.tendenciasmag.com/sdk-que-es-y-para-que-sirve/.

(31) Studio 1.0, Google ha pasado a recomendarlo como el IDE para desarrollar aplicaciones para su sistema operativo, dejando el plugin ADT para Eclipse de estar en desarrollo activo. Esta versión la puedes descargar desde la web de Android Developer.25 1.7.3.8. SQLite SQLite es una librería escrita en C que implementa un motor de base de datos para SQL empotrable. Por lo tanto, SQLite es una librería escrita en lenguaje C que implementa un manejador de base de datos SQL embebido. Los programas que se enlacen con la librería SQLite pueden tener acceso a una base de datos SQL, sin tener que ejecutar un programa de RDBMS separado. SQLite es Software Libre por lo tanto el código fuente es del dominio público licencia GPL. Además, se puede entender como bases de datos empotradas aquellas que no inician un servicio en nuestra máquina independiente de la aplicación, pudiéndose enlazar directamente a nuestro código fuente o bien utilizarse en forma de librería (include)". Sus desarrolladores destacan, que su principal característica, es su completo soporte para tablas e índices en un único archivo por base de datos, soporte transaccional, rapidez.26 1.7.3.9. El patrón Modelo Vista Controlador (MVC) Es el patrón de diseño más adecuado y recomendado para aplicaciones interactivas que distribuyen las funcionalidades de dicha aplicación entre los distintos objetos que la componen, de manera que el grado de acoplamiento entre los objetos de la aplicación sea mínimo. MVC divide una aplicación interactiva en tres áreas: procesamiento, salida y entrada. Para esto utiliza las siguientes abstracciones: Modelo: Encapsula la información que maneja el sistema, incluyendo la información de negocio y las lógicas de acceso a los mismos. El modelo avisa a 43 la vista cuando se produce alguna modificación en los datos del modelo y le permite consultar el estado de los mismos. También permite al controlador acceder a las funcionalidades de la aplicación encapsuladas por el modelo. El modelo es independiente de cualquier representación de salido y/o comportamiento de entrada. -Vista: Es la interfaz de usuario, es decir, decide cómo se presenta la información del modelo al usuario, actualizando la interfaz cuando se produce alguna modificación de los mismos. La vista también reenvía la entrada del usuario al controlador. Pueden existir múltiples vistas del modelo. Cada vista tiene asociado un componente controlador. Controlador: recibe las entradas, usualmente, como eventos que codifican los 25Hernández F.. M. (2014). Android Studio: características y comparativa con Eclipse.Recuperado el 23 de Mayo de 2017 de academia android: https://academiaandroid.com/android-studio-v1-caracteristicas-comparativa-eclipse/ 26Gutiérrez J. (2017). ¿Qué es SQLite? Recuperado el 26 de Mayo de 2017 de somoslibres.org: http://www.somoslibres.org/modules.php?name=News&file=article&sid=183.

(32) movimientos o pulsación de botones del ratón, pulsaciones de teclas, etc. Responde a dichos eventos modificando el modelo y pudiendo producir, por tanto, cambios en la vista. Así pues, el controlador interpreta la entrada del usuario y la correspondencia en acciones que serán llevadas a cabo por el modelo. Un controlador escoge la siguiente vista a mostrar basándose en las interacciones del usuario y los resultados de las operaciones de modelo.27 1.7.4. Marco Metodológico Para la elaboración de este proyecto se implementará la metodología RUP la cual no es más que un conjunto de metodologías adaptables al contexto y necesidades de cada organización. Describe cómo aplicar enfoques para el desarrollo del software, llevando a cabo unos pasos para su realización RUP (Rational Unified Process), es una metodología sólida, con documentación que apoya el ciclo de vida evolutivo incremental además de orientarse al desarrollo de componentes secundado el desarrollo orientado a objetos; RUP es un proceso de ingeniería de software que provee un enfoque disciplinado para la asignación de tareas y responsabilidades dentro de una organización. Su principal objetivo es asegurar la producción de software de alta calidad que satisfaga las necesidades de sus usuarios finales dentro de un presupuesto y tiempo predecibles. ● Fase de Inicio: en esta fase se definen y acuerdan con los alcances del proyecto, además de identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura y producir el plan de las fases y el de iteraciones posteriores. ● Fase de elaboración: el propósito de esta fase es seleccionar y desarrollar los casos de uso que permiten definir la arquitectura base del sistema, posteriormente realizar la especificación de los casos seleccionados y el primer análisis del dominio del problema, para diseñar la solución preliminar. ● Fase de Construcción o Desarrollo: esta fase tiene como propósito completar la funcionalidad del sistema, para ello se deben clarificar los requerimientos pendientes, administrar los cambios de acuerdo con las evaluaciones realizados por los usuarios y se realizar las mejoras para el proyecto. ● Fase de transición (Cierre): el propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte. 27. Martínez D. R. Valderas Aranda P. J. Pastor López O.(2010) “Aplicaciones web, un enfoque práctico”. Modelo- Vista- Controlador. 137-138 p.

(33) técnico necesario. Se debe verificar que el producto cumpla con las especificaciones28.. 28. BELLOSO, C. Monografía sobre la metodología de desarrollo de software, Rational Unified Process (RUP). Universidad Don Bosco. El Salvador. 2009. p. 69 http://rd.udb.edu.sv:8080/jspui/bitstream/123456789/257/1/47400_tesis.pdf [Consulta: 31 octubre de 2016]..

(34) Tabla 2: Fases de la metodología RUP.. FLUJO DE TRABAJO. MODELAMIENTO DEL NEGOCIO. INICIO. REQUERIMIENTOS. DISEÑO ELABORACIÓN ANÁLISIS. CONSTRUCCIÓN. IMPLEMENTACIÓN. PRUEBAS TRANSICIÓN. DESPLIEGUE. Fuente: Autores.. ACTIVIDADES Diagrama de procesos. Modelo de dominio. Glosario de términos Consulta e identificación de problemas Análisis de las causas y soluciones. Planeación del desarrollo del proyecto Definición de requerimientos funcionales Definición de requerimientos no funcionales Definición de actores Diagrama de casos de uso Documentación de los casos de uso. Diagrama de secuencia Diagrama de colaboración Diagrama de actividad Diagrama de estado Modelo de análisis Lista de clases. Modelo de interfaz Modelo físico. Modelo lógico Entorno de diseño del usuario Diseño educativo Diseño de comunicación Diseño conceptual Diagrama de paquetes Diagrama de componentes Diagrama de despliegue Pruebas de integración. Prueba piloto. Análisis de resultados Pruebas del sistema Instalación del software Pruebas de campo Utilización por los estudiantes Análisis de resultados.

(35) 1.8. FACTIBILIDAD En este apartado, se hará mayor hincapié en diferentes aspectos o factores que influirán en el desarrollo del proyecto, estos son: factores técnicos, operativos, legales y económicos. 1.8.1. Factibilidad técnica Tabla 3: Costo Recursos Técnicos Requeridos.. FACTIBILIDAD TÉCNICA Equipo. Cantidad. Descripción Procesador AMD APU A8 2.5Ghz, Disco duro de 1024 Gb de capacidad, memoria RAM DDR3 de 8Gb, mouse. Licencia Windows 10. Costo unitario. Total. $1.100.000. $2.200.000. $130.000. $260.000. Computador Portátil. 2. Sistema operativo. 2. Internet. 2. Servicio a internet de 5Mb $90.000 un mes. $720.000 7 meses. $1.440.000 7 meses. SQLite. 2. Sistema de gestión de bases de datos.. Software Libre. $0. Android Studio 2.3.3. 2. Entorno de desarrollo para desarrollo de aplicativos en el sistema operativo Android.. Software Libre. $0. SDK manager Software Development Kit.. 2. Kit de Desarrollo de software.. Software Libre. $0. 2. Software que provee herramientas de desarrollo para la creación de programas en Java.. Software Libre. $0. JDK 7.3.1. Total: $3.900.000 Fuente: Autores.. 1.8.2. Factibilidad legal Con respecto a los requerimientos legales que esta aplicación requiere, las normativas o leyes que pudieran generar algún tipo de problema frente al desarrollo del proyecto fueron: ● En cuanto al sistema operativo Windows perteneciente a Microsoft, se cuenta con una licencia vigente. ●En cuanto a licencias de las herramientas que se utilizaran como Android Studio, SQLite, SDK manager no tienen licencia por lo que no implica algún requerimiento legal..

(36) ●Para cada una de las pruebas del software que se realizarán en dispositivos móviles, se cuenta con cada una de sus respectivas facturas y registros. ● En cuanto al sistema operativo Android perteneciente a Google, que se encuentra en los Smartphone donde se realizaron la pruebas este es de código abierto. ● La institución académica donde se realizaron las pruebas, no tienen ningún tipo de normativa que impida la ejecución e implantación de este proyecto en las organizaciones de este tipo. Con base en lo anteriores apartados se puede concluir que el presente proyecto es viable cuanto al aspecto legal.. 1.8.3. Factibilidad operativa. Tabla 4: Costo Operativos. FACTIBILIDAD OPERATIVA Tipo. Cantidad de personas. Desarrollador. 2. Director. 1. Fuente: Autores.. Descripción Programador para el diseño e implementación de la aplicación Asesorías para la realización del proyecto Total. Valor hora. Cantidad de horas. Total. $14.000. 56 horas mensuales. $10’976.000 7 meses.. $30.000. 8 horas mensuales. $1’680.000 7 meses. $12’656.000.

(37) 1.8.4. Factibilidad económica. Tabla 5: Costo total del proyecto.. Factibilidad Económica Recursos. Costos. Recursos técnicos. $3’900.000. Recursos Humanos. $12’656.000. Recursos imprevistos 10%. $1’655.600 $18’211.600. Total Fuente: Autores.. 1.9. CRONOGRAMA DE ACTIVIDADES. Ilustración 1: Cronograma De actividades general..

(38) 1.9.1 Fase de inicio.

(39)

(40) Ilustración 2: Fase de inicio.

(41) 1.9.2 Fase de elaboración.

(42)

(43) Ilustración 3: Cronograma fase de Elaboración..

(44) 1.9.3 Fase de Construcción.

(45)

(46) Ilustración 4: Cronograma Fase de Construcción..

(47) 1.9.4 Fase de Transición.

(48)

(49) Ilustración 5: Cronograma Fase de Transición. 2. MODELADO DEL NEGOCIO En esta etapa del desarrollo del proyecto se identificaron los procesos más relevantes, los cuales se explican detalladamente el funcionamiento de la aplicación, el manejo de la información del sistema y la interacción entre los actores que participan en aplicación. 2.1. IDENTIFICACIÓN Y DEFINICIÓN DE LOS MÓDULOS DEL SISTEMA La aplicación Nozomu contará con cuatro módulos principales, los cuales permitirán presentar, explicar y reforzar los conocimientos básicos que el usuario requiere para el desarrollo de la lógica de programación. Estos módulos son: •Módulo de Registro: Este módulo permite el registro de información del usuario como nombres, apellidos, teléfono, correo electrónico, entre otros. Al mismo tiempo, permite la creación de la instancia del usuario y por último facilita el guardado de los datos del usuario en una base de datos. •Módulo de Usuario: Este módulo permite el ingreso del usuario, así como guardar, editar y consultar información del usuario. También permitirá al usuario desplazarse por los demás módulos y opciones que la aplicación posea. •Módulo de Educación: Este módulo permite la presentación de los conceptos y lineamientos básicos de la lógica de programación, así como, el posterior seguimiento de los temas que el usuario está aprendiendo. Y también permite desbloquear evaluaciones en el módulo de Evaluación. •Módulo de Puntaje: Este módulo permite realizar evaluaciones a los usuarios mediante ejercicios prácticos de diagramación cuya dificultad irá en aumento a medida que vaya avanzando. A su vez genera notas dependiendo del desempeño académico que el usuario demuestre en las evaluaciones..

(50) 2.2. DIAGRAMA DE PROCESOS 2.2.1. Subproceso de registro. Ilustración 6: Diagrama de Subproceso de Registro de datos.

(51) 2.2.2. Subproceso de Ingreso de sesión. Ilustración 7: Diagrama de Subproceso de inicio de sesión..

(52) 2.2.3. Subproceso de módulo de Educación. Ilustración 8: Diagrama de subproceso de Módulo de Educación.

(53) 2.2.4. Subproceso de Seguimiento de Avances. Ilustración 9: Diagrama de Subproceso de Seguimiento de avances..

(54) 2.3. MODELO DEL DOMINIO.

(55)

(56) Ilustración 10: Modelado del Dominio..

(57) 2.4. GLOSARIO DE TÉRMINOS. Tabla 6: Glosario de términos.. Término. Descripción. Usuario. Persona encargada de interactuar con la aplicación, cuyos datos principales y progreso en las actividades se guarda en la base de datos.. Registro. Un registro es un conjunto de datos personales que es llenado por el usuario e incluido en una base de datos, entre estos datos se hallan un nombre y una contraseña que van a hacer posible que ingrese al sistema.. Inicio de sesión. Ingreso a la aplicación mediante un usuario y una clave las cuales previamente fueron guardados en la base de datos.. Temas de estudio. Son los contenidos que se presentan al usuario con el fin de que éste los conozca, aprenda y posteriormente sea capaz de resolver problemas o ejercicios de estos temas.. Base de datos.. Almacén digital donde se almacenan tanto los datos ingresados por el usuario, como los datos generados por la misma aplicación.. Módulo. Es una parte en la que se encuentra dividido el sistema.. Ejercicio. Práctica y prueba de los conocimientos que se presentan en la conceptualización de un tema.. Evaluación. Práctica y prueba de los conocimientos que se presentan en la conceptualización de un tema.. Nota. Es la valoración que se entregará al finalizar una actividad de acuerdo con la cantidad de aciertos obtenidos y estará asociada a los datos del Usuario.. Fuente: Autores..

(58) 3. REQUERIMIENTOS Teniendo en cuenta la población a la que se dirige la aplicación se establecieron los siguientes requerimientos funcionales y no funcionales gracias a los cuales se definieron los siguientes casos de uso. Gracias a esta fase se facilita el entendimiento de los diferentes requisitos que puede llegar a tener el sistema.. 3.1. DEFINICIÓN DE REQUERIMIENTOS FUNCIONALES Tabla 7: Definición de requerimientos funcionales.. Código.. Descripción. ReqFun.1. La aplicación permite el inicio de sesión de acuerdo con los datos de los estudiantes almacenados en la base de datos.. ReqFun.2. La aplicación permite que los usuarios se registren y verifica si el correo y/o el documento de identidad ya se encuentran registrado.. ReqFun.3. La aplicación valida cualquier campo que es requerido y muestra los respectivos mensajes de error.. ReqFun.4. La aplicación muestra ejemplos y conceptos de cada tema.. ReqFun.5. La aplicación permite al usuario elegir el tema de interés.. ReqFun.6. La aplicación permite un seguimiento, es decir un registro del tema, ejercicios realizados, fecha y calificación.. El sistema mostrará las soluciones de los ejercicios si el estudiante lo desea. Fuente: Autores. ReqFun.7.

(59) 3.2. DEFINICIÓN DE REQUERIMIENTOS NO FUNCIONALES. Tabla 8: Definición de requerimientos no funcionales.. Código.. Descripción. ReqNo. 1 ReqNo. 2 ReqNo. 3 ReqNo. 4 ReqNo. 5. La aplicación solo podrá ser usada en dispositivos con el sistema operativo de Android El desarrollo de la aplicación se llevará a cabo bajo el modelo aprendizaje constructivista. Los temas, ejemplos, ejercicios y evoluciones propuestas en esta aplicación no podrán ser modificados por ningún actor. El sistema consta de una base de datos la cual hace que los datos sean persistentes. La aplicación contará con campos obligatorios que deberán ser validados, así como campos opcionales que no serán necesarios de llenar. Dentro de las ejercicios y evaluaciones, si se oprime el botón siguiente o ReqNo. finalizar, y estas no se encuentran desarrolladas al 100%, se imprimirá en 6 un mensaje anunciando que si desea continuar sin completar el ejercicio o evaluación actual. Fuente: Autores. 3.3. DEFINICIÓN DE ACTORES Tabla 9: Definición de Actores.. Actor. Estudiante (A1) • El estudiante es la persona que interactúa con la aplicación Nozomu. • El estudiante podrá registrarse e identificarse para iniciar las actividades.. Estudiante. • El estudiante podrá seleccionar y realizar las actividades de acuerdo con el nivel de puntos que este posea. • El estudiante podrá consultar de puntajes de los ejercicios y evaluaciones realizadas.. Fuente: Autores..

Figure

Tabla 2: Fases de la metodología RUP.
Tabla 4: Costo Operativos
Tabla 5: Costo total del proyecto.
Ilustración 6: Diagrama de Subproceso de Registro de datos
+7

Referencias

Documento similar

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

 Se ha desarrollado una aplicación que permite gestionar emplazamientos creados por el usuario, representar un perfil junto con la primera zona de Fresnel en

Desarrollo de una aplicación de cálculo de mapas de visibilidad radioeléctricos para dispositivos móviles móvil con sistema operativo

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Para dar solución al problema antes descrito se plantea como objetivo general: Desarrollar una aplicación para dispositivos móviles con sistema operativo Android, que

Para dar cumplimiento al problema planteado se establece como objetivo general: Desarrollar una aplicación para dispositivos móviles con sistema operativo Android

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,