DESARROLLO DE MÓDULOS PARA … Jose Mario... · Hugo, Anely, Patricia, Areli, Antonio C., Eduardo,...

228
SECRETARÍA DE EDUCACIÓN PUBLICA S.E.I.T. D.G.I.T. CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO cenidet DESARROLLO DE MÓDULOS PARA PRESENTACIÓN MULTIMODAL DE CONOCIMIENTOS Y ACCESO VÍA INTERNET PARA UN SISTEMA TUTOR T E S I S QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES P R E S E N T A: José Mario Martínez Castro Director de Tesis Dr. Rodolfo Abraham Pazos Rangel Co-Director de Tesis M.C. José Antonio Zárate Marceleño CUERNAVACA, MORELOS, MÉXICO JULIO DE 2004

Transcript of DESARROLLO DE MÓDULOS PARA … Jose Mario... · Hugo, Anely, Patricia, Areli, Antonio C., Eduardo,...

SECRETARÍA DEEDUCACIÓN

PUBLICA

S.E.I.T. D.G.I.T.

CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO

cenidet DESARROLLO DE MÓDULOS PARA PRESENTACIÓN

MULTIMODAL DE CONOCIMIENTOS Y ACCESO VÍA INTERNET PARA UN SISTEMA TUTOR

T E S I S

QUE PARA OBTENER EL GRADO

DE MAESTRO EN CIENCIAS EN

CIENCIAS COMPUTACIONALES

P R E S E N T A: José Mario Martínez Castro

Director de Tesis Dr. Rodolfo Abraham Pazos Rangel

Co-Director de Tesis M.C. José Antonio Zárate Marceleño

CUERNAVACA, MORELOS, MÉXICO JULIO DE 2004

DDeeddiiccaattoorriiaa

AA DDiiooss

AA mmiiss ppaaddrreess AAllee jjaannddrraa yy MMaarr iioo

AA mmiiss hheerrmmaannooss AAllee jjaannddrraa yy RRiiccaarrddoo

AA mmii ffaammii llaa KKaattyy ,, PPeeddrroo ,, OOsswwaallddoo ,,

KKaatt iiaa ,, WWaallddoo

AA mmiiss ccoommppaaññeerrooss yy aammiiggooss SShheeyyddii ,, RRoobbllee ,, GGiioovvaannnnii ,, FFeerrnnaannddoo ,, DDaavviidd,,

HHuuggoo ,, AAnnee llyy ,, PPaatt rr ii cc iiaa ,, AArree ll ii ,, AAnnttoonniioo CC.. ,, EEdduuaarrddoo ,, MMooii ssééss ,, II rr ii ss ,, CCllaauuddiiaa ,, VVíí cc ttoorr ,,

GGaabbrr iiee ll ,, AAnnttoonniioo ZZ.. ,, AAnnttoonniioo MM..

AA mmii eessppoossaa yy mmii hhii jjoo

II ttzz ii aa yy AAll ff rr eeddoo CCoonn aammoorr yy llaa pprroommeessaa ddee rreettrr iibbuuiirr ccoonn ccrreecceess llaa aatteenncciióónn qquuee nnoo lleess

hhee bbrr iinnddaaddoo

Agradecimientos

A las instituciones que hicieron posible el logro de esta meta: CENIDET, SEP, COSNET, CONACYT. UAEM, ITSCCh, UAGro, UAAca. A las personas que con su guía ayudaron a la culminación de este proyecto: Dr. Rodolfo Pazos Rangel M.C. José Antonio Zárate Marceleño Dr. Javier Ortiz Hernández M.C. Felipe de Jesús Alaniz Quezada M.C. Reynaldo Alanis Cantú

i

T a b l a d e C o n t e n i d o

Capitulo 1. Introducción 1

1.1. Antecedentes 2 1.1.1. Antecedentes para el desarrollo de la herramienta 3

1.1.1.1. Sistema Tutor para la Enseñanza de SQL 3 1.2. Objetivo de la tesis 8 1.3. Beneficios 9 1.4. Descripción del problema 10 1.5. Alcances 11 1.6. Descripción del documento 12

Capitulo 2. Marco teórico 13

2.1. Clasificación de los programas educativos 14 2.1.1. Bases de datos 15 2.1.2. Simuladores 15 2.1.3. Constructores 16 2.1.4. Programas herramientas 16 2.1.5. Programas tutores 16

2.2. Sistemas tutores 18 2.3. Estado del arte 21

2.3.1. Desarrollo de software educativo: análisis, diseño, programación

21

2.3.2. Course sequencing techniques for large-scale web-based education

22

2.3.3. ELM-ART: An Adaptive Versati le System for Web-based Instruction

26

2.3.4. Instructional Planning Approaches: from Tutoring towards Free Learning

29

2.3.5. Sistemas tutores inteligentes: una forma de conseguir sistemas hipermedia educativos

31

2.3.6. A knowledge-based tutoring system for SQL programming 33 2.3.7. Otros sistemas tutores 35

2.4. CGIs 35 2.5. Servicetes 37

Capitulo 3. Análisis del problema y propuesta de solución 40

3.1. Acceso Vía Internet 41 3.2. Otros Cursos 41 3.3. Normalización de la Base de Datos 42 3.4. Control de Alumnos y Cursos 43 3.5. Servicio de Exportar e Importar Cursos 43 3.6. Servicio de Respaldar y Restaurar la Base de Datos 44 3.7. Multimedia en la Presentación del Conocimiento 44 3.8. Sincronización de la Animación con el Sonido 45 3.9. Rapidez en la Transmisión de la Diapositiva 46

3.9.1. Degradación y Flujo de Sonido 46 3.10. Implementación de Ejemplos 47

ii

3.11. Evaluación 48 3.11.1. Algoritmo para la Aplicación de Exámenes 48 3.11.2. Algoritmo para la Selección de Preguntas 50 3.11.3. Calificación de Preguntas 51 3.11.4. Algoritmo para la Calificación por Átomos 52

3.12. Visualización de Diapositivas 54 3.13. Transferencia de Archivos 55 3.14. Configuración de los Módulos 55

Capitulo 4. Desarrollo y descripción de la herramienta 57

4.1. Arquitectura de la Herramienta 58 4.2. Módulo generador de cursos tutores (SGCT) 62

4.2.1. Clase AcercaDe 65 4.2.2. Clase ClienteTransf 65 4.2.3. Clase Configuracion 66 4.2.4. Clase CrearArchivoHTML 67 4.2.5. Clase CrearTablas 67 4.2.6. Clase LeerClave 68

4.3. Módulo administrador de cursos tutores (SACT) 69 4.3.1. Clase SACT 69 4.3.2. Clase AcercaDe 70 4.3.3. Clase AltaAlumnos 70 4.3.4. Clase AsignarAlumnosCurso 71 4.3.5. Clase AsignarAlumnos 72 4.3.6. Clase AsignarCursos 72 4.3.7. Clase BajaAlumnoCurso 73 4.3.8. Clase ClienteTransf 73 4.3.9. Clase Configuracion 74 4.3.10. Clase ConsultarAlumnos 75 4.3.11. Clase ConsultarCursos 75 4.3.12. Clase EliminarAlumno 76 4.3.13. Clase EliminarCurso 77 4.3.14. Clase ExportarCurso 77 4.3.15. Clase ImportarCurso 78 4.3.16. Clase Imprimir 79 4.3.17. Clase ImprimirAlumnos 80 4.3.18. Clase ImprimirAvances 80 4.3.19. Clase ImprimirCursos 81 4.3.20. Clase RespaldarBD 82 4.3.21. Clase RestaurarBD 82

4.4. Módulo interfaz del alumno 84 4.4.1. Servicete Acceso 84 4.4.2. Servicete ConfigAlumno1 85 4.4.3. Servicete ConfigAlumno2 85 4.4.4. Clase Cursos 86 4.4.5. Servicete Capítulos 86 4.4.6. Servicete Temas 87 4.4.7. Servicete Diapositivas 87 4.4.8. Servicete Ejemplos 88 4.4.9. Servicete Examen 88 4.4.10. Servicete Evaluación 89 4.4.11. Clase Encabezado 90

iii

4.4.12. Clase Conexión 90 4.5. Módulo de transferencia de archivos 91

4.5.1. Clase TransfArchivos 91 Capitulo 5. Pruebas de la Herramienta 92

5.1. Objetivo de las Pruebas 93 5.2. Descripción de los Alcances 93 5.3. Descripción del ambiente de pruebas 94 5.4. Cursos de Pruebas 95

5.4.1. Material del Curso Enseñanza de SQL 99 5.5. Pruebas y Resultados 102

5.5.1. Prueba 1. Creación de Cursos 103 5.5.2. Prueba 2. Planificación del Curso Enseñanza de SQL 107 5.5.3. Prueba 3. Copiado e Instalación de un Curso 109 5.5.4. Prueba 4. Acceso al Sistema a través de Internet 112 5.5.5. Prueba 5. Visualización de Diapositivas 114 5.5.6. Prueba 6. Visualización de Ejemplos 115 5.5.7. Prueba 7. Visualización de Exámenes 117

Capitulo 6. Conclusiones 120

6.1. Conclusiones generales 121 6.2. Resultados obtenidos 121 6.3. Trabajos futuros 122

Anexo 1 Manual de Usuario 124

A1.1. Sistema Generador de Cursos Tutores 125 A1.1.1. Cursos 125

A1.1.1.1. Nuevo 126 A1.1.1.2. Abrir 127 A1.1.1.3. Crear Tablas 128 A1.1.1.4. Salir 129

A1.1.2. Actualizar 129 A1.1.2.1. Agregar 129

A1.1.2.1.1. Capítulos 130 A1.1.2.1.2. Átomos de Información 130

A1.1.2.1.2.1. Átomos de Conocimiento 131 A1.1.2.1.2.1.1. Alta Diapositivas 132

A1.1.2.1.2.1.1.1. Abrir y Cerrar Diapositivas 133 A1.1.2.1.2.1.1.2. Diapositiva de Ejemplo o

Conocimiento 134

A1.1.2.1.2.2. Átomos de Evaluación 134 A1.1.2.1.2.2.1. Exámenes Teóricos 135 A1.1.2.1.2.2.2. Exámenes Prácticos 137

A1.1.2.2. Modificar 138 A1.1.2.2.1. Contenido del Curso 138

A1.1.2.3. Consultar 143 A1.1.2.3.1. Contenido del Curso 143

A1.1.2.4. Crear Plan de Estudio 146 A1.1.2.4.1. Establecer relaciones de precedencia por Átomos

de Información 147

iv

A1.1.2.4.2. Establecer relaciones de precedencia por Capítulos

147

A1.1.2.4.3. Crear Plan de Estudio 148 A1.1.3. Configuración 148

A1.1.3.1. Configuración 149 A1.1.3.2. Acerca de . . . 152

A1.2. Sistema Administrador de Cursos Tutores 153 A1.2.1. Cursos 153

A1.2.1.1. Consultar 154 A1.2.1.2. Respaldar 156 A1.2.1.3. Restaurar 158 A1.2.1.4. Exportar 160 A1.2.1.5. Importar 161 A1.2.1.6. Salir 163

A1.2.2. Alumnos 163 A1.2.2.1. Alta 164 A1.2.2.2. Consultar 165

A1.2.3. Informes 166 A1.2.3.1. Cursos 167 A1.2.3.2. Alumnos 168 A1.2.3.3. Avances 170

A1.2.4. Configuración 171 A1.2.4.1. Configuración 172 A1.2.4.2. Acerca de.. . 175

A1.3. Interfaz del Usuario 176 A1.3.1. Acceso al Sistema 176 A1.3.2. Cursos 177

A1.3.2.1. Datos de Configuración del Alumno 178 A1.3.3. Capítulos 179 A1.3.4. Temas 180 A1.3.5. Diapositivas 181

A1.3.5.1. Ejemplos 182 A1.3.5.2. Evaluación 183

A1.4. Transferencia de Archivos 187 Anexo 2 Diseño de la Base de Datos 189

A2.1. Descripción de la Base de Datos 190 Anexo 3 Diccionario de Datos 191 Anexo 4 Material del Curso Enseñanza de SQL 198 Anexo 5 Contenido de los Archivos 206 A5.1. Contenido del Archivo DatosCurso.txt 207 Referencias 211

v

L i s t a d e F i g u r a s Figura 1.1. Arquitectura del sistema tutor. 4 Figura 1.2. Grafo instruccional. 5 Figura 1.3. Visualización de diapositivas y exámenes. 6 Figura 1.4. Visualizador de ejercicios. 6 Figura 1.5. Módulo generador y administrador de cursos. 7 Figura 1.6. Base de datos. 8 Figura 2.1. División natural de los sistemas tutores. 19 Figura 2.2. Esquema de operación de un CGI. 36 Figura 3.1. Fragmento de la base de datos relacionado con la

Evaluación. 49

Figura 3.2. Algoritmo para la aplicación de exámenes. 50 Figura 3.3. Algoritmo para la selección de preguntas. 51 Figura 3.4. Asociación de átomos y preguntas. 52 Figura 3.5. Calificación del examen. 53 Figura 3.6. Calificación de átomos. 53 Figura 3.7. Esquema de repasos totales. 54 Figura 4.1. Modelo conceptual del sistema. 58 Figura 4.2. Distribución física. 59 Figura 4.3. Módulo generador de cursos. 60 Figura 4.4. Módulo administrador de cursos. 61 Figura 4.5. Módulo interfaz del alumno. 62 Figura 4.6. Esquema de la base de datos. 63 Figura 4.7. Métodos de la clase AcercaDe. 65 Figura 4.8. Método de la clase ClienteTransf. 66 Figura 4.9. Métodos de la clase Configuracion. 67 Figura 4.10. Método de la clase CrearArchivoHTML. 67 Figura 4.11. Métodos de la clase CrearTablas. 68 Figura 4.12. Métodos de la clase LeerClave. 69 Figura 4.13. Métodos de la clase SACT. 69 Figura 4.14. Métodos de la clase AcercaDe. 70 Figura 4.15. Métodos de la clase AltaAlumnos. 71 Figura 4.16. Métodos de la clase AsignarAlumnosCurso. 72 Figura 4.17. Métodos de la clase AsignarAlumnos. 72 Figura 4.18. Métodos de la clase AsignarCursos. 73 Figura 4.19. Método de la clase BajaAlumnoCurso. 73 Figura 4.20. Método de la clase ClienteTransf. 74 Figura 4.21. Métodos de la clase Configuracion. 75 Figura 4.22. Métodos de la clase ConsultarAlumnos. 75 Figura 4.23. Métodos de la clase ConsultarCursos. 76 Figura 4.24. Método de la clase EliminarAlumno. 76 Figura 4.25. Métodos de la clase EliminarCurso. 77 Figura 4.26. Métodos de la clase ExportarCurso. 78 Figura 4.27. Métodos de la clase ImportarCurso. 79 Figura 4.28. Métodos de la clase Imprimir. 80 Figura 4.29. Métodos de la clase ImprimirAlumnos. 80

vi

Figura 4.30. Métodos de la clase ImprimirAvances. 81 Figura 4.31. Métodos de la clase ImprimirCursos. 81 Figura 4.32. Métodos de la clase RespaldarBD. 82 Figura 4.33. Métodos de la clase RestaurarBD. 84 Figura 4.34. Método del servicete Acceso. 84 Figura 4.35. Método del servicete ConfigAlumno1. 85 Figura 4.36. Método del servicete ConfigAlumno2. 85 Figura 4.37. Clase Cursos. 86 Figura 4.38. Método del servicete Capitulos. 86 Figura 4.39. Método del servicete Temas. 87 Figura 4.40. Métodos del servicete Diapositivas. 88 Figura 4.41. Método del servicete Ejemplos. 88 Figura 4.42. Métodos del servicete Examen. 89 Figura 4.43. Métodos del servicete Evaluacion. 90 Figura 4.44. Clase Encabezado. 90 Figura 4.45. Clase Conexión. 91 Figura 4.46. Métodos de la clase ServidorTransf. 91 Figura 5.1. Plan de estudios del curso Enseñanza de SQL 100 Figura 5.2. Preguntas teóricas y preguntas prácticas. 101 Figura 5.3. Asociación de átomos y preguntas. 102 Figura 5.4. Pantalla de captura para los datos de un curso nuevo. 104 Figura 5.5. Pantalla de captura de los datos del capítulo. 104 Figura 5.6. Pantalla de captura de los átomos de conocimiento. 105 Figura 5.7. Pantalla de captura de las diapositivas. 105 Figura 5.8. Consultar el curso creado. 106 Figura 5.9. Consulta de diapositivas asociadas al átomo. 106 Figura 5.10. Genera plan de estudios. 107 Figura 5.11. Establece relaciones de precedencia entre átomos. 108 Figura 5.12. Establece relaciones de precedencia entre capítulos. 108 Figura 5.13. Ventana exportar curso. 109 Figura 5.14. Contenido del archivo resp_sql.zip 110 Figura 5.15. Seleccionar el archivo que contiene el curso a importar. 111 Figura 5.16. Datos del curso a importar. 111 Figura 5.17. Ventana respaldo de la base de datos. 112 Figura 5.18. Acceso al sistema a través de Internet. 113 Figura 5.19. Acceso al sistema. 113 Figura 5.20. Visualización de diapositivas. 115 Figura 5.21. Diapositiva que contiene una consulta de ejemplo. 116 Figura 5.22. Resultados de la ejecución de la consulta. 117 Figura 5.23. Preguntas de la evaluación. 118 Figura 5.24. Resultados de la evaluación teórica. 119 Figura A1.1. Sistema generador de cursos. 125 Figura A1.2. Menú cursos. 126 Figura A1.3. Crear cursos nuevos. 126 Figura A1.4. Abrir cursos disponibles. 127 Figura A1.5. Clave de acceso. 127 Figura A1.6. Base de datos a generar. 128 Figura A1.7. Advertencia sobre borrado de datos. 128 Figura A1.8. Creación exitosa. 128 Figura A1.9. Menú actualizar. 129 Figura A1.10. Menú agregar. 130

vii

Figura A1.11. Ventana crear capítulo. 130 Figura A1.12. Seleccionar capítulo. 131 Figura A1.13. Ventana crear átomo de información. 131 Figura A1.14. Ventana crear átomo de conocimiento. 132 Figura A1.15. Ventana alta diapositivas. 133 Figura A1.16. Ventana seleccionar diapositiva. 133 Figura A1.17. Ventana alta diapositivas. 134 Figura A1.18. Seleccionar evaluación. 135 Figura A1.19. Crear átomo de evaluación teórica. 135 Figura A1.20. Crear evaluación teórica. 136 Figura A1.21. Asociar átomos de conocimiento a la pregunta. 136 Figura A1.22. Crear átomo de evaluación práctica. 137 Figura A1.23. Crear examen práctico. 137 Figura A1.24. Asociar átomos de conocimiento a la pregunta. 138 Figura A1.25. Menú actualizar (opción modificar). 138 Figura A1.26. Menú modificar (opción contenido del curso). 139 Figura A1.27. Ventana tabla de contenido. 140 Figura A1.28. Información del átomo. 141 Figura A1.29. Ventana consultar diapositivas. 141 Figura A1.30. Predecesores del átomo. 142 Figura A1.31. Advertencia de eliminación. 142 Figura A1.32. Advertencia de modificación. 142 Figura A1.33. Menú consultar. 143 Figura A1.34. Ventana tabla de contenido. 143 Figura A1.35. Ventana capítulo. 144 Figura A1.36. Ventana tabla de contenido. 144 Figura A1.37. Consultar diapositivas. 145 Figura A1.38. Predecesores del átomo de información seleccionado. 145 Figura A1.39. Menú actualizar (opción crear plan estudios). 146 Figura A1.40. Ventana genera plan de estudios. 146 Figura A1.41. Establecer relaciones de precedencia entre átomos de

información por capítulo. 147

Figura A1.42. Establecer relaciones de precedencia entre los capítulos del curso.

148

Figura A1.43. Menú configuración. 149 Figura A1.44. Menú configuración (opción configuración). 149 Figura A1.45. Configuración del sistema - usuario. 150 Figura A1.46. Configuración del sistema - servidor. 150 Figura A1.47. Configuración del sistema - base de datos. 151 Figura A1.48. Configuración del sistema - visualizador. 151 Figura A1.49. Archivo de configuración del sistema. 152 Figura A1.50. Ventana acerca de.. . 152 Figura A1.51. Sistema administrador de cursos. 153 Figura A1.52. Menú cursos. 154 Figura A1.53. Menú cursos (opción consultar). 154 Figura A1.54. Ventana consultar cursos. 155 Figura A1.54. Confirmación de baja. 155 Figura A1.55. Ventana asignar alumnos. 156 Figura A1.56. Menú cursos (opción respaldar). 156 Figura A1.57. Ventana respaldar base de datos. 157 Figura A1.58. Ventana guardar. 157 Figura A1.59. Menú cursos (opción restaurar). 158 Figura A1.60. Ventana restaurar base de datos. 158

viii

Figura A1.61. Ventana abrir archivo. 159 Figura A1.62. Ventana restaurar base de datos. 159 Figura A1.63. Menú cursos (opción exportar). 160 Figura A1.64. Ventana exportar curso. 160 Figura A1.65. Ventana guardar. 161 Figura A1.66. Menú cursos (opción importar). 161 Figura A1.67. Ventana importar curso. 162 Figura A1.68. Ventana abrir archivo. 162 Figura A1.69. Ventana importar curso. 162 Figura A1.70. Menú cursos (opción salir) . 163 Figura A1.71. Menú alumnos. 163 Figura A1.72. Menú alumnos (opción alta). 164 Figura A1.73. Ventana alta de alumnos. 164 Figura A1.74. Menú alumnos (opción consultar). 165 Figura A1.75. Ventana consultar alumnos. 165 Figura A1.76. Confirmación de baja. 166 Figura A1.77. Ventana asignar cursos. 166 Figura A1.78. Menú informes. 167 Figura A1.79. Menú informes (opción cursos). 167 Figura A1.80. Ventana reporte cursos. 168 Figura A1.81. Menú informes (opción alumnos). 169 Figura A1.82. Ventana reporte de alumnos. 169 Figura A1.83. Menú informes (opción avances). 170 Figura A1.84. Ventana imprimir avances. 170 Figura A1.85. Ventana reporte de avance de alumnos. 171 Figura A1.86. Menú configuración. 172 Figura A1.87. Menú configuración (opción configuración). 172 Figura A1.88. Configuración del sistema - usuario. 173 Figura A1.89. Configuración del sistema - servidor. 173 Figura A1.90. Configuración del sistema - base de datos. 174 Figura A1.91. Configuración del sistema - visualizador. 174 Figura A1.92. Archivo de configuración del sistema. 175 Figura A1.93. Ventana acerca de.. . 175 Figura A1.94. Acceso a la interfaz del alumno. 176 Figura A1.95. Cuenta incorrecta. 177 Figura A1.96. Clave incorrecta. 177 Figura A1.97. Página de cursos. 178 Figura A1.98. Configuración de los datos del alumno. 178 Figura A1.99. Página de capítulos. 179 Figura A1.100. Página de temas. 180 Figura A1.101. Página de diapositivas. 181 Figura A1.102. Ejemplos. 182 Figura A1.103. Resultados de la consulta. 183 Figura A1.104. Evaluación teórica. 184 Figura A1.105. Evaluación práctica. 185 Figura A1.106. Resultados de la evaluación teórica. 186 Figura A1.107. Resultados de la evaluación práctica. 187 Figura A1.108. Servicio de transferencia de archivos. 188 Figura A2.1. Diseño de la base de datos. 190 Figura A4.1. Inicio 199 Figura A4.2. Otras investigaciones 200

ix

Figura A4.3. Antecedentes 200 Figura A4.4. Estandarización SQL 201 Figura A4.5. Propósito del curso 201 Figura A4.6. Definición de bases de datos 202 Figura A4.7. Ejemplo 202 Figura A4.8. Tabla A 203 Figura A4.9. Tabla M 203 Figura A4.10. Tabla C 204 Figura A4.11. Relaciones 204 Figura A4.12. Definición de sistema administrador de base de datos 205

x

L i s t a d e T a b l a s Tabla 5.1. Estructura del curso Enseñanza de SQL. 95 Tabla 5.2. Estructura del curso Introducción al lenguaje Java. 97 Tabla 5.3. Estructura del curso Manual de HTML. 98 Tabla 5.4. Pruebas realizadas y alcances asociados 103

1

!"#$ %&'()*!"#$ %&'()*!"#$ %&'()*!"#$ %&'()* I n t r o d u c c i ó n

En este capítulo se describen aspectos generales del trabajo de investigación

desarrollado, antecedentes y objetivo de la tesis, beneficios a obtener con el uso de la

herramienta, descripción del problema, alcances del proyecto, y una breve descripción de la

estructura del presente documento.

2

1.1. Antecedentes

En los sistemas de enseñanza-aprendizaje se han desarrollado varias técnicas o

formas que pretenden eficientar este proceso. Para eso existe la llamada enseñanza tradicional,

donde en un aula un profesor imparte sus conocimientos a un grupo de alumnos. También está

la enseñanza en un sistema abierto, donde de forma semi-autodidacta el alumno estudia el

tema a tratar y periódicamente acude con el profesor para que le proporcione asesorías. Otra

de las formas es la autodidacta, donde el alumno estudia el tema por su cuenta y sólo acude

con el profesor para realizar una evaluación de conocimientos o examen; en este caso el

alumno autodidacta puede recurrir a varios métodos de estudio desde libros, apuntes y

referencias bibliográficas proporcionadas por el profesor, hasta los sistemas tutores

inteligentes.

Existen diversas definiciones y términos para nombrar a este tipo de sistemas, por

ejemplo en el Military Handbook (MIL-HDFK) 284 parte 3 y en el Military Standard (MIL-

STD)-1397D, el Software de Cursos Interactivo (Interactive Courseware, ICW) es el término

que se usa para denotar lo siguiente [HREF1, 1995] :

a) Un programa de computadora para controlar la instrucción del aprendiz

determinando el tiempo y el orden de la enseñanza. El aprendiz avanza a

través de la secuencia de eventos tomando decisiones y selecciones. La

instrucción avanza de acuerdo a las respuestas del aprendiz.

b) Un término para definir cualquier tipo de instrucción computarizada con la

característica de que el aprendiz responde a través de un dispositivo de

entrada. ICW puede ser parte integral de un sistema de instrucción basada en

computadora (Computer Based Instruction, CBI), instrucción asistida por

computadora (Computer Assisted Instruction, CAI) o un entrenamiento

basado en computadora (Computer Based Training, CBI).

Los sistemas de enseñanza basados en computadora se empezaron a desarrollar

desde hace 20 años, pero su uso fue limitado por dos razones principales: primero, estos

sistemas demandaban un equipo de cómputo muy grande para poder ejecutarlos, además de

3

tener un tiempo de respuesta muy lento; segundo, el número de científicos involucrados en

este campo era muy reducido, lo cual ha cambiado drásticamente.

Por razones históricas mucha de la investigación en el campo del software

educativo que involucra inteligencia artificial ha sido llamada “ICAI” (Intelligent Computer

Aided Instruction) que fue el resultado de la evolución de los “CAI” (Computer Aided

Instruction) normalmente utilizado por el uso de las computadoras en la educación. A mitad de

la década de los ochenta el nombre “ICAI” fue reemplazado por el uso de “ITS” (Intelligent

Tutoring Systems) [Wenger, 1987].

Inicialmente el control era asumido por el tutor (método prescriptivo). Más

recientemente se ha utilizado un método cooperativo entre el estudiante y el sistema. La

historia de los sistemas tutores inteligentes ha evolucionado al uso de múltiples estrategias de

enseñanza creando una arquitectura multiagente, en donde se considera que el aprendizaje en

un STI es un proceso constructivista que involucra diferentes partes y donde pueden utilizarse

diferentes estrategias de enseñanza.

Se considera que el primer sistema tutor se creó en los laboratorios de

investigación Bolt, Bernaek and Newman, Inc., en Cambridge, Massachusetts, por Jaime

Carbonell en 1970. Este sistema, llamado SCHOLAR, tenía el área de conocimiento de la

geografía de Sudamérica.

1.1.1. Antecedentes para el desarrollo de la herramienta

Se describe a continuación el trabajo previo que ha sido desarrollado en el

cenidet, como parte de la línea de investigación Sistemas Tutores.

1.1.1.1. Sistema Tutor para la Enseñanza de SQL [Ingram, 2001]

Este proyecto tiene como objetivo diseñar e implementar un sistema tutor para la

enseñanza del lenguaje de bases de datos SQL, con la finalidad de apoyar al proceso de

enseñanza-aprendizaje en instituciones de educación superior.

4

La arquitectura (Figura 1.1) consta de los siguientes componentes: módulo de

conocimiento, modelo del estudiante, módulo pedagógico, interfaz del alumno, y módulo

administrador y generador de cursos, se incluye también la base de datos donde está contenida

la información.

DiapositivasEjercicios

Exámenes

Información de Alumnos

Grafo Instruccional

Componentes del Sistema TutorMódulo de Conocimiento

Interfaz del Alumno

Módulo Pedagógico

Planificador

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Modelo del Estudiante

Módulo de Control

Visualización de Ejercicios

Visualización de Diapositivas

Visualización de Exámenes

Módulo Administradory Generador de Cursos

Figura 1.1. Arquitectura del sistema tutor.

El módulo del conocimiento está formado por una base de conocimientos. La

estructura de datos que se utiliza en el diseño de ésta es la de un grafo instruccional (Figura

1.2). Cada nodo del grafo representa un átomo de información o un punto de evaluación, y las

aristas representan las relaciones de precedencia que existen entre ellos. Se define el átomo de

información, como un conjunto de conocimientos (conceptos) y ejercicios tales que, para el

propósito de la enseñanza se considera como una unidad, la cual no es conveniente subdividir.

5

Grafo Instruccional

Atomo de información (conceptos y ejercicios)

Puntos de evaluación (exámenes)

Figura 1.2. Grafo instruccional.

El modelo del estudiante basa su operación en el proceso de evaluación por medio

de exámenes, con los que se evalúa el nivel del conocimiento del estudiante. Las preguntas del

examen están asociadas a una serie de átomos de información, asignando una calificación al

átomo de información relacionada con la pregunta correspondiente. Dicha calificación

representa el grado de conocimiento del estudiante.

Los átomos que tengan una baja calificación son tomados en cuenta al momento

de generar un nuevo plan de enseñanza. Las reglas de precedencia son utilizadas para

condicionar el avance del usuario entre los átomos de información, además de proporcionar la

secuencia de presentación de los temas propuestos en el curso.

El módulo pedagógico usa el método overlay como estrategia de enseñanza para

transmitir el conocimiento. Con base en el modelo del estudiante el planificador realiza un

análisis que permite generar el nuevo plan de enseñanza, de tal forma que el proceso de

enseñanza se realice con éxito.

6

Interfaz del Alumno: Visualización de Diapositivasy Exámenes

DiapositivasEjerciciosExámenes

Información de Alumnos

Grafo Instruccional

Módulo de Conocimiento

Interfaz del Alumno

Modelo del Estudiante

Módulo de Control

Visualización de Ejercicios

Visualización de Diapositivas

Visualización de Exámenes

Figura 1.3. Visualización de diapositivas y exámenes

La interfaz del alumno está dividida en dos secciones: la visualización de

diapositivas y exámenes (Figura 1.3), y la visualización de ejercicios (Figura 1.4). La primera

muestra el contenido del curso y exámenes, y la segunda presenta los ejercicios donde el

usuario introduce instrucciones de SQL.

DiapositivasEjercicios

Exámenes

Información de Alumnos

Grafo Instruccional

Interfaz del Alumno: Visualización de Ejercicios

Módulo de Conocimiento

Interfaz del Alumno

Visualización deEjercicios

Figura 1.4. Visualizador de ejercicios.

7

El módulo administrador y generador de cursos (Figura 1.5) inicia su operación

desde el momento de dar de alta el contenido del curso tutorial en la base de conocimientos,

estableciendo las relaciones de precedencia de cada uno de los átomos de información y

