Estadísticas del temas: Implementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programación - iOS

Imágen de perfil

.pdfImplementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programación


iOS

Publicado el 30 de Julio del 2018 por Administrador
1.708 visualizaciones desde el 30 de Julio del 2018
Documento correspondiente al Trabajo de Fin de Grado de Ingeniería de las Tecnologías de Telecomunicación realizado por Javier López Aguirre.

Este proyecto consiste en el desarrollo de una aplicación que permita aprender, de forma básica, a programar. Está dirigido a usuarios que no dispongan de conocimientos de programación y quieran aprender las estructuras básicas presentes en la mayoría de los lenguajes de programación. El proyecto surge a partir de otro realizado el año pasado, en el que se desarrollaba para dispositivos Android, mientras que éste se desarrollará para dispositivos iOS.

Se ha optado desarrollarlo en esta plataforma debido a que entre los dispositivos Android e iOS suman una cuota de mercado del 96,4%, según los datos de la consultora IDC para el segundo trimestre de 2014. Para llegar a la mayor cantidad de usuarios posibles, es necesario desarrollar las aplicaciones para estas dos plataformas, como mínimo.

La aplicación se ha desarrollado con el objetivo de conseguir un videojuego en el que el usuario obtenga los conocimientos básicos de programación. Está divido en niveles y el usuario debe escribir programas para resolverlos.

El usuario deberá desarrollar sus conocimientos en cada nivel, ya que es necesario programar sentencias y estructuras para ir avanzando a través de ellos. Cada nivel irá aumentando la dificultad y se deberán usar expresiones más complejas. Para conseguir resolverlos, se proporcionarán ayudas como información de estructuras que se pueden utilizar, código ya escrito al inicio de un nivel o un teclado en el que se tratará de evitar la mayor parte de errores sintácticos.

El teclado se ha diseñado para que resulte sencillo escribir las sentencias, pulsando un botón se puede escribir una sentencia correcta sintácticamente. Además, se ha dividido agrupando los componentes del mismo estilo, por un lado los métodos, por otro los bucles, etc.

El juego tiene un personaje principal, cuyo nombre es Ada, el cual será programado por el usuario. Las sentencias que se escriban permitirán que Ada realice diversas acciones y cumpla los objetivos de cada misión.

Para resolver el nivel, se ejecutará línea por línea, el código escrito por el usuario. El juego dispone de un tablero en el que se podrá observar, de forma gráfica, los efectos de cada línea de código. Por ejemplo, se mostrarán animaciones al andar, golpear, etc.

Además, se permitirá seleccionar entre un lenguaje orientado a objetos, como Java, u otro estructurado, como C. El objetivo será que el usuario pueda comprobar las similitudes y diferencias entre distintos lenguajes y distintos modos de programación.
Los apuntes y niveles se han escrito teniendo en cuenta los aspectos que diferencian a estos lenguajes, de forma que sea posible resolverlo de cualquiera de las dos formas.

En esta memoria se realiza una introducción a las herramientas y tecnologías utilizadas, el funcionamiento del juego y como se ha implementado.

Índice de Contenidos:
Resumen
Índice
Índice de Tablas
Índice de Ilustraciones
1 Objetivos
2 Introducción
2.1 Aplicaciones móviles
2.2 Videojuegos
2.3 Aplicaciones existentes
3 Hardware utilizado
4 Tecnologías utilizadas
4.1 iOS
4.1.1 Arquitectura de iOS
4.2 Swift
4.3 Estructura de una aplicación
4.4 Entorno de desarrollo
5 Requisitos del sistema
5.1 Requisitos generales del Sistema
5.2 Requisitos funcionales del Sistema
5.2.1 Casos de uso
5.2.2 Requisitos de información
5.3 Requisitos no funcionales del Sistema
5.3.1 Requisitos de usabilidad
5.3.2 Requisitos de mantenibilidad
5.3.3 Requisitos de portabilidad
5.3.4 Requisitos de seguridad
6 Diseño
6.1 Clases
6.1.1 Clase Mapa
6.1.2 Clase Apuntes
6.1.3 Clase Historia
6.1.4 Clase Resumen
6.1.5 Clase CrearCodigo
6.1.6 Clase Resolver
6.1.7 Clase Variable
6.1.8 Clase Codigo
6.1.9 Clase Tablero
6.1.10 Clase Sprite
6.1.11 Clase ParserJson
6.1.12 Clase Keyboard
6.2 Interfaz gráfica
6.2.1 Interfaz Mapa
6.2.2 Interfaz Apuntes
6.2.3 Interfaz Historia
6.2.4 Interfaz Resumen
6.2.5 Interfaz CrearCodigo
6.2.6 Interfaz Resolver
6.3 Comportamiento del sistema
6.3.1 Arranque del sistema
6.3.2 Diálogo
6.3.3 Resolver nivel
6.3.4 Fin nivel
7 Implementación
7.1 Interfaz gráfica
7.1.1 UITableView
7.1.2 Teclado
7.1.3 UIWebView
7.1.4 Alerta
7.2 Niveles
7.2.1 JSON
7.2.2 Estructura mapa
7.2.3 Estructura nivel
7.3 Código
7.3.1 Crear código
7.4 Lectura JSON
7.5 Tablero y Sprites
7.5.1 Sprite
7.5.2 Tablero
7.6 Resolver
7.6.1 Leer líneas
7.7 Preferencias del usuario
8 Pruebas
8.1 Definición
8.2 Ejecución
8.2.1 Prueba 1
8.2.2 Prueba 2
8.2.3 Prueba 3
8.2.4 Prueba 4
8.2.5 Prueba 5
8.2.6 Prueba 6
8.2.7 Prueba 7
8.2.8 Prueba 8
8.2.9 Prueba 9
8.2.10 Prueba 10
9 Planificación
10 Conclusiones
10.1 Dificultades encontradas
10.2 Líneas futuras
10.3 Valoraciones finales
11 Bibliografía
12 Anexo
12.1 Glosario de términos
12.2 Manual de usuario
12.3 Swift
12.3.1 Básico
12.3.2 Control de flujo
12.3.3 Funciones y closures
12.3.4 Objetos y clases
12.3.5 Enumeración y estructuras
12.3.6 Protocolos y extensiones
12.3.7 Genéricos
12.3.8 Opcionales

En formato pdf. Contiene 125 páginas.

30 visualizaciones durante los últimos 90 días


4
0