PDF de programación - Implementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programación

Imágen de pdf Implementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programación

Implementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programacióngráfica de visualizaciones

Publicado el 3 de Julio del 2019
169 visualizaciones desde el 3 de Julio del 2019
10,3 MB
125 paginas
Creado hace 4a (06/06/2016)
Trabajo Fin de Grado
Grado en Ingeniería de las Tecnologías de
Telecomunicación



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

Autor: Javier López Aguirre

Tutor: Antonio J. Sierra Collado

Equation Chapter 1 Section 1

Dep. de Ingeniería Telemática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016









Trabajo Fin de Grado

Grado en Ingeniería de las Tecnologías de Telecomunicación



Implementación de un recurso docente sobre iOS

para el autoaprendizaje de un lenguaje de

programación



Autor:

Javier López Aguirre



Tutor:

Antonio J. Sierra Collado

Profesor titular



Dep. de Ingeniería Telemática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016



iii







Trabajo Fin de Grado: Implementación de un recurso docente sobre iOS para el autoaprendizaje de un

lenguaje de programación







Autor:

Javier López Aguirre

Tutor: Antonio J. Sierra Collado



El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:



Vocales:



Secretario:

Acuerdan otorgarle la calificación de:



Sevilla, 2016



v

El Secretario del Tribunal









Resumen

E

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



vii







Índice

Resumen

Índice

Índice de Tablas

Índice de Ilustraciones

1 Objetivos

2

Introducción
2.1
2.2
2.3

Aplicaciones móviles
Videojuegos
Aplicaciones existentes

3 Hardware utilizado

4

iOS

Arquitectura de iOS

Tecnologías utilizadas
4.1
4.1.1
4.2
4.3
4.4

Swift
Estructura de una aplicación
Entorno de desarrollo

5 Requisitos del sistema

5.1
5.2
5.2.1
5.2.2
5.3
5.3.1
5.3.2
5.3.3
5.3.4

Requisitos generales del Sistema
Requisitos funcionales del Sistema

Casos de uso
Requisitos de información

Requisitos no funcionales del Sistema

Requisitos de usabilidad
Requisitos de mantenibilidad
Requisitos de portabilidad
Requisitos de seguridad

6 Diseño

Clases

Clase Mapa
Clase Apuntes
Clase Historia
Clase Resumen
Clase CrearCodigo
Clase Resolver
Clase Variable
Clase Codigo
Clase Tablero

6.1
6.1.1
6.1.2
6.1.3
6.1.4
6.1.5
6.1.6
6.1.7
6.1.8
6.1.9
6.1.10 Clase Sprite
6.1.11 Clase ParserJson



ix

vii

ix

xii

xiii

1

11
11
11
11

13

15
15
15
20
20
23

31
31
32
33
36
37
37
37
38
38

40
40
40
41
41
42
42
43
44
44
45
46
46



7

8

Interfaz gráfica

Interfaz Mapa
Interfaz Apuntes
Interfaz Historia
Interfaz Resumen
Interfaz CrearCodigo
Interfaz Resolver

6.1.12 Clase Keyboard
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6
6.3
6.3.1
6.3.2
6.3.3
6.3.4

Arranque del sistema
Diálogo
Resolver nivel
Fin nivel

Comportamiento del sistema

Interfaz gráfica
UITableView
Teclado
UIWebView
Alerta
Niveles
JSON
Estructura mapa
Estructura nivel

Implementación
7.1
7.1.1
7.1.2
7.1.3
7.1.4
7.2
7.2.1
7.2.2
7.2.3
7.3
7.3.1
7.4
7.5
7.5.1
7.5.2
7.6
7.6.1
7.7

Sprite
Tablero

Resolver

Código

Crear código

Lectura JSON
Tablero y Sprites

Leer líneas

Preferencias del usuario

Definición
Ejecución

Pruebas
8.1
8.2
Prueba 1
8.2.1
Prueba 2
8.2.2
Prueba 3
8.2.3
Prueba 4
8.2.4
Prueba 5
8.2.5
Prueba 6
8.2.6
Prueba 7
8.2.7
Prueba 8
8.2.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



47
48
48
48
49
50
50
51
52
52
52
53
54

56
56
58
59
61
63
64
64
65
66
67
68
73
73
73
76
77
80
83

85
85
87
87
88
89
90
90
91
92
93
94
94

96

97
97
97
97

98

100
100
100
109
109
110
112
113
114
116
117
117

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
12.3.4 Objetos y clases
12.3.5
12.3.6 Protocolos y extensiones
12.3.7 Genéricos
12.3.8 Opcionales

Funciones y closures

Enumeración y estructuras



xi





Tabla 1. RG_01: Aplicación didáctica

Tabla 2. RG_02: Niveles

Tabla 3. RG_03: Información de ayuda

Tabla 4. RG_04: Resolver niveles

Tabla 5. RG_05: Reiniciar sistema

Tabla 6. RG_06: Seguridad

Tabla 7. RG_07: Portabilidad

Tabla 8. AC_01: Usuario

Tabla 9. CU_01: Mostrar ayuda

Tabla 10. CU_02: Iniciar nivel

Tabla 11. CU_03: Reiniciar preferencias compartidas

Tabla 12. CU_04: Reiniciar

Tabla 13. CU_05: Cambiar lenguaje

Tabla 14. RFI_01: Guardar datos del usuario

Tabla 15. RFI_02: Almacenar información de ayuda

Tabla 16. RFNU_01: Tutorial

Tabla 17. RNFU_02: Indicaciones de ayuda

Tabla 18. RNFM_01: Nuevos niveles

Tabla 19. RNFP_01: Compatibilidad con otros dispositivos

Tabla 20. RNFP_02: Adaptabilidad a los dispositivos

Tabla 21. RNFS_01: Privacidad del usuario

Tabla 22. Prueba 1

Tabla 23. Prueba 2

Tabla 24. Prueba 3

Tabla 25. Prueba 4

Tabla 26. Prueba 5

Tabla 27. Prueba 6

Tabla 28. Prueba 7

Tabla 29. Prueba 8

Tabla 30. Prueba 9

Tabla 31. Prueba 10



ÍNDICE DE TABLAS

31

31

31

32

32

32

32

34

34

34

35

35

36

36

36

37

37

38

38

38

39

85

85

85

86

86

86

86

87

87

87

ÍNDICE DE ILUSTRACIONES



Ilustración 1. Portátil Macbook

Ilustración 2. iPhone

Ilustración 3. Arquitectura iOS

Ilustración 4. Modelo-Vista-Controlador

Ilustración 5. Estructura de aplicación iOS

Ilustración 6. Procesamiento de eventos en una aplicación iOS

Ilustración 7. Cambios de estado en una aplicación iOS

Ilustración 8. Xcode

Ilustración 9. Creación de un proyecto (1)

Ilustración 10. Creación de un proyecto (2).

Ilustración 11. Informacion general proyecto

Ilustración 12. Interfaz principal Xcode

Ilustración 13. Añadir restricciones a botón

Ilustración 14. Ajuste horizontal y vertical

Ilustración 15. Ajuste botón sobre la pantalla

Ilustración 16. Ejecución aplicación simple

Ilustración 17. Outlet desde interfaz

Ilustración 18. Outlet en código.

Ilustración 19. Ventana de outlets

Ilustración 20. Conexión de una acción desde interfaz

Ilustración 21. Conexión de una acción en el código

Ilu
  • Links de descarga
http://lwp-l.com/pdf16218

Comentarios de: Implementación de un recurso docente sobre iOS para el autoaprendizaje de un lenguaje de programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad