aplicaciÓn para dispositivos mÓviles con sistema...

101
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

Upload: others

Post on 18-Mar-2020

13 views

Category:

Documents


4 download

TRANSCRIPT

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

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

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

“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.

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.

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

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 32

1.8. FACTIBILIDAD 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 37

1.9.1 Fase de inicio 38

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 61

3.6. DOCUMENTACIÓN DE CASOS DE USO 62

4. ANÁLISIS 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

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

LISTA DE TABLAS

Tabla 1: Comparación entre aplicaciones 20

Tabla 2: Fases de la metodología RUP. 33

Tabla 3: Costo Recursos Técnicos Requeridos. 34

Tabla 4: Costo Operativos 35

Tabla 5: Costo total del proyecto. 36

Tabla 6: Glosario de términos. 47

Tabla 7: Definición de requerimientos funcionales. 48

Tabla 8: Definición de requerimientos no funcionales. 49

Tabla 9: Definición de Actores. 49

Tabla 10: Descripción Caso de uso 1: Registro de Datos nuevo usuario. 52

Tabla 11: Descripción Caso de uso 2: Iniciar sesión 53

Tabla 12: Descripción Caso de uso 3: Consultar Datos Estudiante. 54

Tabla 13: Descripción Caso de uso 4: Modificar Datos Estudiante. 55

Tabla 14: Descripción Caso de uso 5: Cerrar sesión. 56

Tabla 15: Lista Preliminar de Clases 66

Tabla 16|: Pruebas de integración 73

LISTA DE FIGURAS Pág.

Ilustración 1: Cronograma De actividades general. 36

Ilustración 2: Fase de inicio 37

Ilustración 3: Cronograma fase de Elaboración. 38

Ilustración 4: Cronograma Fase de Construcción. 39

Ilustración 5: Cronograma Fase de Transición 40

Ilustración 6: Diagrama de Subproceso de Registro de datos 42

Ilustración 7: Diagrama de Subproceso de inicio de sesión. 43

Ilustración 8: Diagrama de subproceso de Módulo de Educación 44

Ilustración 9: Diagrama de Subproceso de Seguimiento de avances. 45

Ilustración 10: Modelado del Dominio. 46

Ilustración 11: Caso de uso Estudiante. 51

Ilustración 12: Modelado de Secuencia: Registrar Usuario. 57

Ilustración 13: Modelado de Secuencia: Iniciar sesión. 58

Ilustración 14: Modelado de Secuencia: Modificar Datos Estudiante. 58

Ilustración 15: Modelado de Secuencia: Realizar Evaluación. 59

Ilustración 16: Modelado de Secuencia: Seleccionar Tema Ejemplo. 59

Ilustración 17: Modelado de Actividad: Registrar Usuario. 60

Ilustración 18: Modelado de Actividad: Iniciar sesión 61

Ilustración 19: Modelado de Actividad: Modificar Datos Estudiante. 61

Ilustración 20: Modelado de Actividad: Realizar Evaluación. 62

Ilustración 21: Modelado de Actividad: Seleccionar Tema Ejemplo. 62

Ilustración 22: Modelado de Estado: Registrar Usuario. 63

Ilustración 23: Modelado de Estado: Iniciar sesión 64

Ilustración 24: Modelado de Estado: Modificar Datos Estudiante. 64

Ilustración 25: Modelado de Estado: Realizar Evaluación. 65

Ilustración 26: Modelado de Estado: Seleccionar Tema Ejemplo. 65

Ilustración 27: Modelo pedagógico Ejercicio 69

Ilustración 28: Modelo pedagógico Evaluación 69

Ilustración 29: Diagrama de paquetes 70

Ilustración 30: Diagrama de despliegue 71

Ilustración 31: Diagrama de componentes 72

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.

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.

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.

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

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.

● 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

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

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/004-codecademy/index.html

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

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 ✔

Aumentar la dificultad de los