puntos de evaluación, estableciendo un plan inicial de enseñanza.

Este plan inicial se modifica automáticamente adaptándolo al nivel y ritmo de

aprendizaje del estudiante, sobre la base de los resultados obtenidos de las evaluaciones y al

seguimiento del grafo instruccional. Esto se realiza de forma recurrente cada vez que el

estudiante es evaluado.

Módulo Generador y Administrador de Cursos

Base de Datos del SistemaTutor

Capítulos del curso

Atomos de información

Exámenes

Ejercicios

Alumnos del curso Grafo Instruccional

Módulo Generador y Administrador de Cursos

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

ODBC - JDBC

ACCES

Figura 1.5. Módulo generador y administrador de cursos.

La base de datos (Figura 1.6) es finalmente donde se encuentra la información

referente al curso (diapositivas, ejercicios, exámenes), la información referente al avance de

los alumnos, y el grafo instruccional.

8

DiapositivasEjercicios

ExámenesInformación de

AlumnosGrafo Instruccional

Figura 1.6. Base de datos.

Dentro de las limitaciones del proyecto se encuentran las siguientes:

• La presentación del material se realiza basada en láminas de Microsoft PowerPoint.

• Se usa Microsoft Access como sistema manejador de bases de datos.

• Está orientado al manejo por parte de sólo un usuario, y su acceso está limitado a la

plataforma Windows.

• No se emplea multimedia en el material del curso.

1.2. Objetivo de la tesis

El objetivo consiste en la implementación de módulos que doten a la herramienta

para el desarrollo de sistemas tutores (ST) de mayores capacidades tales como la presentación

multimodal de conocimiento, dotar de la flexibilidad del Internet como medio de

comunicación entre el alumno y el ST, incluir la enseñanza de cursos de diversos temas, así

como la administración en forma remota de los cursos.

9

El sistema debe probarse con la construcción de un tutor para la enseñanza del

lenguaje de consultas SQL (Leguaje de Consulta Estructurado, por las siglas de Structured

Query Language) tanto en la parte teórica como práctica.

1.3. Beneficios

Los beneficios que recibirá el estudiante en el uso de este tipo de sistemas tutores,

se pueden dividir en dos grupos: los referentes directamente al proceso de aprendizaje y los

que tienen relación con el uso del sistema.

Por el lado de los beneficios asociados con el proceso de aprendizaje, podemos

destacar los siguientes: el uso de diversos medios para la presentación del conocimiento, tales

como texto, audio e imágenes, con lo cual se aprovecha la capacidad de los diferentes medios

para obtener información por parte del estudiante [Klausmeier & Goodwin, 1997]. Otros

beneficios son la adaptabilidad y flexibilidad del sistema a las capacidades y ritmo de

aprendizaje del estudiante.

Relacionados con el uso del sistema podemos mencionar lo siguiente: el uso de

Internet da la posibilidad de ingresar al sistema desde cualquier parte del mundo, ya que donde

exista una computadora y una conexión a Internet es posible utilizarlo.

Respecto a su versión inmediata anterior, este sistema tutor contará con las

siguientes ventajas: la inclusión del audio e imágenes en las presentaciones, el cambio en la

interfaz desarrollada bajo ambiente Windows para ser accesible desde Internet, y la

posibilidad de acceso a mayor cantidad de estudiantes, ya que la versión anterior fue diseñada

para atender a un solo alumno.

Dentro de la línea de investigación, en versiones posteriores a esta herramienta, el

sistema podrá ser usado en una primera etapa como auxiliar en la enseñanza de diversas

asignaturas, y posteriormente como el principal medio de estudio en las áreas de educación a

distancia.

10

1.4. Descripción del problema

El presente trabajo se basa en la introducción de mejoras a la interfaz de la

herramienta para el desarrollo de sistemas tutores, de tal forma que facilite el aprendizaje al

alumno/usuario del sistema.

Es posible dividir en tres grupos la problemática encontrada para el desarrollo y

diseño de este proyecto: el primer grupo se refiere al acceso al sistema, el segundo a la

información del curso, y el tercero a la reestructuración de la base de datos de control y de

conocimiento.

Respecto al acceso al sistema, la interfaz del usuario se encontraba desarrollada

bajo ambiente Windows y se modificó para ser accesible mediante Internet, con el propósito

de dotar al sistema de las ventajas que ofrece el Internet, por lo que fue necesario replantear la

operación del sistema tutor en cuanto a la forma de acceso a la base de conocimientos, el

control del programa de estudios, además de la implementación de un esquema multiusuario,

lo que permitirá el acceso a una mayor cantidad de usuarios.

Existían implementados en el sistema tutor ejemplos que están directamente

relacionados con el SiMBaDD para Windows, lo que limitaba la cantidad de instrucciones que

era posible ejecutar, por lo que dichos ejercicios tuvieron que ser implementados con otro

sistema manejador de bases de datos que pudiera ser utilizado en Internet.

En cuanto a la información del curso podemos destacar la inclusión de diversos

medios para la presentación del conocimiento, tales como diapositivas de PowerPoint, sonido,

e imágenes. También existe el problema de la transmisión de forma eficiente de la

información contenida en la base de datos, además de la sincronización del sonido con las

imágenes y diapositivas a desplegar. La sincronización se refiere a la asociación de las

imágenes con el audio, además de hacer coincidir las imágenes desplegadas con la explicación

que le corresponde.

La base de datos de conocimiento, solo estaba diseñada para un curso por lo que se

modificó con el fin de soportar una cantidad indefinida de cursos, así como la asignación de

más de un curso a cada alumno. Por lo que respecta a la base de datos de control, no estaba

11

diseñada para ser utilizada en un ambiente multiusuario, por lo que fueron necesarios cambios

en su estructura para poder llevar el control de los programas de estudio de más de un alumno

a la vez.

1.5. Alcances

La herramienta desarrollada en el proyecto de investigación cubre los siguientes

puntos:

• Acceso al sistema tutor a través de Internet.

• Módulo Interfaz del Usuario.

• Acceso al Sistema.- Validación de las cuentas y claves de acceso de

los alumnos.

• Visualización de diapositivas.- Presentación multimodal del

conocimiento (sonido e imágenes), y sincronización del sonido con las

imágenes y diapositivas a desplegar.

• Visualización de ejemplos.- Adecuación de los ejemplos del sistema

tutor anterior a la nueva forma de acceso.

• Visualización de exámenes.- Evaluación de los exámenes teóricos y

prácticos.

• Módulo Generador.- Se utilizaron los módulos creados en el sistema tutor

anterior, adecuándolos para su interacción con la nueva arquitectura.

• Módulo Generador de Cursos, para la creación del curso.

• Módulo Pedagógico, para la planificación del curso.

• Módulo del Estudiante, para la evaluación del curso.

12

• Reestructuración de la base de datos anterior con objeto de incluir los archivos

de sonido e imágenes, crear otros cursos de diversos temas, y acceder a la

información vía Internet.

• Módulo de Administración.- Instalación y copiado de los cursos, realización de

informes, administración de alumnos, y respaldo y restauración de la base de

datos.

• Módulo de Transferencia de Archivos.- Auxiliar en el manejo de archivos al

servidor para la instalación de cursos y restauración de la base de datos.

• Debido a las limitaciones de los medios de comunicación (ancho de banda),

esta versión de la herramienta no se pretende instalar en un servidor al que

puedan acceder una gran cantidad de usuarios simultáneamente desde cualquier

parte del país, por lo cual se recomienda utilizarlo en servidores de páginas

Web para Intranet o con un número limitado de usuarios.

1.6. Descripción del documento

El presente documento presenta en su segundo capítulo las bases teóricas que

sustentan este proyecto de tesis, la clasificación de los programas educativos, una descripción

de los sistemas tutores, el estado del arte, los antecedentes para el desarrollo de la herramienta,

y las tecnologías para el control de páginas Web interactivas: CGIs y servicetes (servlets).

En el tercer capítulo se presenta el planteamiento general del problema y su

propuesta de solución, además de la arquitectura del sistema.

El cuarto capítulo contiene una descripción de la herramienta desarrollada en este

trabajo de tesis, integrada por los módulos de generación de cursos, administración de cursos,

interfaz del alumno y transferencia de archivos.

Los objetivos y la descripción de las pruebas realizadas a la herramienta están

descritos en el quinto capítulo.

El sexto capítulo contiene las conclusiones generales, los resultados obtenidos,

además de recomendaciones y propuestas de trabajos futuros.

13

!"#$ %&'()+!"#$ %&'()+!"#$ %&'()+!"#$ %&'()+ M a r c o T e ó r i c o

En este capítulo se presentan las bases teóricas que sustentan el proyecto de tesis,

la clasificación de los programas educativos, los sistemas tutores, el estado del arte, los

antecedentes del desarrollo de la herramienta, así como una descripción de los CGIs y los

servicetes.

14

2.1. Clasificación de los programas educativos

Stolurow en 1969 planteó cinco formas fundamentales de enseñanza que se

pueden clasificar como enseñanza asistida por computadora, a saber: (1) tutorial, (2) ejercicios

y práctica, (3) preguntas, (4) juegos y (5) solución de problemas. A esta lista se le agrega el

diálogo. En cualquiera de estas modalidades el estudiante se sienta frente a un aparato

registrador que constituye su "interfaz" o conexión a la computadora [Klausmeier & Goodwin,

1997].

Existen diversas clasificaciones de los programas didácticos dependiendo de las

características principales que se deseen destacar de tales programas. Pere Marqués [Marqués,

1996] realiza un compendio de algunas de las tipologías existentes basadas en diferentes

criterios.

Uno de estos criterios se basa en la consideración del tratamiento de los errores

que cometen los estudiantes. Un tipo lo constituyen los programas tutores directivos, que

hacen preguntas a los estudiantes y controlan en todo momento su actividad. Se producen

errores cuando la respuesta del alumno está en desacuerdo con la que la computadora tiene

como correcta. Otro tipo consiste de los programas no directivos, en los que la computadora

adopta el papel de un laboratorio o instrumento a disposición de la iniciativa de un alumno que

pregunta y tiene una libertad de acción sólo limitada por las normas del programa. La

computadora no juzga las acciones del alumno, se limita a procesar los datos que éste

introduce y a mostrar las consecuencias de sus acciones sobre un entorno.

Otra clasificación de los programas se enfoca en la característica de poder

modificar los contenidos del programa y distingue entre programas cerrados (que no

pueden modificarse) y programas abiertos, que proporcionan un esqueleto, o una estructura,

sobre la cual los alumnos y los profesores pueden añadir el contenido que les interese.

Sin embargo la clasificación que presenta categorías más claras es la que toma en

cuenta el grado de control del programa sobre la actividad de los alumnos y la estructura

de su algoritmo, que es la que se presenta a continuación:

1. Bases de Datos.

15

2. Simuladores.

3. Constructores.

4. Programas Herramienta.

5. Programas Tutores.

2.1.1. Bases de datos

Proporcionan datos organizados, en un entorno estático, según determinados

criterios y facilitan su exploración y consulta selectiva. Se pueden emplear en múltiples

actividades como por ejemplo: seleccionar datos relevantes para resolver problemas, analizar y

relacionar datos, extraer conclusiones y comprobar hipótesis.

Las bases de datos pueden tener diferentes estructuras según el propósito para el

que fueron diseñadas: jerárquica, existen unos elementos subordinantes de los que dependen

otros subordinados, tales como los organigramas; relacional, cuando están organizadas

mediante unas fichas o registros con una misma estructura y rango; o documental, si utilizan

descriptores y su finalidad es almacenar grandes volúmenes de información documental:

revistas, periódicos, etc.

2.1.2. Simuladores

Presentan un modelo o entorno dinámico (generalmente a través de gráficos o

animaciones interactivas) y facilitan a los alumnos su exploración y modificación, que pueden

realizar aprendizajes inductivos o deductivos mediante la observación y la manipulación de la

estructura subyacente. De esta manera pueden descubrir los elementos del modelo, sus

interrelaciones, y pueden tomar decisiones y adquirir experiencia directa de frente a

situaciones que frecuentemente resultarían difícilmente accesibles en la realidad (control de

una central nuclear, contracción del tiempo, pilotaje de un avión). También se pueden

considerar simulaciones ciertos videojuegos que facilitan el desarrollo de los reflejos, la

percepción visual y la coordinación psicomotríz en general, además de estimular la capacidad

de interpretación y de reacción ante un medio concreto.

16

2.1.3. Constructores

Son programas que tienen un entorno programable y facilitan a los usuarios unos

elementos simples con los cuales pueden construir elementos más complejos o entornos. De

esta manera potencian el aprendizaje heurístico y facilitan a los alumnos la construcción de sus

propios aprendizajes, que surgirán a través de la reflexión que realizarán al diseñar programas

y comprobar inmediatamente, cuando los ejecuten, la relevancia de sus ideas. Se pueden

distinguir dos tipos de constructores: constructores específicos, donde se les permite a los

alumnos la construcción de determinados entornos, modelos o estructuras, y de esta manera

avanzan en el conocimiento de una disciplina o entorno específico; y los lenguajes de

programación, tales como LOGO y PASCAL, que ofrecen unos "laboratorios simbólicos" en

los que se pueden construir un número ilimitado de entornos.

2.1.4. Programas herramienta

Son programas que proporcionan un entorno instrumental con el cual se facilita la

realización de ciertos trabajos generales de tratamiento de la información: escribir,

organizar, calcular, dibujar, transmitir y captar datos. Los más utilizados son programas de uso

general que provienen del mundo laboral y, por tanto, quedan fuera de la definición que se ha

dado de software educativo. Los programas más utilizados de este grupo son procesadores de

textos, gestores de bases de datos, hojas de cálculo, editores gráficos, programas de

comunicaciones, programas de experimentación asistida, lenguajes y sistemas de autor

2.1.5. Programas tutores

Son programas que en mayor o menor medida dirigen el trabajo de los

alumnos. Su objetivo se basa en que, a partir de unas informaciones y por medio de la

realización de ciertas actividades previstas de antemano, los estudiantes apliquen determinadas

capacidades y aprendan o refuercen unos conocimientos y/o habilidades. Cuando se limitan a

proponer ejercicios de refuerzo sin proporcionar explicaciones conceptuales previas se

denominan programas tutores de ejercitación, como es el caso de los programas de preguntas

(drill & practice test) y de los programas de adiestramiento psicomotor, que desarrollan la

coordinación neuromotríz en actividades relacionadas con el dibujo, la escritura y otras

habilidades psicomotrices.

17

Son programas basados en los planteamientos conductistas de la enseñanza que

comparan las respuestas de los alumnos con los patrones que tienen como correctos, guían el

aprendizaje de los estudiantes y facilitan la realización de prácticas más o menos rutinarias y

su evaluación; en algunos casos una evaluación negativa genera una nueva serie de ejercicios

de repaso. A partir de la estructura de su algoritmo, se distinguen cuatro categorías:

• Programas lineales que presentan al alumno una secuencia de información y/o

ejercicios (siempre la misma o determinada aleatoriamente) con independencia de la

corrección o incorrección de sus respuestas. Transforman a la computadora en una

máquina de enseñar transmisora de conocimientos y adiestradora de habilidades.

• Programas ramificados basados inicialmente también en modelos conductistas,

siguen recorridos pedagógicos diferentes según el juicio que hace la computadora

sobre la corrección de las respuestas de los alumnos o según su decisión de profundizar

más en ciertos temas. Ofrecen mayor interacción, más opciones, pero la organización

de la materia suele estar menos compartimentada que en los programas lineales y

exigen un esfuerzo más grande al alumno. Pertenecen a este grupo los programas

multinivel, que estructuran los contenidos en niveles de dificultad y prevén diversos

caminos, y los programas ramificados que establecen una diferenciación entre los

conceptos y las preguntas de profundización, que son opcionales.

• Entornos tutores. En general están inspirados en modelos pedagógicos cognitivistas,

y proporcionan a los alumnos una serie de herramientas de búsqueda y de proceso de la

información que pueden utilizar libremente para construir la respuesta a las preguntas

del programa. Este es el caso de los entornos de resolución de problemas (problem

solving), donde los estudiantes conocen parcialmente las informaciones necesarias para

su resolución y han de buscar la información que falta y aplicar reglas, leyes y

operaciones para encontrar la solución. En algunos casos, el programa no sólo

comprueba la corrección del resultado, sino que también toma en cuenta la idoneidad

del camino que se ha seguido en la resolución.

• Sistemas tutores expertos, como los Sistemas Tutores Inteligentes (Intelligent

Tutoring Systems), los que, elaborados con las técnicas de la Inteligencia Artificial y

18

teniendo en cuenta las teorías cognitivas sobre el aprendizaje, tienden a reproducir un

diálogo entre el programa y el estudiante, y pretenden comportarse como lo haría un

tutor humano: guían a los alumnos paso a paso en su proceso de aprendizaje, analizan

su estilo de aprender y sus errores y proporcionan en cada caso la explicación o

ejercicio más conveniente.

Inicialmente el control era asumido por el tutor (método prescriptivo). Más

recientemente se ha utilizado un método cooperativo entre el estudiante y el sistema. La

historia de los sistemas tutores inteligentes ha evolucionado al uso de múltiples estrategias de

enseñanza creando una arquitectura multiagente, en donde se considera que el aprendizaje en

un STI es un proceso constructivista que involucra diferentes partes y donde pueden utilizarse

diferentes estrategias de enseñanza.

Se considera que el primer sistema tutor se creó en los laboratorios de

investigación Bolt, Bernaek and Newman, Inc., en Cambridge, Massachusetts, por James

Carbonell en 1970. Este sistema, llamado SCHOLAR, tenía el área de conocimiento de la

geografía de Sudamérica. Este conocimiento era representado por medio de una red semántica,

cuyos nodos representan objetos y conceptos geográficos, que son organizados

jerárquicamente, por medio de las relaciones entre los diferentes nodos que conforman la red

semántica.

2.2. Sistemas Tutores

Para este proyecto se sigue la división natural de los componentes (Figura 2.1) que

permiten crear un ambiente de enseñanza-aprendizaje: módulo de conocimiento (dominio

experto), modelo del estudiante, módulo pedagógico (estrategias de comunicación) y la

interfaz con el usuario [Wenger, 1987]. Divisiones similares se han propuesto en [Hartley &

Sleeman, 1973], [Laubsh, 1975], [Burton & Brown, 1976] y [Carr y Goldstein, 1977].

19

Módulo deconocimiento

Modelo delestudiante

Módulo Pedagógico

Interfaz

Figura 2.1. División natural de los sistemas tutores.

El módulo de conocimiento contiene la representación del conocimiento del tema

que se pretende enseñar. Sus funciones principales son las siguientes:

• Actuar como la fuente de conocimiento que se desea enseñar, incluye la generación de

expresiones y respuestas.

• Servir como modelo para evaluar al estudiante.

• Proporcionar información a otros módulos.

El modelo del estudiante permite representar el estado del conocimiento del

estudiante. Sus funciones principales son las siguientes:

• Hacer hipótesis acerca de lo que sabe y lo que no sabe.

• Hacer hipótesis de las capacidades, preferencias cognitivas (compresión,

memorización y razonamiento), etc.

• Sincronizar las actividades entre los otros módulos [Frasson et. Al., 1996].

El módulo pedagógico normalmente puede poner en práctica una o varias

estrategias de enseñanza:

20

• Se hace cargo de dividir el plan de enseñanza en submetas para dirigir al estudiante en

forma individualizada.

• Indica el cómo y el cuánto (dosificación de los contenidos), normalmente guardando

registro de las decisiones estratégicas generales y de los resultados del historial del

estudiante.

La interfaz procesa el flujo de comunicación de adentro hacia fuera y viceversa.

Esta tarea no es sencilla en este tipo de sistemas, ya que el canal de comunicación entre el

sistema y el estudiante normalmente es muy estrecho.

Los límites entre estos distintos módulos no están bien definidos; sin embargo,

reflejan un nivel de abstracción útil que constituyen una división tradicional en el campo

[Wenger, 1987].

Los investigadores han estudiado la posibilidad de construir representaciones

inteligentes del dominio, de la instrucción y del estudiante para una gran variedad de

dominios; sin embargo, actualmente el número de sistemas en uso en la industria, academia y

gobierno es relativamente pequeño. Bloom [Bloom, 1996] propone que esto se debe al

problema de transferencia de tecnología.

Una tarea importante en la integración de la tecnología de información en la

educación es el aumento de su papel para preservar la herencia cultural, mejorar la

transferencia de conocimiento y la integración social. Esto puede usarse al menos por tres

razones [Boy, 1996]:

• Desarrollar un aprendizaje autónomo e individual.

• Borrar barreras causadas por el aislamiento social y geográfico.

• Abrir los sistemas educativos al mundo externo y eliminar los recursos locales.

Respecto a la interfaz, su evolución ha sido desde los libros tradicionales (papel),

libros electrónicos, que fueron los precursores del libro de texto electrónico (ET); los primeros

ETs usaban costosas computadoras y representaban solamente texto, las pantallas CRT (tubo

21

de rayos catódicos) añadieron gráficas, las computadoras personales los hicieron baratos y

accesibles, la tecnología multimedia añadió la posibilidad de presentar sonido, video y

animación. Y ahora Internet da la posibilidad de acceso a distancia.

Tradicionalmente los sistemas de enseñanza basados en Internet proporcionan un

alto grado de flexibilidad, que permite que el usuario obtenga la información que él quiera en

el orden que prefiera navegando a través de la red intuitivamente. Por lo que si el dominio es

muy grande, el usuario se puede “perder” en la gran cantidad de información disponible.

Desafortunadamente son estáticos, es decir, no dependen de las características del usuario ni

del conocimiento adquirido.

2.3. Estado del Arte

En esta revisión encontraremos diversos puntos de vista acerca de cómo atacar el

problema de la enseñanza a través de los sistemas tutores, tanto de instituciones nacionales

como extranjeras.

2.3.1. Desarrollo de Software Educativo: Análisis, Diseño, Programación [Uriarte, 1997].

Trabajo planteado como desarrollo de tesis de maestría en ciencias de la

computación en la Universidad Autónoma de Sinaloa.

Existe sólo una breve descripción del proyecto, donde indica el tema de tesis

“Sistema Tutor Inteligente para la Enseñanza de SQL”, y plantea como línea de investigación

específica la problemática de la generación automática del modelo del estudiante.

Dado que no existe mayor información acerca del proyecto, no es posible

determinar la metodología en la implementación. Se revisó una aplicación de ejemplo que no

cuenta con sonido, y no puede ser utilizado por más de un alumno a la vez. En términos

generales consiste en un curso, a diferencia del trabajo desarrollado en el presente proyecto

que es una herramienta para hacer tutores, incluyendo imagen y sonido para la presentación

del conocimiento, además de ser accesible a varios alumnos en forma simultánea.

22

2.3.2. Course sequencing techniques for large-scale web-based education [Brusilovsky & Vassileva, 2003]

Artículo presentado en la revista internacional de educación continua en ingeniería

y aprendizaje permanente, en el año de 2003.

Los autores del artículo aseguran que la tecnología de ordenamiento

(planificación) desarrollada en el campo de los sistemas tutores inteligentes (STIs) puede

utilizarse en la educación basada en la Web a gran escala. Para lo cual describen dos modelos:

la generación dinámica de cursos (DCG - dynamic course generation) y el concepto basado

en el sistema de mantenimiento de cursos (CoCoA – concept - based courseware analysis).

Se describe, a forma de introducción, la forma en que los STIs realizan la

presentación del conocimiento: como una red de conceptos, donde cada concepto es una

pequeña parte del conocimiento; la forma que tiene esos sistemas de realizar el seguimiento en

el nivel de aprendizaje del alumno es ponderando las diferencias entre el modelo del domino,

establecido por el diseñador, y el modelo del estudiante, generado durante en la ejecución del

curso, esto es, mediante el mecanismo de overlay (superposición).

Utilizando este modelo y alguna estrategia de enseñanza el motor de ordenamiento

(planificador) decide cual de las técnicas de enseñanza almacenadas en la base de datos es la

mejor para que el estudiante obtenga el nivel de conocimiento adecuado. La mayoría de los

STIs realizan el ordenamiento de sólo un tipo de enseñanza, los más avanzados permiten el

ordenamiento de varios tipos de enseñanza como la presentación y los ejemplos

Aun cuando en el artículo se dice que el ordenamiento es una tecnología excelente

la para la educación a distancia basada en la Web a gran escala, existen sin embargo

diferencias entre los sistemas utilizados para la educación basada en a Web a gran escala y los

sistemas al nivel de investigación. Si se considera que un solo proveedor de cursos opera

decenas o cientos de cursos que pueden ser utilizados por miles de estudiantes, el problema

más grande para el proveedor sería el mantenimiento.

Para evitar los problemas de instalación, soporte y capacitación los proveedores

escogen un solo administrador de cursos, los cuales cubren sus principales necesidades, desde

23

proporcionar el material del curso, foros de discusión hasta la generación de reportes. Sin

embargo no cuentan con el ordenamiento dinámico.

Afirman los autores que es posible modificar la estructura estática tradicional,

derivando en un modelo que permita la no-predefinición de esta estructura y construirla “al

vuelo”, esto es, al tiempo en que el estudiante realiza la actividad del aprendizaje. Tal

aseveración la demuestran describiendo tres modelos: el sistema del siguiente paso, la

generación de cursos adaptativos y la generación dinámica de cursos.

El primero se basa en la evaluación de posibles opciones para continuar la

actividad de aprendizaje y seleccionar la mejor, verificando que la opción seleccionada sea la

predefinida por el autor, en caso contrario, si no es la apropiada se dispara un mecanismo de

reporte de posibles problemas.

El segundo se basa en la reusabilidad de los componentes del curso, tomados como

objetos contenidos en la base de datos, mismos que posibilidad la creación de cursos

personalizados al producir varias versiones del mismo curso a partir de los mismos objetos de

aprendizaje, pero dirigidos a diferentes audiencias. Lo descrito brinda el contexto para la idea

la generación de cursos adaptativos, mismos que implican ventajas como: definir el nivel del

curso para un grupo homogéneo de estudiantes mediante la determinación de los mismos

objetivos de aprendizaje e iniciando en el mismo nivel de conocimiento; otra ventaja se

obtiene cuando los estudiantes del mismo curso se comunican y comparten conocimientos; y

por último ya que el curso generado es estático puede ser administrado por un sistema

administrador de cursos regular.

El tercero de los modelos, difiere del anterior de tal forma que el sistema observa

y adapta el curso generado al progreso del estudiante, esto es, si el estudiante a lo largo del

curso no cumple las expectativas, el curso es re-planeado. El mayor beneficio de esto es la

gran adaptabilidad y personalización de los cursos sobre los estudiantes. Además los

estudiantes pueden ser de diferentes niveles de conocimiento y con diferentes metas

establecidas.

24

DCG – Generación dinámica de cursos

Este sistema genera cursos individualizados basándose en la meta de aprendizaje

establecida para cada estudiante, esta meta puede ser un tema en específico, un concepto e

inclusive todo el curso, también se toma en cuenta el conocimiento que el estudiante ya tiene

sobre el tema, el cual se obtiene mediante una preevaluación.

La arquitectura del DCG separa la estructura de conceptos del dominio del

material de instrucción y de las tareas pedagógicas. Utiliza la estructura de conceptos, la cual

es representada por medio de un conjunto de reglas, para generar el plan del curso; el

planificador tiene como tarea buscar la ruta que une los conceptos conocidos por el aprendiz y

la meta de aprendizaje.

La estructura del dominio contiene la estructura de temas y/o conceptos del

conocimiento a ser enseñado, representado por un grafo AND/OR, donde los nodos

representan los elementos del conocimiento (conceptos, temas, reglas); estas relaciones

pueden tener varios significados semánticos. A través del uso de prerrequisitos se genera una

estructura tipo curriculum que pude ser utilizada como una guía para definir la secuencia del

contenido.

El material de instrucción se clasifica conforme a su función pedagógica:

introducción, problema, explicación, ayuda, ejercicio, o prueba; también se clasifican con

respecto al medio utilizado: texto, imágenes, animación, video.

Para efectuar la presentación del material de instrucción el DCG cuenta con un

proceso planificador de la presentación, el cual decide cómo presentar el material al aprendiz.

Este proceso utiliza un grafo de tareas de instrucción, el cual expresa el conocimiento

pedagógico de cómo enseñar cada concepto.

De la misma forma como se representa el dominio del conocimiento las tareas de

instrucción se representan mediante un grafo AND/OR, donde los nodos representan tareas de

instrucción, y los enlaces representan la descomposición de las tareas en métodos. Así mismo

los enlaces AND representan enlaces a subtareas y los enlaces OR corresponden a métodos

alternativos para la realización de una tarea.

25

Se efectúan evaluaciones durante la presentación del curso al estudiante, si éste

contesta correctamente, significa que ha adquirido el conocimiento, por lo que no son

necesarios cambios al curso. Sin embargo, si el estudiante falla en la evaluación, será

necesario replanear el curso.,

La replaneación de curso puede llevarse a cabo, presentando una secuencia

alternativa del material de enseñanza o del método pedagógico utilizado para mostrar los

conceptos. Si el estudiante falla nuevamente el planificador genera una nueva secuencia de

conceptos dirigidos a alcanzar la meta de aprendizaje.

Este sistema fue implementado de 1995 a 1997, incluyó temas diversos de cursos

cómo: funcionalidad de un tostador eléctrico, teoría del jazz, diagnósticos de casos médicos,

capacitación en habilidades mecánicas (mecanografía). El equipo utilizado fue una

computadora IBM PC 486 bajo el sistema operativo MS-Windows. El planificador fue

implementado en lenguaje C++, la interfaz del estudiante se realizó en OpenScript, el material

de instrucción fue elaborado en ToolBook incluyendo gráficos avanzados y multimedia.

El planificador con la estructura del dominio del conocimiento y el modelo del

estudiante residió en un servidor, y los estudiantes descargaban el cliente junto con el plan del

curso y el material de instrucción, el cual eran páginas de Web.

CoCoA – Análisis y chequeo de consistencias de cursos estáticos basados en la Web

El articulo continua con la descripción de un segundo modelo de aplicación, el

cual puede verificar la consistencia y calidad de un curso en cualquier momento además de

realizas algunas funciones de apoyo a los desarrolladores del curso, este sistema trabaja

analizando de forma inversa la secuencia del curso estático.

Los conceptos de curso se encuentran conectados de forma jerárquica en cierta

forma, aunque existen mas de un nodo raíz, los cuales pueden compartir nodos entre las

jerarquías. Estos nodos se enlazan estableciendo relaciones tipo padre-hijo, con lo cual se

conforma el dominio del conocimiento, el cual se utiliza para ordenar del contenido del curso,

26

con el fin de conectar los elementos del material e aprendizaje denominado temas de

aprendizaje.

Se utiliza el concepto de prerrequisitos para asociar las operaciones de instrucción

con dos conjuntos de conceptos: prerrequisitos y conceptos de resultado. Del mismo modo

estos pueden ser de diferentes tipos: prerrequisitos ligeros, prerrequisitos fuertes, resultados

ligeros y resultados fuertes.

Algunas de las operaciones que realiza el sistema como apoyo a los

desarrolladores del curso son: verificar los prerrequisitos, encontrar fallas en el contenido,

consolidar las presentaciones, selección de preguntas, guía para el diseño de preguntas, enlazar

las presentaciones con los ejemplos y ejercicios adecuados, comparar las metas del diseño del

curso contra las del curso real, ajustar la presentación y, controlar la dificultad de los ejemplos

y ejercicios.

Respecto al desarrollo del sistema, éste se realizó en lenguaje Java. Además, se

encontró un problema durante el uso del sistema, el cual consiste en indicar al estudiante los

posibles errores o inconsistencias que detectó el sistema, algunas graves otras no tanto, para

indicar el nivel en el error encontrado se implementó un código de colores que indican la

gravedad del error.

Se indica en rojo un error grave y en verde un error tolerable. Queda a decisión del

estudiante el tomar o no en cuenta los errores indicados por el sistema.