ejercicios y evaluaciones a medida que se

progresado.

✔ x X x ✔

Almacenar y mostrar el historial o

progreso que el estudiante ha

tenido.

✔ ✔ ✔ x ✔

Fuente: Autores.

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

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/

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 m-

learning 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

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/

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

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/

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/

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

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/

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

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

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].

Tabla 2: Fases de la metodología RUP.

FLUJO DE TRABAJO ACTIVIDADES

INICIO

MODELAMIENTO DEL NEGOCIO

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

REQUERIMIENTOS

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.

ELABORACIÓN

DISEÑO

Diagrama de secuencia

Diagrama de colaboración

Diagrama de actividad

Diagrama de estado

Modelo de análisis

ANÁLISIS

Lista de clases.

Modelo de interfaz

Modelo físico.

Modelo lógico

CONSTRUCCIÓN IMPLEMENTACIÓN

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

TRANSICIÓN

PRUEBAS

Pruebas de integración.

Prueba piloto.

Análisis de resultados

Pruebas del sistema

Instalación del software

DESPLIEGUE

Pruebas de campo

Utilización por los estudiantes

Análisis de resultados

Fuente: Autores.

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 Costo

unitario Total

Computador Portátil

2

Procesador AMD APU A8 2.5Ghz, Disco duro de 1024 Gb

de capacidad, memoria RAM DDR3 de 8Gb, mouse.

$1.100.000 $2.200.000

Sistema operativo 2 Licencia Windows 10 $130.000 $260.000

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

JDK 7.3.1 2

Software que provee herramientas de desarrollo para

la creación de programas en Java.

Software Libre

$0

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.

●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

Descripción Valor hora

Cantidad de horas

Total

Desarrollador 2

Programador para el diseño e

implementación de la aplicación

$14.000 56 horas

mensuales $10’976.000

7 meses.

Director 1 Asesorías para la

realización del proyecto

$30.000 8 horas

mensuales $1’680.000 7 meses.

Total $12’656.000

Fuente: Autores.

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

Total $18’211.600

Fuente: Autores.

1.9. CRONOGRAMA DE ACTIVIDADES

Ilustración 1: Cronograma De actividades general.

1.9.1 Fase de inicio

Ilustración 2: Fase de inicio

1.9.2 Fase de elaboración

Ilustración 3: Cronograma fase de Elaboración.

1.9.3 Fase de Construcción

Ilustración 4: Cronograma Fase de Construcción.

1.9.4 Fase de Transición

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.

2.2. DIAGRAMA DE PROCESOS

2.2.1. Subproceso de registro

Ilustración 6: Diagrama de Subproceso de Registro de datos

2.2.2. Subproceso de Ingreso de sesión

Ilustración 7: Diagrama de Subproceso de inicio de sesión.

2.2.3. Subproceso de módulo de Educación

Ilustración 8: Diagrama de subproceso de Módulo de Educación

2.2.4. Subproceso de Seguimiento de Avances

Ilustración 9: Diagrama de Subproceso de Seguimiento de avances.

2.3. MODELO DEL DOMINIO

Ilustración 10: Modelado del Dominio.

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.

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.

ReqFun.7 El sistema mostrará las soluciones de los ejercicios si el estudiante lo

desea.

Fuente: Autores.

3.2. DEFINICIÓN DE REQUERIMIENTOS NO FUNCIONALES

Tabla 8: Definición de requerimientos no funcionales.

Código. Descripción

ReqNo.1

La aplicación solo podrá ser usada en dispositivos con el sistema operativo de Android

ReqNo.2

El desarrollo de la aplicación se llevará a cabo bajo el modelo aprendizaje constructivista.

ReqNo.3

Los temas, ejemplos, ejercicios y evoluciones propuestas en esta aplicación no podrán ser modificados por ningún actor.

ReqNo.4

El sistema consta de una base de datos la cual hace que los datos sean persistentes.

ReqNo.5

La aplicación contará con campos obligatorios que deberán ser validados, así como campos opcionales que no serán necesarios de llenar.

ReqNo.6

Dentro de las ejercicios y evaluaciones, si se oprime el botón siguiente o finalizar, y estas no se encuentran desarrolladas al 100%, se imprimirá en 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)

Estudiante

• El estudiante es la persona que interactúa con la aplicación

Nozomu.

• El estudiante podrá registrarse e identificarse para iniciar las

actividades.

• 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.

3.4. LISTA PRELIMINAR DE CASOS DE USO POR ACTOR

3.4.1. Estudiante

Gestión de usuario:

1. Registro de datos de usuario.

2. Iniciar sesión.

3. Consultar datos de usuario.

4. Darse de baja.

5. Modificar datos de usuario.

6. Cerrar sesión.

7. Salir de la aplicación.

Gestión de material didáctico:

8. Seleccionar tema.

9. Mostrar tema.

10. Seleccionar tema de ejemplo.

11. Mostrar ejemplo.

Gestión de evaluación:

12. Seleccionar tema de evaluación.

13. Realizar evaluaciones.

14. Guardar nota evaluación.

15. Consultar nota de evaluación.

Gestión de ejercicio:

16. Seleccionar tema de ejercicio.

17. Seleccionar enunciado de ejercicio.

18. Realizar ejercicio.

19. Guardar nota ejercicio.

20. Consultar nota de ejercicio.

Gestión de instrucción:

21. Seleccionar tema de instrucción.

22. Mostrar instrucción.

3.5. MODELO DE CASOS DE CASOS DE USO

A continuación, describe los procesos que realizan el estudiante dentro del dentro de la

aplicación. Para más adelante entender que actividades específicas realizará este.

3.5.1. CASO DE USO ESTUDIANTE

Ilustración 11: Caso de uso Estudiante.

3.6. DOCUMENTACIÓN DE CASOS DE USO

Se presenta a continuación la documentación de los casos de uso relacionados en la tabla 6

“lista preliminar de casos de uso”, en ellos se describe el flujo de las actividades y actores que

intervienen. La documentación del resto de casos de uso se encuentra en el Anexo XX.

Tabla 10: Descripción Caso de uso 1: Registro de Datos nuevo usuario.

No. Caso de Uso: 1

Nombre: Registrar Nuevo Usuario.

Actor: Estudiante.

Descripción: El estudiante debe registrar sus datos personales en el formulario de Registro para poder iniciar sesión.

Flujo Principal:

Acción del actor Respuesta de la aplicación.

1. Seleccionar el botón “Registrar”. 4. Ingresar los datos en el “Formulario de registro”. 5. Dar clic en el botón “Guardar”.

2. Cargar “módulo de registro”. 3. Generar “formulario de registro”. 6. Validar existencia del Estudiante. 7. Almacenar datos del Estudiante si no se encuentra registrado en la base de datos. 8. Mostrar en pantalla: “Registro Exitoso.”

Flujo Alterno: 1. Seleccionar el botón “Registrar”. 3. Seleccionar el botón “Atrás” para volver a la pantalla principal.

2. Cargar “módulo de registro”. 4. Cargar “formulario de principal”.

Precondición: El estudiante debe haber llenado todos los datos del formulario correctamente.

Postcondición: Guardar los datos ingresados por el estudiante en la base de datos.

Excepción: En caso de que el estudiante se encuentre registrado el aplicativo imprimirá en pantalla: “Error, usuario ya se encuentra registrado”.

Fuente: Autores.

.

Tabla 11: Descripción Caso de uso 2: Iniciar sesión

No. Caso de Uso: 2

Nombre: Iniciar sesión.

Actor: Estudiante.

Descripción: En este módulo el estudiante podrá ingresar con su correo y con su clave para interactuar con el resto de los módulos de la aplicación.

Flujo Principal:

Acción del actor Respuesta de la aplicación.