2.3.3. ELM-ART: An Adaptive Versatile System for Web-based Instruction [Webber & Brusilovsky, 2001]

Este artículo fue presentado en la revista internacional de Inteligencia Artificial en

Educación en el año 2001.

El artículo trata de los problemas encontrados al desarrollar un sistema de

aprendizaje inteligente y adaptativo que pude ser usado en al educación basada en la Web.

ELM-ART (Adaptive remote tutor) es un sistema educacional interactivo e inteligente que dar

soporte al aprendizaje del lenguaje de programación LISP, el sistema provee la totalidad del

material en línea en forma de un libro de texto interactivo y adaptativo. Este sistema

27

demuestra como algunos de sus componentes pueden implementarse en la Web y cómo

múltiples componentes pueden integrarse en un solo sistema.

Aunque originalmente ELM-ART se diseñó como un libro de texto, le fueron

añadidas nuevas características que no son posibles implementar en un libro de texto, esto es,

la interactividad y la inteligencia. El sistema está representado en forma de hipertexto, está

organizado como un árbol de secciones, capítulos, cada uno separado en una página de Web.

Además es posible visualizar el contenido del curso de forma secuencial, de forma jerárquica,

o por medio de un glosario de términos.

Sin embargo no es un libro de texto electrónico estático y tradicional, sus páginas

incluyen algunos tipos de actividades interactivas, por medio de enlaces interactivos a:

glosario de términos, evaluador de LISP, ejemplos, solución de problemas de ejemplo.

Además contiene preguntas simples y problemas a resolver, donde los usuarios pueden probar

su conocimiento, y el sistema de forma inmediatamente evalúa las respuestas y provee de

forma inmediata la retroalimentación correspondiente.

Se distinguen diferentes niveles de conocimiento dentro de los entornos de

aprendizaje inteligente, en orden ascendente: domino del conocimiento, razonamiento,

metaconocimiento, y conocimiento reflexivo.

El sistema ELM-ART trabaja principalmente con los dos niveles menores. El

dominio del conocimiento, conocimiento conceptual, consta de enunciados, funciones, y

símbolos que son necesarios para resolver problemas del dominio. El razonamiento tiene que

ver con el conocimiento procedimental donde se utiliza el dominio del conocimiento para

resolver problemas.

El dominio de conocimiento se representa por medio del modelo overlay

multicapas, donde existen diferentes estados para las páginas o unidades del curso, los estados

son: visitado, aprendido, inferido, conocido. Las unidades se actualizan en los estados

indicados según el avance del alumno durante el curso.

28

Otra de las facilidades que proporciona el sistema es la posibilidad que se le otorga

al alumno de colaborar en la creación del modelo del estudiante definido para cada aprendiz.

De esta forma el aprendiz proporciona su propia estimación del conocimiento.

Los estados del sistema se definen por medio del siguiente código de colores:

verde, significa que la página tiene conceptos que deben ser aprendidos; rojo, significa que la

página no está lista para ser visitada, ya que no se han cumplido los prerrequisitos; blanco, su

significado depende del tipo de página o unidad a visualizar, si las páginas son de ejercicios o

problemas significa que éstos fueron resueltos correctamente, en el caso de tratarse de una

página terminal significa que ya se ha visitado, y si se trata de una página de una lección,

sección o subsección significa que todas las páginas subordinadas ya fueron visitadas en su

totalidad; anaranjado, su significado también depende del tipo de página o unidad a

visualizar, en el caso de una página terminar significa que el sistema infirió que el

conocimiento ya es conocido por el aprendiz, en caso de tratarse de páginas de lecciones,

secciones o subsecciones significa que no han sido visitadas todas las páginas subordinadas, y

en el caso de páginas de ejercicios o problemas significa que éstos no han sido resueltos

exitosamente.

Aun cuando el código de colores ayude al estudiante a decidir sobre el contenido

del curso que visualizará, el aprendiz puede llegar a confundirse en el uso del curso, por lo que

el sistema implementó un enlace directo al siguiente tema, el cual es definido por el sistema

indicando cual es el siguiente tema que mejor se adecue a la meta actual de aprendizaje.

Con respecto a la forma de evaluación que se utiliza en el sistema ELM-ART, se

realiza por dos razones, la primera es proporcionar una retroalimentación inmediata ala

aprendiz acerca del resultado de su evaluación indicando las razones por la cual la respuesta es

equivocada, la segunda se refiere al mecanismo de asegurar que el usuario ha aprendido los

conceptos.

En términos de implementación se realiza a través de diferentes tipos de preguntas:

de opción corta si / no, de una sola opción, de múltiples respuestas a una pregunta, de

contestación directa, y de complementación.

29

Éstas preguntas se pueden asociar en grupos que definen la evaluación de una

unidad, además cada pregunta puede pertenecer a más de un grupo, por lo que si una pregunta

ya fue contestada correctamente en una evaluación ya no aparece en las otras. Existen tres

situaciones en las que una pregunta aparece en varios grupos de evaluaciones, la primera como

pregunta en la evaluación de los ejercicios o nuevos conceptos, la segunda como evaluación

extra al final de una sección o lección, y la tercera como evaluación introductoria de páginas

de unidades subordinadas de una página no terminal.

El sistema ELM-ART cuenta con áreas específicas para la interacción del aprendiz

con el profesor o con otros aprendices, esto se lleva a cabo a través de las herramientas de

comunicación con que cuenta el sistema, como son: mensajes vía la Web, correo electrónico,

sala de chat y listas de discusión.

2.3.4. Instructional Planning Approaches: from Tutoring towards Free Learning [Vassileva & Wasson, 1996]

El artículo fue publicado en las memorias de la EURO-AIED en Lisboa, Portugal

en 1996.

Los autores tratan en este artículo dos enfoques que existen para el control de la

planeación de la instrucción (“LOC” por sus siglas en inglés) en los sistemas de aprendizaje

basados en computadora.

Un enfoque (LOC/SYS) establece que es el diseñador del sistema quien debe

decidir lo que es necesario enseñar para que el aprendiz adquiera el conocimiento, tal y como

lo realizaría un profesor.

El otro enfoque (LOC/L) define que es el aprendiz quien debe participar en las

decisiones respecto al conocimiento a adquirir y a los mecanismos utilizados para tal fin, por

lo que establece que la computadora es solo un medio de enseñanza el cual debe ser neutral.

Generalmente las investigaciones realizadas se basan en uno de los dos extremos,

por un lado los sistemas tutores inteligentes determinan los eventos a ocurrir durante la

instrucción, por otro lado los sistemas que realizan negociaciones acerca de las metas a

30

alcanzar, y fomentan la colaboración entre los grupos de estudiantes como base para el

aprendizaje.

De tal forma que la planeación de la instrucción solo es útil en los casos en que el

desarrollo de un sistema educativo se incline por el enfoque LOC/SYS. Sin embargo lo que

actualmente se busca es un balance entre los dos enfoques con el objetivo de desarrollar

sistemas que arrojen mejores resultados, en cuando a aprendizaje se refiere.

La planeación de la instrucción tiene dos aspectos a tratar, uno tiene que ver con el

contenido del curso, y el otro con la forma de presentar ese contenido; esto es, con las metas

de aprendizaje y cómo llegar a esas metas definidas.

En el artículo también se presentan dos estrategias implementadas en los proyectos

denominados PEPE y TOBIE. Los cuales se describen a continuación.

En el proyecto denominado PEPE se utiliza la planificación del contenido y el

aprendizaje cognoscitivo para lograr las metas de aprendizaje establecidas para cada aprendiz.

Este proyecto fue implementado y probado en el lenguaje de programación LISP.

Básicamente el sistema desarrollado utiliza como principal estrategia la planeación

de reglas implementadas a través de prerrequisitos en cascada. El conocimiento se organiza a

través de conceptos que el estudiante debe aprender para posteriormente aplicar en la solución

de problemas, mismos que evalúan sus habilidades cognitivas.

La arquitectura del sistema se compone de: la base de conocimientos que identifica

los conceptos y sus relaciones (prerrequisitos, subconceptos, especializaciones, etc.), la base

de conocimiento de conceptos erróneos la cual guarda los errores mas comunes respecto a las

relaciones establecidas entre los conceptos, el modelo del estudiante que almacena lo que el

sistema cree que el estudiante entiende y lo que no endiente (a través del modelo overlay), el

historial de estudiante el cual contiene el conocimiento que el sistema cree que el estudiante

ha aprendido, el plan histórico donde se almacena las metas y planes que se han generado, y

por último la planeación del contenido que consta de tres fases: generación de metas,

generación del plan y monitoreo del plan.

31

Respecto del proyecto TOBIE, éste utiliza la planificación reactiva para la asesoría

y la tutoría de tal forma llevar a cabo el proceso de enseñanza.

El principal aspecto que se cubre con este proyecto es dotar al sistema de la

capacidad para cambiar las estrategias y metas de enseñanza, tal y como se realiza un profesor

durante una clase, modificando el contenido actual o seleccionando diferentes tipos de

enseñanza.

Sin embargo implementar este tipo de enseñanza es compleja y prácticamente

imposible, por lo que la solución es incorporar al sistema una descripción limitada de estos

diferentes tipos de enseñanza y dotar al sistema de la habilidad de detectar los cambios en el

entorno de aprendizaje con el propósito de reconocer la oportunidad de modificar el entorno

por otro con mayores posibilidades de alcanzar las metas.

El sistema TOBIE se centra en la representación del dominio del conocimiento, el

cual consta de un grafo AND/OR directo multicapas, que expresa en forma curricular los

conceptos, metas y solución de problemas.

Este grafo esta representado por un conjunto de reglas de producción, el modelo

del estudiante se implementa a través del modelo overlay, el componente pedagógico contiene

un planificador que genera dinámicamente el plan del contenido basado en la estructura del

conocimiento para alcanzar las metas.

En este proyecto interactúan los dos estilos de enseñanza, en lo que al control de la

planeación se refiere (LOC/SYS y LOC/L). En una primera etapa el sistema genera el plan del

contenido y permite que el aprendiz defina la meta de aprendizaje, en etapas posteriores es

posible la generación de varios planes de contenido seleccionando el adecuado de acuerdo al

dominio o criterio pedagógico.

Durante la ejecución del plan, si el estudiante se ajusta al plan diseñado por el

sistema no existe acción alguna por parte del sistema, sin embargo si el estudiante se aleja del

plan trazado el sistema puede reaccionar de varias formas: ignora los cambios detectados,

aconseja al estudiante a seguir el plan trazado, ajusta el plan a los cambios realizados, genera

un nuevo plan con la misma meta, o genera un nuevo plan pero ahora con una meta diferente.

32

2.3.5. Sistemas Tutores Inteligentes: Una forma de conseguir Sistemas Hipermedia Educativos [Gutiérrez, 1995].

Artículo presentado en la conferencia para la asociación española para la

inteligencia artificial. CAEPIA’95 en Alicante, España.

Se describe la realización del proyecto basado en la unión de dos sistemas: los

sistemas tutores inteligentes (STIs) y los sistemas hipermedia (SHs), que por sí solos cuentan

con ventajas y desventajas, pero unidos subsanan mutuamente sus desventajas. Con esto crean

lo que ellos llaman sistemas hipertutores o sistemas hipermedia adaptativos, los cuales se

conforman de dos partes: el componente hipermedia y el componente tutor.

El componente hipermedia consta de tres módulos: el módulo interfaz, que

presenta la información del curso y obtiene las reacciones del usuario; el módulo hiperespacio,

que contiene la información que se le va a presentar al alumno; y el módulo de control de la

navegación, que es el encargado de comunicar al componente hipermedia con el componente

tutor.

El componente tutor, realiza un seguimiento de la interacción del alumno

controlando los conocimientos que éste adquiere, a partir de las evaluaciones y ejercicios

programados. Se encuentra dividido en tres módulos: el dominio pedagógico, representa los

conceptos a aprender por el alumno, además de estructurar un orden de presentación, existe

una relación con el módulo hiperespacio del componente hipermedia; el módulo didáctico, se

encarga de adaptar el sistema al alumno, basado en el nivel de aprendizaje determinado

mediante las evaluaciones realizadas; y el módulo del alumno, donde se clasifica al alumno en

cuatro apartados: características, conocimiento del dominio, material didáctico utilizado y la

historia del proceso de interacción con el sistema.

El desarrollo de ese artículo se basa en las teorías que dan sustento a la simbiosis

producida al unir los sistemas tutores con los sistemas hipermedia. En el terreno práctico

comentan que se encuentran en proceso de construcción los prototipos para la enseñanza de

dos dominios de aplicación: el dibujo técnico industrial y los sistemas digitales. No se

33

especifica el tipo de material didáctico a utilizar (audio, imágenes, datos) en los cursos

propuestos, ni la metodología para la transmisión de la información.

Además de los componentes que se destacan en el artículo, en el trabajo

desarrollado en el presente proyecto se incluyen los módulos que servirán para un mejor

control de las actividades del estudiante (interfaz del usuario), para el control administrativo

del curso y de los estudiantes (módulo administrador de cursos), y para la realización de

ejercicios (módulo de ejercicios) específicos del dominio del conocimiento (SQL). Además se

incluyen imágenes y sonido en la presentación del conocimiento.

2.3.6. A Knowledge - Based Tutoring System for SQL Programming. [Zhou, 1994]

Artículo presentado en la Sexta Conferencia Internacional del IEEE Herramientas

con Inteligencia Artificial en New Orleans, E.U.A.

El artículo describe brevemente los Sistemas de Instrucción Asistida por

Computadora Tradicional (CASI Traditional Computer-Aided Instruction Systems) que al

evolucionar se trasformaron en los Sistemas Tutores Basados en Conocimiento (KBTS

Knowledge-Based Tutoring Systems) o Sistemas Tutores Inteligentes (ITS Intelligent

Tutoring Systems). Respecto a estos últimos, los autores describen su arquitectura en tres

puntos principales: 1) dominio del conocimiento, 2) modelo del estudiante, y 3) el

conocimiento pedagógico; afirmando que esta estructura no provee un sólido entorno para el

desarrollo efectivo de cualquier sistema ITS.

Se plantea la siguiente arquitectura como diseño inicial para el proyecto SQL-

TUTOR, la cual consta de cinco módulos: 1) base del dominio del conocimiento, contiene los

conceptos fundamentales que el estudiante debe aprender acerca de la programación en SQL;

2) base de conocimiento global, representa el conocimiento global acerca del curso; 3) base de

conocimiento pedagógico, guarda el conocimiento de cómo enseñar el curso; 4) modelo del

estudiante, refleja el estado que guarda el conocimiento del estudiante respecto al dominio del

conocimiento; y 5) el agente de comunicación.

34

El agente de comunicación es un conjunto de procedimientos organizados en

cuatro módulos: planeación, discusión, evaluación y corrección. La función de esos cuatro

módulos determina el mecanismo de control durante el proceso del tutor. El módulo de

planeación ayuda al estudiante a seleccionar un nuevo tema apropiado al nivel de dificultad. El

estudiante regido por el dominio del conocimiento está representado por el modelo del

estudiante. La base de conocimiento pedagógico provee la forma de cómo seleccionar un

nuevo tema de la base de conocimiento global.

El sistema puede ser aplicado en dos formas: activa y pasiva. En el modo de

planeación activa, el estudiante tiene el control de la selección de los temas a tratar; en el

modo pasivo, el sistema es quien toma el control de la selección de los temas a tratar. Se

describe también la forma de representación del conocimiento global, que incluye la

organización del curso, las relaciones entre los temas a cubrir en el curso; es decir, determina

la secuencia de los temas a tratar.

En una primera etapa, en 1994, se implementó sólo el sistema manejador del

conocimiento global, llamado manejador de curriculum (CM Curriculum Manager), donde la

interfaz del sistema para el estudiante estaba definida por un grupo de comandos del sistema:

DISPLAY, FOCUS, STUDY, NOT-STUDY y SKIP. Estos comandos proveían las

herramientas necesarias a los usuarios para construir el curriculum del curso de acuerdo con

requerimientos individuales después de un periodo de discusión (análisis). Posteriormente, en

1996, se presentó el proyecto como tesis de doctorado, describiendo el producto final como

un sistema tutor desarrollado en C y Tcl-Tk bajo el sistema operativo Solaris versión 2.4, en

cuya interfaz el instructor puede construir varias bases de conocimiento y el estudiante puede

aprender la programación en SQL.

En general el artículo se basa en mayor medida en una explicación de las mejoras

introducidas al modelo natural de los sistemas tutores, en la forma de construir y armar el

curso por parte del instructor, dejando de lado conceptos tales como la descripción de los

métodos utilizados en la presentación del curso, el tipo de medios usados para la

comunicación instructor-estudiante, el desarrollo del agente de comunicación, mejora de la

interfaz de construcción del curso, y principalmente la implementación de la interfaz a utilizar

por parte del estudiante para la interacción con el sistema.

35

Dicho artículo se centra en la facilidad que tendrá el instructor al momento de

crear el curso, a diferencia del trabajo desarrollado que tiene también una herramienta para

creación de cursos, pero considera aspectos en favor de los usuarios del sistema tales como

accesibilidad y variedad en los medios para la presentación del contenido del curso (imagen y

sonido).

2.3.7. Otros Sistemas Tutores

Existen otras instituciones educativas que realizan investigaciones acerca de los

sistemas tutores inteligentes, pero sus desarrollos van encaminados hacia otros dominios del

conocimiento.

Institución Dominio del Conocimiento

IPN – Cinvestav Enseñanza de las Matemáticas [Cuevas, 1999]

ITESM – Morelos Sistemas de Ingeniería [Morales, 1998]

ITAM Circuitos Lógicos [ITAM, 1999]

UdG Informática Educativa, Enseñanza de Idiomas

[CUAltos, 2000]

UNAM Difusión de las Tecnologías del Lenguaje [Pineda,

2000]

2.4. CGIs

Lo que normalmente se conoce como CGIs son pequeños códigos de programa

que se adaptan al estándar Common Gateway Interface (CGI), por el cual se puede tener

acceso a servidores de Internet que envían información a los usuarios. Mediante este sistema,

la Web se comunica con recursos externos a la misma (Figura 2.2).

36

Por ejemplo, un documento de HTML permanece estático; es decir, existe un

estado constante en el contenido el documento, un archivo de texto no cambia. Por otro lado

un programa CGI es ejecutado en tiempo real, y proporciona información de forma dinámica

[NCSA, 1999]. Existen muchos servicios para los que se usan secuencias de comandos CGI:

las consultas a bases de datos, el funcionamiento de foros, anuncios comerciales o banners, las

estadísticas en tiempo real, y contadores de acceso a páginas Web.

Página Web

Datos formateados por el CGI para sercomprensibles

Respuesta

ConsultaPetición de informacióndesde un formulario de Web

Directorio cgi-bin

CLIENTE SERVIDOR de Web BASE DEDATOS

Figura 2.2 Esquema de operación de un CGI.

La programación de las secuencias CGI puede realizarse utilizando diversos

lenguajes, tales como C, Visual Basic, AppleScript, Perl, TCL, cualquier shell de Unix, etc.

Las aplicaciones escritas en alguno de estos lenguajes, como C, necesitan ser compiladas para

que se puedan ejecutar. Por otra parte, existen lenguajes llamados de secuencias de comandos,

como Perl, que no necesitan de esta operación, siendo su utilización mucho más intuitiva y

sencilla aunque no tan potente y más lenta.

A continuación se describen los pasos fundamentales del funcionamiento de un

CGI, concretamente uno que permita a los usuarios de una página Web acceder a la consulta

de una base de datos, pero puede ser adaptado a cualquier proceso del estándar CGI [HREF2,

1998].

37

1. Es necesario escribir la aplicación CGI o bien bajar una de las que de manera

gratuita, o por muy bajo precio, se ofrecen en Internet.

2. Se debe colocar la aplicación CGI en el servidor de Web. En la mayor parte de

ellos existe un directorio especial para colocar este tipo de archivos.

Normalmente se acostumbra nombrarlo como cgi-bin, cgi-local o similar, de

manera que sólo los programas CGI que han sido archivados en estos

directorios son operativos, no funcionando en cualquier otro directorio. Esto se

debe a medidas de seguridad y control.

3. Para que la aplicación CGI se ponga en funcionamiento es necesario que sea

llamada desde una página Web, por lo tanto debe existir un enlace, que en el

caso de una base de datos suele dar lugar a un documento de Web en forma de

formulario, donde el usuario escribe los datos que serán enviados al servidor

de Web.

4. El programa CGI se conecta a la base de datos asociada y solicita la

información solicitada por el usuario. La base de datos responde al CGI

aportando los datos que pueden estar en formato texto, audio, imágenes, video,

etc.

5. Por último, el programa CGI, una vez recibidos los datos, se dedica a darles una

apariencia que sea comprensible para el usuario, es decir, construye un

documento en HTML en función de los parámetros dados por el programador,

que incluye la información extraída de la base de datos. Esta página Web se

comporta como cualquier otra, pudiendo ser impresa, archivada en un disco

duro, o simplemente visualizada.

2.5. Servicetes

La parte más conocida de Java son los apliquetes (applets). Éstos no son más que

programas que se pueden cargar a través de una red y que se ejecutan de igual forma en

cualquier plataforma, todo ello gracias a las potentes características de Java. Hasta hace poco,

Java se utilizaba básicamente para dotar a las páginas Web de una mayor interactividad

38

mediante los apliquetes, y por tanto sólo se ejecutaba sobre el lado cliente. Pero el lado

servidor también puede beneficiarse de todas las ventajas que ofrece Java, gracias a los

servicetes (servlets).

Los servicetes se diferencian de los apliquetes básicamente en que se ejecutan en

el servidor y en que no presentan ningún tipo de interfaz gráfica puesto que se encargan de

hacer el trabajo oculto. Uno de los aspectos más interesantes de los servicetes es la

programación en un entorno cliente-servidor basado en HTTP, por lo que muchos

programadores que hasta ahora utilizaban CGIs, están utilizando servicetes. De hecho, hasta

ahora los CGIs eran el único medio para proporcionar interacción entre el cliente y el servidor.

A continuación se presentan algunas de las razones por las que se afirma que los

servicetes sustituirán a los CGIs:

• Se programan utilizando un API estandarizada de Java, y por tanto se

benefician de todas las ventajas de este poderoso lenguaje.

• Consumen menos recursos que los CGIs y los Fast-CGIs, por ejemplo, no

es necesario cargarlos en memoria tantas veces como peticiones de

ejecución existan; se pueden cargar indiferentemente y de forma

transparente tanto desde un disco local como desde una dirección remota.

• Responden a la nueva filosofía de software distribuido.

• Los servicetes pueden comunicarse entre sí, y por tanto, es posible una

reasignación dinámica de la carga de proceso entre diversas máquinas; es

decir, un servicete podría pasarle trabajo a otro servicete residente en otra

máquina.

• Poseen una estructuración en los archivos fuente mucho más clara que los

CGIs (especialmente si esta comparación se efectúa con respecto a Perl).

• Se pueden reutilizar CGIs ya hechos, incrustándolos en servicetes.

39

• Es posible utilizarlos en servidores como el Apache, el Fastracker o el

Internet Information Server.

Con los servicetes se pueden implementar las siguientes aplicaciones:

• Sistemas intermediarios que hasta ahora únicamente se implementaban con

CGIs, encaminados a la consulta a bases de datos. Los servicetes pueden

utilizar JDBC (Java Data Base Connectivity), lo que les permite extraer

información de cualquier sistema de bases de datos.

• Automatización de un sistema de recepción y publicación de información.

Por ejemplo, es posible montar una estación meteorológica que permitiese

acceso a su información mediante una página Web; por un lado tendríamos

un servicete que recolectaría la información de los diversos tipos de

sensores y la almacenaría en bases de datos, y por otro lado, un servicete

que se encargaría de presentar esta información en función de las peticiones

del cliente basándose en estas mismas bases de datos.

• Control de la recepción de e-mails, sistemas de news, chats, etc. Conviene

recordar que Java está especialmente indicado para la programación

utilizando los protocolos TCP/IP (SMTP, NNTP, conexiones socket, etc.).

• Generar páginas en HTML en el cliente de forma dinámica.

• Dado que los servicetes pueden manejar múltiples peticiones de forma

concurrente, es posible implementar aplicaciones colaborativas, como por

ejemplo una aplicación de videoconferencia.

40

!"#$ %&'(),!"#$ %&'(),!"#$ %&'(),!"#$ %&'(), A n á l i s i s d e l P r o b l e m a y P r o p u e s t a d e

S o l u c i ó n

Se analiza en este capítulo cada uno de los problemas presentados durante el

desarrollo del proyecto de tesis, así mismo se describe la solución encontrada para cada

problema.

41

3.1. Acceso Vía Internet

En la versión anterior de la herramienta, el acceso al sistema por parte del alumno

estaba diseñado para ser utilizado en el sistema operativo Windows en forma local, lo que

limitaba el número de usuarios para acceder al sistema.

El acceso al alumno al sistema a través de Internet se implementó por medio de

servicetes del lenguaje Java, los cuales una vez implementados, tienen como interfaz

visualizadores de páginas Web, tales como IExplorer y Netscape, entre otros.

Los servicetes ofrecen al alumno la flexibilidad de acceso al sistema prácticamente

desde cualesquier computadora que esté conectada a Internet, sólo se necesita el lanzador de

servicetes (servletrunner) de una computadora que tenga la función de servidor con una

dirección de IP fija, así como de un puerto disponible para dar respuesta a las solicitudes vía

formularios de HTML, accediendo a su ubicación por medio de una dirección de URL, por

ejemplo: http://shahar.sd-cenidet.com.mx:8080/servlet/Acceso.

Los datos que recibe el servidor de servicetes por parte del usuario, se envían a

través de formularios activando el método post, lo que garantiza que los datos no serán

desplegados en la barra de direcciones del visualizador de Web.

3.2. Otros Cursos

Originalmente se planteó la elaboración del material de un curso base (enseñanza

de SQL) por lo que el diseño del sistema giró en ese sentido, para lograr que con el sistema se

crearan otros cursos se modificó la base de datos, añadiéndose nuevos campos que dieran la

posibilidad de identificar los capítulos, átomos, diapositivas y evaluaciones teóricas de cada

curso.

Cabe hacer mención que dicha modificación sólo es adecuada en la

implementación de la enseñanza y evaluación de forma teórica de los otros cursos, ya que la

sección del sistema que lleva el control de los ejemplos y evaluaciones prácticas está diseñada

de forma específica para la enseñanza del lenguaje de consulta de bases de datos SQL.

42

3.3. Normalización de la Base de Datos

Las tablas contenidas en la base de datos no consideraban su utilización en forma

adecuada, encontrándose las siguientes deficiencias.

No se contaba con campos que reflejaran por sí solos los datos del curso, capítulo,

tema, diapositiva, pregunta teórica, respuestas, preguntas prácticas y ejemplos, entre otros; es

decir, la llave primaria estaba compuesta por la concatenación de los campos involucrados en

el registro, sólo separados por un guión que delimitaba los datos, así pues el campo para

identificar a la diapositiva D3 del tema A5 incluido en el capítulo 03 perteneciente al curso 1,

se definía como sigue: 1-03-A5-D3.

La implementación utilizada en el presente proyecto fue definir un campo para

cada dato que constituye la identificación del registro, definiendo la llave primaria como la

unión de los campos principales.

Otro de los problemas encontrados al sistema fue la captura desde teclado de las

claves de identificación de los registros de tipo alfanumérico. Esto se modificó restringiendo la

opción de asignación de la clave por parte del usuario, realizándose de forma automática; para

lo cual se modificaron los tipos de dato definidos para los campos que integran la llave

primaria, que originalmente se encontraban designados como caracteres a los que actualmente

utiliza el sistema, que son de tipo de dato numérico,

Existían también tablas cuyos registros se relacionaban de “Uno a Uno” así que,

dado que las llaves primarias de las dos tablas eran exactamente iguales y a la naturaleza de la

información, se tomó la determinación de crear una sola tabla que contuviera todos los campos

existentes en las dos tablas. Con esto se disminuyó el número de tablas en la base de datos, y

además se optimizaron los movimientos de altas, bajas y consultas a realizar en las dos tablas

con carácter de obligatorio.

Respecto a los archivos que contienen la información del curso, se adecuó el

procedimiento anterior en el cual se indicaba la ruta completa de la ubicación exacta del

archivo, esto obligaba a mantener sin cambios la estructura de directorios y archivos en la

computadora donde se generó el curso, imposibilitando así su exportación.

43

La solución propuesta fue dar al curso un directorio específico diferente de todos

los directorios del resto de los cursos instalados. Para el archivo se especificó sólo el nombre

del mismo, y ya en el servidor se ubicaron todos los archivos de los cursos en una ruta común,

diferenciándose por el directorio del curso.

3.4. Control de Alumnos y Cursos

En la primera versión del sistema existía sólo una interfaz para realizar la

administración de los cursos y alumnos, suponiendo que estas actividades serían desarrolladas

por una sola persona, aunado a las actividades preponderantes propias de la generación de

cursos. Se encontró que no necesariamente estas actividades de administración deben llevarse

a cabo a la par con el desarrollo y creación del curso.

Por lo tanto, se implementó la separación de las secciones de administración de

alumnos, además de la asignación de alumnos a cursos, y viceversa. Creando así el Módulo

Administrador de Cursos, donde es posible, además de las actividades ya referidas, la

eliminación definitiva del sistema, de cursos que no tengan alumnos asignados.

3.5. Servicio de Exportar e Importar Cursos

Un servicio incluido en los alcances del presente proyecto de investigación es la

creación de un servicio que facilite la instalación y copiado de los cursos generados. Esto con

la finalidad de implementar un esquema de red de distribución de cursos en los Institutos

Tecnológicos, donde existirán dos tipos de sedes: generadoras y receptoras de cursos.

La función principal de las primeras es la creación de cursos, esto en función de la

disponibilidad de los expertos en cada área del conocimiento (profesores). Estos cursos serán

exportados a las sedes que no cuenten con una infraestructura académica tal que les permita

crear cursos y que importen los cursos para instalarlos en sus servidores y así difundir el

conocimiento entre sus alumnos.

La información a exportar es sólo la que corresponde a los cursos seleccionados

para tal fin, sin incluir a los alumnos asociados ni el grado de avance en el mismo. Por su parte

al importar un curso éste se anexa a la lista de cursos ya dados de alta en el sistema que lo

44

recibe, verificando que no exista duplicidad en los campos de identificación del curso

(nombre, directorio).

Cabe mencionar que las sedes generadoras no sólo podrán cumplir esa función si

no que también estarán en posibilidades de ser receptoras de sus propios cursos, para beneficio

de sus alumnos. Este par de servicios se encuentra implementado en el Módulo Administrador

de Cursos, por la afinidad del sistema con el servicio ofrecido.

3.6. Servicio de Respaldar y Restaurar la Base de Datos

Otros servicios necesarios en todo sistema son los de respaldo y restauración de la

información de los cursos contenida en la base de datos, esto debido a un esquema de

protección de la producción intelectual de los profesores, aunado a la seguridad que implica

proteger la información del avance de los alumnos en cada materia que estén cursando.

La información a respaldar en este servicio es en su totalidad la contenida en las

tablas de la base de datos tanto de cursos (capítulos, temas, diapositivas, preguntas, respuestas,

ejemplos, evaluaciones, prerrequisitos y plan de estudios) como de alumnos (avances y

alumnos asociados a los cursos).

Al restaurar se plantea el borrado de toda la información, a través de la

eliminación de las tablas y la ejecución del proceso de creación de las mismas por medio de

instrucciones de SQL, esto con el fin de recuperarlas en caso de daño.

3.7. Multimedia en la Presentación del Conocimiento

Como medio para la presentación del curso, en la versión anterior del sistema se

utilizaban archivos en formato GIF, generados a partir de diapositivas de PowerPoint, de ahí el

nombre heredado al material del curso como diapositivas, de tal forma que estas diapositivas

sólo presentaban de forma estática y poco atractiva la información del curso.

Para darle un mayor atractivo y generar en el alumno una mayor atención a los

temas tratados, se implementó en el presente proyecto un mecanismo con el cual se dota al