1. Seleccionar el botón “iniciar Sesión”. 4. Ingresar correo y clave en el formulario de iniciar sesión. 5. Seleccionar botón “Ingresar”.

2. Cargar el “módulo Usuario”. 3. Generar el “módulo Usuario”. 6. Validar con la base de datos si el correo y clave ingresados corresponden a alguno de los usuarios presentes en la esta. 7. Generar “módulo de Aprendizaje”

Flujo Alterno:

1. Seleccionar el botón “iniciar Sesión”. 4. Seleccionar el botón “Atrás” para volver a la pantalla principal.

2. Cargar el “módulo Usuario”. 3. Generar el “módulo Usuario”.

Precondición: El Estudiante debe estar registrado en el sistema y debe ingresar los datos correctamente.

Postcondición: El estudiante podrá ingresar al módulo de aprendizaje para poder interactuar con ellas.

Excepción:

En caso de que el estudiante no esté registrado o escriba mal su correo o clave, la aplicación imprimirá en pantalla: “Datos ingresados no se encuentran en la base de datos, verifique si los ingreso correctamente o si no posee cuenta por favor regístrese”.

Fuente: Autores.

Tabla 12: Descripción Caso de uso 3: Consultar Datos Estudiante.

No. Caso de Uso: 3

Nombre: Consultar Datos Estudiante.

Actor: Estudiante.

Descripción: En este caso de uso el estudiante podrá consultar sus datos personales los cuales se encuentran en la en la base de datos.

Flujo Principal:

Acción del actor Respuesta de la aplicación.

1. Seleccionar opción “Ver Datos Personales”.

2. Realizar consulta en la base de datos en la tabla de usuario. 3. Formulario consulta datos usuarios. 4. Mostrar datos.

Flujo Alterno: No aplica.

Precondición: El estudiante debió haberse registrado, iniciado sesión y debió seleccionar “Opciones”.

Postcondición: El estudiante podrá salir de la opción ver datos personales, seleccionando la opción Atrás.

Excepción: No aplica.

Fuente: Autores.

Tabla 13: Descripción Caso de uso 4: Modificar Datos Estudiante.

No. Caso de Uso: 4

Nombre: Modificar datos estudiante.

Actor: Estudiante.

Descripción: En este caso de uso el estudiante podrá cambiar los datos correspondientes al nombre, Apellido y Correo que haya anotado previamente a la hora de registrarse.

Flujo Principal:

Acción del Actor. Respuesta de la aplicación.

1. Seleccionar opción modificar datos personales. 5. Modificar los datos en los campos correspondientes. 6. Seleccionar opción modificar datos. 8. Seleccionar opción SI.

2. Consultar datos del usuario. 3. Generar formulario de cambio de datos personales. 4. Poner datos consultados en la base de datos en los campos correspondientes. 7. Notificar sí está seguro de realizar cambios. 9. Guardar datos en la base de datos.

Flujo Alterno:

1. Seleccionar opción modificar datos personales. 5. Seleccionar opción Atrás. 8. Seleccionar opción SI.

2. Consultar datos del usuario. 3. Generar formulario de cambio de datos personales. 4. Poner datos consultados en la base de datos en los campos correspondientes. 6. Notificar sí está seguro de salir sin guardar. 9. Retornar al formulario principal.

Precondición: El estudiante debió haberse registrado, iniciado sesión y debió seleccionar “Opciones” previamente.

Postcondición: La aplicación devolverá al estudiante al formulario principal de la aplicación.

Excepción: Si el estudiante cambia el correo por otro que ya esté en la base de datos, la aplicación le impedirá guardar dicho dato.

Fuente: Autores.

Tabla 14: Descripción Caso de uso 5: Cerrar sesión.

No. Caso de Uso: 5

Nombre: Cerrar sesión.

Actor: Estudiante.

Descripción: Este Caso de uso permite al estudiante cerrar su instancia como usuario de la aplicación para que otros estudiantes puedan utilizar la aplicación.

Flujo Principal:

Acción del Actor. Respuesta de la aplicación.

1. Seleccionar opción cerrar sesión. 3. Seleccionar opción SI.

2. Notificar sí está seguro de cerrar sesión. 4. Borrar Datos de Sesión. 5. Generar formulario de inicio.

Flujo Alterno:

1. Seleccionar opción cerrar sesión. 3. Seleccionar opción NO.

2. Notificar sí está seguro de cerrar sesión. 4. Cerrar notificación.

Precondición: El estudiante debió haberse registrado y haber iniciado sesión previamente.

Postcondición: Al cerrar sesión cualquier otro estudiante que se encuentre previamente registrado podrá iniciar sesión.

Excepción: No aplica.

Fuente: Autores.

4. ANÁLISIS

En este capítulo se especifican a detalle cada uno de los casos de uso mediante diferentes

diagramas, tales como diagramas de secuencia, de actividad, de colaboración y de estado.

Por a los cuales se llega a comprender todos los actores y subsistemas que operan en cada

uno de los casos de uso.

4.1. DIAGRAMAS DE SECUENCIA

Para cada caso de uso se ha realizado un diagrama de secuencia, en el cual se busca mostrar

la interacción los actores y cómo interactúan con el sistema.

Ilustración 12: Modelado de Secuencia: Registrar Usuario.

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.

Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo B).

4.2. DIAGRAMA DE ACTIVIDAD

Con los diagramas de actividad se representa el comportamiento que cada uno de los casos

de uso, lo cual servirá para entender el funcionamiento del sistema y su comportamiento en

ciertos casos.

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.

Ilustración 21: Modelado de Actividad: Seleccionar Tema Ejemplo.

Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo C).

4.3. DIAGRAMA DE ESTADO

Es un diagrama que se utiliza para identificar los caminos que puede tomar la información

luego de ejecutar un proceso.

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.

Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo E).

5. DISEÑO

En la fase de diseño se establecen las clases que intervienen en la aplicación y se diseñan

las diferentes interfaces que se utilizan para la ejecución de esta. Mediante la adaptación del

diseño se hace consistente el entorno de implementación.

5.1 LISTA PRELIMINAR DE CLASES

A continuación, se muestra la lista preliminar de clases, las cuales no son más que una

abstracción de los elementos que se usarán en el correcto funcionamiento de la aplicación.

Tabla 33: Lista Preliminar de Clases

LISTA PRELIMINAR DE CLASES

Inicio De Sesión Enunciado

Estudiante Nota

Lecciones Puntaje

Ejercicios Datos De Sesión

Evaluaciones

Fuente: Autores.

5.2. DIAGRAMA DE CLASES

Se presenta a continuación el diagrama de clases representando las diferentes, clases,

propiedades y operaciones que integran el sistema.

En este modelo se especifica los aspectos relacionados con la interfaz de usuario empleando

un conjunto de modelos abstractos. Los diagramas faltantes se encuentran en el anexo K

Diagrama de clases.

5.3. MODELO DE INTERFAZ

En este modelo se especifica los aspectos relacionados con la interfaz de usuario empleando

un conjunto de modelos abstractos. Los diagramas faltantes se encuentran en el anexo D

Modelo Interfaz.

6. IMPLEMENTACIÓN

En la fase de implementación se describe las clases y objetos en ficheros fuente y ejecutables

de la aplicación. El resultado final es un sistema ejecutable. Al mismo tiempo se planifican qué

subsistemas deben ser implementados y en qué orden deben ser integrados, formando el Plan

de Integración.

6.1 SISTEMA DE PUNTUACIÓN

La calificación en la aplicación Nozomu se obtiene únicamente al realizar ejercicios o

evaluaciones.

6.1.1 Sistema de puntuación de los ejercicios

Inicialmente al resolver un ejercicio, el valor de este corresponderá a 100 puntos, si el