material del curso de diversos medios para la presentación del conocimiento. Además del texto

y las imágenes estáticas que tenía la versión anterior, se incluyeron en esta versión los

45

siguientes medios: animación (es decir, la incorporación de las imágenes en movimiento) y el

sonido que consiste en una explicación oral del tema a tratar.

Se analizaron dos formas principales para la integración de la animación,

PowerPoint y Flash de Macromedia. Se optó por la segunda opción debido a las siguientes

ventajas: el encapsulamiento de los archivos de sonido y presentación de la diapositiva; el

formato del archivo en gráficos vectoriales que permite desplegar la presentación en el tamaño

que se ajuste a las necesidades del usuario sin observar problemas de resolución, además de

reducir en gran medida el tamaño del archivo resultante, lo cual redunda en una reducción del

tiempo en la trasmisión del archivo vía Internet.

Esta forma de presentación multimodal del conocimiento, se traducirá en un mejor

aprovechamiento de las capacidades cognoscitivas del estudiante, al hacer uso de los

diferentes tipos de memoria activados en esta forma de aprendizaje: la memoria visual, al

asociar el conocimiento a imágenes estáticas o en movimiento; y la memoria auditiva, al

escuchar la descripción de la diapositiva presentada. Estos dos tipos de memoria se

relacionarán con los conceptos del conocimiento vertidos en la presentación.

3.8. Sincronización de la Animación con el Sonido

Otro de los problemas derivados de la inclusión en el sistema de las características

multimedia para la presentación del conocimiento, fue la sincronización de las imágenes en

movimiento (animación) con el sonido.

A partir de la evaluación de las herramientas de presentación PowerPoint y Flash

de Macromedia se obtuvo lo siguiente: en la primera sólo se reproducen las acciones de forma

consecutiva, lo que implica un tiempo de espera entre la acción animación y la acción sonido,

lo cual impide la sincronización; sin embargo en la segunda herramienta es posible realizar

múltiples acciones de animación, ya que éstas están divididas en capas diferentes (layers) cuya

forma de relación es a través de segmentos de tiempo (frames), los cuales se sincronizan desde

su definición, y su reproducción se realiza en forma simultánea.

46

3.9. Rapidez en la Transmisión de la Diapositiva

Uno de los puntos relevantes a tomar en cuenta cuando se desarrollan aplicaciones

basadas en Internet, es el tiempo de respuesta del servidor ante una solicitud realizada por

parte del usuario. Esto se debe principalmente a dos factores: los medios de comunicación y el

tamaño de los archivos enviados como respuesta.

Desafortunadamente las limitaciones de los medios de comunicación con los que

se cuenta en la infraestructura sobre la cual se basa el Internet en nuestro país, están fuera del

alcance del presente trabajo de investigación. Sin embargo, en el segundo factor sí es posible

incidir de forma importante al lograr reducir el tamaño de la respuesta enviada sin perder

calidad, esto a través de la degradación del sonido.

3.9.1. Degradación y Flujo del Sonido

En este aspecto existen diversos formatos con los que es posible almacenar el

sonido, tales como el formato WAV, que consiste en la digitalización de las ondas analógicas

producidas por el sonido (voz, o música). Existe también el formato que genera archivos

compactados MP layer 1, 2 y 3 (MP3), que elimina del archivo las frecuencias no audibles

para el ser humano (altas y bajas frecuencias) dejando sólo el rango necesario para captar con

nitidez y claridad lo contenido en el archivo.

Una de las características con las que cuenta el Flash de Macromedia es la

degradación del sonido, esto es, disminuye la calidad y el tamaño del archivo resultante (SWF)

de forma independiente al tipo de formato con el que sea grabado el sonido, como pueden ser

los formatos WAV y MP3.

Otra de las ventajas encontradas es la reproducción del sonido en forma de flujo

(stream) con el cual, al momento de cargarse el archivo que contiene la presentación del tema,

no es necesario esperar a que se cargue dicho archivo en su totalidad, ya que se reproduce

conforme se recibe la información, de la misma forma en que se realiza la transmisión de

videoconferencia a través de Internet, llamado en inglés audio y video streaming.

Al término de la primera reproducción de la presentación es posible visualizar el

contenido de la misma cuantas veces se requiera, sin necesidad de transferir el archivo

47

nuevamente, ya que el archivo se encuentra ya en disponibilidad total, mientras no se realice el

acceso a otro tema u otra página de Web.

3.10. Implementación de Ejemplos

Dentro de los alcances del presente trabajo de investigación se encuentra el diseño

e implementación de ejemplos sobre el área del conocimiento específica desarrollada en el

proyecto –Consultas SQL–.

Existen dos secciones en el sistema donde se hace uso de los ejemplos: la primera

es donde el creador del curso genera el ejemplo y lo asocia a la diapositiva que corresponde, y

la segunda es donde el alumno visualiza la dispositiva y realiza una práctica con el ejemplo

asociado.

En relación a la generación del ejemplo y su respectiva diapositiva, la forma de

elaboración y asociación no experimentó grandes cambios, no así la referente a la

visualización en la Interfaz del Alumno.

Al presentar la diapositiva se pregunta si tiene ejemplo asociado, si es el caso se

genera un formulario que contenga como campo principal el ejemplo, el cual se evalúa de la

siguiente forma:

1. Se obtienen las dos instrucciones de SQL: la del ejercicio obtenido del

visualizador y la del contenido del ejemplo asociado a la diapositiva,

2. Acto seguido se ejecutan las dos instrucciones de SQL.

3. Primeramente se compara el número de columnas del resultado de las dos

instrucciones de SQL y si es igual continua, en caso contrario se define el

ejercicio como no aceptable.

4. A continuación se toma la primer columna del resultado del ejercicio y se

busca en el resultado del ejemplo el que corresponda en nombre, y se

compara a nivel de registro los datos contenidos en las columnas, y así

sucesivamente se toma la siguiente columna para su comparación, si no

48

existen diferencias se define el ejercicio como aceptable, en caso contrario

como no aceptable.

5. En caso de no existir un error al momento de la ejecución del ejemplo, se

despliegan los datos obtenidos en forma de tabla, en caso contrario el

sistema se limita a indicar que existe un error sin desplegar ningún

resultado.

3.11. Evaluación

El mecanismo de evaluación se compone de tres algoritmos, de cuyos resultados

depende la actualización del planificador, para decidir los temas permitidos a visualizar por

parte del alumno, implementado mediante el código de colores definido en el proyecto de tesis

predecesor [Ingram, 2001]

3.11.1. Algoritmo para la Aplicación de Exámenes

En el proyecto anterior, los átomos de evaluación (teórica y práctica) se

encontraban incluidos en la estructura conformada por el grafo instruccional, de tal forma que

sólo se presentaban exámenes cuando el planificador así lo indicara. Sin embargo, dado que

las preguntas cuentan con una asociación de átomos de información a los que evalúa, podría

darse el caso de presentar una evaluación aún cuando el átomo de información asociado al

examen no haya sido repasado.

Para evitar lo anterior se implementó el siguiente algoritmo:

1) Al término de la visualización de las diapositivas asociadas a los temas, se

realiza una exploración de la tabla Átomos y se analiza la posibilidad de aplicar

el examen contenido en cada átomo de evaluación (Figura 3.1).

49

Tablas Relacionadas con la Evaluación

AtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerNombreAtomo char(50)TipoConocimiento char(50)GradoDificultad integerTipoAtomo integer

PreguntasPracticasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(50)Consulta char(50)

PreguntasAtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerClaveCapitulo1 integerClaveAtomo1 integerClaveCapitulo2 integerClaveAtomo2 integerClaveCapitulo3 integerClaveAtomo3 integerClaveCapitulo4 integerClaveAtomo4 integerClaveCapitulo5 integerClaveAtomo5 integer

PreguntasTeoricasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(255)Respuesta1 char(255)Respuesta2 char(255)Respuesta3 char(255)Respuesta4 char(255)Respuesta5 char(255)VerdaderoFalso1 char(50)VerdaderoFalso2 char(50)VerdaderoFalso3 char(50)VerdaderoFalso4 char(50)VerdaderoFalso5 char(50)

Figura 3.1. Fragmento de la base de datos relacionado con la evaluación.

2) De la tabla PreguntasAtomos se obtienen los átomos de información que están

asociados al átomo de evaluación en cuestión, se determina la aceptación o

rechazo de la aplicación del examen tomando en cuenta las siguientes

consideraciones:

a) Si al menos un átomo de información no ha sido repasado, no se aplica el

examen (rechazo) y se pasa al siguiente átomo de evaluación, regresando al

punto 2.

b) Si todos los átomos de información ya fueron repasados y todos están

aprobados, no se aplica el examen (rechazo) y se pasa al siguiente átomo de

evaluación, regresando al punto 2 (Figura 3.2).

c) Si todos los átomos de información ya fueron repasados y al menos uno no

está aprobado, se determina aplicar el examen (aceptar) y termina la

exploración de átomos de evaluación (Figura 3.2).

50

RechazoTodos los

Atomos de InfRepasados

NO

Todos losAtomos de Inf

AprobadosACEPTAR

NO

SI

Rechazo

SI

Algoritmo para la Aplicación de Exámenes

Figura 3.2. Algoritmo para la aplicación de exámenes.

Es importante mencionar que la calificación mínima aprobatoria que fue

considerada en el presente proyecto fue de 6.

3.11.2. Algoritmo para la Selección de Preguntas

Una vez definido el examen a aplicar, se seleccionan las preguntas a incluir, ya

que no se considera necesario presentar las preguntas cuyos átomos de información ya fueron

aprobados.

Tomando en cuenta lo anterior, se desarrolló el siguiente algoritmo:

1) De la tabla PreguntasAtomos se realiza la exploración de cada pregunta del

átomo de evaluación y se obtienen los átomos de información que son

evaluados por dicha pregunta (Figura 3.1).

2) Se evalúa cada pregunta en relación con la calificación de los átomos de

información asociados.

a) Si todos los átomos de información están aprobados, no se presenta la

pregunta, y se pasa a la siguiente pregunta, regresar al punto 2 (Figura 3.3).

51

b) Si al menos un átomo de información asociado a la pregunta evaluada no

tiene calificación aprobatoria, se incluye la pregunta en el examen a aplicar

y continúa el análisis de la siguiente pregunta, regresando al punto 2

(Figura 3.3).

Algoritmo para la Selección de Preguntas

Rechazo

Atomode Inf 1

Aprobado

ACEPTAR

NO

Atomode Inf 2

Aprobado

SI

Atomode Inf 3

Aprobado

Atomode Inf 4

Aprobado

SI

Atomosde Inf 5

Aprobado

SI

SI

NO

NO

NO

NOSI

Figura 3.3. Algoritmo para la selección de preguntas.

3.11.3. Calificación de Preguntas

El mecanismo para determinar si una pregunta es correcta o no, se define de

diferente manera para cada uno de los diferentes tipos de evaluación: exámenes teóricos o

exámenes prácticos. El primer tipo de examen es el de opción múltiple, donde las posibles

respuestas son definidas al tiempo de generar el curso, en un rango mínimo de dos y un

máximo de cinco opciones de respuesta, con sólo una respuesta definida como correcta.

Para el tipo de examen práctico se tiene asociada una instrucción de SQL. Para

cada pregunta el alumno escribe una instrucción de SQL, y para determinar si es correcta o no,

se comparan los resultados tomando en cuenta la cantidad de columnas resultante, y la debida

correspondencia del nombre de las columnas, sin importar el orden de aparición, y la

comparación de todos los datos de las columnas, de forma similar a como se implementaron

los ejemplos del punto 3.10.

52

3.11.4. Algoritmo para la Calificación por Átomos

Una vez que se determina si la pregunta es correcta o no, se le asigna un valor de 1

a la pregunta respondida de forma correcta y 0 para la pregunta respondida de forma

incorrecta.

De forma inversa a la selección de preguntas, ahora se realiza una exploración por

átomo de información asociado a las preguntas contenidas en el examen aplicado. Para obtener

su calificación total se aplica el siguiente algoritmo:

1) Se efectúa una explotación de la información implicada en el examen y se

obtienen las preguntas que lo evalúan. Como se muestra en la figura 3.4, el

átomo de información 1 es evaluado por las preguntas 1, 2 y 5; a su vez el

átomo de información 2 es evaluado por las preguntas 3 y 4; y el átomo de

información 3 es evaluado por las preguntas 1, 3 y 5.

Asociación de Átomos y Preguntas

Atomo de Inf. 1Atomo de Inf. 2Atomo de Inf. 3

...Atomo de Inf. n

Pregunta 1Pregunta 2Pregunta 3Pregunta 4Pregunta 5

Figura 3.4. Asociación de átomos y preguntas.

2) Se califica al átomo de información de la siguiente manera:

a) Se suma 1 a la calificación del átomo por cada respuesta correcta, ver

figura 3.5.

53

Calificaciones del Examen

Pregunta Resultado Valor

1 CORRECTA 12 INCORRECTA 03 CORRECTA 14 INCORRECTA 05 CORRECTA 1

Figura 3.5. Calificación del examen.

b) El total de la suma se divide entre el número de preguntas, correctas e

incorrectas, asociadas al átomo de información, ver figura 3.6.

Calificación de los Átomos

Atomo de Inf 1 = Preg1 + Preg2 + Preg5 = 1 + 0 + 1 = 2 = 66.66 %numpreg 3 3

Calificación

Atomo de Inf 2 = Preg3 + Preg4 = 1 + 0 = 1 = 50.00 %numpreg 2 2

Atomo de Inf 3 = Preg1 + Preg3 + Preg5 = 1 + 1 + 1 = 3 = 100.00 %numpreg 3 3

Atomo de Información NumeroRepasos RepasosTotales1 2 22 0 13 3 3

Figura 3.6. Calificación de átomos.

Cabe hacer mención que aunque un átomo ya haya sido evaluado y tenga

calificación aprobatoria, la calificación se modificará según proceda, en caso de obtener una

54

calificación no aprobatoria, el planificador cambiará su plan, lo cual significa que debe

repasarlo antes de continuar con el resto de los átomos subsecuentes, inicializando el contador

de repasos en cero, pero conservando el número total de repasos para futuras consideraciones,

ver figura 3.7.

Control de Repasos Totales

AlumnosNumeroControl integerNombreAlumno char(50)Alias char(50)Contraseña char(50)

AvancesAlumnosNumeroControl integerClave Curso integerClaveCapitulo integerClaveAtomo integerNumeroRepasos integerRepasosTotales integerFechaUltimoRepaso char(50)CalificacionAtomo integer

Figura 3.7. Esquema de repasos totales.

3.12. Visualización de Diapositivas

En la versión anterior del presente proyecto la presentación del conocimiento se

basó en el uso de archivos con el formato GIF, y cuya visualización dentro del sistema es

soportada en el lenguaje Java. En esta versión se optó por la presentación multimodal del

conocimiento, lo cual implica un cambio en el formato de los archivos que contienen la

información de los temas a tratar en el curso; es decir, archivos SWF generados a partir del

software Flash 5.0 de Macromedia.

El lenguaje Java soporta la visualización sólo hasta la versión 2 de los archivos

SWF generados en Flash. La generación del archivo en una versión menor a la 5 implica la

reducción de las características multimodales y de animación en el material a presentar.

Así que tuvo que implementarse la visualización de las diapositivas del curso

dentro del sistema, por medio de la ejecución del visualizador de Web controlado desde el

55

sistema por medio de hilos de un proceso, el cual se limita a las acciones de creación y

destrucción, por lo que en las opciones de configuración se incluye la ruta donde se ubica el

visualizador de Web.

3.13. Transferencia de Archivos

Dentro de los servicios que se crearon en el módulo administrador de cursos se

encuentran los de restaurar la base de datos e importar cursos, así mismo, el módulo

generación de cursos cuenta con la opción de asociar diapositivas a los temas. Estas tres

opciones tienen en común el almacenamiento de información en la base de datos referente a

los cursos pero, sólo a nivel de renglones en las tablas, dejando de lado a los archivos SWF

que contienen la información de los temas del curso.

Estos archivos deberían ser instalados de forma independiente; es decir, copiar, del

servidor origen, los archivos SWF en algún medio de almacenamiento (CD, disquete, etc.) y

transportarlos hasta el servidor destino y copiarlos. Esto implicaría una mayor posibilidad de

error dentro del sistema, al no ubicar los archivos en la ruta adecuada, además de la

posibilidad de daño en el proceso.

Para resolver este problema se implementó un módulo denominado Transferencia

de Archivos, cuya función es precisamente la de copiar los archivos SWF del cliente al

servidor destino. Este módulo se compone de dos partes: el cliente y el servidor. El primero

ubicado entre el módulo administrador de cursos y el módulo generador de cursos, y el

segundo como un programa residente en el servidor que espera la conexión por parte del

cliente.

La comunicación del cliente con el servidor se lleva a cabo mediante un

mecanismo de transmisión de archivos, compuesto por dos conexiones, una de control y otra

de transferencia de datos, con un proceso que verifica el envío y recepción correcta del

archivo.

3.14. Configuración de los Módulos

En caso de existir algún cambio en las condiciones de operación del sistema, lo

más común sería modificar el sistema a nivel de archivos fuente, lo que implicaría en primera

56

instancia la necesidad de contar con dichos archivos para cada servidor, y la posibilidad de

modificar por error partes del programa que no deberían cambiar.

Como solución al problema anterior, se implementó un apartado que contiene los

parámetros para la operación del sistema, con lo cual se otorga al sistema la posibilidad de

continuar su ejecución ante los cambios. Se divide en cuatro secciones:

1) Usuario.

a. Nombre del usuario.

b. Clave de acceso.

c. Confirmar clave de acceso.

2) Servidor.

a. URL del servidor.

b. Dirección interna de los datos.

c. Puerto de acceso a los servicetes.

d. Dirección interna de la página principal.

3) Base de datos.

a. Controlador de la base de datos.

b. Puerto de acceso a la base de datos del SMBD.

c. Nombre de la clase Java del controlador JDBC.

d. Nombre de la base de datos del sistema.

e. Nombre de la base de datos de ejercicios.

4) Visualizador.

a. Ruta del visualizador (path).

57

!"#$ %&'()-!"#$ %&'()-!"#$ %&'()-!"#$ %&'()- D e s a r r o l l o y D e s c r i p c i ó n d e l a

H e r r a m i e n t a

En esta sección se incluye la arquitectura del sistema, así como la descripción al

nivel de clases del módulo generador de cursos, del módulo administrador de cursos, del

módulo de interfaz del alumno, y del módulo de transferencia de archivos.

58

4.1. Arquitectura de la Herramienta

Primeramente el sistema se desarrolló para su uso en un equipo (monousuario)

donde se llevaban a cabo todas las actividades derivadas del uso del sistema: generación y

administración de cursos, así como el control de los alumnos.

Diapositivas

EjerciciosExámenes

Control de AlumnosGrafo Instruccional

Modelo del Estudiante

Módulo de Control

Módulo Pedagógico

Planificador

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Interfaz del Diseñador

Módulo Generador de Cursos

Interfaz Administrador

Módulo Administradorde Cursos

Visualización de Ejemplos

Visualización de Diapositivas

Visualización de Exámenes

Acceso al Sistema

MóduloInterfaz del Alumno

Modelo Conceptual del Sistema (ST-SQL)

Recepción / Guardado

Módulo Transferencia de Archivos

Módulo de Conocimiento

Figura 4.1. Modelo conceptual del sistema.

Para dotar al sistema de la capacidad de acceso por parte de múltiples usuarios de

forma simultánea, se decidió dividir la versión anterior del sistema, compuesto por un solo

módulo denominado Sistema Generador y Administrador de Cursos Tutores, en cuatro

módulos que agrupan las actividades de los cuatro tipos de usuarios identificados (Figura 4.1).

59

L A N

Interfaz del Administrador(Aplicación de

Java)

Interfaz del Diseñador

(Aplicación de Java)

Base de Datos del Sistema Tutorial

POSTGRESQL

ServidorLinux

Visualizador de Diapositivas

Interfaz del Alumno (Servicete Java)

Visualizador de Ejemplos

Visualizador de Exámenes

PC Windows

Visualizador de Web

PC Windows

Acceso al Sistema

Módulo Pedagógico

Planificador

Módulo del Estudiante

Módulo de Control

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Distribución Física de los Componentes del Sistema (ST-SQL)

PC Windows

Figura 4.2. Distribución física.

1) Módulo Generador de Cursos. Utilizado por el diseñador del curso para crear

un curso, que puede incluir ejemplos y exámenes. Las funciones del módulo son las

siguientes: la generación del plan de estudios a través de la creación del grafo instruccional

estableciendo las relaciones de precedencia de capítulos y átomos, apoyado por el usuario

experto en el conocimiento del tema a impartir. Además existe la opción de crear tablas del

sistema y ejercicios para la instalación del sistema en un nuevo servidor (Figura 4.3).

60

2

Módulo Generador de Cursos

Base de Datos del SistemaTutor

GrafoInstruccional

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

Atomo de información (Conceptos y Ejercicios)

Puntos de evaluación (exámenes)

JDBC

POSTGRESQL

Aplicación de Java

Atomos de Información

Ejercicios

Capítulos del Curso

Exámenes

Módulo Generadorde Cursos

Interfaz del Diseñador

LAN

Figura 4.3. Módulo generador de cursos.

2) Módulo Administrador de Cursos. En este módulo el administrador realiza

las siguientes funciones: altas/bajas de alumnos, importar/exportar cursos, respaldar/restaurar

la base de datos, así como también la asignación o baja de un alumno a uno o varios cursos.

Cuenta además con una sección donde se informa del estado que guarda un alumno en

relación al avance que tiene en cada curso asignado (Figura 4.4).

61

Interfaz del Administrador

Base de Datos del SistemaTutor

Control de Alumnos

Informes de Exámenes

Instalación

Respaldo

Módulo Administradorde Cursos

JDBC

POSTGRESQL

Aplicación de Java

LANMódulo Administrador

de Cursos

Figura 4.4. Módulo administrador de cursos.

3) Módulo de Transferencia de Archivos. Es un submódulo del sistema

administrador y del sistema generador de cursos, el cual envía los archivos generados de los

cursos hacia el servidor ubicándolos en la ruta adecuada para su posterior referencia y

visualización.

4) Módulo de la Interfaz de Alumno. Es utilizado por los alumnos y el único con

acceso a través de un visualizador de páginas Web para acceder a la información de los cursos

asignados, ver el contenido del curso, realizar los ejemplos establecidos, responder a las

evaluaciones programadas, así como también llevar el control del avance de cada alumno por

curso (Figura 4.5).

62

Módulo Interfaz del Alumno

Visualizador de Diapositivas

Base de Datos del SistemaTutor

Interfaz del Alumno

JDBC POSTGRESQL

Visualizador de Web

Visualizador de Ejemplos

Visualizador de Exámenes

Internet/Intranet

Servicete

Acceso al Sistema

Visualizador de Web

Visualiza

dor de W

eb

Figura 4.5. Módulo interfaz del alumno.

Como parte importante del sistema y para su correcta operación, se diseñó un

esquema de la base de datos que cubriera las necesidades generadas del diseño del sistema

(Figura 4.6). Los módulos que tienen comunicación directa con la base de datos lo hacen

desde un entorno de seguridad, para la salvaguarda de la información, para lo cual se requiere

de una cuenta y una contraseña para permitir su acceso. Esto es una de las características con

las que cuenta el sistema manejador de bases de datos seleccionado para su operación en el

presente proyecto.

El funcionamiento del módulo de conocimiento, del módulo pedagógico y del

modelo del estudiante, es el mismo descrito en el proyecto inmediato anterior, ubicado en el

punto 1.1.1.1.

63

AlumnosNumeroControl integerNombreAlumno char(50)Alias char(50)Contraseña char(50)

AlumnosCursoNumeroControl integerClaveCurso integer

AtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerNombreAtomo char(50)TipoConocimiento char(50)GradoDificultad integerTipoAtomo integer

AvancesAlumnosNumeroControl integerClaveCurso integerClaveCapitulo integerClaveAtomo integerNumeroRepasos integerTotalRepasos integerFechaUltimoRepaso char(50)CalificacionAtomo integer

CapitulosClaveCurso integerClaveCapitulo integerNombreCapitulo char(50)

CursosClaveCurso integerNombreCurso char(50)Autor char(50)ClaveAcceso char(50)

DiapositivasClaveCurso integerClaveCapitulo integerClaveAtomo integerClaveDiapositiva integerDireccion char(50)Consulta char(254)

PlanestudiosatomosClaveCurso integerClaveCapitulo integerClaveAtomo integerDistancia integerClaveCapituloPredecesor integerClaveAtomoPredecesor integer

PlanestudioscapitulosClaveCurso integerClaveCapitulo integerDistancia integerClaveCapituloPredecesor integer

PreguntasPracticasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(50)Consulta char(50)

PreguntasAtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integer ClaveCapitulo1 integerClaveAtomo1 integerClaveCapitulo2 integerClaveAtomo2 integerClaveCapitulo3 integerClaveAtomo3 integerClaveCapitulo4 integerClaveAtomo4 integerClaveCapitulo5 integerClaveAtomo5 integer

PreguntasTeoricasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(255)Respuesta1 char(255)Respuesta2 char(255)Respuesta3 char(255)Respuesta4 char(255)Respuesta5 char(255)VerdaderoFalso1 char(50)VerdaderoFalso2 char(50)VerdaderoFalso3 char(50)VerdaderoFalso4 char(50)VerdaderoFalso5 char(50)

PreRequisitosAtomosClaveCurso integerClaveCapituloInicial integerClaveAtomoInicial integerClaveCapituloFinal integerClaveAtomoFinal integer

PreRequisitosCapitulosClaveCurso integerClaveCapituloInicial integerClaveCapituloFinal integer

Negritas - Llave PrimariaCursivas – Llaves Foráneas

1

n

1

n

1

n

n

1

n 1 11

11

1 1

n n

1n

1

n

1

n

n

n

Esquema de la Base de Datos

Figura 4.6. Esquema de la base de datos.

Otras de las características del sistema son las siguientes:

• Módulo Generador de Cursos: aplicación.

• Módulo Administrador de Cursos: aplicación.

• Módulo Interfaz del Alumno: servidor de Servicetes.

• Módulo Transferencia de Archivos: servidor SocketStream.

• Lenguaje de programación: Java.

• Conectividad con bases de datos: JDBC.

• Sistema operativo: Windows y Linux.

• Sistema manejador de bases de datos: PostgreSQL.

64

4.2. Módulo Generador de Cursos Tutores (SGCT)

Las clases que contiene este módulo desde la versión anterior no sufrieron cambios

radicales, sólo fue necesaria su modificación para hacerlas compatibles con la posibilidad de

inclusión de más de un curso en la base de datos.

Dicha modificación consistió en la inclusión de las claves del curso, capítulo, tema

y diapositiva en cada consulta realizada a la base de datos. El funcionamiento general se puede

consultar en [Ingram, 2001].

A continuación se mencionan las clases a las que se hace referencia:

• SGCT

• Abrir

• AdaptadorJDBC

• AgregarAtomos

• AltaAtomosConocimiento

• AltaAtomosInformacion

• AltaCapitulos

• AltaCursos

• AltaExamenes

• AltasDiapositivas

• BaseDeDatos

• Consultar

• ConsultarAtAsPregunta

• ConsultarCapitulo

• ConsultarDiapositivas

• ConsultarExamenPractico

• ConsultarExamenTeorico

• ConsultarPrecedenciasAtomos

• ConsultarPrecedenciasCapitulos

• ExamenPractico

• ExamenTeorico

• FormularConsulta

• GeneraPlanEstudios

• Listas

• ModificarConsulta

• PrecedenciaAtomos

• PrecedenciaCapitulos

• ResultadosConsulta

• SelAtAsociadosPregunta

De la misma forma y dadas otras necesidades del sistema, se crearon clases nuevas

que integran otras características al sistema, como las siguientes:

• AcercaDe

• ClienteTransf

• Configuracion

• CrearArchivoHTML

• CrearTablas

• LeerClave

65

4.2.1. Clase AcercaDe.

Esta clase muestra en pantalla una ventana que contiene la información de autoría

del sistema. Los métodos implementados son los siguientes (Figura 4.7):

actionPerformed(). Cada vez que el usuario efectúe una acción sobre alguno de los

componentes de la interfaz, este método es invocado en respuesta a dicha acción.

ConfiguraElementosInterfaz(). Se encarga de la construcción de los componentes de la

interfaz.

Terminar(). Se llama a este método para asegurar una sola salida a la clase, antes de su

destrucción se cierran los accesos a otras entidades tales como archivos, flujos de

datos y conexiones a servidores.

AcercaDeactionPerformed() Terminar()

ConfiguraElementosInterfaz()

Figura 4.7. Métodos de la clase AcercaDe.

4.2.2. Clase ClienteTransf

Esta clase se encarga de gestionar el envío y recepción de los archivos de datos

(SWF) con el módulo de transferencia de archivos. El método implementado es el siguiente

(Figura 4.8):

EnviarArchivos(). Este método se encarga de realizar la conexión vía socket stream con el

servidor de transferencia de archivos, así como de revisar la correcta recepción del

mismo. En caso de no ser así, se realizarán las conexiones necesarias hasta lograr

el objetivo.

66

ClienteTransf EnviaArchivos()

Figura 4.8. Método de la clase ClienteTransf.

4.2.3. Clase Configuracion

Esta clase muestra en pantalla una ventana con las opciones para la edición de los

datos de configuración del sistema. Los métodos implementados son los siguientes (Figura

4.9):

EscribirDatos(). El método en cuestión graba los datos de configuración en un archivo

denominado Configuracion cuya extensión es TXT, en referencia a un formato de

archivo tipo texto.

LeerDatos(). Este método recupera la información de configuración del archivo

Configuracion.txt y asigna sus valores a las variables que se despliegan en la

ventana para su actualización.

ValidarDatos(). La validación consiste en verificar la correcta conformación de los datos a

grabar, tal como la confirmación de la contraseña.

ValoresOmision(). Asigna los valores a los campos definidos por omisión, para una

configuración utilizada durante la creación de la herramienta en el presente

proyecto de investigación.

67

ConfiguracionValoresOmision() EscribirDatos()

actionPerformed()

Terminar()ValidarDatos()

ConfiguraElementosInterfaz()

LeerDatos()

Figura 4.9. Métodos de la clase Configuracion.

4.2.4. Clase CrearArchivoHTML

Esta clase permite la visualización de un archivo de datos desde el visualizador de

páginas de Web. El método implementado es el siguiente (Figura 4.10):

CrearArchivoHTML(). A este método se le envía el nombre del archivo de datos y la ruta

donde de localiza el mismo, creando un archivo temporal que permite la

visualización del archivo desde la aplicación.

CrearArchivoHTML CrearArchivoHTML()

Figura 4.10. Método de la clase CrearArchivoHTML.

4.2.5. Clase CrearTablas

La clase en cuestión muestra en una ventana las opciones para la creación de las

tablas del sistema y de ejemplos, esto en caso de iniciar una base de datos como nueva o al

recuperar la estructura de la base de datos. Los métodos implementados son los siguientes

(Figura 4.11):

68

CrearBD(). Abre el archivo que contiene la estructura y genera las tablas de la base de datos

seleccionada.

EliminaTablas(). Con el fin de no crear conflictos con la duplicidad de información y para

mantener la integridad referencial, se eliminan las tablas de la base de datos

seleccionada.

IniciaCreacion(). Inicia el proceso advirtiendo sobre la eliminación de toda la información

contenida en las tablas; en caso de aceptar el usuario continúa el proceso.

ObtenComando(). Extrae del archivo de datos las instrucciones para la creación de la

estructura de las tablas, las cuales se encuentran escritas en renglones por

separado. La función de este método es armar las instrucciones separándolas al

encontrar el caractér punto y coma (;).

CrearTablasTerminar() CrearBD()

actionPerformed()

IniciaCreacion()ObtenComando()

ConfiguraElementosInterfaz()

EliminaTablas()

Figura 4.11. Métodos de la clase CrearTablas.

4.2.6. Clase LeerClave

Al acceder a la clase se muestran en una ventana dos campos que solicitan la

captura de la clave de acceso, la cual permitirá ingresar al curso para su actualización o

consulta. Los métodos implementados son los siguientes (Figura 4.12):

69

LeerClaveactionPerformed() Terminar()

ConfiguraElementosInterfaz()

Figura 4.12. Métodos de la clase LeerClave.

4.3. Módulo Administrador de Cursos Tutores (SACT)

A continuación se da una breve descripción de las clases y métodos más

importantes usados en la implementación del SACT.

4.3.1. Clase SACT

Esta clase muestra en pantalla la ventana principal del sistema, la cual contiene

una barra de menú. En dicha barra se presentan las opciones con las que cuenta la herramienta.

Los métodos usados por la clase son los siguientes (Figura 4.13):

CreaMenuBar(). Construye la barra de menú y añade funcionalidad a cada uno de sus

componentes.

main(). Método principal, el cual se ejcuta en primera instancia al iniciar el sistema.

SACT CrearBarraMenu () main ()

Figura 4.13. Métodos de la clase SACT.

70

4.3.2. Clase AcercaDe

Esta clase muestra en pantalla una ventana que contiene la información de autoría

del sistema. Los métodos implementados son los siguientes (Figura 4.14):

actionPerformed(). Cada vez que el usuario efectúe una acción sobre alguno de los

componentes de la interfaz, este método es invocado en respuesta a dicha acción.

ConfiguraElementosInterfaz(). Se encarga de la creación de los componentes de la interfaz.

Terminar(). Se llama a este método para asegurar una sola salida a la clase, antes de su

destrucción se cierran los accesos a otras entidades tales como archivos, flujos de

datos y conexiones a servidores.

AcercaDeactionPerformed() Terminar()

ConfiguraElementosInterfaz()

Figura 4.14. Métodos de la clase AcercaDe.

4.3.3. Clase AltaAlumnos

La clase AltaAlumnos despliega en pantalla una ventana con los campos de

edición correspondientes a los datos principales del alumno. Los métodos implementados son

los siguientes (Figura 4.15):

AsignaDatos(). Este método establece los datos por omisión en los campos de edición del

alumno.

InscribirAlumno(). Este método verifica que los datos del alumno, nombre y cuenta, no se

encuentren duplicados en la base de datos, y en caso afirmativo inserta en la tabla

alumnos un registro nuevo con la información capturada.

71

LimpiarCampos(). La invocación a este método se realiza para eliminar los datos existentes

en los campos de edición de los datos del alumno.

ValidaCampos(). La validación consiste en verificar que los campos de edición no hayan sido

dejados en blanco, así mismo se verifica que los campos de contraseña y

confirmación contraseña coincidan.

AceptaDatos(). Este método despliega una ventana con el mensaje de advertencia recibido

como parámetro.

AltaAlumnosAceptaDatos() InscribirAlumno()

Terminar()ValidaCampos() LimpiarCampos()

AsignaDatos()actionPerformed() ConfiguraComponentesInterfaz()

Figura 4.15. Métodos de la clase AltaAlumnos.

4.3.4. Clase AsignarAlumnosCurso

Esta clase realiza las operaciones necesarias para dar de alta un alumno en un

curso. Los métodos implementados son los siguientes (Figura 4.16):

EliminaDatosTablaAvancesAlumnos(). Este método borra de la tabla de avances los

renglones existentes con la clave del curso y el número de control del alumno.

EscribeAlumnosBD(). La invocación de este método tiene por objeto validar si no existe un

renglón en la tabla alumnoscurso con los datos del alumno y el curso en cuestión;

en caso de no existir se crea.

EscribeAvancesAlumnos(). Este método tiene por objeto grabar en la tabla AvancesAlumnos

cada renglón que contiene la información del avance del alumno (número de

repasos, fecha del último repaso y la calificación), relativa a cada tema de cada

capítulo del curso en cuestión.

72

ObtenDatosParaTablaAvances(). Con este método se consiguen los datos de los capítulos y

temas de los cuales está compuesto el curso.

AsignarAlumnosCursoactionPerformed() EscribeAvancesAlumnos()

EliminaDatosTablaAvancesAlumno() EscribeAlumnoBD()

Terminar() ObtenDatosParaTablaAvances()

Figura 4.16. Métodos de la clase AsignarAlumnosCurso.

4.3.5. Clase AsignarAlumnos

La presente clase despliega en pantalla una ventana que contiene la lista de los

alumnos que no se encuentran todavía inscritos a un curso específico, con el propósito de

asociarlos al curso. Los métodos implementados son los siguientes (Figura 4.17):

AsignarAlumnosactionPerformed() Terminar()

ConfiguraInterfaz()

Figura 4.17. Métodos de la clase AsignarAlumnos.

4.3.6. Clase AsignarCursos

De la misma forma que la clase inmediata anterior, esta clase despliega en pantalla

una ventana con la lista de los cursos que no se encuentran todavía asociados a un alumno

determinado, con el propósito de inscribirlo al curso. Los métodos implementados son los

siguientes (Figura 4.18):

73

AsignarCursosactionPerformed() Terminar()

ConfiguraInterfaz()

Figura 4.18. Métodos de la clase AsignarCursos.

4.3.7. Clase BajaAlumnoCurso

Esta clase tiene por objeto dar de baja un alumno de un curso específico; es decir,

eliminar la asociación del alumno con el curso, previa confirmación de ejecución de la

operación. El método implementado es el siguiente (Figura 4.19):

DarBajaAlumnoCurso(). Este método elimina de las tablas alumnocurso y avancesalumnos

los renglones que contienen los datos referentes al alumno y curso seleccionado

para su baja.

BajaAlumnoCurso DarBajaAlumnoCurso()

Figura 4.19. Método de la clase BajaAlumnoCurso.

4.3.8. Clase ClienteTransf

Esta clase se encarga de gestionar el envío y recepción de los archivos de datos

(SWF) con el módulo de transferencia de archivos. El método implementado es el siguiente

(Figura 4.20):

74

EnviarArchivos(). Este método se encarga de realizar la conexión vía socket stream con el

servidor de transferencia de archivos, así como de revisar la correcta recepción del

mismo. En caso de no ser así, se realizarán las conexiones necesarias hasta lograr

el objetivo.

ClienteTransf EnviarArchivos()

Figura 4.20. Método de la clase ClienteTransf.

4.3.9. Clase Configuracion

Esta clase muestra en pantalla una ventana con las opciones para la edición de los

datos de configuración del sistema. Los métodos implementados son los siguientes (Figura

4.21):

EscribirDatos(). El método en cuestión graba los datos de configuración en un archivo

denominado Configuracion cuya extensión es TXT, en referencia a un formato de

archivo tipo texto.

LeerDatos(). Este método recupera la información de configuración del archivo

Configuracion.txt, y asigna sus valores a las variables que se despliegan en la

ventana para su actualización.

ValidarDatos(). La validación consiste en verificar la correcta conformación de los datos a

grabar, tal como la confirmación de la contraseña.

ValoresOmision(). Asigna los valores a los campos definidos por omisión, para una

configuración utilizada durante la creación de la herramienta en el presente

proyecto de investigación.

75

ConfiguracionValoresOmision() EscribirDatos()

actionPerformed()

Terminar()ValidarDatos()

ConfiguraElementosInterfaz()

LeerDatos()

Figura 4.21. Métodos de la clase Configuracion.

4.3.10. Clase ConsultarAlumnos

Esta clase despliega en pantalla una ventana con la lista de alumnos inscritos en el

sistema, de los cuales es posible visualizar los cursos a los que se encuentran asociados, de tal

forma que pueden realizarse operaciones de asignación y baja de cursos, así como la

actualización de los datos del alumno, además de eliminar en forma definitiva al alumno del

sistema. Los métodos implementados son los siguientes (Figura 4.22):

DatosAlumno(). Este método tiene como función la búsqueda de los datos referentes al

alumno seleccionado: nombre, cuenta y la lista de los cursos asociados.

ConsultarAlumnos

actionPerformed() ConfiguraInterfaz()

Terminar() DatosAlumno()

Figura 4.22. Métodos de la clase ConsultarAlumnos.

4.3.11. Clase ConsultarCursos

Esta clase despliega en pantalla una ventana con la lista de cursos existentes en el

sistema, de los cuales es posible visualizar los alumnos inscritos, de tal forma que pueden

76

realizarse operaciones de asignación y baja de alumnos. Los métodos implementados son los

siguientes (Figura 4.23):

DatosCurso(). Este método tiene como función la búsqueda y despliegue en pantalla de los

datos referentes al curso seleccionado: nombre, autor y la lista de los alumnos

inscritos.

ConsultarCursos

actionPerformed() ConfiguraInterfaz()

Terminar() DatosCurso()

Figura 4.23. Métodos de la clase ConsultarCursos.

4.3.12. Clase EliminarAlumno

La clase presentada elimina de la base de datos el alumno seleccionado, mismo

que recibe como parámetro al construir la clase. El método implementado es el siguiente

(Figura 4.24):

EliminaAlumno(). Este método tiene por objeto eliminar el alumno de la base de datos,

previa verificación de la inexistencia de cursos asignados; es decir, que el alumno

no esté inscrito en ningún curso al tiempo del borrado.

EliminarAlumno EliminaAlumno()

Figura 4.24. Método de la clase EliminarAlumno.

77

4.3.13. Clase EliminarCurso

La presente clase elimina de la base de datos el curso seleccionado, mismo que

recibe como parámetro al construir la clase. El método implementado es el siguiente (Figura

4.25):

EliminaCurso(). Este método tiene por objeto eliminar el curso de la base de datos, previa

verificación de la inexistencia de alumnos asignados; es decir, que el curso no

tenga ningún alumno inscrito al tiempo del borrado.

EliminarCurso EliminaCurso()

Figura 4.25. Métodos de la clase EliminarCurso.

4.3.14. Clase ExportarCurso

Esta clase muestra en pantalla una ventana con la lista de los cursos existente en el

sistema con el propósito de grabar los datos y archivos en un archivo compactado. Los

métodos implementados son los siguientes (Figura 4.26):

CreaArchivoZip(). Este método crea un archivo en formato compactado zip, en el cual se

adicionan el archivo de datos y los archivos swf del curso seleccionado.

DatosCurso(). Este método tiene como función la búsqueda y despliegue en pantalla de los

datos referentes al curso seleccionado: nombre y autor.

ExportarDatos(). Las funciones de este método son las siguientes: 1) seleccionar la ruta y

nombre del archivo compactado; 2) generar el archivo DatosCurso.txt, que

contiene la información necesaria para la creación del curso (tablas, campos,

datos); y 3) obtener de su ubicación original los archivos de datos swf.

78

ExportarCursoactionPerformed() DatosCurso()

ConfiguraInterfaz() CreaArchivoZip()

Terminar() ExportarDatos()

Figura 4.26. Métodos de la clase ExportarCurso.

4.3.15. Clase ImportarCurso

La función de esta clase es la de presentar en pantalla una ventana que muestre los

datos del archivo a importar: fecha, hora, nombre y autor del curso, con el propósito de grabar

en la base de datos la información y archivos del curso seleccionado. Los métodos

implementados son los siguientes (Figura 4.27):

DatosCurso(). Al invocar este método muestra en pantalla los datos del curso: nombre, autor,

y ruta, mismos que son extraidos del archivo datoscurso.txt existene en el archivo

compactado seleccionado.

DesHabilitaTexto(). Este método se usa para evitar la edición en los campos de texto que

contienen los datos del nombre del curso, el autor y la ruta.

EliminaArchivos(). La llamada a este método tiene como efecto la eliminación de los

archivos temporales generados en el proceso de importación del curso.

ExtraerDatos(). El prpósito del método es el de obtener el archivo de información

(datoscurso.txt) y los archivos de datos del curso (swf), contenidos en el archivo

compactado seleccionado, y grabarlos en un directorio temporal para su uso

posterior.

ImportarDatos(). Con este método se realiza la grabación de la información del curso en la

base de datos.

79

LimpiarCampos(). Con la invocación a este método se inicializa en blanco los campos de

texto que despliegan el nombre y el autor del curso

ObtenComando(). Extrae del archivo de datos las instrucciones para la creación de la

estructura de las tablas, las cuales se encuentran escritas en renglones por

separado. La función de este método es armar las instrucciones separándolas al

encontrar el caractér punto y coma (;).

SeleccionarArchivo(). En este método se busca el nombre y ruta del archivo compactado que

contiene el archivo de informacion y los archivos de datos del curso.

TransferirArchivos(). El presente método realiza la transferencia de los archivos de datos del

curso al servidor de archivos de datos del sistema.

VerificarDatos(). La operación implementada en el método gira en torno a la revisión de los

contenidos en la base de datos, de tal forma que no existan los mismos datos que

se pretende importar; es decir, verificar que no exista otro curso igual en la base de

datos.

ImportarCursoVerificarDatos() ImportarDatos()

TransferirArchivos() LimpiarCampos()

DesHabilitaTexto()DatosCurso() ExtraerDatos()EliminarArchivos()

SeleccionarArchivo() ObtenComando()

Figura 4.27. Métodos de la clase ImportarCurso.

4.3.16. Clase Imprimir

La clase imprimir muestra en pantalla una ventana con una vista preliminar de los

datos del tipo de informe requerido, los cuales son recibidos en una tabla como parámetro

durante la construcción del objeto. Además envía a la impresora seleccionada los datos

mostrados en la vista previa. El método implementado es el siguiente (Figura 4.28):

80

print(). Método que imprime el objeto enviado como parámetro, en este caso se refiere a la

tabla donde se encuentran los datos a imprimir.

Imprimirprint() Terminar()

Figura 4.28. Métodos de la clase Imprimir.

4.3.17. Clase ImprimirAlumnos

En el método constructor de esta clase se genera un objeto de tipo tabla que

contiene la información de los alumnos dados de alta en el sistema y los cursos a los que están

inscritos (Figura 4.29).

ImprimirAlumnos Terminar()

Figura 4.29. Métodos de la clase ImprimirAlumnos.

4.3.18. Clase ImprimirAvances

En esta clase se presenta en pantalla una ventana que muestra en una lista los

alumnos existentes en el sistema, así como los cursos a los que están asociados con el fin de

seleccionar el alumno y curso de cual se construirá la tabla para su impresión. Los métodos

implementados son los siguientes (Figura 4.30):

81

DatosAlumno(). Este método tiene como función la búsqueda de los datos referentes al

alumno seleccionado: nombre, cuenta y la lista de los cursos asociados.

ImprimirDatos(). Una vez seleccionado el alumno y curso a imprimir al invocar a este

método, se genera una tabla con los datos del avance del alumno y curso

seleccionado.

ImprimirAvancesactionPerformed() DatosAlumno()

ConfiguraInterfaz()

Terminar() ImprimirDatos()

Figura 4.30. Métodos de la clase ImprimirAvances.

4.3.19. Clase ImprimirCursos

En el método constructor de esta clase se genera un objeto de tipo tabla que

contiene la información de los cursos existentes en el sistema y los alumnos inscritos (Figura

4.31).

ImprimirCursos Terminar()

Figura 4.31. Métodos de la clase ImprimirCursos.

82

4.3.20. Clase RespaldarBD

La presente clase muestra en pantalla una ventana con la información referente a

los alumnos y cursos contenidos en el sistema, con la finalidad de grabar los datos de la base

de datos a un archivo compactado. Los métodos implementados son los siguientes (Figura

4.32):

CreaArchivoZip(). Este método crea un archivo en formato compactado zip, en el cual se

adicionan el archivo de datos y los archivos swf de los cursos a respaldar.

RespaldarDatos(). Las funciones de este método son las siguientes: 1) seleccionar la ruta y

nombre del archivo compactado; 2) generar el archivo DatosRespaldo.txt, que

contiene la información necesaria para la creación de los cursos (tablas, campos,

datos); y 3) obtener de su ubicación original los archivos de datos swf.

RespaldarBDactionPerformed() CreaArchivoZip()

ConfiguraInterfaz()

Terminar() RespaldarDatos()

Figura 4.32. Métodos de la clase RespaldarBD.

4.3.21. Clase RestaurarBD

La función de esta clase es la de presentar en pantalla una ventana que muestre los

datos del archivo a restaurar: fecha, hora, alumnos y cursos, con el propósito de grabar en la

base de datos la información y archivos de los cursos respaldados. Los métodos

implementados son los siguientes (Figura 4.33):

BorrarCurso(). Este metodo borra la informacion referente a la estructura de las tablas de la

base de datos del sistema, creando después una nueva estructura.

83

DatosRespaldo(). El método en cuestión extrae la información del respaldo del archivo de

datos "../temp/DatosRespaldo.txt" contenido en el archivo compactado, y muestra

los resultados en la ventana.

EliminarArchivos(). El presente método elimina los archivos extraidos del archivo

compactado.

EliminarArchivosCurso(). El método elimina los archivos de datos del curso restaurado.

ExtraerArchivosCurso(). Al invocar el método se inicia el proceso de obtención del archivo

de información y los archivos de datos del curso a restaurar, contenidos en el

archivo compactado del curso.

ExtraerDatos(). Este método obtiene el archivo de información del respaldo

(DatosRespaldo.txt), así como los archivos compactados de cada curso contenido

en el respaldo.

LimpiarDatos(). La invocación a este método se realiza para eliminar los datos existentes en

los campos de edición de los datos del respaldo actual.

ObtenComando(). Extrae del archivo de datos las instrucciones para la creación de la

estructura de las tablas, las cuales se encuentran escritas en renglones por

separado. La función de este método es armar las instrucciones separándolas al

encontrar el caractér punto y coma (;).

RestaurarDatos(). Este método inicia el proceso de restauración del respaldo seleccionado.

Para tal efecto primeramente graba la información de los cursos en la base de datos

del sistema, posteriormente recorre los cursos enviando los archivos de datos del

curso al servidor de archivos del sistema.

SeleccionarArchivos(). En este método se busca el nombre y ruta del archivo compactado que

contiene el archivo de informacion del respaldo y los archivos de datos de los

cursos.

84

TransferirArchivos(). El presente método realiza la transferencia de los archivos de datos de

los cursos contenidos en el respaldo al servidor de archivos de datos del sistema.

RestaurarBD

SeleccionarArchivo() ExtraerArchivosCurso()

RestaurarDatos() ExtraerDatos()

BorrarDatos()

TransferirArchivos() EliminarArchivosCurso()

EliminarArchivos()

ObtenComando() LimpiarDatos()

DatosRespaldo()

Figura 4.33. Métodos de la clase RestaurarBD.

4.4. Módulo Interfaz del Alumno

A continuación se da una breve descripción de las clases y métodos más

importantes usados en la implementación de la Interfaz del Alumno.

4.4.1. Servicete Acceso

Esta clase despliega, en la ventana del visualizador de páginas Web, los resultados

de la verificación de la clave de acceso y la contraseña enviada por el usuario mediante de un

formulario. El método implementado es el siguiente (Figura 4.34):

service(). El presente método forma parte integral de las clases heredadas de la clase servlet,

cuya función es la de dar inicio a las operaciones del servicete.

Acceso service()

Figura 4.34. Método del servicete Acceso.

85

4.4.2. Servicete ConfigAlumno1

Este servicete despliega en la ventana del visualizador de páginas de Web los

datos del alumno: número de control, nombre y cuenta; así como los datos susceptibles de

modificación: cuenta y contraseña, mismos que una vez modificados serán actualizados en la

base de datos. El método implementado es el siguiente (Figura 4.35).

ConfigAlumno1 service()

Figura 4.35. Método del servicete ConfigAlumno1.

4.4.3. Servicete ConfigAlumno2

Este servicete despliega en la ventana del visualizador de páginas de Web los

resultados de la modificación de los datos del alumno. En caso afirmativo mostrará los nuevos

datos del alumno: número de control, nombre y nueva cuenta. En caso negativo mostrará un

letrero informando que no se pudo realizar la modificación. El método implementado es el

siguiente (Figura 4.36).

ConfigAlumno2 service()

Figura 4.36. Método del servicete ConfigAlumno2.

86

4.4.4. Clase Cursos

Esta clase muestra en la ventana del visualizador de páginas de Web los datos de

los cursos a los que el alumno se encuentra asignado: nombre y autor del curso. No se han

implementado métodos en esta clase, aparte del constructor (Figura 4.37).

Cursos

Figura 4.37. Clase Cursos.

4.4.5. Servicete Capítulos

Este servicete muestra en la ventana del visualizador de páginas de Web los datos

referentes a los capítulos del curso seleccionado: status y nombre del capítulo. El status está

indicado por el código de colores definido para los capítulos. El método implementado es el

siguiente (Figura 4.38).

Capitulos service()

Figura 4.38. Método del servicete Capitulos.

87

4.4.6. Servicete Temas

Este servicete muestra en la ventana del visualizador de páginas de Web los datos

referentes a los temas del capítulo y curso seleccionados: status y nombre del tema. El status

está indicado por el código de colores definido para los temas. El método implementado es el

siguiente (Figura 4.39).

Temas service()

Figura 4.39. Método del servicete Temas.

4.4.7. Servicete Diapositivas

Este servicete muestra en la ventana del visualizador de páginas de Web los datos

referentes a las diapositivas del tema, capítulo y curso seleccionado: archivo de datos y

ejemplo. Además muestra, en caso de existir, la consulta de ejemplo asociada a la diapositiva.

Los métodos implementados son los siguientes (Figura 4.40):

AplicarExamen(). El presente método tiene como función la de verificar la pertinencia en la

aplicación de un exámen, siguiendo los lineamientos descritos en el capítulo 3. El

método muestra en la ventana del visualizador de páginas de Web el icono que

retorna en control a la página anterior, en este caso el examen a aplicar.

88

DiapositivasAplicarExamen() service()

Figura 4.40. Métodos del servicete Diapositivas.

4.4.8. Servicete Ejemplos

El presente servicete tiene por objeto mostrar en la ventana del visualizador de

páginas de Web los resultados de la ejecución del ejemplo interactivo, asociado a la

diapositiva. En caso de éxito los resultados se muestran en formato de tabla, y en caso de

fracaso se informa que la consulta no pudo ser realizada como se capturó. El método

implementado es el siguiente (Figura 4.41).

Ejemplos service()

Figura 4.41. Método del servicete Ejemplos.

4.4.9. Servicete Examen

Este servicete muestra en la ventana del visualizador de páginas de Web las

preguntas del examen seleccionado para su aplicación. Los métodos implementados son los

siguientes (Figura 4.42):

AplicarExamen(). Este método muestra en pantalla las preguntas seleccionadas para su

exhibición, siguiendo los lineamientos descritos en el capítulo 3.

89

ExamenAplicarExamen() service()

Figura 4.42. Métodos del servicete Examen.

4.4.10. Servicete Evaluación

Este servicete despliega en la ventana del visualizador de páginas de Web los

resultados de la calificación de las preguntas incluidas en el examen, siguiendo los

lineamientos establecidos en el capítulo 3. Los métodos implementados son los siguientes

(Figura 4.43):

CalificarExamen(). En este método se define la calificación obtenida para cada átomo de

conocimiento tomando en cuenta las preguntas correctas e incorrectas, tal como se

define en el capítulo 3. Además, se guardan esas calificaciones en el avance del

alumno referente al curso.

CompararConsultas(). El objeto de este método es el de indicar si las instrucciones de SQL

recibidas como parámetros son iguales. Esto se logra comparando los resultados al

ejecutar las instrucciones en cuestión.

EvaluarExamen(). La función del presente método es indicar si las preguntas fueron

respondidas de forma correcta o incorrecta. Para el caso de preguntas teóricas se

indica de forma directa si la respuesta seleccionada es la correcta o no. En el caso

de preguntas prácticas se invoca al método de comparación de consultas, y sólo si

son iguales, la pregunta será considerada como correcta.

90

Evaluacion

CalificarExamen() CompararConsultas()

service() EvaluarExamen()

Figura 4.43. Métodos del servicete Evaluacion.

4.4.11. Clase Encabezado

Esta clase utiliza el método constructor para mostrar en la ventana del visualizador

de páginas de Web los datos del alumno: curso, capítulo y tema, según el nivel en el que se

encuentre el alumno al verificar la información del curso (Figura 4.44).

Encabezado

Figura 4.44. Clase Encabezado.

4.4.12. Clase Conexión

Esta clase establece el enlace entre los servicetes de Java y la base de datos, a

través del JDBC. Los datos necesarios para el establecimiento de dicha comunicación se

encuentran ubicados en un archivo de configuración, de forma similar a como se implementó

en el módulo de creación y el módulo de administración de cursos tutores (Figura 4.45).

91

Conexion

Figura 4.45. Clase Conexión.

4.5. Módulo de Transferencia de Archivos

A continuación se da una breve descripción de las clases y métodos más

importantes usados en la implementación de la Transferencia de Archivos.

4.5.1. Clase TransfArchivos

Esta clase se implementa a través de un servidor socket stream, cuya función es la

de recibir los archivos de datos de los cursos y guardarlos en el subdirectorio

$HOME/public_html/(dir_datos)/(dir_cursos)/, el cual consta de dos parámetros: dir_datos, es

el directorio donde se almacenan los directorios de los cursos; dir_cursos, es el directorio

donde se almacenan los archivos del curso, cuya característica principal es ser único (Figura

46).

ServidorTransf main()

Figura 4.46. Métodos de la clase ServidorTransf.

92

!"#$ %&'().!"#$ %&'().!"#$ %&'().!"#$ %&'(). P r u e b a s d e l a H e r r a m i e n t a

En este capítulo se describirán el objetivo y los alcances de las pruebas realizadas

a la herramienta.

93

5.1. Objetivo de las Pruebas

El objetivo de las pruebas es validar los requerimientos especificados en los

alcances de la propuesta de tesis.

5.2 Descripción de los Alcances

A continuación se describen los alcances incluidos en la propuesta de tesis, como

antecedente del presente proyecto de investigación [Martínez, 2000].

1. Creación del Módulo de Interfaz del Usuario, a desarrollar para la presentación multimodal (sonido e imágenes) del conocimiento.

1.1. Acceso al Sistema.

1.2. Visualización de Diapositivas.

1.3. Visualización de Ejercicios.

1.4. Visualización de Exámenes.

2. Se utilizarán los módulos creados en el sistema tutor anterior, modificándolos para su interacción con la nueva arquitectura.

2.1. Módulo Generador de Cursos, para la creación del curso.

2.2. Módulo Pedagógico, para la planificación del curso.

2.3. Modelo del Estudiante, para la evaluación del curso.

3. Acceso al sistema tutor a través de Internet.

4. Sincronización del sonido con las imágenes y diapositivas a desplegar.

5. Reestructuración de la base de datos actual para incluir los archivos de sonido e imágenes.

6. Adecuación de los ejemplos interactivos (ejercicios) del sistema tutor actual a la nueva forma de acceso.

7. Realización de pruebas con alumnos.

8. Creación del servicio que facilite la instalación y copiado del curso.

9. Debido a las limitaciones de los medios de comunicación, este tutor no se pretende instalar en un servidor al que puedan acceder una gran cantidad de usuarios simultáneamente desde cualquier parte del país.

94

5.3. Descripción del ambiente de pruebas

A continuación se describen los elementos requeridos durante la fase de pruebas

del sistema en cuanto a personal, equipo y software.

Para tal efecto se seleccionaron doce personas del Instituto Tecnológico Superior

de la Costa Chica, dos profesores Licenciados en Informática, y diez alumnos del séptimo

semestre de la carrera de Licenciado en Informática.

Respecto al equipo, se utilizó lo siguiente:

• Una computadora Servidor, con procesador Pentium IV a 1.7 MHz, memoria

128 MB RAM, disco duro 40 GB.

• Dos computadoras Clientes para el Generador de Cursos y para el

Administrador de Cursos, con procesador Pentium IV a 1.4 MHz, memoria

128 MB RAM, disco duro 40 GB;

• Diez computadoras Clientes para la Interfaz del Alumno, con procesador

Pentium IV a 1.3 MHz, memoria 128 MB RAM, disco duro 20 GB.

• Una Red de Comunicaciones, red de área local (LAN) con protocolo Ethernet a

una velocidad de 100 Mbps;

Además del equipo se requirió también instalar el siguiente software en cada uno

de los equipos utilizados:

• Servidor: sistema operativo Linux Red Hat 7.3, base de datos PostgreSQL,

servidor de páginas de web Apache, Java Servlet Development Kit 2.0 para

Linux, controlador JDBC para PostgreSQL.

• Servidor: Configurar el servidor con la dirección IP pública, con el fin de

acceder a la Base de Datos del Sistema desde Internet.

• Clientes para el Generador de Cursos y para el Administrador de Cursos:

sistema operativo Windows 98SE, Java Runtime Environment 1.3 para

95

Windows, controlador JDBC para PostgreSQL, visualizador de páginas de web

IExplorer 5.0.

• Clientes para la Interfaz del Alumno: sistema operativo Windows 98SE,

visualizador de páginas de web IExplorer 5.0.

Se instalaron en una red de área local los equipos de cómputo, estableciendo la

comunicación entre las computadoras a través del protocolo TCP/IP.

5.4. Cursos de Pruebas

A continuación se muestra el material empleado en las pruebas, que consta de la

estructura de los cursos:

1. Enseñanza de SQL, descrito en la tabla 5.1.

2. Introducción al Lenguaje JAVA, descrito en la tabla 5.2.

3. Manual de HTML, descrito en la tabla 5.3.

Es importante mencionar que sólo el primer curso contiene realmente material de

enseñanza, ya que los otros dos se utilizaron solo como muestra que el sistema soporta varios

cursos. El nivel de descripción de estos dos últimos cursos se limitó a introducir únicamente

los nombres de los temas que los componen.

Tabla 5.1. Estructura del curso Enseñanza de SQL.

Curso Capítulo Tema Diapositivas Ejercicios Enseñanza de SQL Introducción 1 Introducción Creación de tablas base Definición de la tabla Materias Precompilación, compilación y ejecución de programas Definición de la tabla Alumnos Definición de la tabla Calificaciones Ejercicios

96

Curso Capítulo Tema Diapositivas Ejercicios Creación de índices Creación de índices Ejercicios Llenado de tablas Llenado de tablas Consultas Consultas Consultas simples Consultas simples - la variable SQLCODE Consultas usando el asterisco (*) Consultas con cursores Consultas que involucran varias tablas Ejercicios Funciones de consolidación Funciones de consolidación Ejercicios Consultas anidadas Consultas anidadas Ejercicios Operaciones avanzadas Operaciones avanzadas cap1.swf cap1-1.swf cap1-2.swf Comparadores Like y Not Like cap1-3.swf cap1-4.swf cap1-5.swf Valores nulos cap1-6.swf cap1-7.swf cap1-8.swf select * from alumnos Ejercicios

97

Curso Capítulo Tema Diapositivas Ejercicios cap1-9.swf select * from materias cap1-10.swf select * from calificaciones cap1-11.swf cap1-12.swf Evaluacion teórica Evaluacion práctica La instrucción Insert La instrucción Insert Ejercicios La instrucción Update La instrucción Update Ejercicios La instrucción Delete La instrucción Delete Ejercicios Tipos de datos del manejador y variables anfitrionas Tipos de datos del manejador Variables anfitrionas

Tabla 5.2. Estructura del curso Introducción al lenguaje Java.

Curso Capitulo Tema Diapositivas Ejercicios Introducción al Lenguaje JAVA Introducción a la programación en Java Programación orientada a objetos y Java Fundamentos de Java Cómo trabajar con objetos Arreglos, condicionales y ciclos Cómo crear clases y aplicaciones en Java Fundamentos de los applets de Java Gráficos Imágenes y animación

98

Curso Capitulo Tema Diapositivas Ejercicios Manejo de eventos sencillos e interactividad El Java Abstract Windowing Toolkit Ventanas HTML El JDBC con mSQL Miscelánea de clases de Java

Tabla 5.3. Estructura del curso Manual de HTML.