usuario lo resuelve en el primer intento, de lo contrario por cada intento fallido se restará

20 puntos al valor del ejercicio.

Después de 3 intentos fallidos y no haber solucionado el ejercicio correctamente se

bloquea el ejercicio hasta que el estudiante repase el material de enseñanza que

corresponde al ejercicio.

El estudiante tendrá la oportunidad de repetir el ejercicio para mejorar su puntaje.

6.1.2 Sistema de puntuación las evaluaciones

Cada evaluación tendrán un puntaje y una nota cualitativa. El puntaje de las

evaluaciones dependerá de la suma del puntaje de cada ejercicio que compongan la

evaluación. La nota de la evaluación se hallará sumando los puntos de cada ejercicio y

dividiéndolos por el número total de ejercicios. Para que el estudiante apruebe una

evaluación deberá obtener una nota superior al 70 % de la nota de la evaluación.

6.1.3 Puntaje General

El usuario contará con un puntaje general que lo ubicara en los cuatro niveles

establecidos:

● Principiante = 0 - 1299 puntos

● Intermedio = 1300 - 3399 puntos

● Avanzado = 3400 - 5099 puntos

● Experto = 5100 - 6600 puntos

6.2 MODELO PEDAGÓGICO

En esta aplicación se escogió el modelo pedagógico constructivista el cual permite que los

estudiantes puedan interactuar con la aplicación.

A través de mover o arrastrar elementos para completar los diagramas de flujo se busca que

el estudiante se familiarice con los conceptos básicos de programación y al mismo tiempo

ejercite su lógica para la resolución de ejercicios.

Ilustración 27: Modelo pedagógico Ejercicio

Ilustración 28: Modelo pedagógico Evaluación

6.3. DIAGRAMA DE PAQUETES

El diagrama de paquetes como su nombre lo indica permite representar de manera gráfica la

repartición o distribución de los diferentes elementos de la aplicación en los diferentes

paquetes de esta, se maneja una arquitectura MVC (modelo vista controlador). En este

diagrama podemos ver el funcionamiento del controlador con la base de datos de SqLite y con

las diferentes vistas las cuales se encuentran en el paquete Layout y Styles.

.

Ilustración 29: Diagrama de paquetes

6.4. DIAGRAMA DE DESPLIEGUE

Los diagramas de despliegue permiten modelar la arquitectura en tiempo de ejecución del

aplicativo Nozomu. Para esta aplicación se utilizó la arquitectura por capas MVC que permite

separar los datos y la lógica de negocio de la interfaz de usuario.

Ilustración 30: Diagrama de despliegue

6.5. DIAGRAMA DE COMPONENTES

Los diagramas de componentes facilitan la visualización de la estructura general del aplicativo

y el comportamiento de los casos de uso que estos componentes proporcionan y utilizan a

través de las interfaces.

Ilustración 31: Diagrama de componentes

7. PRUEBAS

En este capítulo se evidencian las diferentes pruebas correspondientes a la integración y

validación de los diferentes módulos presentes en el aplicativo con el fin de depurar los errores

y mejorar los aspectos estéticos y manejo de la aplicación.

7.1. PRUEBAS DE INTEGRACIÓN

Mediante las pruebas de integración se pudo constatar el correcto funcionamiento de los

diferentes casos de uso.

En base a los resultados obtenidos, podemos observar que más del 90% de los estudiantes

que presentaron la prueba han utilizado aplicaciones móviles con un fin educativo.

Tabla 34: Pruebas de integración

# Usuario Prueba Descripción Si No

1

Estudiante Registro de Datos. Permite al estudiante registrar sus datos personales, tales como nombres, apellidos y correos.

X

2

Estudiante Inicio de Sesión Permite al estudiante iniciar sesión mediante el ingreso de la clave y del correo.

X

3

Estudiante Realizar Ejercicios Permite al estudiante realizar los diferentes ejercicios dependiendo del nivel que posea.

X