Curso Capitulo Tema Diapositivas Ejercicios Manual de HTML Antes de empezar Recomendaciones Publicar tu página Introducción Qué es el HTML Estructura básica Divisiones de un documento en HTML Cabecera del documento Cuerpo del documento Elementos de un documento en HTML Juego de caracteres Espaciados y saltos de línea Cabeceras y atributos del texto Listas de elementos Imágenes Hiperenlaces Tablas Mapas Formularios Extensiones del HTML Applet Marquee Sonido de fondo

99

Curso Capitulo Tema Diapositivas Ejercicios Frames Scripts Trucos para tu página Web Gifs animados Gifs transparentes Programas JavaScript

5.4.1 Material del Curso Enseñanza de SQL

Para llevar a cabo las pruebas necesarias, se elaboraron en Flash de Macromedia

doce diapositivas correspondientes al Capítulo 1 del curso, las cuales se muestran en el anexo

4 del presente documento.

Se asignaron las diapositivas al capítulo 8 del curso, para llevar a cabo un mejor

esquema de pruebas tanto para el seguimiento de átomos, como para el proceso de evaluación;

tal asignación se muestra en la tabla 5.1. Estructura del Curso Enseñanza de SQL.

Respecto al plan de estudios del curso se designo de tal forma que cada capítulo y

átomo tuviera como predecesor el anterior, quedando como se indica en la figura 5.1.

100

Capítulo 1. Introducción

Capítulo 2. Creación de Tablas BaseÁtomo 1. Introducción

Átomo 1. Definición de la tabla Materias

Átomo 2. Precompilación, compilación y ejecución de programas

Átomo 3. Definición de la tabla Alumnos

Átomo 4. Definición de la tabla Calificaciones

Átomo 5. Ejercicios

Capítulo 3. Creación de ÍndicesÁtomo 1. Creación de Índices

Átomo 2. Ejercicios

Figura 5.1. Plan de estudios del curso Enseñanza de SQL

Referente a los ejemplos se seleccionaron tres consultas a realizar, mismas que se

asignaron a las diapositivas 8, 9 y 10, tal asignación se muestra en la tabla 5.1. Estructura del

Curso Enseñanza de SQL.

Con relación a las evaluaciones se elaboraron seis preguntas para aplicar el

examen, de las cuales cinco son teóricas y una práctica, tal como se muestra en la figura 5.2.

101

Preguntas Teóricas y Prácticas1. Instruccion para Consultar Datos

a) select CORRECTAb) selecionar INCORRECTAc) selección INCORRECTA

2. Instruccion para Modificar Datosa) modificar INCORRECTAb) update CORRECTAc) modify INCORRECTAd) actualizar INCORRECTA

3. Instruccion para Eliminar Datosa) Remove INCORRECTAb) Borrar INCORRECTAc) delete CORRECTAd) Erase INCORRECTAe) Clear INCORRECTA

4. Instruccion para Unir Tablasa) unir INCORRECTAb) juntar INCORRECTAc) union INCORRECTAd) join CORRECTA

5. Instruccion para Crear Tablasa) crear tabla INCORRECTAb) create INCORRECTAc) tabla creada INCORRECTAd) creation table INCORRECTAe) create table CORRECTA

6. Seleccionar Datos de los Alumnosa) select * from alumnos

Figura 5.2. Preguntas teóricas y preguntas prácticas.

Así mismo se asociaron las preguntas a los átomos del capítulo 8, con la finalidad

de mostrar las preguntas al visualizar las diapositivas, quedado como se indica en la figura 5.3.

102

Asociación de Átomos y Preguntas

Átomo 1

Átomo 2

Átomo 3

Átomo 4

Átomo 5

Pregunta 1

Pregunta 2

Pregunta 3

Pregunta 4

Pregunta 5

Pregunta 6

Figura 5.3. Asociación de átomos y preguntas.

5.5. Pruebas y Resultados

Las pruebas realizadas al sistema se dividieron en tres etapas, correspondientes a

cada uno de los módulos de que consta el mismo.

El diseño cada prueba se realizó de tal forma que posibilite la verificación de cada

uno de los puntos descritos en los alcances de la propuesta de tesis, mismos que se encuentran

descritos en la sección 5.2.

La relación antes mencionada se establece en la tabla 5.4.

Para llevar a cabo las pruebas se tomo como ejemplo la estructura del curso

Enseñanza de SQL; misma que describe Capítulos, Temas, Diapositivas y Ejercicios que

contiene el curso; dicha estructura se describe en la tabla 5.1.

103

Tabla 5.4. Pruebas realizadas y alcances asociados

Pruebas Alcances

Pruebas al Módulo Generador de Cursos Tutoriales 2

Prueba 1. Creación de Cursos 2.1

Prueba 2. Planificación del Curso Enseñanza de SQL 2.2

Pruebas al Módulo Administrador de Cursos Tutoriales

Prueba 3. Copiado e Instalación de un Curso. 8

Pruebas al Módulo Interfaz del Alumno 1

Prueba 4. Acceso al Sistema a través de Internet 1.1, 3

Prueba 5. Visualización de Diapositivas 1.2, 4

Prueba 6. Visualización de Ejemplos 1.3, 6

Prueba 7. Visualización de Exámenes 1.4, 2.3

5.5.1. Prueba 1. Creación de Cursos

Esta prueba satisface los requerimientos 2 y 2.1, consistentes en modificar los

módulos anteriores para su interacción con la nueva arquitectura, y creación del curso a través

del Módulo Generador de Cursos Tutores, respectivamente.

Ejecución de la Prueba

Primeramente se realizó la creación del curso, para lo cual se siguió el

procedimiento descrito en el anexo 1 de forma específica en el punto A1.1.1.1. La pantalla de

captura de cursos se muestra en la Figura 5.4.

104

Figura 5.4. Pantalla de captura para los datos de un curso nuevo.

Enseguida se procedió a capturar los capítulos, para este efecto se siguieron los

pasos descritos en el anexo 1 en el punto A1.1.2.1.1. La pantalla de captura de capítulos se

describe en la Figura 5.5.

Figura 5.5. Pantalla de captura de los datos del capítulo.

Para la asignación de los temas de cada capítulo se tomó como referencia lo

indicado en el anexo 1 específicamente en el punto A1.1.2.1.2. La pantalla de captura de

átomos se describe en la Figura 5.6.

105

Figura 5.6. Pantalla de captura de los átomos de conocimiento.

Como paso final y una vez dados de alta los átomos se procedió a dar de alta las

diapositivas en los temas correspondientes, el proceso está descrito en el punto A1.1.2.1.2.1.1.

del anexo 1. La pantalla de captura de las dispositivas se muestra en la Figura 5.7.

Figura 5.7. Pantalla de captura de las diapositivas.

106

Resultados de la Prueba

Los resultados de la creación del curso se aprecian en las Figuras 5.8. y 5.9. donde

se muestran los temas y capítulos dados de alta.

Figura 5.8. Consultar el curso creado.

Además se muestran en la Figura 5.9. las diapositivas asociadas al átomo

seleccionado.

Figura 5.9. Consulta de diapositivas asociadas al átomo.

107

5.5.2. Prueba 2. Planificación del Curso Enseñanza de SQL

La prueba descrita cubre los requerimientos 2 y 2.2, que consisten en modificar los

módulos anteriores para su interacción con la nueva arquitectura, y planificar el curso

generando el grafo instruccional a través del Módulo Generador de Cursos Tutores,

respectivamente.

Esta prueba se llevó a cabo posterior a la creación del curso, lo que implica dar de

alta de capítulos temas, así como la asociación de las diapositivas y ejemplos del curso.

La prueba consiste en el establecimiento de las relaciones de precedencia entre

capítulo y átomos (Figura 5.10), esto es, la construcción del grafo instruccional, para tal efecto

se utilizó el plan de estudios descrito en la Figura 5.1.

Figura 5.10. Genera plan de estudios.

Ejecución de la Prueba

Primero se efectuó el establecimiento de las relaciones de precedencia entre

átomos, para lo cual se siguió el procedimiento descrito en el punto A1.1.2.4. del anexo 1. La

Figura 5.11 muestra la ventana para realizar las acciones descritas.

108

Figura 5.11. Establece relaciones de precedencia entre átomos.

Posteriormente se establecieron las relaciones de precedencia de los capítulos del

curso, tomándose como referencia los pasos indicados en el anexo 1 en el punto A1.1.2.4.2. La

ventana de captura de las relaciones de precedencia de los capítulos se muestra en la Figura

5.12.

Figura 5.12. Establece relaciones de precedencia entre capítulos.

109

Para finalizar se ejecutó el procedimiento para genera el Plan de Estudios,

indicado por el botón del mismo nombre ubicado como punto 3 descrito en la Figura 5.10.

Resultados de la Prueba

Como resultado se obtiene el grafo instruccional del curso, así como los planes de

estudio para cada uno de los alumnos inscritos al curso. Con lo que el curso queda listo para

que los alumnos inicien su operación.

5.5.3. Prueba 3. Copiado e Instalación de un Curso

La prueba que se describe a continuación cubre el punto 8 de los requerimientos,

que consiste en crear el servicio que facilite la instalación y copiado del curso.

Esto se realizó utilizando el Módulo Administrador de Cursos Tutores, con las

opciones Exportar e Importar, con las cuales es posible extraer un curso de un servidor para

introducirlo en otro, sin necesidad de crearlo de forma manual.

Ejecución de la Prueba

La primera parte de la prueba consistió en la generación de un archivo listo para su

exportación, este procedimiento se describe en el anexo 1 en el punto A1.2.1.4. En la Figura

5.13. se muestra la pantalla para seleccionar el curso a exportar.

Figura 5.13. Ventana exportar curso.

Con este proceso se generó un archivo en formato de archivo compactado

(resp_sql.zip) el cual contiene la información del curso sujeto a pruebas. El contenido de tal

archivo se muestra el la figura 5.14.

110

Figura 5.14. Contenido del archivo resp_sql.zip

Los archivos con extensión SWF corresponden a las diapositivas de Flash de

Macromedia, y el archivo DatosCurso.txt contiene la información referente al curso contenida

en la base de datos, misma que se organiza de tal forma que pueda ser utilizada únicamente

para la ejecución del proceso contrario, es decir, para su importación. El contenido del archivo

DatosCurso.txt se muestra en el anexo 5 en el punto A5.1.

La segunda parte de esta prueba consiste importar un curso, esto es, tomar el

archivo generado en el proceso de exportación e introducir la información en el servidor. Este

procedimiento se describe en el anexo 1 en el punto A1.2.1.5. La ventana de selección del

archivo del curso se muestra en la Figura 5.15.

111

Figura 5.15. Seleccionar el archivo que contiene el curso a importar.

Una vez seleccionado el archivo se analiza y extraen los datos del curso (Figura

5.16), donde se confirma su importación.

Figura 5.16. Datos del curso a importar.

Resultados de la Prueba

Como resultado de la prueba se obtuvo en primera instancia el archivo

compactado, con la información del curso Enseñanza de SQL, listo para su instalación en

cualquier servidor donde se tenga conexión; además de la copia del mismo curso en el

servidor local. Esto se verificó a través de la ventana de la opción respaldo, donde se muestran

los cursos y alumnos dados de alta (Figura 5.17).

112

Figura 5.17. Ventana respaldo de la base de datos.

5.5.4. Prueba 4. Acceso al Sistema a través de Internet

La prueba de acceso al sistema satisface los puntos 1.1. y 3, que corresponden al

acceso al sistema y acceso al sistema tutor a través de Internet, respectivamente.

Un elemento adicional usado en la prueba fue la asignación al servidor de la

dirección IP pública de la institución donde se realizó la prueba.

Ejecución de la Prueba

Para llevar a cabo esta prueba utilizó el Módulo Interfaz del Usuario en su primera

opción, este procedimiento se describe en el anexo 1 en el punto A1.3.1. La Figura 5.18

describe la pantalla de acceso por parte del alumno al sistema tutor.

Para llevar a cabo este proceso se capturaron en los campos designados para tal

fin, la clave de acceso y contraseña de los alumnos dados de alta en el Sistema.

113

Figura 5.18. Acceso al sistema a través de Internet.

Resultados de la Prueba

La prueba concluye de forma satisfactoria, al mostrar la página de Web con los

cursos asociados a los alumnos de los cuales se capturaron las claves de acceso y contraseñas,

como se muestra en la Figura 5.19.

Figura 5.19. Acceso al sistema.

114

5.5.5. Prueba 5. Visualización de Diapositivas

Los puntos 1.3, 4 y 5 de los requerimientos referentes a la visualización de

diapositivas, la sincronización del sonido con las imágenes y diapositivas a desplegar, y la

reestructuración de la base de datos para incluir los archivos de sonido e imágenes,

respectivamente; quedan cubiertos con esta prueba.

Ejecución de la Prueba

Para la ejecución de la prueba se continuó con la utilización del Módulo Interfaz

del Alumno en lo que respecta a la visualización de diapositivas, cuyo procedimiento se

encuentra descrito en el punto A1.3.5 del anexo 1.

Una vez que los alumnos accedieron al sistema seleccionaron del curso de prueba

el capítulo 8 Operaciones Avanzadas, así mismo se seleccionó el tema 1 accediendo a las

diapositivas asignadas a ese tema.

Resultados de la Prueba

Se muestra en la Figura 5.20. una de las diapositivas del material del curso, en la

cual se asocian las imágenes con el sonido (voz), además de la animación implementada en la

misma.

La presentación de la diapositiva tuvo dificultades en los casos en los que el

visualizador de páginas de Web no contaba con el Plug-In para desplegar los objetos SWF,

para corregir esto fue necesario esperar un periodo de tiempo para que de forma automática se

obtuviera el Plug-In de la página de Web de la empresa Flash de Macromedia.

Cabe mencionar que fueron notorias las dificultades por parte de los alumnos al

tiempo de acceder de forma simultánea al servidor de servicetes, ya que la pérdida de la

comunicación fue una constante.

Lo anterior se debió al número de conexiones concurrentes con las que cuenta el

JSDK (Java Servlet Development Kit), lo cual se corrigió aumentado el parámetro destinado

para tal fin.

115

Otra de las dificultades asociadas con la desconexión se debió a la interacción del

JSDK con el servidor de páginas de Web (Apache de Linux), ya que la compañía Sun

Microsystems [Sun 2003] recomienda la utilización de los servidores de páginas de Web

desarrollados por ellos, tales como Tomcat y Jakarta, los cuales cuentan con utilerías de apoyo

al servidor de servicetes.

Figura 5.20. Visualización de diapositivas.

5.5.6. Prueba 6. Visualización de Ejemplos

Con esta prueba se satisfacen los puntos 1.3 y 6 de los requerimientos, que

consisten en la visualización de los ejemplos y la adecuación de los ejemplos a la nueva

plataforma de acceso, respectivamente.

Ejecución de la Prueba

El proceso para la ejecución de esta prueba se basa en la opción visualización de

ejemplos del Módulo Interfaz de Alumno, mismo que se encuentra descrito en el anexo 1 en el

punto A1.3.5.1.

116

No todas las diapositivas diseñadas tienen ejemplos asociados, para la ejecución de

la prueba se seleccionaron tres consultas de ejemplo, mismas que se asociaron al mismo

numero de diapositivas.

La Figura 5.21. muestra una de las diapositivas que los alumnos accedieron para la

ejecución de las consultas de ejemplo.

Figura 5.21. Diapositiva que contiene una consulta de ejemplo.

Resultados de la Prueba

Como resultado se observa en la Figura 5.22. los resultados de la consulta

realizada a la base de datos de ejercicios.

Existió en la realización de esta prueba un retraso en la obtención de los

resultados, debido a que todas las ejecuciones de las consultas se realizan en la misma Base de

Datos denominada Ejercicios.

117

Figura 5.22. Resultados de la ejecución de la consulta.

5.5.7. Prueba 7. Visualización de Exámenes

La siguiente prueba cubre los puntos 1.4 y 2.3 de los requerimientos, consistentes

en la visualización de exámenes y la evaluación del curso por medio del modelo del

estudiante, respectivamente.

Ejecución de la Prueba

La opción de visualización de exámenes está contenida en el Módulo Interfaz del

Alumno, misma que fue utilizada para la realización de esta prueba, está descrita en el anexo 1

en el punto A1.3.5.2.

Durante la visualización de las diapositivas se presento a los alumnos la

posibilidad de aplicar un examen, una vez cubiertas las condiciones requeridas para tal fin,

mismas que se explican en el punto A1.3.5.2. del anexo 1. La Figura 5.23 muestra las

preguntas que contiene el examen.

118

Figura 5.23. Preguntas de la evaluación.

Los alumnos seleccionaron las respuestas a las preguntas según lo aprendido en las

diapositivas presentadas por el sistema, y enviaron sus respuestas al sistema para su

evaluación.

Los resultados de una de las evaluaciones se muestran en la Figura 5.24. donde se

especifica si la pregunta fue contestada correcta o incorrectamente. En caso de que algunas

preguntas sean respondidas incorrectamente, el sistema no provee al alumno de la respuestas

correctas, ya que el sistema sólo cuenta con un grupo de preguntas a evaluar, esto es, la

próxima evaluación contendrá las preguntas que haya contestado incorrectamente.

119

Figura 5.24. Resultados de la evaluación teórica.

Resultados de la Prueba

Una vez terminando de contestar los exámenes, se modifica el código de colores

asociado a cada tema y a cada capítulo en el plan de estudios de cada alumno. Esto con la

finalidad de determinar que acción tomar, esto es, continuar con la visualización de los

siguientes temas, o en caso contrario regresar y ver los temas que no están aprobados para

repasarlos.

120

!"#$ %&'()/!"#$ %&'()/!"#$ %&'()/!"#$ %&'()/))))C o n c l u s i o n e s

Como capítulo final del presente trabajo de investigación, se reporta la

información acerca de las conclusiones generales del proyecto, los resultados obtenidos, y

algunas sugerencias para trabajos a desarrollar en la línea de investigación denominada

Sistemas Tutores.

121

6.1. Conclusiones Generales

El presente trabajo de investigación es la segunda etapa de los trabajos

desarrollados en la línea de investigación de sistemas tutores, de la especialidad de Sistemas

Distribuidos del CENIDET. Este trabajo consistió en el diseño e implementación de módulos

que le permitieran al sistema tutor proporcionar los siguientes servicios: 1) la creación de más

de un curso tutor, 2) la administración de alumnos y cursos, 3) la transferencia de archivos

hacia el servidor de Web, y 4) la interacción de los alumnos con los cursos a través de Internet.

6.2. Resultados Obtenidos

A continuación se listan los resultados obtenidos en el desarrollo de esta tesis:

• Modificaciones hechas en el Módulo Generador de Cursos Tutores:

o Modificación de la base de datos para dar soporte a más de un curso.

o Facilitar la modificación de los parámetros de configuración del módulo por

medio de un archivo separado del código.

o Cambiar el mecanismo de visualización de las diapositivas del curso (de GIF a

SWF), y por último,

o Implementar el envío de los archivos que contienen la información del curso

(diapositivas SWF) al servidor, para facilitar su visualización a través del

Internet.

• Se desarrolló el módulo Administrador de Cursos Tutores, cuyas funciones son las

siguientes:

o Respaldar y restaurar la información de la base de datos y los archivos de los

cursos.

o Importar y exportar cursos desde y hacia otros servidores, con el fin de formar

una red de distribución de cursos a través del Sistema Nacional de Institutos

Tecnológicos.

122

o Administrar la información de los alumnos; es decir, dar de alta los alumnos en

el sistema y a continuación asignarlos a los cursos tutores disponibles.

o Permitir la impresión de informes de avance de los alumnos en los cursos,.

• Se desarrolló el módulo de Transferencia de Archivos, cuyas funciones son las siguientes:

o El envío y recepción de archivos SWF desde los módulos Generador de Cursos

y Administrador de Cursos, los cuales tienen la función de enviar los archivos

de los cursos al servidor, el que al recibirlos los ubicará en el directorio que

corresponda a cada curso.

• Se desarrolló el módulo Interfaz del Alumno, cuyas funciones son las siguientes:

o Permitir el acceso a los alumnos al sistema a través del Internet, por medio de

un nombre de cuenta y contraseña.

o Navegar en los cursos en los que fue dado de alta.

o Visualizar las diapositivas que contienen la información del curso indicado por

el planificador del curso.

o Ejecutar ejemplos de forma directa en la base de datos de ejercicios.

o Resolver exámenes teóricos y prácticos, para que basándose en el resultado de

los exámenes se modifique el planificador del curso.

6.3. Trabajos Futuros

En el desarrollo de la herramienta se presentaron algunos aspectos que no fueron

parte del alcance del presente trabajo de tesis, y es importante tratarlos de una manera más

amplia:

o Mejorar el método de evaluación y planificación del sistema tutor (adaptativo). En el

estado actual de la herramienta, el planificador de cursos es muy limitado, ya que no se

modificó desde la primera versión. Por lo tanto, pudiera ser mejorado si se tomara en

cuenta el grado de dificultad y el tipo de conocimiento (comprensión, memorización y

123

razonamiento), para que el tutor se adaptase al ritmo y nivel de aprendizaje del alumno.

Cabe hacer mención que los cambios necesarios para lograr lo anterior ya se encuentran

incorporados en el esquema actual de la base de datos del sistema.

o Facilitar la realización de ejemplos y evaluaciones prácticas en otras áreas del

conocimiento. Debido a que la herramienta fue orientada para la implementación del curso

Enseñanza de SQL, sólo se previeron los casos de la elaboración de ejemplos y la

aplicación de exámenes prácticos para el lenguaje SQL. Si se deseara crear cursos de otro

tipo que implicaran una parte práctica, sería necesario modificar el sistema para permitir la

inclusión de ejercicios y exámenes prácticos en otras áreas del conocimiento tales como

lenguajes de programación (C++, Java).

o Creación de una Herramienta Auxiliar en la Elaboración del Material Didáctico. Dado

que el material didáctico se debe realizar por separado y fuera de la herramienta, es

importante crear una herramienta que auxilie al profesor a diseñar y elaborar los cursos

bajo una metodología definida, que permita dar orden y asegurar una secuencia lógica del

trabajo desarrollado por el experto en el área, y que le facilite su labor al diseñador del

curso.

124

0123()*0123()*0123()*0123()* M a n u a l d e U s u a r i o

125

En este anexo encontraremos el manual de uso de los módulos que componen el

sistema: Sistema Generador de Cursos, Sistema Administrador de Cursos, Interfaz del Alumno

y Transferencia de Archivos

A1.1. Sistema Generador de Cursos Tutores

La función principal de este módulo es la creación de los cursos que incluye la

definición de capítulos, temas, evaluaciones teóricas y prácticas, ejemplos de consultas en

SQL; además de contar con otras funciones como la creación de tablas del sistema y la

configuración para el acceso a la base de datos, ver figura A1.1.

Figura A1.1. Sistema generador de cursos.

A continuación se describen brevemente las opciones con las que cuenta este

sistema. Cabe aclarar que para mayor información acerca de los procedimientos y técnicas

utilizadas en este módulo se puede consultar el documento elaborado por [Ingram, 2001] como

tesis de maestría antecesora del proyecto actual.

A1.1.1. Cursos

Contiene las opciones para crear cursos nuevos y abrir los ya existentes, además de

las opciones para la creación de las tablas y la salida del sistema, ver figura A1.2.

126

Figura A1.2. Menú cursos.

A1.1.1.1. Nuevo

Esta opción permite la creación de cursos nuevos, ver figura A1.3, para lo cual es

necesario dotar al sistema de los datos del mismo: nombre del curso, nombre del autor,

dirección, asignar y confirmar clave de acceso. El dato dirección se utiliza para ubicar

físicamente los archivos (*.swf) que contendrán el curso. Existe también la posibilidad de

asignar o no una clave de acceso al curso, esto con la finalidad de restringir las modificaciones

al curso sólo a los operadores que conozcan la clave. Para asignar una clave de acceso es

necesario activar la casilla de la misma así como introducir la misma clave en los dos campos

para su verificación.

Figura A1.3. Crear cursos nuevos.

127

Una vez creado el curso el sistema presentará de forma consecutiva las ventanas

para la creación del resto de los elementos a incluir en el curso, tales como capítulos, cuya

descripción se realiza en la sección A1.1.2.1.1; y átomos de información, cuyo uso se describe

en la sección A1.1.2.1.2.

A1.1.1.2. Abrir

La opción de abrir cursos despliega en una ventana los cursos dados de alta en el

sistema de los cuales se debe seleccionar uno, ver figura A1.4.

Figura A1.4. Abrir cursos disponibles.

Al detectarse una clave de acceso asignada al crear el curso, ésta se solicitará para

permitir la modificación del curso activando la opción actualizar en el menú principal, de lo

contrario no se permitirá el acceso al mismo, ver figura A1.5.

Figura A1.5. Clave de acceso.

En caso de cancelar y no seleccionar ningún curso, la opción actualizar en el menú

principal se desactivará automáticamente.

128

A1.1.1.3. Crear Tablas

Esta opción se utilizará en dos casos principalmente: el primero cuando el sistema

se instale por primera vez y no existan las tablas creadas en la base de datos, y el segundo

cuando exista daño en las tablas y no sea posible recuperar la información, ver figura A1.6.

Figura A1.6. Base de datos a generar.

Al seleccionar una de las opciones, se indicará que la información contenida en las

tablas se perderá y no se podrá recuperar por lo que será necesario realizar un respaldo previo

para salvaguardar la información, ver figura A1.7.

Figura A1.7. Advertencia sobre borrado de datos.

Cabe hacer mención que el sistema solamente crea la estructura de las tablas, para

lo cual es necesario que la base de datos ya esté dada de alta en el sistema manejador de bases

de datos, ya que esta acción no es posible realizarla desde la aplicación.

Figura A1.8. Creación exitosa.

129

A1.1.1.4. Salir

Seleccionando esta opción se consigue salir del sistema, de la misma forma que

seleccionando la cruz de la esquina superior derecha de la ventana principal, así como

presionando las teclas Alt + F4 que activan la misma función.

A1.1.2. Actualizar

Esta opción se activará una vez seleccionado el curso en la opción abrir (ver figura

A1.9, descrita en la sección A1.1.1.2), la cual permite realizar altas, modificaciones y

consultas al curso, así como la creación del plan de estudios.

Figura A1.9. Menú actualizar.

A1.1.2.1. Agregar

Este menú contiene las opciones para agregar capítulos y átomos de información al

curso seleccionado.

130

Figura A1.10. Menú agregar.

A1.1.2.1.1. Capítulos

Sólo se debe capturar en esta opción el nombre del capítulo y pulsar el botón Crear

Átomos de Información (descrito en la sección A1.1.2.1.2), con el objeto de conformar la

estructura del curso. Una vez completado el capítulo se despliega nuevamente la ventana Crear

Capítulo para continuar o terminar con dicha creación (Figura A1.11).

Figura A1.11. Ventana crear capítulo.

A1.1.2.1.2. Átomos de Información

Se accede a esta opción una vez seleccionado el capítulo donde serán dados de alta

los átomos de información (ver figura A1.12), mismos que se dividen en dos tipos, átomos de

conocimiento y átomos de evaluación, por lo que es necesario seleccionar el tipo de átomo de

información antes de crearlo, ver figura A1.13.

131

Figura A1.12. Seleccionar capítulo.

Figura A1.13. Ventana crear átomo de información.

A1.1.2.1.2.1. Átomos de Conocimiento

Los átomos de conocimiento contienen los siguientes datos: nombre del átomo,

grado de dificultad (del 0 al 5), y tipo de conocimiento (memorización, razonamiento y

comprensión), ver figura A1.14. El objeto de tal clasificación se describe en [Ingram, 2001].

132

Figura A1.14. Ventana crear átomo de conocimiento.

A1.1.2.1.2.1.1. Alta Diapositivas

Una vez creado el átomo de conocimiento, se deben asociar las diapositivas que

contienen información de esa parte del curso para anexarlas a una lista, para lo cual se

despliega la ventana Alta Diapositivas donde, con el botón denominado Explorador, se buscan

los archivos *.swf elaborados en Flash de Macromedia, ver figura A1.15.

133

Figura A1.15. Ventana alta diapositivas.

A1.1.2.1.2.1.1.1. Abrir y Cerrar Diapositivas

Por medio de los botones Abrir Diapositiva y Cerrar Diapositiva es posible

controlar la visualización de las diapositivas. Esto se realiza mediante le creación y

destrucción de un proceso donde se ejecuta una aplicación externa, en este caso el visualizador

de páginas Web, de manera conjunta con un archivo temporal en HTML que posibilita la

visualización del archivo de Flash de forma local, ver figura A1.16.

Figura A1.16. Ventana seleccionar diapositiva.

134

A1.1.2.1.2.1.1.2. Diapositiva de Ejemplo o Conocimiento

Para dar de alta una diapositiva en el átomo de conocimiento seleccionado, se debe

pulsar uno de los dos botones que tipifican a las diapositivas, como diapositiva de

información, o como diapositiva de ejemplo, ver figura A1.17.

Figura A1.17. Ventana alta diapositivas.

En este último tipo es posible asociar el ejemplo de una consulta en SQL a la

diapositiva seleccionada, por medio de una ventana donde se escribe la instrucción y se puede

verificar el resultado de la misma.

A1.1.2.1.2.2. Átomos de Evaluación

En el sistema se encuentran implementados dos tipos de exámenes que definen a

los átomos de evaluación: los exámenes teóricos y exámenes prácticos, ver figura A1.18. Éstos

tienen formas diferentes de implementación: mientras los teóricos se pueden utilizar para

cualquier tipo de curso, en cambio los prácticos sólo se encuentran implementados para la

evaluación de consultas de SQL.

135

Figura A1.18. Seleccionar evaluación.

A1.1.2.1.2.2.1. Exámenes Teóricos

Este tipo de exámenes se implementa basándose en preguntas con respuestas de

opción múltiple. No existe una cantidad que limite el número de preguntas en el examen. El

número de respuestas por cada pregunta no debe ser mayor que cinco, debido a la estructura

de la base de datos. Las respuestas se etiquetan como correctas o incorrectas, y sólo puede

existir una respuesta correcta, ver figura A1.20.

Figura A1.19. Crear átomo de evaluación teórica.

136

Figura A1.20. Crear evaluación teórica.

Es necesario asociar a cada pregunta hasta un máximo de cinco átomos de

información, esto con la finalidad de establecer un mecanismo para la calificación de los

átomos, ya que pueden asociarse varias preguntas a cada átomo de información, ver figura

A1.21.

Figura A1.21. Asociar átomos de conocimiento a la pregunta.

137

A1.1.2.1.2.2.2. Exámenes Prácticos

Dado que el proyecto está basado en la enseñanza del lenguaje SQL, los exámenes

prácticos sólo consideran la posibilidad de la evaluación en este sentido. En este tipo de

exámenes se escribe el texto de la pregunta a presentar y sólo existe una posible respuesta (una

consulta en SQL), la cual puede ser ejecutada para la verificación de los resultados, ver figura

A1.23.

Figura A1.22. Crear átomo de evaluación práctica.

Figura A1.23. Crear examen práctico.

138

Al igual que en los exámenes teóricos, también es necesario asociar a cada

pregunta hasta un máximo de cinco átomos de información, y del mismo modo pueden

asociarse varias preguntas a cada átomo de información, ver figura A1.24.

Figura A1.24. Asociar átomos de conocimiento a la pregunta.

A1.1.2.2. Modificar

Mediante esta opción es posible modificar el contenido del curso.

Figura A1.25. Menú Actualizar (opción Modificar).

A1.1.2.2.1. Contenido del Curso

Para modificar el contenido del curso se muestra en una ventana la estructura del

curso con sus capítulos y átomos en forma de árbol.

139

Figura A1.26. Menú modificar (opción contenido del curso).

Al seleccionar un capítulo se muestra en una ventana el nombre del curso y se da

la posibilidad de modificarlo, además de eliminarlo, y mostrar sus predecesores, por medio de

los botones designados para tales fines, ver figura A1.27. Es importante mencionar que al

eliminar un capítulo se eliminan también del sistema todos los elementos que lo componen

tales como los átomos de conocimiento con sus diapositivas y consultas asociadas, y los