4

Estudiante Realizar Evaluación Permite al estudiante evaluar los conocimientos en la lógica de programación dependiendo del nivel que posea.

X

5

Estudiante Visualizar Material de Enseñanza

Permite al estudiante visualizar los diferentes materiales de enseñanza que posee la aplicación.

X

6

Estudiante Visualizar ejemplo Permite al estudiante visualizar diferentes ejemplos de cada tema que posee la aplicación.

X

7

Estudiante Opciones de usuario.

Permite al estudiante cambiar diferentes aspectos y atributos dentro de la aplicación.

X

7.2. PRUEBAS DE VALIDACIÓN DE APLICACIÓN

Las pruebas de validación se realizaron con la herramienta de google formas de la suite de

google documentos, dentro de una sala de informática de la Universidad Distrital Francisco

José de Caldas en un curso de programación orientada a objetos (POO) del proyecto curricular

sistematización de datos. Donde participaron 18 estudiantes de segundo y tercer semestre.

.

8. CONCLUSIONES

• Según las pruebas de integración, y del sistema junto con la aceptación de la aplicación

evidenciada en las pruebas de validación de juego, se logra que la aplicación sea una

herramienta de apoyo en el aprendizaje de conceptos básico de la lógica de programación

para los estudiantes de primeros semestres que cursan carreras afines al desarrollo de

software.

• Se debe aprovechar el incremento en las nuevas tecnologías para adaptar la

enseñanza de la lógica de programación hacia los dispositivos móviles, dado que esto facilita

a las personas interesadas a aprender los fundamentos del desarrollo de software.

• Aunque no fue fácil, dado al gran trabajo que supone y a la gran complejidad que

supone la metodología RUP, la sensación final fue satisfactoria, en el momento en que se

eligió y aplicó al desarrollo del proyecto.

• La aplicación cuenta con un módulo de puntos, el cual puede ser utilizado como recurso

de evaluación por los maestros o por los mismos estudiantes para revisar los avances

constantes de estos últimos.

• Para el modelamiento de la base de datos fue fundamental realizar el proceso de

normalización de ésta, ya que éste permite eliminar la redundancia de datos y las relaciones

varios a varios entre las tablas. Como resultado se logró garantizar la integridad de los datos.

9. RECOMENDACIONES

Tras los resultados que arrojados de realización del proyecto se hace menester establecer las

siguientes recomendaciones:

• Para el uso de la aplicación Nozomu se recomienda usar terminales móviles con pantallas

grandes y claras con el fin de que sea más fácil observar y realizar las actividades.

• Utilizar esta aplicación siempre en posición vertical dado que todas sus interfaces fueron

desarrolladas para funcionar en dicha posición.

• Instalar la aplicación únicamente en dispositivos con Sistema Operativo Android con una

versión superior o igual a la 4.1.

En caso de continuar con el desarrollo del aplicativo, se recomienda:

• Desarrollar un módulo que permita conectar a distintos usuarios de distintos dispositivos

móviles por medio de internet para poder comparar y compartir resultados.

• Desarrollar un módulo que permita al estudiante realizar sus propias evaluaciones y

ejercicios para poderlos compartir con otros usuarios.

• Implementar nuevos mecanismos didácticos de carácter constructivista para así poder

mejorar la experiencia de los estudiantes.

REFERENCIAS

BIBLIOGRAFÍA

● Insudaste, J. (2016) Problemas de enseñanza y aprendizaje de los fundamentos de

programación. Revista educación y desarrollo social, 10 (2), 234-246. DOI:

erg/10/18359/reds.1701

● Fernández Corcho J.L, Cubo Delgado S. (2011). Modelos de comportamiento de los

estudiantes universitarios en las plataformas virtuales: un estudio de percepción de rol y

satisfacción. Campo Abierto Revista de educación Facultad de educación Universidad de

Extremadura. 30(1). 36.

● Sedeño A.M. (2012) La componente visual del videojuego como herramienta educativa.

Publicación extraída de la revista iberoamericana de educación.

● Lagos Salcedo P. (2012), Ingeniería de software educativo, teorías y metodologías que la

sustentan.

INFOGRAFÍA

1. Arenas París, R. (2014). Modelo para la Motivación del Aprendizaje de la Programación

utilizando Gamification. Recuperado el Junio de 28 de 2017, de Repositorio Universidad

Javeriana: http://pegasus.javeriana.edu.co/~CIS1410IS11/

2. Borges, P. (2012). Proyectos de sistemas informáticos. Recuperado el 7 de Febrero de

2017, de Universidad Hispanoamericana Justo Sierra:

http://es.slideshare.net/PaolaBorges/definiciones-de-sistemas-informaticos-11740753

3. Fernández, J. (2012). Metodología RUP y Ciclo de Vida. Recuperado el 28 de Junio de

2017, de GrupNADD: http://rupmetodologia.blogspot.com.co/2012/07/metodologia-rup-

y-ciclo-de-vida.html

4. García, M. (2016). Uso del Software Didáctico. Recuperado el 3 de Junio de 2017, de

Tec Digital. Revista Matemáticas, Educación e Internet:

http://tecdigital.tec.ac.cr/revistamatematica/ContribucionesN22001/MariaAdlia/pag4.ht

m,

5. Guerrero, L. A. (s.f.). Metodologia RUP. Recuperado el 19 de Junio de 2017, de

Universidad de Chile.: https://www.slideshare.net/AlexHernandez99/rup-1471691

6. Jiménez, C. (2016). “Dispositivos móviles Android”. Recuperado el 27 de Enero de

2017, de Internet Latinoamerica:

http://internetlatinoamerica.blogspot.com/2016/11/Android_en_el_mundo.html

7. Pickin, S., & Valls, M. (2010). Introducción a la Ingeniería de Software. Recuperado el

2 de Diciembre de 2016, de Universidad Carlos III: http://ocw.uc3m.es/ingenieria-

telematica/software-de-comunicaciones/transparencias/introduccion-a-la-ingenieria-

del-software

8. Ramírez, A. (2011). Paideia modelo pedagógico para la enseñanza de principios de

programación considerando la utilización Ambientes Virtuales de Aprendizaje (AVA).

Recuperado el 30 de Junio de 2017, de Repositorio Universidad Javeriana:

https://repository.javeriana.edu.co/bitstream/handle/10554/12665/RamirezAyalaAndre

sFelipe2012.pdf?sequence=1&isAllowed=y

9. Sánchez González, C. (s.f.). ONess: un proyecto open source para el negocio textil

mayorista desarrollado con tecnologías open source innovadoras. Recuperado el Mayo

de 25 de 2017, de Universidade da Coruña:

http://oness.sourceforge.net/proyecto/html/index.html

10. Tillmann, N., Halleux, J., & Xie, T. (2015). La enseñanza y el aprendizaje de

programación e ingeniería de software a través de juegos interactivos. Recuperado el

23 de Octubre de 2016, de http://taoxie.cs.illinois.edu/publications/hotsos15-

codehunt.pdf

11. Zaragoza, S. (s.f.). Desarrollando aplicaciones informáticas con el Proceso de

Desarrollo Unificado (RUP).Recuperado el 28 de Noviembre de 2016, de Universidad

Tecnológica del Valle del Mezquital:

http://www.utvm.edu.mx/OrganoInformativo/orgJul07/RUP.htm

ANEXOS

Anexo A. Diagramas de Secuencia

Anexo B. Diagramas de Actividad

Anexo C. Diagrama de Colaboración

Anexo D. Diagrama de Estado

Anexo E. Investigación Reprobación estudiantes.

Anexo F. Formato encuesta realizada.

Anexo G. Resultados de la encuesta.

Anexo H. Manual del usuario.

Anexo K. Diagrama de clases.