átomos de evaluación con las preguntas y respuestas asociadas; de tal forma que no existe la

posibilidad de recuperar dicha información.

140

Figura A1.27. Ventana tabla de contenido.

Si se selecciona un átomo, se despliega en la sección de la derecha la información

concerniente al átomo; si es de conocimiento se muestra el título o nombre del átomo, el grado

de dificultad, y el tipo de conocimiento; además se habilitan los botones para consultar las

diapositivas asociadas a ese átomo y un segundo botón que muestra en una ventana los

predecesores definidos, ver figura A1.28.

141

Figura A1.28. Información del átomo.

En el caso de las consultas a las diapositivas, el sistema permite la posibilidad de

abrir y cerrar una diapositiva, agregar más diapositivas al átomo, así como eliminar, e

inclusive asociar una consulta en SQL a la diapositiva seleccionada, ver figura A1.29.

Figura A1.29. Ventana consultar diapositivas.

142

Por parte de las consultas a los predecesores definidos para el átomo de

información, es posible eliminar las relaciones de precedencia establecidas, ver figura A1.30.

Figura A1.30. Predecesores del átomo.

En caso de que el átomo seleccionado sea de evaluación, sólo se desplegará la

información del título o nombre del átomo, y el botón de exámenes mostrará la ventana de

consulta de exámenes donde se podrán agregar o eliminar preguntas, de tal forma que también

se hace la distinción entre exámenes teóricos y exámenes prácticos. La metodología para

agregar preguntas a los diferentes tipos de átomos de evaluación se describe en la sección

2.1.2.

Figura A1.31. Advertencia de eliminación.

Existen además dos funciones más que son las de eliminar y modificar. La primera

borra de la base de datos el átomo seleccionado, ver figura A1.31, y la segunda lo modifica

basándose en la información desplegada en los cuadros de diálogo de la ventana, ver figura

A1.32.

Figura A1.32. Advertencia de modificación.

143

A1.1.2.3. Consultar

Al seleccionar esta opción se puede consultar el contenido del curso.

Figura A1.33. Menú consultar.

A1.1.2.3.1. Contenido del Curso

Se muestra en una ventana la estructura del curso con sus capítulos y átomos en

forma de árbol, ver figura A1.34.

Figura A1.34. Ventana tabla de contenido.

144

Al seleccionar un capítulo se muestra en una ventana la información referente al

capítulo seleccionado y las operaciones a realizar: nombre del capítulo y consulta de

predecesores respectivamente, ver figura A1.35.

Figura A1.35. Ventana capítulo.

Mediante la operación Predecesores se consultan en una ventana los capítulos

predecesores del capítulo seleccionado, o de lo contrario se informa la inexistencia de los

mismos.

Figura A1.36. Ventana tabla de contenido.

Por otra parte al seleccionar un átomo se muestra en la sección derecha de la

ventana la información referente al átomo (título o nombre del átomo), y si es de conocimiento

se muestra el grado de dificultad y el tipo de conocimiento, ver figura A1.36. El botón

145

etiquetado como Diapositivas/Exámenes permite desplegar las ventanas correspondientes a la

consulta de diapositivas o exámenes según sea el caso del tipo de átomo seleccionado, ver

figura A1.37.

Figura A1.37. Consultar diapositivas.

En ambos casos, átomos de conocimiento y átomos de evaluación, la función

definida en el botón denominado predecesores se ejecutará de la misma forma, mostrando los

átomos de información predecesores del átomo seleccionado o se informará de la inexistencia

de los mismos, ver figura A1.38.

Figura A1.38. Predecesores del átomo de información seleccionado.

146

A1.1.2.4. Crear Plan de Estudio

La creación del plan de estudio se refiere al establecimiento de las relaciones de

precedencia de los capítulos y átomos; es decir, la construcción del grafo instruccional, que

dará la pauta al sistema para definir cuáles son los temas que el alumno debe revisar en su

avance por el curso, ver figura A1.40.

Figura A1.39. Menú actualizar (opción crear plan estudios).

Figura A1.40. Ventana genera plan de estudios.

147

A1.1.2.4.1. Establecer relaciones de precedencia por Átomos de Información

Para crear el grafo instruccional es necesario establecer las relaciones de

precedencia entre los átomos. Sólo se puede realizar esta acción entre átomos del mismo

capítulo, validando la inexistencia de ciclos en el grafo creado.

Figura A1.41. Establecer relaciones de precedencia entre átomos de información por capítulo.

Se muestra una ventana que en la sección izquierda presenta la información del

curso, los capítulos y sus átomos en forma de árbol. Una vez seleccionado un átomo, en su

sección derecha se muestran dos listas: en la primera se muestran los átomos del capítulo y en

la segunda, los átomos definidos como predecesores inmediatos del átomo seleccionado. La

forma de definir que un átomo sea o no predecesor, es con los botones que agregan y/o

eliminan el átomo de la lista de predecesores, ver figura A1.41.

A1.1.2.4.2. Establecer relaciones de precedencia por Capítulos

De forma similar se establecen las relaciones de precedencia entre capítulos. Se

muestra una ventana que en la sección izquierda presenta la información del curso y sus

capítulos en forma de árbol. Una vez seleccionado un capítulo, en su sección derecha se

148

muestran dos listas: en la primera se muestran los capítulos del curso y en la segunda, los

capítulos definidos como predecesores del capítulo seleccionado, ver figura A1.42.

Figura A1.42. Establecer relaciones de precedencia entre los capítulos del curso.

La forma de definir que un capítulo sea o no predecesor, es con los botones que

agregan y/o eliminan el capítulo de la lista de predecesores, así mismo se valida que no existan

ciclos al realizar esta acción.

A1.1.2.4.3. Crear Plan de Estudio

La creación del plan de estudio se refiere a la construcción del grafo instruccional,

del cual se toma la información de las relaciones de precedencia de capítulos y átomos para

crear los planes de estudio por cada alumno inscrito al curso. Una vez realizada esta acción, el

alumno tendrá la posibilidad de iniciar el aprendizaje a través de la visualización del curso por

medio de la interfaz del alumno.

A1.1.3. Configuración

El menú Configuración contiene la opción de configurar el sistema basándose en

las necesidades de instalación del sistema en cada servidor, además de mostrar la información

que detalla la construcción de la herramienta. Tanto para el Módulo Generador de Cursos

149

como para el Módulo Administrador de cursos se utilizan las misma operaciones en cuanto a

configuración se refiere.

Figura A1.43. Menú configuración.

A1.1.3.1. Configuración

Esta opción define los datos necesarios para la operación del sistema, los cuales se

dividen en usuario, servidor, base de datos y visualizador; de tal forma que es posible ajustar

el sistema a los cambios en la configuración sin necesidad de modificar el código fuente.

Figura A1.44. Menú configuración (opción configuración).

150

En los datos del usuario se define la cuenta, clave de acceso y confirmación;

necesarios para acceder a la base de datos, ver figura A1.45.

Figura A1.45. Configuración del sistema - usuario.

Los datos del servidor son URL (dirección donde se encuentra ubicado el servidor

del sistema manejador de base de datos), dirección interna de los datos (es el subdirectorio en

el servidor donde se grabará la información del curso; o sea, los archivos *.swf de Flash),

puerto de acceso a los servicetes (es el puerto donde se encuentra activado el servidor de

servicetes donde está implementada la interfaz del alumno) y dirección interna de la página

principal (nombre del archivo que activa la página Web de la interfaz del alumno), ver figura

A1.46.

Figura A1.46. Configuración del sistema - servidor.

Por parte de la base de datos los datos son controlador de la base de datos (es el

nombre del archivo *.jar que contiene las clases que implementan el acceso a la base de datos,

con esto se da la posibilidad de acceder a diferentes sistemas manejadores de base de datos sin

modificar el código fuente), puerto de la base de datos (es el puerto donde se encuentra

activado el manejador de BD), nombre de la clase de Java del controlador, nombre de la base

151

de datos del sistema (es donde se encuentran las tablas que contienen la información de los

cursos y alumnos del sistema) y base de datos de ejercicios (es el nombre de la base de datos

de ejemplos donde se ejecutan las consultas en SQL de ejemplos y de los exámenes prácticos),

ver figura A1.47.

Figura A1.47. Configuración del sistema - base de datos.

Los datos del visualizador se centran en la ubicación física del archivo que ejecuta

el navegador; es decir, la ruta de acceso a la aplicación del visualizador de páginas Web,

misma que es posible encontrar mediante el botón Explorar que abre un cuadro de diálogo

para la búsqueda del archivo. También es posible abrir y cerrar el visualizador como un

proceso que ejecuta una aplicación externa, ver figura A1.48.

Figura A1.48. Configuración del sistema - visualizador.

Por último se pueden establecer valores por omisión para los datos en la

configuración, no sólo para la sección que se muestra en ese momento en pantalla sino para las

cuatro secciones. Estos valores se basan en la configuración utilizada para la realización de las

pruebas locales del sistema. La función Guardar graba la información de la configuración en el

archivo Configuracion.txt que será utilizado durante la ejecución de todo el sistema, sobre

152

todo al momento de realizar operaciones sobre la base de datos. En ese mismo archivo se

graban direcciones de URL generadas a partir de los datos capturados, tales como URLBD,

URLEjercicios, URLDatos, URLServicetes y URLAcceso, ver figura A1.49.

Figura A1.49. Archivo de configuración del sistema.

A1.1.3.2. Acerca de ...

En esta opción se despliegan los créditos de autoría del módulo Sistema Generador

de Cursos Tutores y la versión del sistema, ver figura A1.50.

Figura A1.50. Ventana acerca de...

153

A1.2. Sistema Administrador de Cursos Tutores

Las funciones de este módulo son la administración de cursos y alumnos; o sea,

altas, asociaciones, informes, incluyendo la importación y exportación de cursos, además de

respaldos y restauración de la información contenida en la base de datos.

Figura A1.51. Sistema administrador de cursos.

A continuación se describen las opciones con las que cuenta el sistema. Es

oportuno mencionar que todas las opciones de este módulo fueron desarrolladas en el presente

trabajo de investigación, con excepción de la función que genera el plan de estudios al

momento de asignar un alumno a un curso.

A1.2.1. Cursos

Esta opción, además de la consulta de cursos, posibilita el guardado de la

información así como su recuperación.

154

Figura A1.52. Menú cursos.

A1.2.1.1. Consultar

Se despliega en una ventana una lista con los cursos dados de alta en el sistema.

Para mostrar la información de un curso se debe seleccionar uno, con lo cual el sistema

muestra el nombre del curso, el autor y los alumnos asignados, ver figura A1.54.

Figura A1.53. Menú cursos (opción consultar).

155

Figura A1.54. Ventana consultar cursos.

Las operaciones a realizar son las siguientes: la asignación de alumnos, mediante

una ventana que muestra los alumnos disponibles; baja del alumno, con la cual se elimina el

alumno seleccionado del curso, y se elimina de la base de datos la información del avance, ver

figura A1.55; y eliminar curso, con la cual se borra de la base de datos la información

correspondiente al curso (capítulos, átomos, diapositivas, y evaluaciones), a esta última

función se podrá acceder sólo cuando no exista ningún alumno dado de alta.

Figura A1.54. Confirmación de baja.

Además de las opciones ya referidas, existe una opción que permite asignar

alumnos al curso, la cual muestra los alumnos faltantes por asociar, ver figura A1.55.

156

Figura A1.55. Ventana asignar alumnos.

A1.2.1.2. Respaldar

Con esta función es posible guardar toda la información referente al sistema. Para

efectos de verificación se muestran los cursos y alumnos existentes, ver figura A1.57.

Figura A1.56. Menú cursos (opción respaldar).

157

Figura A1.57. Ventana respaldar base de datos.

Al seleccionar el botón Respaldar BD se debe seleccionar la ruta y nombre del

archivo donde se guardará la información, ver figura A1.58. A este archivo se le asignará la

extensión .ZIP, ya que éste es el formato de compactación utilizado en esta opción.

Figura A1.58. Ventana guardar.

Además de la información existente en la base de datos, en el archivo compactado

se incluyen también los archivos *.swf que contienen las diapositivas que muestran los cursos,

con lo cual se respalda toda la información del sistema existente en el servidor.

158

A1.2.1.3. Restaurar

Para la restauración de la base de datos se muestra una ventana con los datos que

debe contener dicho respaldo, ver figura A1.60.

Figura A1.59. Menú cursos (opción restaurar).

En primera instancia se debe seleccionar el archivo que contenga el respaldo

realizado con la opción descrita anteriormente, por medio de una ventana de diálogo para

definir la ruta y el nombre del archivo en cuestión, ver figura A1.61.

Figura A1.60. Ventana restaurar base de datos.

159

Dicho archivo debe cumplir con un formato en su construcción para ser

reconocido como respaldo del sistema. En la ventana se muestran los datos obtenidos del

archivo: fecha y hora de creación, así como los cursos y alumnos contenidos en el sistema.

Figura A1.61. Ventana abrir archivo.

Una vez verificada la información, se inicia la restauración del sistema, con lo cual

se eliminará toda la información existente en la base de datos del sistema, y la reemplazará por

la información contenida en el archivo de respaldo, ver figura A1.62.

Figura A1.62. Ventana restaurar base de datos.

160

A1.2.1.4. Exportar

La opción que se describe a continuación permite al sistema guardar en un archivo

compactado la información correspondiente al curso seleccionado de la lista desplegada en la

ventana, ver figura A1.64. Además de la información del curso existente en la base de datos,

se guardan también los archivos *.swf que contienen el material del curso.

Figura A1.63. Menú cursos (opción exportar).

Figura A1.64. Ventana exportar curso.

Para realizar esto se debe seleccionar la ruta y nombre del archivo donde se

guardará la información, para tal fin se muestra una ventana de diálogo que facilita esta

operación, ver figura A1.65. A este archivo se le asigna la extensión .ZIP, ya que bajo ese

método de compactación se grabará la información.

161

Figura A1.65. Ventana guardar.

Posteriormente se iniciará el proceso con el formato definido para el caso.

A1.2.1.5. Importar

Para la importación de un curso a la base de datos, se muestra una ventana con los

datos que debe contener el archivo para realizar tal acción, ver figura A1.67.

Figura A1.66. Menú cursos (opción importar).

La importación del curso se realiza para añadir cursos al servidor actual. Para

iniciar este procedimiento se debe seleccionar la ruta y el nombre del archivo que contenga el

curso a importar, por medio de una ventana de diálogo que realice la operación, ver figura

A1.68.

162

Figura A1.67. Ventana importar curso.

Dicho archivo debe cumplir con el formato definido durante la exportación del

curso. Si cumple con el formato se extraerán los datos del curso: nombre, autor y dirección del

curso; en caso contrario no se permitirá continuar la operación.

Figura A1.68. Ventana abrir archivo.

Antes de importar el curso, se valida que el nombre del curso y la dirección no

existan en la base de datos. En caso de existir datos iguales, el sistema permite al usuario

modificar los datos que se repitan para poder continuar.

Figura A1.69. Ventana importar curso.

163

A1.2.1.6. Salir

Seleccionando esta opción lograremos salir del sistema, de la misma forma que

seleccionando la cruz de la esquina superior derecha de la ventana principal, así como

presionando las teclas Alt + F4 que activan la misma función.

Figura A1.70. Menú cursos (opción salir).

A1.2.2. Alumnos

Con esta opción se realizan las acciones propias de la administración del sistema

tutor en función del alumno; es decir, las altas, las consultas y las modificaciones de las

asociaciones realizadas de alumnos a cursos.

Figura A1.71. Menú alumnos.

164

A1.2.2.1. Alta

Como objeto esencial del sistema se encuentran los alumnos que son los

beneficiarios con la implementación de este tipo de sistemas. Con esta opción se crean los

alumnos con sus datos principales: número de control, nombre, cuenta, contraseña y por

último la confirmación de su contraseña; misma que les será de utilidad al ingresar al sistema

desde algún visualizador de páginas de Web, ver figura A1.73.

Figura A1.72. Menú alumnos (opción alta).

Figura A1.73. Ventana alta de alumnos.

165

A1.2.2.2. Consultar

En esta sección del sistema se realizan las operaciones básicas de la administración

de los alumnos, consulta y modificaciones de alumnos y cursos en los que están dados de alta,

ver figura A1.75.

Figura A1.74. Menú alumnos (opción consultar).

Figura A1.75. Ventana consultar alumnos.

166

Se presenta la pantalla de forma similar a la de consulta de cursos (sección

A1.2.1.1), donde se selecciona el alumno a consultar y en la parte inferior se despliegan los

cursos en los que está dado de alta.

Figura A1.76. Confirmación de baja.

Las acciones a realizar son las siguientes: eliminar alumno, sólo en caso de no

contar con ningún curso asociado; baja curso, se realiza la baja lógica del alumno en el curso

seleccionado, o sea, se elimina la asociación alumno curso, ver figura A1.76; y asignar cursos,

despliega la ventana para asociar otro curso al alumno en cuestión, cabe mencionar que en

dicha ventana sólo aparecen los cursos que no están asociados a ese alumno, ver figura A1.77.

Figura A1.77. Ventana asignar cursos.

A1.2.3. Informes

En la opción de informes se encuentran implementados los siguientes informes:

cursos, alumnos, y avance por alumno por curso. Es importante aclarar que el proceso de

impresión del lenguaje Java en los sistemas Windows 9x requiere de una cantidad de memoria

de 128 MB para asegurar la correcta impresión de los informes.

167

Figura A1.78. Menú informes.

Primeramente se despliega en pantalla el contenido de lo que se enviará a

imprimir, dando la posibilidad de modificar el tamaño de la letra y el ancho de las columnas a

imprimir.

A1.2.3.1. Cursos

En este informe se despliega en pantalla la información de los cursos dados de alta

en el sistema, así como los alumnos dados de alta en cada uno.

Figura A1.79. Menú informes (opción cursos).

168

Existe la posibilidad de modificar el formato de la información a imprimir: tamaño

de letra, mediante el objeto Jslider; y el tamaño de la columna, posicionando el cursor al final

de la misma, y con un movimiento tipo Drag & Drop (arrastrar y soltar) indicar cuál es el

tamaño deseado, ver figura A1.80.

Figura A1.80. Ventana reporte cursos.

A1.2.3.2. Alumnos

En este informe se despliega en pantalla la información de los alumnos inscritos en

el sistema, así como los cursos a los que les está permitido el acceso.

169

Figura A1.81. Menú informes (opción alumnos).

Existe la posibilidad de modificar el formato de la información a imprimir: tamaño

de letra, de la misma forma que en la opción inmediata anterior (informe de cursos), ver figura

A1.82.

Figura A1.82. Ventana reporte de alumnos.

170

A1.2.3.3. Avances

La presente opción tiene como objetivo proporcionar la información necesaria

referente a las calificaciones obtenidas por el alumno en un curso, para la cual se muestra una

ventana donde se deben seleccionar en primer lugar el alumno, con lo cual se desplegarán los

cursos a los que está asignado dicho alumno. Al momento de seleccionar un curso, se está en

posibilidad de imprimir el informe, ver figura A1.84.

Figura A1.83. Menú informes (opción avances).

Figura A1.84. Ventana imprimir avances.

171

Dicho informe se presentará en pantalla para su consulta, dando también la

posibilidad de modificar el tamaño de la letra y el ancho de las columnas de la misma forma

que en las diferentes opciones de esta sección, ver figura A1.85.

Figura A1.85. Ventana Reporte de avance de alumnos.

A1.2.4. Configuración

El menú configuración contiene la opción de configurar, la cual sirve par satisfacer

las necesidades de instalación del sistema en cada servidor, además de mostrar la información

que detalla la construcción de la herramienta. Tanto para el Módulo Generador de Cursos

como para el Módulo Administrador de cursos se utilizan las misma operaciones en cuanto a

configuración se refiere.

172

Figura A1.86. Menú configuración.

A1.2.4.1. Configuración

Esta opción define los datos necesarios para la operación del sistema, las cuales se

dividen en usuario, servidor, base de datos y visualizador; de tal forma que es posible ajustar

el sistema a los cambios en la configuración sin necesidad de modificar el código fuente.

Figura A1.87. Menú configuración (opción configuración).

En los datos del usuario se define la cuenta, clave de acceso y confirmación;

necesarios para acceder a la base de datos, ver figura A1.88.

173

Figura A1.88. Configuración del sistema - usuario.

Los datos del servidor son los siguientes: URL, dirección donde se encuentra

ubicado el servidor del sistema manejador de base de datos; dirección interna de los datos, es

el subdirectorio en el servidor donde se grabará la información del curso, o sea, los archivos

*.swf de Flash; puerto de acceso a los servicetes, es el puerto donde se encuentra activado el

servidor de servicetes donde está implementada la interfaz del alumno; y dirección interna de

la página principal, nombre del archivo que activa la página Web de la interfaz del alumno,

ver figura A1.89.

Figura A1.89. Configuración del sistema - servidor.

Por parte de la base de datos los datos son los siguientes: controlador de la base de

datos, es el nombre del archivo *.jar que contiene las clases que implementan el acceso a la

base de datos, con esto se da la posibilidad de acceder a diferentes sistemas manejadores de

base de datos sin modificar el código fuente; puerto de la base de datos, es el puerto donde se

encuentra activado el manejador de BDs; nombre de la clase de Java del controlador; nombre

de la base de datos del sistema, es donde se encuentran las tablas que contienen la información

de los cursos y alumnos del sistema; y base de datos de ejercicios, es el nombre de la base de

174

datos de ejemplos donde se ejecutan las consultas en SQL de ejemplos y de exámenes

prácticos, ver figura A1.90.

Figura A1.90. Configuración del sistema - base de datos.

Los datos del visualizador se centran en la ubicación física del archivo que ejecuta

el navegador, es decir, la ruta de acceso a la aplicación del visualizador de páginas Web,

misma que es posible encontrar mediante el botón Explorar que abre un cuadro de diálogo

para la búsqueda del archivo. También es posible abrir y cerrar el visualizador como un

proceso que ejecuta una aplicación externa, ver figura A1.91.

Figura A1.91. Configuración del sistema - visualizador.

Por último se pueden establecer valores por omisión para los datos en la

configuración, no sólo para la sección que se muestra en ese momento en pantalla sino para las

cuatro secciones. Dichos valores se basan en la configuración utilizada para la realización de

las pruebas locales del sistema. La función Guardar graba la información de la configuración

en el archivo Configuracion.txt que será utilizado a lo largo de todo el sistema, sobre todo al

momento de realizar operaciones sobre la base de datos. En este mismo archivo se graban

175

direcciones de URL generadas a partir de los datos capturados, tales como URLBD,

URLEjercicios, URLDatos, URLServicetes y URLAcceso, ver figura A1.92.

Figura A1.92. Archivo de configuración del sistema.

A1.2.4.2. Acerca de...

En esta opción se despliegan los créditos de autoría del módulo Sistema

Administrador de Cursos Tutores, y la versión del sistema.

Figura A1.93. Ventana acerca de...

176

A1.3 Interfaz del Usuario

Por medio de este módulo el alumno tiene la posibilidad de acceder al sistema, con

el objetivo de visualizar los diferentes cursos que le fueron asignados, además de realizar

ejemplos , y sujetarse a evaluaciones que lo guiarán por los temas sugeridos en base a los

resultados obtenidos.

A1.3.1 Acceso al Sistema

La página de Web con la que el alumno accederá al sistema, está dividida en dos

secciones: a la derecha se encuentra el área que desplegará la información de los cursos, y a la

izquierda está el área de menú, la cual contiene los campos de cuenta y contraseña para el

acceso, ver figura A1.94. Además, la página cuenta con enlaces o ligas a páginas de Web que

contienen información acerca del proyecto y otras que posibilitan el enlace a las páginas

principales del cenidet, el Departamento de Ciencias Computacionales, y la especialidad de

Sistemas Distribuidos, de la misma forma es posible obtener la dirección electrónica del

administrador del sistema.

Figura A1.94. Acceso a la interfaz del alumno.

177

En caso de no ser aceptada la cuenta o la contraseña, el sistema indicará cuál fue el

motivo por el cual rechazó la petición de acceso, ver figuras A1.95 y A1.96.

Figura A1.95. Cuenta incorrecta.

Figura A1.96. Clave incorrecta.

A1.3.2 Cursos

Una vez aceptados el nombre de la cuenta y la contraseña proporcionada por parte

del alumno, el sistema mostrará los cursos a los cuales el alumno tiene acceso, mismos que

fueron asignados por parte del administrador del sistema, y permitirá cambiar los datos de

configuración del alumno, ver figura A1.97.

178

Figura A1.97. Página de cursos.

Para seleccionar un curso sólo se necesita pulsar sobre el botón de color verde

situado al costado izquierdo del nombre del curso seleccionado.

A1.3.2.1 Datos de Configuración del Alumno

En lo que respecta al cambio de los datos de configuración del alumno, se accede a

esta opción a través del botón de11signado para tal fin.

Figura A1.98. Configuración de los datos del alumno.

179

La página implementada para realizar el cambio muestra dos tablas. La primera

con los datos actuales: nombre del alumno, número de control y cuenta; y la segunda contiene

los datos susceptibles de modificación: cuenta y contraseña; de esta última se solicita una

confirmación para seguridad de los datos. La acción de cancelación de las modificaciones se

lleva a cabo pulsando la flecha en la parte inferior, con la que regresaremos a la página que

muestra los cursos, ver figura A1.98.

A1.3.3 Capítulos

Al seleccionar un curso el sistema despliega los capítulos dados de alta; éstos se

presentan con un código de colores conformado por botones verdes, rojos y amarillos, ver

figura A1.99.

Figura A1.99. Página de capítulos.

Los botones verdes indican que se puede acceder al capítulo, ya que sus capítulos

predecesores ya fueron revisados o contiene al menos un tema cuyo color también es verde.

180

Los botones rojos indican que el capítulo no debe ser accedido ya que existen

capítulos predecesores que deben ser revisados previamente.

Los botones amarillos indican que el capítulo no debe ser accedido ya que el total

de los temas ya fueron revisados o aprobados y son de color amarillo.

Cabe mencionar que el sistema sólo despliega una ventana de advertencia y

permite al alumno decidir si revisa o no el capítulo.

A1.3.4 Temas

El sistema presentará en pantalla los temas del capítulo seleccionado en la sección

inmediata anterior. Al igual que en los capítulos, existe un código de colores que sirve al

alumno de guía para revisar la información del curso, ver figura A1.100.

Figura A1.100. Página de temas.

Los botones verdes indican que se puede acceder a las diapositivas del tema, ya

que sus temas predecesores ya fueron revisados o aprobados.

Los botones rojos indican que el tema no debe ser accedido ya que existen temas

predecesores que deben ser revisados.

Los botones amarillos indican que el tema no debe ser accedido debido a que ya

fue revisado o aprobado.

181

El sistema funciona de la misma forma que en la sección de capítulo desplegando

una ventana de advertencia que permite al alumno decidir si revisa o no las diapositivas del

tema.

A1.3.5 Diapositivas

Ésta es la ultima parte de la estructura de la que se compone un curso, la cual

contiene la información a presentar al alumno, basada en el formato de animación SWF de

Flash, ver figura A1.101.

Figura A1.101. Página de diapositivas.

La página se despliega en una ventana completa sin el uso de marcos para

aprovechar al máximo el área del visualizador de páginas de Web y lograr una mayor visión

de la diapositiva por parte del alumno. Cuenta con los botones para el desplazamiento entre las

diapositivas pertenecientes al tema: inicio, anterior, siguiente, y final; así mismo se despliega

el número de la diapositiva actual y el total de las mismas.

182

A1.3.5.1 Ejemplos

En el diseño del sistema las diapositivas tienen la opción de contar con una

consulta o instrucción de SQL para ser ejecutada por parte de los alumnos, con el fin de

reforzar el conocimiento ejemplificando una consulta asociada a la diapositiva, ver figura

A1.102.

Figura A1.102. Ejemplos.

Al ejecutarse la consulta de ejemplo, realiza la conexión y obtiene los resultados

en forma real de la base de datos de ejercicios, ver figura A1.103.

183

Figura A1.103. Resultados de la consulta.

A1.3.5.2 Evaluación

Al término de la visualización de las diapositivas de un tema, se pulsa la flecha de

retorno para activar el módulo que programa las evaluaciones a realizar durante el curso.

Dichas evaluaciones se aplicarán al alumno tomando en cuenta las asociaciones de las

preguntas a los átomos de evaluación, definidas en el módulo generador de cursos.

184

Figura A1.104. Evaluación teórica.

Aplicando el algoritmo de presentación de exámenes, se selecciona la evaluación a

aplicar y cuándo realizarla. Cada evaluación está compuesta de varias preguntas que también

son analizadas mediante el algoritmo de selección de preguntas para determinar la

conveniencia de incluirlas o no en la evaluación.

185

Figura A1.105. Evaluación práctica.

Existen dos tipos de evaluaciones: teóricas y prácticas. La primera se realiza

mediante preguntas de opción múltiple, donde se muestran a lo más cinco posibles opciones

de las cuales el alumno seleccionará sólo una, ver figura A1.104. La segunda está

implementada mediante la captura de consultas para ejecutar sobre la base de datos, similar a

la ejecución de los ejemplos contenidos en las diapositivas, ver figura A1.105.

186

Figura A1.106. Resultados de la evaluación teórica.

Una vez terminado de contestar el examen, se envía el formulario con las

preguntas del examen al sistema para su evaluación, y por medio del algoritmo para

evaluación de exámenes (teóricos y prácticos) el planificador del sistema determinará la

calificación para cada átomo de conocimiento del alumno en el curso, lo cual sirve para

modificar el código de colores asociado a cada tema y a cada capítulo, ver figuras 4.106 y

4.107.

En caso de existir respuestas incorrectas no se presentan al alumno las respuestas

correctas, ya que la base de preguntas es estática y los exámenes están formados siempre por

las mismas preguntas.

187

Figura A1.107. Resultados de la evaluación práctica.

A1.4 Transferencia de Archivos

El módulo de transferencia de archivos tiene como función la recepción de los

archivos que contienen la información del curso y su almacenamiento en el subdirectorio de

datos dentro del servidor. Dichos archivos los recibe a través de peticiones de los sistemas

generador y administrador de cursos tutores.

El sistema generador de cursos requiere del servicio del módulo de transferencia

para el envío de archivos, conforme se realice la creación y armado del curso en la sección alta

de diapositivas de los menús Nuevo y Actualizar Cursos.

Por su parte el sistema administrador de cursos utiliza el módulo de transferencia

para enviar al servidor los archivos en las opciones de instalación de cursos y restauración de

la base de datos, mismos que crean nuevos cursos en la base de datos del servidor.

Este módulo no interactúa directamente con alguno de los usuarios, sino a través

de los sistemas ya mencionados, por lo que su interfaz sólo se limita a una pantalla, indicando

188

que el servidor está listo y en espera. Al ocurrir un error en la transferencia de algún archivo

despliega en pantalla el nombre del archivo, la ruta y los bytes enviados y recibidos, ver figura

A1.108.

Figura A1.108. Servicio de transferencia de archivos.

189

0123()+0123()+0123()+0123()+ D i s e ñ o d e l a B a s e d e D a t o s

190

A2.1. Descripción de la Base de Datos

La base de datos empleada por la herramienta se implementó en PostgreSQL bajo

el sistema operativo Linux, y el acceso se hace a través de JDBC (Java Database Connectivity,

por sus siglas en inglés).

JDBC es una especificación de un conjunto de clases y métodos de operación que

permiten a cualquier programa escrito en Java acceder a sistemas administradores de bases de

datos de forma homogénea.

A continuación se muestra el diseño de la base de datos, donde podemos observar

las relaciones existentes entre las tablas (Figura A2.1).

AlumnosNumeroControl integerNombreAlumno char(50)Alias char(50)Contraseña char(50) AlumnosCurso

NumeroControl integerClaveCurso integer

AtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerNombreAtomo char(50)TipoConocimiento char(50)GradoDificultad integerTipoAtomo integer

AvancesAlumnosNumeroControl integerClaveCurso integerClaveCapitulo integerClaveAtomo integerNumeroRepasos integerTotalRepasos integerFechaUltimoRepaso char(50)CalificacionAtomo integer

CapitulosClaveCurso integerClaveCapitulo integerNombreCapitulo char(50)

CursosClaveCurso integerNombreCurso char(50)Autor char(50)ClaveAcceso char(50)

DiapositivasClaveCurso integerClaveCapitulo integerClaveAtomo integerClaveDiapositiva integerDireccion char(50)Consulta char(254)

PlanestudiosatomosClaveCurso integerClaveCapitulo integerClaveAtomo integerDistancia integerClaveCapituloPredecesor integerClaveAtomoPredecesor integer

PlanestudioscapitulosClaveCurso integerClaveCapitulo integerDistancia integerClaveCapituloPredecesor integer

PreguntasPracticasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(50)Consulta char(50)

PreguntasAtomosClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integer ClaveCapitulo1 integerClaveAtomo1 integerClaveCapitulo2 integerClaveAtomo2 integerClaveCapitulo3 integerClaveAtomo3 integerClaveCapitulo4 integerClaveAtomo4 integerClaveCapitulo5 integerClaveAtomo5 integer

PreguntasTeoricasClaveCurso integerClaveCapitulo integerClaveAtomo integerClavePregunta integerPregunta char(255)Respuesta1 char(255)Respuesta2 char(255)Respuesta3 char(255)Respuesta4 char(255)Respuesta5 char(255)VerdaderoFalso1 char(50)VerdaderoFalso2 char(50)VerdaderoFalso3 char(50)VerdaderoFalso4 char(50)VerdaderoFalso5 char(50)

PreRequisitosAtomosClaveCurso integerClaveCapituloInicial integerClaveAtomoInicial integerClaveCapituloFinal integerClaveAtomoFinal integer

PreRequisitosCapitulosClaveCurso integerClaveCapituloInicial integerClaveCapituloFinal integer

Negritas - Llave PrimariaCursivas – Llaves Foráneas

1

n

1

n

1

n

n

1

n 1 11

11

1 1

n n

1n

1

n

1

n

n

n

Figura A2.1. Diseño de la base de datos.

191

0123(),0123(),0123(),0123(), D i c c i o n a r i o d e D a t o s

192

Enseguida se proporciona una descripción de cada una de las tablas utilizadas en la

base de datos del sistema.

Tabla Alumnos Nombre de columna Tipo de dato Longitud Propiedades Descripción NumeroControl char 25 not null Clave del alumno NombreAlumno char 100 Nombre del alumno Alias char 50 Cuenta Contrasena char 50 Clave de acceso al

sistema Llaves Columnas Referencia Tablas primary key NumeroControl Llave primaria Tabla Cursos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso NombreCurso char 100 Nombre del curso Autor char 100 Autor del curso ClaveAcceso char 10 Clave de acceso para

modificación del curso

Dirección char 50 Ruta de los archivos Llaves Columnas Referencia Tablas primary key ClaveCurso Llave primaria Tabla AlumnosCurso Nombre de columna Tipo de dato Longitud Propiedades Descripción NumeroControl char 25 not null Clave del alumno ClaveCurso integer not null Clave del curso Llaves Columnas Referencia Columnas primary key NumeroControl,

ClaveCurso Llave primaria

foreign key NumeroControl Alumnos NumeroControl Llave foránea foreign key ClaveCurso Cursos ClaveCurso Llave foránea Tabla Capitulos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo NombreCapitulo char 100 Nombre del capítulo Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo Llave primaria

foreign key ClaveCurso Cursos ClaveCurso Llave foránea

193

Tabla Atomos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo NombreAtomo char 100 Nombre del átomo TipoConocimiento char 50 Tipo de conocimiento GradoDificultad integer Grado de dificultad TipoAtomo integer Tio de átomo Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo

Llave primaria

foreign key ClaveCurso, ClaveCapitulo

Capitulos ClaveCurso, ClaveCapitulo

Llave foránea

Tabla AvancesAlumnos Nombre de columna Tipo de dato Longitud Propiedades Descripción NumeroControl char 25 not null Clave del aumno ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo TotalRepasos integer Numero de repasos

totales del átomo NumeroRepasos integer Numero de repasos

desde la última sesión FechaUltimoRepaso char 50 Fecha del repaso más

reciente CalificacionAtomo integer Calificación del

alumno en el átomo Llaves Columnas Referencia Columnas primary key NumeroControl,

ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave primaria

foreign key NumeroControl Alumnos NumeroControl Llave foránea foreign key ClaveCurso,

ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla Diapositivas Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo ClaveDiapositiva integer not null Clave de la

diapositiva Dirección char 100 Ruta donde se ubica

el archivo de datos

194

Secuencia integer Orden de aparición de la diapositiva

Consulta char 255 Instrucción SQL de ejemplo

Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo, ClaveDiapositiva

Llave primaria

foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla PreguntasAtomos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo ClavePregunta integer not null Clave de la pregunta ClaveCapitulo1 integer Clave del primer

capítulo ClaveAtomo1 integer Clave del primer

átomo asociado a la pregunta

ClaveCapitulo2 integer Clave del segundo capítulo

ClaveAtomo2 integer Clave del segundo átomo asociado a la pregunta

ClaveCapitulo3 integer Clave del tercer capítulo

ClaveAtomo3 integer Clave del tercer átomo asociado a la pregunta

ClaveCapitulo4 integer Clave del cuarto capítulo

ClaveAtomo4 integer Clave del cuarto átomo asociado a la pregunta

ClaveCapitulo5 integer Clave del quinto capítulo

ClaveAtomo5 integer Clave del quinto átomo asociado a la pregunta

Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo, ClavePregunta

Llave primaria

195

foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla PreguntasPracticas Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso Integer not null Clave del curso ClaveCapitulo Integer not null Clave del capítulo ClaveAtomo Integer not null Clave del átomo ClavePregunta Integer not null Clave de la pregunta Pregunta Char 255 Texto de la pregunta Consulta Char 255 Instrucción SQL

como respuesta Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo, ClavePregunta

Llave primaria

foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla PreguntasTeoricas Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo ClavePregunta integer not null Clave de la pregunta Pregunta char 255 Pregunta Respuesta1 char 255 Primera respuesta Respuesta2 char 255 Segunda respuesta Respuesta3 char 255 Tercera respuesta Respuesta4 char 255 Cuarta respuesta Respuesta5 char 255 Quinta respuesta VerdaderoFalso1 char 50 La primera respuesta

es falsa o verdadera VerdaderoFalso2 char 50 La segunda respuesta

es falsa o verdadera VerdaderoFalso3 char 50 La tercera respuesta

es falsa o verdadera VerdaderoFalso4 char 50 La cuarta respuesta es

falsa o verdadera VerdaderoFalso5 char 50 La quinta respuesta es

falsa o verdadera Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo, ClavePregunta

Llave primaria

196

foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla PlanEstudiosCapitulos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo Distancia integer Numero de nodos

entre el capítulo actual y el capítulo inicial

ClaveCapituloPredecesor

integer Clave del capítulo predecesor del capítulo actual

Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo Llave primaria

foreign key ClaveCurso, ClaveCapitulo

Capitulos ClaveCurso, ClaveCapitulo

Llave foránea

Tabla PlanEstudiosAtomos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer not null Clave del curso ClaveCapitulo integer not null Clave del capítulo ClaveAtomo integer not null Clave del átomo Distancia integer Numero de nodos

entre el átomo actual y el átomo inicial

ClaveCapituloPredecesor

integer Clave del capítulo predecesor

ClaveAtomoPredecesor integer Clave del átomo predecesor del átomo actual

Llaves Columnas Referencia Columnas primary key ClaveCurso,

ClaveCapitulo, ClaveAtomo

Llave primaria

foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

Tabla PreRequisitosCapitulos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer Clave del curso ClaveCapituloInicial integer Clave del capítulo

incial de una arista del grafo instruccional

197

ClaveCapituloFinal integer Clave del capítulo final de una arista del grafo instruccional

Llaves Columnas Referencia Columnas foreign key ClaveCurso,

ClaveCapituloInicial

Capitulos ClaveCurso, ClaveCapitulo

Llave foránea

Tabla PreRequisitosAtomos Nombre de columna Tipo de dato Longitud Propiedades Descripción ClaveCurso integer Clave del curso ClaveCapituloInicial integer Clave del capítulo

incial ClaveAtomoInicial integer Clave del átomo incial

de una arista del grafo instruccional

ClaveCapituloFinal integer Clave del capítulo final

ClaveAtomoFinal integer Clave del átomo final de una arista del grafo instruccional

Llaves Columnas Referencia Columnas foreign key ClaveCurso,

ClaveCapituloInicial, ClaveAtomoInicial

Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo

Llave foránea

198

0123()-0123()-0123()-0123()- M a t e r i a l d e l C u r s o E n s e ñ a n z a d e S Q L

199

A continuación se muestran las diapositivas elaboradas para la realización de las

pruebas del sistema, correspondientes al capítulo 1 del curso “Enseñanza de SQL”.

Figura A4.1. Inicio

200

Figura A4.2. Otras investigaciones

Figura A4.3. Antecedentes

201

Figura A4.4. Estandarización SQL

Figura A4.5. Propósito del curso

202

Figura A4.6. Definición de bases de datos

Figura A4.7. Ejemplo

203

Figura A4.8. Tabla A

Figura A4.9. Tabla M

204

Figura A4.10. Tabla C

Figura A4.11. Relaciones

205

Figura A4.12. Definición de sistema administrador de base de datos

206

0123().0123().0123().0123(). C o n t e n i d o d e l o s A r c h i v o s

207

A5.1. Contenido del Archivo DatosCurso.txt

// NombreCurso - Enseñanza de SQL // AutorCurso - Dr. Rodolfo A. Pazos Rangel // AccesoCurso - sql1 // RutaCurso - sql // Tabla - Capitulos insert into Capitulos values ( clavecurso, 1, 'Introduccion 1'); insert into Capitulos values ( clavecurso, 2, 'Creacion de Tablas Base'); insert into Capitulos values ( clavecurso, 3, 'Creacion de Indices'); insert into Capitulos values ( clavecurso, 4, 'Llenado de Tablas'); insert into Capitulos values ( clavecurso, 5, 'Consultas'); insert into Capitulos values ( clavecurso, 6, 'Funciones de Consolidacion'); insert into Capitulos values ( clavecurso, 7, 'Consultas Anidadas'); insert into Capitulos values ( clavecurso, 8, 'Operaciones Avanzadas'); insert into Capitulos values ( clavecurso, 9, 'La Instruccion Insert'); insert into Capitulos values ( clavecurso, 10, 'La Instruccion UpDate'); insert into Capitulos values ( clavecurso, 11, 'La Instruccion Delete'); insert into Capitulos values ( clavecurso, 12, 'Tipos de Datos del Manejador y Variables Anfitrion'); insert into Capitulos values ( clavecurso, 13, 'Capitulo de Evaluaciones'); // Tabla - PreRequisitosCapitulos insert into PreRequisitosCapitulos values ( clavecurso, 1, 2); insert into PreRequisitosCapitulos values ( clavecurso, 2, 3); insert into PreRequisitosCapitulos values ( clavecurso, 3, 4); insert into PreRequisitosCapitulos values ( clavecurso, 4, 5); insert into PreRequisitosCapitulos values ( clavecurso, 5, 6); insert into PreRequisitosCapitulos values ( clavecurso, 6, 7); insert into PreRequisitosCapitulos values ( clavecurso, 7, 8); insert into PreRequisitosCapitulos values ( clavecurso, 8, 9); insert into PreRequisitosCapitulos values ( clavecurso, 9, 10); insert into PreRequisitosCapitulos values ( clavecurso, 10, 11); insert into PreRequisitosCapitulos values ( clavecurso, 11, 12); insert into PreRequisitosCapitulos values ( clavecurso, 12, 13); insert into PreRequisitosCapitulos values ( clavecurso, 13, 0); // Tabla - PlanEstudiosCapitulos insert into PlanEstudiosCapitulos values ( clavecurso, 1, 0, 0); insert into PlanEstudiosCapitulos values ( clavecurso, 2, 1, 1); insert into PlanEstudiosCapitulos values ( clavecurso, 3, 2, 2); insert into PlanEstudiosCapitulos values ( clavecurso, 4, 3, 3); insert into PlanEstudiosCapitulos values ( clavecurso, 5, 4, 4); insert into PlanEstudiosCapitulos values ( clavecurso, 6, 5, 5); insert into PlanEstudiosCapitulos values ( clavecurso, 7, 6, 6); insert into PlanEstudiosCapitulos values ( clavecurso, 8, 7, 7); insert into PlanEstudiosCapitulos values ( clavecurso, 9, 8, 8); insert into PlanEstudiosCapitulos values ( clavecurso, 10, 9, 9); insert into PlanEstudiosCapitulos values ( clavecurso, 11, 10, 10); insert into PlanEstudiosCapitulos values ( clavecurso, 12, 11, 11); insert into PlanEstudiosCapitulos values ( clavecurso, 13, 12, 12); // Tabla - Atomos insert into Atomos values ( clavecurso, 1, 1, 'Introduccion', 'Memorizacion', 0, 0); insert into Atomos values ( clavecurso, 2, 1, 'Definicion de la Tabla de Materias', 'Memorizacion', 0, 0); insert into Atomos values ( clavecurso, 2, 2, 'Precompilacion, Compilacion y Ejecucion de Program', 'Comprension', 1, 0);

208

insert into Atomos values ( clavecurso, 2, 3, 'Definicion de la Tabla Alumnos', 'Memorizacion', 0, 0); insert into Atomos values ( clavecurso, 2, 4, 'Definicion de la Tabla Calificaciones', 'Memorizacion', 0, 0); insert into Atomos values ( clavecurso, 2, 5, 'Ejercicios', 'Razonamiento', 2, 0); insert into Atomos values ( clavecurso, 3, 1, 'Creacion de Indices', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 3, 2, 'Ejercicios', 'Razonaniento', 2, 0); insert into Atomos values ( clavecurso, 4, 1, 'Llenado de Tablas', 'Memorizacion', 0, 0); insert into Atomos values ( clavecurso, 5, 1, 'Consultas', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 5, 2, 'Consultas Simples', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 5, 3, 'Consultas Simples - La Variable SQLCODE', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 5, 4, 'Consultas usando el Asterisco (*)', 'Memorizacion', 2, 0); insert into Atomos values ( clavecurso, 5, 5, 'Consultas con Cursores', 'Comprension', 2, 0); insert into Atomos values ( clavecurso, 5, 6, 'Consultas que Involucran varias Tablas', 'Comprension', 2, 0); insert into Atomos values ( clavecurso, 5, 7, 'Ejercicios', 'Razonamiento', 3, 0); insert into Atomos values ( clavecurso, 6, 1, 'Funciones de Consolidacion', 'Comprension', 2, 0); insert into Atomos values ( clavecurso, 6, 2, 'Ejercicios', 'Razonamiento', 3, 0); insert into Atomos values ( clavecurso, 7, 1, 'Consultas Anidadas', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 7, 2, 'Ejercicios', 'Razonamiento', 4, 0); insert into Atomos values ( clavecurso, 8, 1, 'Operaciones Avanzadas', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 8, 2, 'Comparadores LIKE y NOT LIKE', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 8, 3, 'Valores Nulos', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 8, 4, 'Ejercicios', 'Razonamiento', 4, 0); insert into Atomos values ( clavecurso, 9, 1, 'Instruccion Insert', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 9, 2, 'Ejercicios', 'Razonamiento', 4, 0); insert into Atomos values ( clavecurso, 10, 1, 'Instruccion UpDate', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 10, 2, 'Ejercicios', 'Razonamiento', 4, 0); insert into Atomos values ( clavecurso, 11, 1, 'Instruccion Delete', 'Comprension', 3, 0); insert into Atomos values ( clavecurso, 11, 2, 'Ejercicios', 'Razonamiento', 4, 0); insert into Atomos values ( clavecurso, 12, 1, 'Tipos de Datos del Manejador', 'Comprension', 4, 0); insert into Atomos values ( clavecurso, 12, 2, 'Variables Anfitrionas', 'Razonamiento', 5, 0); insert into Atomos values ( clavecurso, 13, 1, 'Atomo 1', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 13, 2, 'Atomo 2', 'Comprension', 1, 0); insert into Atomos values ( clavecurso, 13, 3, 'Atomo 3 Evaluacion Teorica', 'null', 0, 1); insert into Atomos values ( clavecurso, 13, 4, 'Atomo 4 Evaluacion Practica', 'null', 0, 2); // Tabla - PreRequisitosAtomos insert into PreRequisitosAtomos values ( clavecurso, 1, 1, 2, 1); insert into PreRequisitosAtomos values ( clavecurso, 2, 1, 2, 2); insert into PreRequisitosAtomos values ( clavecurso, 2, 2, 2, 3); insert into PreRequisitosAtomos values ( clavecurso, 2, 3, 2, 4); insert into PreRequisitosAtomos values ( clavecurso, 2, 4, 2, 5); insert into PreRequisitosAtomos values ( clavecurso, 2, 5, 3, 1); insert into PreRequisitosAtomos values ( clavecurso, 3, 1, 3, 2); insert into PreRequisitosAtomos values ( clavecurso, 3, 2, 4, 1); insert into PreRequisitosAtomos values ( clavecurso, 4, 1, 5, 1); insert into PreRequisitosAtomos values ( clavecurso, 5, 1, 5, 2); insert into PreRequisitosAtomos values ( clavecurso, 5, 2, 5, 3); insert into PreRequisitosAtomos values ( clavecurso, 5, 3, 5, 4); insert into PreRequisitosAtomos values ( clavecurso, 5, 4, 5, 5); insert into PreRequisitosAtomos values ( clavecurso, 5, 5, 5, 6); insert into PreRequisitosAtomos values ( clavecurso, 5, 6, 5, 7); insert into PreRequisitosAtomos values ( clavecurso, 5, 7, 6, 1); insert into PreRequisitosAtomos values ( clavecurso, 6, 1, 6, 2); insert into PreRequisitosAtomos values ( clavecurso, 6, 2, 7, 1); insert into PreRequisitosAtomos values ( clavecurso, 7, 1, 7, 2); insert into PreRequisitosAtomos values ( clavecurso, 7, 2, 8, 1); insert into PreRequisitosAtomos values ( clavecurso, 8, 1, 8, 2); insert into PreRequisitosAtomos values ( clavecurso, 8, 2, 8, 3); insert into PreRequisitosAtomos values ( clavecurso, 8, 3, 8, 4); insert into PreRequisitosAtomos values ( clavecurso, 8, 4, 9, 1); insert into PreRequisitosAtomos values ( clavecurso, 9, 1, 9, 2); insert into PreRequisitosAtomos values ( clavecurso, 9, 2, 10, 1);

209

insert into PreRequisitosAtomos values ( clavecurso, 10, 1, 10, 2); insert into PreRequisitosAtomos values ( clavecurso, 10, 2, 11, 1); insert into PreRequisitosAtomos values ( clavecurso, 11, 1, 11, 2); insert into PreRequisitosAtomos values ( clavecurso, 11, 2, 12, 1); insert into PreRequisitosAtomos values ( clavecurso, 12, 1, 12, 2); insert into PreRequisitosAtomos values ( clavecurso, 12, 2, 13, 1); insert into PreRequisitosAtomos values ( clavecurso, 13, 1, 13, 2); insert into PreRequisitosAtomos values ( clavecurso, 13, 2, 13, 3); insert into PreRequisitosAtomos values ( clavecurso, 13, 3, 13, 4); insert into PreRequisitosAtomos values ( clavecurso, 13, 4, 0, 0); // Tabla - PlanEstudiosAtomos insert into PlanEstudiosAtomos values ( clavecurso, 1, 1, 0, 0, 0); insert into PlanEstudiosAtomos values ( clavecurso, 2, 1, 1, 1, 1); insert into PlanEstudiosAtomos values ( clavecurso, 2, 2, 2, 2, 1); insert into PlanEstudiosAtomos values ( clavecurso, 2, 3, 3, 2, 2); insert into PlanEstudiosAtomos values ( clavecurso, 2, 4, 4, 2, 3); insert into PlanEstudiosAtomos values ( clavecurso, 2, 5, 5, 2, 4); insert into PlanEstudiosAtomos values ( clavecurso, 3, 1, 6, 2, 5); insert into PlanEstudiosAtomos values ( clavecurso, 3, 2, 7, 3, 1); insert into PlanEstudiosAtomos values ( clavecurso, 4, 1, 8, 3, 2); insert into PlanEstudiosAtomos values ( clavecurso, 5, 1, 9, 4, 1); insert into PlanEstudiosAtomos values ( clavecurso, 5, 2, 10, 5, 1); insert into PlanEstudiosAtomos values ( clavecurso, 5, 3, 11, 5, 2); insert into PlanEstudiosAtomos values ( clavecurso, 5, 4, 12, 5, 3); insert into PlanEstudiosAtomos values ( clavecurso, 5, 5, 13, 5, 4); insert into PlanEstudiosAtomos values ( clavecurso, 5, 6, 14, 5, 5); insert into PlanEstudiosAtomos values ( clavecurso, 5, 7, 15, 5, 6); insert into PlanEstudiosAtomos values ( clavecurso, 6, 1, 16, 5, 7); insert into PlanEstudiosAtomos values ( clavecurso, 6, 2, 17, 6, 1); insert into PlanEstudiosAtomos values ( clavecurso, 7, 1, 18, 6, 2); insert into PlanEstudiosAtomos values ( clavecurso, 7, 2, 19, 7, 1); insert into PlanEstudiosAtomos values ( clavecurso, 8, 1, 20, 7, 2); insert into PlanEstudiosAtomos values ( clavecurso, 8, 2, 21, 8, 1); insert into PlanEstudiosAtomos values ( clavecurso, 8, 3, 22, 8, 2); insert into PlanEstudiosAtomos values ( clavecurso, 8, 4, 23, 8, 3); insert into PlanEstudiosAtomos values ( clavecurso, 9, 1, 24, 8, 4); insert into PlanEstudiosAtomos values ( clavecurso, 9, 2, 25, 9, 1); insert into PlanEstudiosAtomos values ( clavecurso, 10, 1, 26, 9, 2); insert into PlanEstudiosAtomos values ( clavecurso, 10, 2, 27, 10, 1); insert into PlanEstudiosAtomos values ( clavecurso, 11, 1, 28, 10, 2); insert into PlanEstudiosAtomos values ( clavecurso, 11, 2, 29, 11, 1); insert into PlanEstudiosAtomos values ( clavecurso, 12, 1, 30, 11, 2); insert into PlanEstudiosAtomos values ( clavecurso, 12, 2, 31, 12, 1); insert into PlanEstudiosAtomos values ( clavecurso, 13, 1, 32, 12, 2); insert into PlanEstudiosAtomos values ( clavecurso, 13, 2, 33, 13, 1); // Tabla - Diapositivas insert into Diapositivas values ( clavecurso, 1, 1, 1, 'cap1.swf', 1, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 2, 'cap1-1.swf', 2, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 3, 'cap1-2.swf', 3, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 4, 'cap1-3.swf', 4, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 5, 'cap1-4.swf', 5, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 6, 'cap1-5.swf', 6, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 7, 'cap1-6.swf', 7, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 8, 'cap1-7.swf', 8, 'null'); insert into Diapositivas values ( clavecurso, 1, 1, 9, 'cap1-8.swf', 9, 'select * from alumnos'); insert into Diapositivas values ( clavecurso, 1, 1, 10, 'cap1-9.swf', 10, 'select * from materias'); insert into Diapositivas values ( clavecurso, 1, 1, 11, 'cap1-10.swf', 11, 'select * from calificaciones'); insert into Diapositivas values ( clavecurso, 1, 1, 12, 'cap1-11.swf', 12, 'null');

210

insert into Diapositivas values ( clavecurso, 1, 1, 13, 'cap1-12.swf', 13, 'null'); // Tabla - PreguntasAtomos insert into PreguntasAtomos values ( clavecurso, 13, 3, 1, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0); insert into PreguntasAtomos values ( clavecurso, 13, 4, 1, 13, 1, 13, 2, 0, 0, 0, 0, 0, 0); // Tabla - PreguntasTeoricas insert into PreguntasTeoricas values ( clavecurso, 13, 3, 1, 'Instruccion para Seleccionar Datos', 'seleccionar', 'select', 'seleccion', 'null', 'null', 'INCORRECTA', 'CORRECTA', 'INCORRECTA', 'null', 'null'); // Tabla - PreguntasPracticas insert into PreguntasPracticas values ( clavecurso, 13, 4, 1, 'Seleccionar Datos de los Alumnos', 'select * from alumnos');

211

425262178"9425262178"9425262178"9425262178"9

212

[Bloom, 1996] C.P. Bloom. “Promoting the Transfer of Advanced Training Technologies”, C.Frasson, G. Gauthier, A. Lesgold (Eds.) Intelligent Tutoring Systems Third International Conference, ITS’96, pp. 1-9, 1996.

[Boy, 1996] G. Boy. “Learning Evolution and Software Agents Emergence, C.Frasson, G. Gauthier”, A. Lesgold (Eds.) Intelligent Tutoring Systems Third International Conference, ITS’96, pp. 57-65, 1996.

[Brusilovsky & Vassileva, 2003] P. Brusilovsky, J. Vassileva “Course sequencing techniques for large-scale web-based education”, Int. J. Continuing Engineering Education and Lifelong Learning, Vol. 13, Nos.1/2, p. 75, 2003

[Burton & Brown, 1976] R.R. Burton, J.S. Brown. “A Tutoring and student modelling paradigm for gaming environments”. Colman, R.; and Lorton, P.Jr (Eds.) Computer Science and Education. ACM SIGCSE Bulletin, vol. 8 no. 1, pp. 236-246, 1976.

[Carr y Goldstein, 1977] B. Carr, I. P. Goldstein. Overlays: a Theory Modeling for Computer-Aided Instruction. AI Lab Memo 417 (Logo Memo 45). Massachusetts Institute of Technology, Cambridge, Massachusetts, 1977

[CUAltos, 2000] CUAltos. “Centros de AutoAcceso”. Centro Universitario de los Altos, Universidad de Guadalajara, Tepatitlan de Morelos, Jal. 2000 http://www.cualtos.udg.mx/novedades/cntro_auto.htm.

[Cuevas, 1999] C.A. Cuevas V. “Sistemas Tutores Inteligentes”. Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional, Mexico. D.F 1999. http://www.cinvestav.mx/mat_edu/ccuevas.html.

[Frasson et. Al., 1996] C. Frasson, T. Mengelle, E. Aïmeur, G. Gouardéres. “An Actor-Based Architecture for Intelligent Tutoring Systems, C. Frasson, G. Gauthier, A. Lesgold” (Eds.) Intelligent Tutoring Systems Third International Conference, ITS’96, pp. 57-65, 1996.

[Gutiérrez, 1995] J. Gutiérrez, T.A. Pérez, P. Lopésteguy, I. Usandizaga. “Sistemas Tutores Inteligentes: Una Forma de Conseguir Sistemas Hipermedia Educativos”. Conferencia de la Asociacion Española para la Inteligencia Artificial. CAEPIA’95. Asociación Española para la Inteligencia Artificial, AEPIA: Alicante, España.

[Hartley & Sleeman, 1973] J. R. Hartley, D. H. Sleeman. “Towards Intelligent Teaching Systems”, Int. Jrnl Man-Maschine Studies, vol. 5, pp. 215-236, 1973.

213

[HREF1, 1995] “Interactive Courseware”, http://www.sc.istucf.edu/ - OTI/1_2/index.html, 1995.

[HREF2, 1998] “Cómo Funciona Internet. CFI: Funcionamiento de los CGI. Capítulo 3.6.” http://ctv.es/areas/servicio/funciona/miltimed.cgi.htm, 1998.

[Ingram, 2001] J.W. Ingram, R. Pazos. Tesis de Maestría: Sistema Tutorial para la Enseñanza de SQL. Centro Nacional de Investigación y Desarrollo Tecnológico. Junio de 2001.

[ITAM, 1999] ITAM. “Copernicus - Desarrollo de una Tecnología Educativa desde una Perspectiva Humanística - Sistema Tutor para la Materia Circuitos Lógicos”. Instituto Tecnológico Autonomo de México, Mexico D.F. 1999 http://www.itam.mx/organizacion/divisiones/dai/cognitiv/html/proyectos/copernicus/index.html.

[Klausmeier & Goodwin, 1997] H. J. Klausmeier & W. Goodwin. Tomo I: Psicología Educativa - Habilidades Humanas, Aprendizaje. Enciclopedia de Psicología Educativa - Aprendizaje, Habilidades Humanas y Conducta. Oxford University Press Harla México. ISBN 970-613-233-3. 1997.

[Laubsh, 1975] J. H. Laubsh. “Some Thoughts About Representing Knowledge in Instructional Systems”. Proceeding of the Fourth International Joint Conference on Artificial Intelligence, Tsibili, USRR, pp. 122-125, 1975.

[Marques, 1996] P. Marques. El Software Educativo, “Biblioteca Virtual de Tecnología Educativa”, Universidad Autónoma de Barcelona. http://www.doe.d5.ub.es/te/any96/marques_software. Barcelona, España, 1996. [email protected].

[Martínez, 2000] J. M. Martínez C., R. A. Pazos R.. Propuesta de Tesis de Maestría:Desarrollo de Módulos para presentación Multimodal de Conocimientos y Acceso Vía Internet para un Sistema Tutor. Centro Nacional de Investigación y Desarrollo Tecnológico. Diciembre 5 de 2000.

[Morales, 1998] E. Morales. Tutores Inteligentes, División de Ingeniería y Ciencias. Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Morelos. Cuernavaca, Mor., 1998.

[NCSA, 1999] NCSA. “CGI: Common Gateway Interface”. http://hoohoo.ncsa.uiuc.edu/cgi/intro.html , 1999.

[Pazos, 1997] R. Pazos, J. Pérez, V. Sosa. Notas del Curso Sistema Manejador de Base de Datos Distribuidas SIMBaDD. Versión 1.1 para Windows. Centro Nacional de Investigación y Desarrollo Tecnológico, Febrero 1997.

214

[Pineda, 2000] J.L. Pineda. “Sistemas Tutoriales, Multimodales Inteligentes para la Difusión de las Tecnologías del Lenguaje”. Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas – Universidad Nacional Autónoma de México; Mexico, D.F. 2000. http://uxdea4.iimas.unam.mx/redii/resultado.html

[Sastre, 1998] J.C. Sastre. “Cursos: Java en Castrellano – Introducción a los Servlets”. http://www.geocities.com:0080/SiliconValley/Lakes/5276/servlets1.html, 1998.

[Sun, 2003] Sun MicroSystems. http://java.sun.com/, 2003.

[Uriarte, 1997] F. Uriarte M. “Desarrollo de Software Educativo: Análisis, Diseño, Programación”. Maestría en Ciencias de la Computación Perfil Informática Educativa, Unidad de Posgrado Culiacán, Facultad de Ingenieria, Universidad Autónoma de Sinaloa. 1977 http://tiny.uasnet.mx/prof/cln/ccu/edu-info/fidel.htm

[Vassileva & Wasson, 1996] J. Vassileva, B. Wasson. “Instructional Planning Aproaches: from Tutoring towards Free Learning”. Proceedings of EUROAIED’96, Lisboa, 30.9 - 2.10 pp 1-8, 1996

[Weber & Brusilovsky, 2001] G. Weber, P. Brusilovsky, “ELM-ART: An Adaptive Versatile System for Web-based Instruction”, International Journal of Artificial Intelligence in Education, 12, 351-384, 2001.

[Wenger, 1987]. E. Wenger. Artificial Intelligence and Tutoring Systems, Morgan Kaufmann Publishers, Inc., 1987.

[Zhou, 1994] G. Zhou, J.T.L. Wang, P.A. Ng. “A Knowledge-Based Tutoring System for SQL Programing”. Proc. Sixth IEEE International Conference Tools with Artificial Intelligence, pp. 352-358, New Orleans, 1994.