S.E.I.T. D.G.I.T. SECRETARÍA DE EDUCACIÓN PUBLICA 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 Dedicatoria A Dios A mis padres Alejandra y Mario A mis hermanos Alejandra y Ricardo A mi famila Katy, Pedro, Oswaldo, Katia, Waldo A mis compañeros y amigos Sheydi, Roble, Giovanni, Fernando, David, Hugo, Anely, Patricia, Areli, Antonio C., Eduardo, Moisés, Iris, Claudia, Víctor, Gabriel, Antonio Z., Antonio M. A mi esposa y mi hijo Itzia y Alfredo Con amor y la promesa de retribuir con creces la atención que no les he brindado 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ú Tabla de Contenido Capitulo 1. Introducción 1 1.1. Antecedentes 1.1.1. Antecedentes para el desarrollo de la herramienta 1.1.1.1. Sistema Tutor para la Enseñanza de SQL 1.2. Obj etivo de la tesis 1.3. Beneficios 1.4. Descripción del problema 1.5. Alcances 1.6. Descripción del documento Capitulo 2. Marco teórico 13 2.1. Clasificación de los programas educativos 2.1.1. Bases de datos 2.1.2. Simuladores 2.1.3. Constructores 2.1.4. Programas herramientas 2.1.5. Programas tutores 2.2. Sistemas tutores 2.3. Estado del arte 2.3.1. Desarrollo de software educativo: análisis, diseño, programación 2.3.2. Course sequencing techniques for large-scale web-based education 2.3.3. ELM-ART: An Adaptive Versatile System for Web-based Instruction 2.3.4. Instructional Planning Approaches: from Tutoring towards Free Learning 2.3.5. Sistemas tutores inteligentes: una forma de conseguir sistemas hipermedia educativos 2.3.6. A knowledge-based tutoring system for SQL programming 2.3.7. Otros sistemas tutores 2.4. CGIs 2.5. Servicetes Capitulo 3. 2 3 3 8 9 10 11 12 Análisis del problema y propuesta de solución 3.1. Acceso Vía Internet 3.2. Otros Cursos 3.3. Normalización de la Base de Datos 3.4. Control de Alumnos y Cursos 3.5. Servicio de Exportar e Importar Cursos 3.6. Servicio de Respaldar y Restaurar la Base de Datos 3.7. Multimedia en la Presentación del Conocimiento 3.8. Sincronización de la Animación con el Sonido 3.9. Rapidez en la Transmisión de la Diapositiva 3.9.1. Degradación y Fluj o de Sonido 3.10. Implementación de Ej emplos i 14 15 15 16 16 16 18 21 21 22 26 29 31 33 35 35 37 40 41 41 42 43 43 44 44 45 46 46 47 3.11. Evaluación 3.11.1. Algoritmo para la Aplicación de Exámenes 3.11.2. Algoritmo para la Selección de Preguntas 3.11.3. Calificación de Preguntas 3.11.4. Algoritmo para la Calificación por Átomos 3.12. Visualización de Diapositivas 3.13. Transferencia de Archivos 3.14. Configuración de los Módulos Capitulo 4. Desarrollo y descripción de la herramienta 4.1. Arquitectura de la Herramienta 4.2. Módulo generador de cursos tutores (SGCT) 4.2.1. Clase AcercaDe 4.2.2. Clase ClienteTransf 4.2.3. Clase Configuracion 4.2.4. Clase CrearArchivoHTML 4.2.5. Clase CrearTablas 4.2.6. Clase LeerClave 4.3. Módulo administrador de cursos tutores (SACT) 4.3.1. Clase SACT 4.3.2. Clase AcercaDe 4.3.3. Clase AltaAlumnos 4.3.4. Clase AsignarAlumnosCurso 4.3.5. Clase AsignarAlumnos 4.3.6. Clase AsignarCursos 4.3.7. Clase Baj aAlumnoCurso 4.3.8. Clase ClienteTransf 4.3.9. Clase Configuracion 4.3.10. Clase ConsultarAlumnos 4.3.11. Clase ConsultarCursos 4.3.12. Clase EliminarAlumno 4.3.13. Clase EliminarCurso 4.3.14. Clase ExportarCurso 4.3.15. Clase ImportarCurso 4.3.16. Clase Imprimir 4.3.17. Clase ImprimirAlumnos 4.3.18. Clase ImprimirAvances 4.3.19. Clase ImprimirCursos 4.3.20. Clase RespaldarBD 4.3.21. Clase RestaurarBD 4.4. Módulo interfaz del alumno 4.4.1. Servicete Acceso 4.4.2. Servicete ConfigAlumno1 4.4.3. Servicete ConfigAlumno2 4.4.4. Clase Cursos 4.4.5. Servicete Capítulos 4.4.6. Servicete Temas 4.4.7. Servicete Diapositivas 4.4.8. Servicete Ej emplos 4.4.9. Servicete Examen 4.4.10. Servicete Evaluación 4.4.11. Clase Encabezado ii 48 48 50 51 52 54 55 55 57 58 62 65 65 66 67 67 68 69 69 70 70 71 72 72 73 73 74 75 75 76 77 77 78 79 80 80 81 82 82 84 84 85 85 86 86 87 87 88 88 89 90 4.4.12. Clase Conexión 4.5. Módulo de transferencia de archivos 4.5.1. Clase TransfArchivos Capitulo 5. Pruebas de la Herramienta 5.1. Obj etivo de las Pruebas 5.2. Descripción de los Alcances 5.3. Descripción del ambiente de pruebas 5.4. Cursos de Pruebas 5.4.1. Material del Curso Enseñanza de SQL 5.5. Pruebas y Resultados 5.5.1. Prueba 1. Creación de Cursos 5.5.2. Prueba 2. Planificación del Curso Enseñanza de SQL 5.5.3. Prueba 3. Copiado e Instalación de un Curso 5.5.4. Prueba 4. Acceso al Sistema a través de Internet 5.5.5. Prueba 5. Visualización de Diapositivas 5.5.6. Prueba 6. Visualización de Ej emplos 5.5.7. Prueba 7. Visualización de Exámenes Capitulo 6. Conclusiones 92 93 93 94 95 99 102 103 107 109 112 114 115 117 120 6.1. Conclusiones generales 6.2. Resultados obtenidos 6.3. Trabaj os futuros Anexo 1 90 91 91 121 121 122 Manual de Usuario A1.1. Sistema Generador de Cursos Tutores A1.1.1. Cursos A1.1.1.1. Nuevo A1.1.1.2. Abrir A1.1.1.3. Crear Tablas A1.1.1.4. Salir A1.1.2. Actualizar A1.1.2.1. Agregar A1.1.2.1.1. Capítulos A1.1.2.1.2. Átomos de Información A1.1.2.1.2.1. Átomos de Conocimiento A1.1.2.1.2.1.1. Alta Diapositivas A1.1.2.1.2.1.1.1. Abrir y Cerrar Diapositivas A1.1.2.1.2.1.1.2. Diapositiva de Ej emplo o Conocimiento A1.1.2.1.2.2. Átomos de Evaluación A1.1.2.1.2.2.1. Exámenes Teóricos A1.1.2.1.2.2.2. Exámenes Prácticos A1.1.2.2. Modificar A1.1.2.2.1. Contenido del Curso A1.1.2.3. Consultar A1.1.2.3.1. Contenido del Curso A1.1.2.4. Crear Plan de Estudio A1.1.2.4.1. Establecer relaciones de precedencia por Átomos de Información iii 124 125 125 126 127 128 129 129 129 130 130 131 132 133 134 134 135 137 138 138 143 143 146 147 A1.1.2.4.2. Establecer relaciones de precedencia por Capítulos A1.1.2.4.3. Crear Plan de Estudio A1.1.3. Configuración A1.1.3.1. Configuración A1.1.3.2. Acerca de ... A1.2. Sistema Administrador de Cursos Tutores A1.2.1. Cursos A1.2.1.1. Consultar A1.2.1.2. Respaldar A1.2.1.3. Restaurar A1.2.1.4. Exportar A1.2.1.5. Importar A1.2.1.6. Salir A1.2.2. Alumnos A1.2.2.1. Alta A1.2.2.2. Consultar A1.2.3. Informes A1.2.3.1. Cursos A1.2.3.2. Alumnos A1.2.3.3. Avances A1.2.4. Configuración A1.2.4.1. Configuración A1.2.4.2. Acerca de... A1.3. Interfaz del Usuario A1.3.1. Acceso al Sistema A1.3.2. Cursos A1.3.2.1. Datos de Configuración del Alumno A1.3.3. Capítulos A1.3.4. Temas A1.3.5. Diapositivas A1.3.5.1. Ej emplos A1.3.5.2. Evaluación A1.4. Transferencia de Archivos Anexo 2 Diseño de la Base de Datos A2.1. Descripción de la Base de Datos 147 148 148 149 152 153 153 154 156 158 160 161 163 163 164 165 166 167 168 170 171 172 175 176 176 177 178 179 180 181 182 183 187 189 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 Referencias 207 211 iv Lista de Figuras Figura Figura Figura Figura Figura Figura 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. Arquitectura del sistema tutor. Grafo instruccional. Visualización de diapositivas y exámenes. Visualizador de ej ercicios. Módulo generador y administrador de cursos. Base de datos. 4 5 6 6 7 8 Figura 2.1. División natural de los sistemas tutores. Figura 2.2. Esquema de operación de un CGI. 19 36 Figura 3.1. Fragmento de la base de datos relacionado con la Evaluación. Figura 3.2. Algoritmo para la aplicación de exámenes. Figura 3.3. Algoritmo para la selección de preguntas. Figura 3.4. Asociación de átomos y preguntas. Figura 3.5. Calificación del examen. Figura 3.6. Calificación de átomos. Figura 3.7. Esquema de repasos totales. 49 50 51 52 53 53 54 Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura 58 59 60 61 62 63 65 66 67 67 68 69 69 70 71 72 72 73 73 74 75 75 76 76 77 78 79 80 80 4.1. Modelo conceptual del sistema. 4.2. Distribución física. 4.3. Módulo generador de cursos. 4.4. Módulo administrador de cursos. 4.5. Módulo interfaz del alumno. 4.6. Esquema de la base de datos. 4.7. Métodos de la clase AcercaDe. 4.8. Método de la clase ClienteTransf. 4.9. Métodos de la clase Configuracion. 4.10. Método de la clase CrearArchivoHTML. 4.11. Métodos de la clase CrearTablas. 4.12. Métodos de la clase LeerClave. 4.13. Métodos de la clase SACT. 4.14. Métodos de la clase AcercaDe. 4.15. Métodos de la clase AltaAlumnos. 4.16. Métodos de la clase AsignarAlumnosCurso. 4.17. Métodos de la clase AsignarAlumnos. 4.18. Métodos de la clase AsignarCursos. 4.19. Método de la clase Baj aAlumnoCurso. 4.20. Método de la clase ClienteTransf. 4.21. Métodos de la clase Configuracion. 4.22. Métodos de la clase ConsultarAlumnos. 4.23. Métodos de la clase ConsultarCursos. 4.24. Método de la clase EliminarAlumno. 4.25. Métodos de la clase EliminarCurso. 4.26. Métodos de la clase ExportarCurso. 4.27. Métodos de la clase ImportarCurso. 4.28. Métodos de la clase Imprimir. 4.29. Métodos de la clase ImprimirAlumnos. v Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura 4.30. 4.31. 4.32. 4.33. 4.34. 4.35. 4.36. 4.37. 4.38. 4.39. 4.40. 4.41. 4.42. 4.43. 4.44. 4.45. 4.46. Métodos de la clase ImprimirAvances. Métodos de la clase ImprimirCursos. Métodos de la clase RespaldarBD. Métodos de la clase RestaurarBD. Método del servicete Acceso. Método del servicete ConfigAlumno1. Método del servicete ConfigAlumno2. Clase Cursos. Método del servicete Capitulos. Método del servicete Temas. Métodos del servicete Diapositivas. Método del servicete Ej emplos. Métodos del servicete Examen. Métodos del servicete Evaluacion. Clase Encabezado. Clase Conexión. Métodos de la clase ServidorTransf. Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura 5.1. Plan de estudios del curso Enseñanza de SQL 5.2. Preguntas teóricas y preguntas prácticas. 5.3. Asociación de átomos y preguntas. 5.4. Pantalla de captura para los datos de un curso nuevo. 5.5. Pantalla de captura de los datos del capítulo. 5.6. Pantalla de captura de los átomos de conocimiento. 5.7. Pantalla de captura de las diapositivas. 5.8. Consultar el curso creado. 5.9. Consulta de diapositivas asociadas al átomo. 5.10. Genera plan de estudios. 5.11. Establece relaciones de precedencia entre átomos. 5.12. Establece relaciones de precedencia entre capítulos. 5.13. Ventana exportar curso. 5.14. Contenido del archivo resp_sql.zip 5.15. Seleccionar el archivo que contiene el curso a importar. 5.16. Datos del curso a importar. 5.17. Ventana respaldo de la base de datos. 5.18. Acceso al sistema a través de Internet. 5.19. Acceso al sistema. 5.20. Visualización de diapositivas. 5.21. Diapositiva que contiene una consulta de ej emplo. 5.22. Resultados de la ej ecución de la consulta. 5.23. Preguntas de la evaluación. 5.24. Resultados de la evaluación teórica. 100 101 102 104 104 105 105 106 106 107 108 108 109 110 111 111 112 113 113 115 116 117 118 119 Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura A1.1. Sistema generador de cursos. A1.2. Menú cursos. A1.3. Crear cursos nuevos. A1.4. Abrir cursos disponibles. A1.5. Clave de acceso. A1.6. Base de datos a generar. A1.7. Advertencia sobre borrado de datos. A1.8. Creación exitosa. A1.9. Menú actualizar. A1.10. Menú agregar. 125 126 126 127 127 128 128 128 129 130 vi 81 81 82 84 84 85 85 86 86 87 88 88 89 90 90 91 91 Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura A1.11. A1.12. A1.13. A1.14. A1.15. A1.16. A1.17. A1.18. A1.19. A1.20. A1.21. A1.22. A1.23. A1.24. A1.25. A1.26. A1.27. A1.28. A1.29. A1.30. A1.31. A1.32. A1.33. A1.34. A1.35. A1.36. A1.37. A1.38. A1.39. A1.40. A1.41. Figura A1.42. Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura A1.43. A1.44. A1.45. A1.46. A1.47. A1.48. A1.49. A1.50. A1.51. A1.52. A1.53. A1.54. A1.54. A1.55. A1.56. A1.57. A1.58. A1.59. A1.60. Ventana crear capítulo. Seleccionar capítulo. Ventana crear átomo de información. Ventana crear átomo de conocimiento. Ventana alta diapositivas. Ventana seleccionar diapositiva. Ventana alta diapositivas. Seleccionar evaluación. Crear átomo de evaluación teórica. Crear evaluación teórica. Asociar átomos de conocimiento a la pregunta. Crear átomo de evaluación práctica. Crear examen práctico. Asociar átomos de conocimiento a la pregunta. Menú actualizar (opción modificar). Menú modificar (opción contenido del curso). Ventana tabla de contenido. Información del átomo. Ventana consultar diapositivas. Predecesores del átomo. Advertencia de eliminación. Advertencia de modificación. Menú consultar. Ventana tabla de contenido. Ventana capítulo. Ventana tabla de contenido. Consultar diapositivas. Predecesores del átomo de información seleccionado. Menú actualizar (opción crear plan estudios). Ventana genera plan de estudios. Establecer relaciones de precedencia entre átomos de información por capítulo. Establecer relaciones de precedencia entre los capítulos del curso. Menú configuración. Menú configuración (opción configuración). Configuración del sistema - usuario. Configuración del sistema - servidor. Configuración del sistema - base de datos. Configuración del sistema - visualizador. Archivo de configuración del sistema. Ventana acerca de... Sistema administrador de cursos. Menú cursos. Menú cursos (opción consultar). Ventana consultar cursos. Confirmación de baj a. Ventana asignar alumnos. Menú cursos (opción respaldar). Ventana respaldar base de datos. Ventana guardar. Menú cursos (opción restaurar). Ventana restaurar base de datos. vii 130 131 131 132 133 133 134 135 135 136 136 137 137 138 138 139 140 141 141 142 142 142 143 143 144 144 145 145 146 146 147 148 149 149 150 150 151 151 152 152 153 154 154 155 155 156 156 157 157 158 158 Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura A1.61. Ventana abrir archivo. A1.62. Ventana restaurar base de datos. A1.63. Menú cursos (opción exportar). A1.64. Ventana exportar curso. A1.65. Ventana guardar. A1.66. Menú cursos (opción importar). A1.67. Ventana importar curso. A1.68. Ventana abrir archivo. A1.69. Ventana importar curso. A1.70. Menú cursos (opción salir). A1.71. Menú alumnos. A1.72. Menú alumnos (opción alta). A1.73. Ventana alta de alumnos. A1.74. Menú alumnos (opción consultar). A1.75. Ventana consultar alumnos. A1.76. Confirmación de baj a. A1.77. Ventana asignar cursos. A1.78. Menú informes. A1.79. Menú informes (opción cursos). A1.80. Ventana reporte cursos. A1.81. Menú informes (opción alumnos). A1.82. Ventana reporte de alumnos. A1.83. Menú informes (opción avances). A1.84. Ventana imprimir avances. A1.85. Ventana reporte de avance de alumnos. A1.86. Menú configuración. A1.87. Menú configuración (opción configuración). A1.88. Configuración del sistema - usuario. A1.89. Configuración del sistema - servidor. A1.90. Configuración del sistema - base de datos. A1.91. Configuración del sistema - visualizador. A1.92. Archivo de configuración del sistema. A1.93. Ventana acerca de... A1.94. Acceso a la interfaz del alumno. A1.95. Cuenta incorrecta. A1.96. Clave incorrecta. A1.97. Página de cursos. A1.98. Configuración de los datos del alumno. A1.99. Página de capítulos. A1.100. Página de temas. A1.101. Página de diapositivas. A1.102. Ej emplos. A1.103. Resultados de la consulta. A1.104. Evaluación teórica. A1.105. Evaluación práctica. A1.106. Resultados de la evaluación teórica. A1.107. Resultados de la evaluación práctica. A1.108. Servicio de transferencia de archivos. 159 159 160 160 161 161 162 162 162 163 163 164 164 165 165 166 166 167 167 168 169 169 170 170 171 172 172 173 173 174 174 175 175 176 177 177 178 178 179 180 181 182 183 184 185 186 187 188 Figura A2.1. Diseño de la base de datos. 190 Figura A4.1. Inicio Figura A4.2. Otras investigaciones 199 200 viii Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura A4.3. Antecedentes A4.4. Estandarización SQL A4.5. Propósito del curso A4.6. Definición de bases de datos A4.7. Ej emplo A4.8. Tabla A A4.9. Tabla M A4.10. Tabla C A4.11. Relaciones A4.12. Definición de sistema administrador de base de datos ix 200 201 201 202 202 203 203 204 204 205 Lista de Tablas Tabla Tabla Tabla Tabla 5.1. 5.2. 5.3. 5.4. Estructura del curso Enseñanza de SQL. Estructura del curso Introducción al lenguaj e Java. Estructura del curso Manual de HTML. Pruebas realizadas y alcances asociados x 95 97 98 103 !"#$ %&'()* Introducció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. 1 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 (MILSTD)-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 2 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. 3 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. Componentes del Sistema Tutor Módulo de Conocimiento Módulo Pedagógico Diapositivas Planificador Ejercicios Exámenes Atomodeinformación(Conceptosy Ejercicios) Atomodeinformación(Conceptosy Ejercicios) Puntosdeevaluación(exámenes) Puntos deevaluación(exámenes) Información de Alumnos Grafo Instruccional Interfaz del Alumno Modelo del Estudiante Visualización de Ejercicios Visualización de Diapositivas Módulo Administrador y Generador de Cursos Módulo de Control Visualización de Exámenes 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. 4 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. 5 Interfaz del Alumno: Visualización de Diapositivas y Exámenes Módulo de Conocimiento Diapositivas Ejercicios Exámenes Información de Alumnos Interfaz del Alumno Grafo Instruccional Modelo del Estudiante Visualización de Ejercicios Módulo de Control 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. Interfaz del Alumno: Visualización de Ejercicios Módulo de Conocimiento Diapositivas Ejercicios Exámenes Información de Alumnos Grafo Instruccional Interfaz del Alumno Visualización de Ejercicios Figura 1.4. Visualizador de ejercicios. 6 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 Módulo Generador y Administrador de Cursos Capítulos del curso ODBC - JDBC Atomos de información Exámenes Ejercicios Alumnos del curso AA tom oodd eeinin form ación on cep tos jercicios) tom form ación(C (C on cep tosyyEE jercicios) PPuunntos en tosddeeevalu evaluación ación(exám (exám enes) es) Grafo Instruccional Base de Datos del Sistema Tutor 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. 7 Diapositivas Ejercicios Exámenes Información de Alumnos Grafo 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. 8 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. 9 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 10 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. 11 • 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. 12 !"#$ %&'()+ Marco Teórico 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. 13 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. 14 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. 15 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. 16 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 17 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]. 18 Módulo de conocimiento Interfaz Modelo del estudiante Módulo Pedagógico 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: 19 • 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 20 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: Diseño, Programación [Uriarte, 1997]. Análisis, 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. 21 2.3.2. Course sequencing web-based education 2003] techniques for large-scale [Brusilovsky & Vassileva, 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 22 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. 23 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. 24 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 estáticos basados en la Web de cursos 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, 25 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 Webbased 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 26 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. 27 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. 28 É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 29 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. 30 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. 31 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 32 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 Programming. [Zhou, 1994] System for SQL 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 SQLTUTOR, 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. 33 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. 34 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). 35 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. Directorio cgi-bin Página Web Petición de información desde un formulario de Web Respuesta Datos formateados por el CGI para ser comprensibles CLIENTE Consulta SERVIDOR de Web BASE DE DATOS 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]. 36 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 37 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. 38 • 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. 39 !"#$ %&'(), Análisis del Solución Problema y Propuesta de 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. 40 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. 41 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. 42 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 43 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 44 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. 45 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 46 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 47 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). 48 Tablas Relacionadas con la Evaluación Atomos ClaveCurso integer ClaveCapitulo integer ClaveAtomo integer NombreAtomo char(50) TipoConocimiento char(50) GradoDificultad integer TipoAtomo integer PreguntasAtomos PreguntasPracticas ClaveCurso integer ClaveCapitulo integer ClaveAtomo integer ClavePregunta integer Pregunta char(50) Consulta char(50) ClaveCurso integer ClaveCapitulo integer ClaveAtomo integer ClavePregunta integer ClaveCapitulo1 integer ClaveAtomo1 integer ClaveCapitulo2 integer ClaveAtomo2 integer ClaveCapitulo3 integer ClaveAtomo3 integer ClaveCapitulo4 integer ClaveAtomo4 integer ClaveCapitulo5 integer ClaveAtomo5 integer PreguntasTeoricas ClaveCurso integer ClaveCapitulo integer ClaveAtomo integer ClavePregunta integer Pregunta 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). 49 Algoritmo para la Aplicación de Exámenes Todos los Atomos de Inf Repasados NO Rechazo SI Todos los Atomos de Inf Aprobados NO ACEPTAR SI Rechazo 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). 50 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 Atomo de Inf 1 Aprobado NO SI Atomo de Inf 2 Aprobado NO SI Atomo de Inf 3 Aprobado NO ACEPTAR SI Atomo de Inf 4 Aprobado Rechazo NO SI SI Atomos de Inf 5 Aprobado NO 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. 51 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. 1 Atomo de Inf. 2 Atomo de Inf. 3 ... Atomo de Inf. n Pregunta 1 Pregunta 2 Pregunta 3 Pregunta 4 Pregunta 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. 52 Calificaciones del Examen Pregunta 1 2 3 4 5 Resultado Valor CORRECTA INCORRECTA CORRECTA INCORRECTA CORRECTA 1 0 1 0 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 Calificación Atomo de Inf 1 = Preg1 + Preg2 + Preg5 = 1 + 0 + 1 = 2 = 66.66 % numpreg 3 3 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 1 2 3 NumeroRepasos RepasosTotales 2 2 0 1 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 53 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 Alumnos NumeroControl NombreAlumno Alias Contraseña integer char(50) char(50) char(50) AvancesAlumnos NumeroControl Clave Curso ClaveCapitulo ClaveAtomo NumeroRepasos RepasosTotales FechaUltimoRepaso CalificacionAtomo integer integer integer integer integer integer char(50) 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 54 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 55 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). 56 !"#$ %&'()Desarrollo y Herramienta Descripción de la 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. 57 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. Modelo Conceptual del Sistema (ST-SQL) Módulo Transferencia de Archivos Módulo Administrador de Cursos Recepción / Guardado Interfaz Administrador Diapositivas Módulo de Conocimiento Ejercicios Módulo Generador de Cursos Exámenes Control de Alumnos Interfaz del Diseñador Grafo Instruccional Módulo Pedagógico Módulo Interfaz del Alumno Modelo del Estudiante Planificador Acceso al Sistema Módulo de Control Visualización de Diapositivas Visualización de Ejemplos Atomodeinformación(Conceptosy Ejercicios) Atomo deinformación(Conceptos yEjercicios) Puntos deevaluación(exámenes) Puntosdeevaluación(exámenes) Visualización de Exámenes 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). 58 Distribución Física de los Componentes del Sistema (ST-SQL) Interfaz del Alumno (Servicete Java) POSTGRESQL Acceso al Sistema Visualizador de Diapositivas Base de Datos del Sistema Tutorial Visualizador de Ejemplos Visualizador de Exámenes Servidor Linux Módulo Pedagógico LAN Planificador Atomodeinformación(Conceptos yEjercicios) Atomo deinformación(Conceptosy Ejercicios) Puntos deevaluación(exámenes) Puntosdeevaluación(exámenes) PC Windows PC Windows PC Windows Visualizador de Web Módulo del Estudiante Módulo de Control Interfaz del Administrador (Aplicación de Java) Interfaz del Diseñador (Aplicación de Java) 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). 59 LAN Módulo Generador de Cursos Aplicación de Java Módulo Generador de Cursos POSTGRESQL Interfaz del Diseñador JDBC Capítulos del Curso Atomos de Información Exámenes Ejercicios Base de Datos del Sistema Tutor Atomodeinformación(ConceptosyEjercicios) Atomodeinformación(ConceptosyEjercicios) Puntosdeevaluación(exámenes) Puntosdeevaluación(exámenes) Grafo Instruccional 2 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). 60 LAN Módulo Administrador de Cursos Aplicación de Java Módulo Administrador de Cursos POSTGRESQL Interfaz del Administrador JDBC Instalación Control de Alumnos Respaldo Informes de Exámenes Base de Datos del Sistema Tutor 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). 61 Módulo Interfaz del Alumno Servicete Visualizador de Web Vi Internet/ Intranet al su d iza d or eW eb Visualizador de Web Interfaz del Alumno JDBC Acceso al Sistema POSTGRESQL Visualizador de Diapositivas Base de Datos del Sistema Tutor Visualizador de Ejemplos Visualizador de Exámenes 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. 62 Esquema de la Base de Datos Alumnos Cursos NumeroControl NombreAlumno Alias Contraseña integer char(50) char(50) char(50) 1 1 n 1 AlumnosCurso NumeroControl ClaveCurso n integer integer integer char(50) char(50) char(50) ClaveCurso NombreCurso Autor ClaveAcceso 1 n PreRequisitosCapitulos n integer ClaveCurso ClaveCapituloInicial integer ClaveCapituloFinal integer AvancesAlumnos integer integer integer integer integer integer FechaUltimoRepaso char(50) CalificacionAtomo integer NumeroControl ClaveCurso ClaveCapitulo ClaveAtomo NumeroRepasos TotalRepasos Planestudioscapitulos Capitulos n 1 ClaveCurso ClaveCapitulo NombreCapitulo integer integer char(50) 1 1 ClaveCurso ClaveCapitulo Distancia ClaveCapituloPredecesor integer integer integer integer 1 n n Atomos PreRequisitosAtomos integer ClaveCurso ClaveCapituloInicial integer ClaveAtomoInicial integer ClaveCapituloFinal integer ClaveAtomoFinal integer Negritas - Llave Primaria Cursivas – Llaves Foráneas n 1 1 ClaveCurso ClaveCapitulo ClaveAtomo NombreAtomo TipoConocimiento GradoDificultad TipoAtomo integer integer integer char(50) char(50) integer integer Planestudiosatomos 1 1 ClaveCurso ClaveCapitulo ClaveAtomo Distancia ClaveCapituloPredecesor ClaveAtomoPredecesor integer integer integer integer integer integer 1 1 n n PreguntasAtomos n PreguntasPracticas ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Consulta integer integer integer integer char(50) char(50) ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta ClaveCapitulo1 ClaveAtomo1 ClaveCapitulo2 ClaveAtomo2 ClaveCapitulo3 ClaveAtomo3 ClaveCapitulo4 ClaveAtomo4 ClaveCapitulo5 ClaveAtomo5 integer integer integer integer integer integer integer integer integer integer integer integer integer integer n PreguntasTeoricas ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Respuesta1 Respuesta2 Respuesta3 Respuesta4 Respuesta5 VerdaderoFalso1 VerdaderoFalso2 VerdaderoFalso3 VerdaderoFalso4 VerdaderoFalso5 integer integer integer integer char(255) char(255) char(255) char(255) char(255) char(255) char(50) char(50) char(50) char(50) char(50) Diapositivas ClaveCurso ClaveCapitulo ClaveAtomo ClaveDiapositiva Direccion Consulta integer integer integer integer char(50) char(254) 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. 63 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 • ConsultarExamenPractico • Abrir • ConsultarExamenTeorico • AdaptadorJDBC • ConsultarPrecedenciasAtomos • AgregarAtomos • ConsultarPrecedenciasCapitulos • AltaAtomosConocimiento • ExamenPractico • AltaAtomosInformacion • ExamenTeorico • AltaCapitulos • FormularConsulta • AltaCursos • GeneraPlanEstudios • AltaExamenes • Listas • AltasDiapositivas • ModificarConsulta • BaseDeDatos • PrecedenciaAtomos • Consultar • PrecedenciaCapitulos • ConsultarAtAsPregunta • ResultadosConsulta • ConsultarCapitulo • SelAtAsociadosPregunta • ConsultarDiapositivas 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 • CrearArchivoHTML • ClienteTransf • CrearTablas • Configuracion • LeerClave 64 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. ConfiguraElementosInterfaz() actionPerformed() AcercaDe Terminar() 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. 65 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. 66 actionPerformed() ConfiguraElementosInterfaz() ValoresOmision() Configuracion EscribirDatos() ValidarDatos() Terminar() 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): 67 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 (;). actionPerformed() ConfiguraElementosInterfaz() Terminar() CrearTablas CrearBD() ObtenComando() IniciaCreacion() 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): 68 ConfiguraElementosInterfaz() LeerClave actionPerformed() Terminar() 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. CrearBarraMenu() SACT Figura 4.13. Métodos de la clase SACT. 69 main() 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. ConfiguraElementosInterfaz() AcercaDe actionPerformed() Terminar() 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. 70 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. actionPerformed() AsignaDatos() Configura ComponentesInterfaz() AceptaDatos() AltaAlumnos InscribirAlumno() ValidaCampos() Terminar() LimpiarCampos() 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. 71 ObtenDatosParaTablaAvances(). Con este método se consiguen los datos de los capítulos y temas de los cuales está compuesto el curso. EliminaDatos TablaAvancesAlumno() actionPerformed() EscribeAlumnoBD() AsignarAlumnosCurso Escribe AvancesAlumnos() ObtenDatosPara TablaAvances() Terminar() 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): ConfiguraInterfaz() actionPerformed() AsignarAlumnos Terminar() 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): 72 ConfiguraInterfaz() actionPerformed() AsignarCursos Terminar() 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): 73 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. 74 Configura ElementosInterfaz() actionPerformed() ValoresOmision() Configuracion EscribirDatos() ValidarDatos() Terminar() 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. actionPerformed() ConfiguraInterfaz() ConsultarAlumnos 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 75 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. actionPerformed() ConfiguraInterfaz() ConsultarCursos 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. 76 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. 77 ConfiguraInterfaz() CreaArchivoZip() ExportarCurso actionPerformed() Terminar() DatosCurso() 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. 78 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. DatosCurso() DesHabilitaTexto() ImportarCurso VerificarDatos() TransferirArchivos() EliminarArchivos() SeleccionarArchivo() ObtenComando() ExtraerDatos() ImportarDatos() LimpiarCampos() 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): 79 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. Imprimir print() 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): 80 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. ConfiguraInterfaz() actionPerformed() DatosAlumno() ImprimirAvances 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. 81 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. ConfiguraInterfaz() actionPerformed() CreaArchivoZip() RespaldarBD 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. 82 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. 83 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. BorrarDatos() DatosRespaldo() EliminarArchivos() Eliminar ArchivosCurso() TransferirArchivos() RestaurarBD Extraer ArchivosCurso() SeleccionarArchivo() RestaurarDatos() ObtenComando() LimpiarDatos() ExtraerDatos() 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. 84 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. 85 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. 86 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. 87 Diapositivas AplicarExamen() 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. 88 Examen AplicarExamen() 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. 89 CalificarExamen() CompararConsultas() Evaluacion 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). 90 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. 91 !"#$ %&'(). Pruebas de la Herramienta En este capítulo se describirán el objetivo y los alcances de las pruebas realizadas a la herramienta. 92 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. 93 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 94 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 Enseñanza de SQL Introducción 1 Tema Diapositivas Ejercicios 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 95 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 96 Curso Capítulo Tema Diapositivas cap1-9.swf Ejercicios 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 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 97 Ejercicios Curso Capitulo Tema Diapositivas Manejo de eventos sencillos e interactividad El Java Abstract Windowing Toolkit Ventanas HTML El JDBC con mSQL Miscelánea de clases de Java Ejercicios Tabla 5.3. Estructura del curso Manual de HTML. Curso Capitulo Tema Diapositivas 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 98 Ejercicios Curso Capitulo Tema Diapositivas Frames Scripts Trucos para tu página Web Gifs animados Gifs transparentes Programas JavaScript Ejercicios 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. 99 Capítulo 1. Introducción Átomo 1. Introducción Capítulo 2. Creación de Tablas Base Á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. 100 Preguntas Teóricas y Prácticas 1. Instruccion para Consultar Datos 4. Instruccion para Unir Tablas a) select CORRECTA a) b) selecionar INCORRECTA c) selección INCORRECTA 2. Instruccion para Modificar Datos 5. unir INCORRECTA b) juntar INCORRECTA c) union INCORRECTA d) join CORRECTA Instruccion para Crear Tablas a) modificar INCORRECTA b) update CORRECTA a) crear tabla INCORRECTA c) modify INCORRECTA b) create INCORRECTA d) actualizar INCORRECTA c) tabla creada INCORRECTA d) creation table INCORRECTA e) create table 3. Instruccion para Eliminar Datos a) Remove INCORRECTA CORRECTA b) Borrar INCORRECTA c) delete CORRECTA d) Erase INCORRECTA Seleccionar Datos de los Alumnos e) Clear INCORRECTA a) 6. 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. 101 Asociación de Átomos y Preguntas Átomo 1 Pregunta 1 Átomo 2 Pregunta 2 Átomo 3 Pregunta 3 Átomo 4 Pregunta 4 Átomo 5 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. 102 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 1 Pruebas al Módulo Interfaz del Alumno 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. 103 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. 104 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. 105 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. 106 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. 107 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. 108 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. 109 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. 110 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). 111 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. 112 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. 113 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. 114 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. 115 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. 116 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. 117 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. 118 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. 119 !"#$ %&'()/) Conclusiones 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. 120 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. 121 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 122 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. 123 0123()* Manual de Usuario 124 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. 125 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. 126 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. 127 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. 128 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. 129 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. 130 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]. 131 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. 132 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. 133 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. 134 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. 135 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. 136 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. 137 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. 138 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. 139 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. 140 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. 141 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. 142 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. 143 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 144 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. 145 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. 146 A1.1.2.4.1. Establecer relaciones Átomos de Información de precedencia por 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 147 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 148 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). 149 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 150 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 151 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... 152 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. 153 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). 154 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. 155 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). 156 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. 157 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. 158 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. 159 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. 160 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. 161 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. 162 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. 163 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. 164 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. 165 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. 166 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). 167 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. 168 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. 169 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. 170 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. 171 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. 172 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 173 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 174 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... 175 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. 176 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. 177 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. 178 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. 179 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. 180 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. 181 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. 182 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. 183 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. 184 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. 185 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. 186 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 187 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. 188 0123()+ Diseño de la Base de 189 Datos 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). Alumnos Cursos NumeroControl NombreAlumno Alias Contraseña integer char(50) char(50) char(50) 1 1 n 1 AlumnosCurso NumeroControl ClaveCurso integer integer n integer char(50) char(50) char(50) ClaveCurso NombreCurso Autor ClaveAcceso 1 n PreRequisitosCapitulos n integer ClaveCurso ClaveCapituloInicial integer ClaveCapituloFinal integer AvancesAlumnos integer integer integer integer integer integer FechaUltimoRepaso char(50) CalificacionAtomo integer NumeroControl ClaveCurso ClaveCapitulo ClaveAtomo NumeroRepasos TotalRepasos Planestudioscapitulos Capitulos n 1 ClaveCurso ClaveCapitulo NombreCapitulo integer integer char(50) 1 1 ClaveCurso ClaveCapitulo Distancia ClaveCapituloPredecesor integer integer integer integer 1 n n Atomos PreRequisitosAtomos integer ClaveCurso ClaveCapituloInicial integer ClaveAtomoInicial integer ClaveCapituloFinal integer ClaveAtomoFinal integer Negritas - Llave Primaria Cursivas – Llaves Foráneas n 1 1 ClaveCurso ClaveCapitulo ClaveAtomo NombreAtomo TipoConocimiento GradoDificultad TipoAtomo integer integer integer char(50) char(50) integer integer Planestudiosatomos 1 1 ClaveCurso ClaveCapitulo ClaveAtomo Distancia ClaveCapituloPredecesor ClaveAtomoPredecesor integer integer integer integer integer integer 1 1 n n PreguntasAtomos n PreguntasPracticas ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Consulta integer integer integer integer char(50) char(50) ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta ClaveCapitulo1 ClaveAtomo1 ClaveCapitulo2 ClaveAtomo2 ClaveCapitulo3 ClaveAtomo3 ClaveCapitulo4 ClaveAtomo4 ClaveCapitulo5 ClaveAtomo5 integer integer integer integer integer integer integer integer integer integer integer integer integer integer n PreguntasTeoricas ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Respuesta1 Respuesta2 Respuesta3 Respuesta4 Respuesta5 VerdaderoFalso1 VerdaderoFalso2 VerdaderoFalso3 VerdaderoFalso4 VerdaderoFalso5 integer integer integer integer char(255) char(255) char(255) char(255) char(255) char(255) char(50) char(50) char(50) char(50) char(50) Figura A2.1. Diseño de la base de datos. 190 Diapositivas ClaveCurso ClaveCapitulo ClaveAtomo ClaveDiapositiva Direccion Consulta integer integer integer integer char(50) char(254) 0123(), Diccionario de Datos 191 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 NumeroControl NombreAlumno Alias Contrasena Tipo de dato char char char char Longitud 25 100 50 50 Propiedades not null Llaves primary key Columnas NumeroControl Referencia Tablas Nombre de columna ClaveCurso NombreCurso Autor ClaveAcceso Tipo de dato integer char char char Longitud Dirección Llaves primary key char Columnas ClaveCurso 50 Referencia Tipo de dato char integer Columnas NumeroControl, ClaveCurso NumeroControl ClaveCurso Longitud 25 Descripción Clave del alumno Nombre del alumno Cuenta Clave de acceso al sistema Llave primaria Tabla Cursos Propiedades not null 100 100 10 Descripción Clave del curso Nombre del curso Autor del curso Clave de acceso para modificación del curso Ruta de los archivos Tablas Llave primaria Tabla AlumnosCurso Nombre de columna NumeroControl ClaveCurso Llaves primary key foreign key foreign key Referencia Propiedades not null not null Columnas Descripción Clave del alumno Clave del curso Llave primaria Alumnos Cursos NumeroControl Llave foránea ClaveCurso Llave foránea Longitud Propiedades not null not null Tabla Capitulos Nombre de columna ClaveCurso ClaveCapitulo NombreCapitulo Llaves primary key foreign key Tipo de dato integer integer char Columnas ClaveCurso, ClaveCapitulo ClaveCurso 100 Referencia Descripción Clave del curso Clave del capítulo Nombre del capítulo Columnas Llave primaria Cursos 192 ClaveCurso Llave foránea Tabla Atomos Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo NombreAtomo TipoConocimiento GradoDificultad TipoAtomo Llaves primary key foreign key Tipo de dato integer integer integer char char integer integer Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo ClaveCurso, ClaveCapitulo Longitud Propiedades not null not null not null 100 50 Referencia Descripción Clave del curso Clave del capítulo Clave del átomo Nombre del átomo Tipo de conocimiento Grado de dificultad Tio de átomo Columnas Llave primaria Capitulos ClaveCurso, ClaveCapitulo Llave foránea Longitud 25 Propiedades not null not null not null not null Descripción Clave del aumno Clave del curso Clave del capítulo Clave del átomo Numero de repasos totales del átomo Numero de repasos desde la última sesión Fecha del repaso más reciente Calificación del alumno en el átomo Tabla AvancesAlumnos Nombre de columna NumeroControl ClaveCurso ClaveCapitulo ClaveAtomo TotalRepasos Tipo de dato char integer integer integer integer NumeroRepasos integer FechaUltimoRepaso char CalificacionAtomo integer Llaves primary key Columnas NumeroControl, ClaveCurso, ClaveCapitulo, ClaveAtomo NumeroControl ClaveCurso, ClaveCapitulo, ClaveAtomo foreign key foreign key 50 Referencia Columnas Llave primaria Alumnos Atomos NumeroControl Llave foránea ClaveCurso, Llave foránea ClaveCapitulo, ClaveAtomo Propiedades not null not null not null not null Tabla Diapositivas Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo ClaveDiapositiva Tipo de dato integer integer integer integer Longitud Dirección char 100 193 Descripción Clave del curso Clave del capítulo Clave del átomo Clave de la diapositiva Ruta donde se ubica el archivo de datos Secuencia integer Consulta char Llaves primary key Columnas Referencia ClaveCurso, ClaveCapitulo, ClaveAtomo, ClaveDiapositiva ClaveCurso, Atomos ClaveCapitulo, ClaveAtomo foreign key Orden de aparición de la diapositiva Instrucción SQL de ejemplo 255 Columnas Llave primaria ClaveCurso, ClaveCapitulo, ClaveAtomo Llave foránea Longitud Propiedades not null not null not null not null Descripción Clave del curso Clave del capítulo Clave del átomo Clave de la pregunta Clave del primer capítulo Clave del primer átomo asociado a la pregunta Clave del segundo capítulo Clave del segundo átomo asociado a la pregunta Clave del tercer capítulo Clave del tercer átomo asociado a la pregunta Clave del cuarto capítulo Clave del cuarto átomo asociado a la pregunta Clave del quinto capítulo Clave del quinto átomo asociado a la pregunta Referencia Columnas Tabla PreguntasAtomos Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta ClaveCapitulo1 Tipo de dato integer integer integer integer integer ClaveAtomo1 integer ClaveCapitulo2 integer ClaveAtomo2 integer ClaveCapitulo3 integer ClaveAtomo3 integer ClaveCapitulo4 integer ClaveAtomo4 integer ClaveCapitulo5 integer ClaveAtomo5 integer Llaves primary key Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo, ClavePregunta Llave primaria 194 foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo Llave foránea Longitud Propiedades not null not null not null not null Descripción Clave del curso Clave del capítulo Clave del átomo Clave de la pregunta Texto de la pregunta Instrucción SQL como respuesta Tabla PreguntasPracticas Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Consulta Tipo de dato Integer Integer Integer Integer Char Char Llaves primary key Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo, ClavePregunta ClaveCurso, ClaveCapitulo, ClaveAtomo foreign key 255 255 Referencia Columnas Llave primaria Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo Llave foránea Longitud Propiedades not null not null not null not null Descripción Clave del curso Clave del capítulo Clave del átomo Clave de la pregunta Pregunta Primera respuesta Segunda respuesta Tercera respuesta Cuarta respuesta Quinta respuesta La primera respuesta es falsa o verdadera La segunda respuesta es falsa o verdadera La tercera respuesta es falsa o verdadera La cuarta respuesta es falsa o verdadera La quinta respuesta es falsa o verdadera Tabla PreguntasTeoricas Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo ClavePregunta Pregunta Respuesta1 Respuesta2 Respuesta3 Respuesta4 Respuesta5 VerdaderoFalso1 Tipo de dato integer integer integer integer char char char char char char char 255 255 255 255 255 255 50 VerdaderoFalso2 char 50 VerdaderoFalso3 char 50 VerdaderoFalso4 char 50 VerdaderoFalso5 char 50 Llaves primary key Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo, ClavePregunta Referencia Columnas Llave primaria 195 foreign key ClaveCurso, ClaveCapitulo, ClaveAtomo Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo Llave foránea Longitud Propiedades not null not null Descripción Clave del curso Clave del capítulo Numero de nodos entre el capítulo actual y el capítulo inicial Clave del capítulo predecesor del capítulo actual Referencia Columnas Tabla PlanEstudiosCapitulos Nombre de columna ClaveCurso ClaveCapitulo Distancia Tipo de dato integer integer integer ClaveCapituloPredeceso integer r Llaves primary key foreign key Columnas ClaveCurso, ClaveCapitulo ClaveCurso, ClaveCapitulo Llave primaria Capitulos ClaveCurso, ClaveCapitulo Llave foránea Longitud Propiedades not null not null not null Descripción Clave del curso Clave del capítulo Clave del átomo Numero de nodos entre el átomo actual y el átomo inicial Clave del capítulo predecesor Clave del átomo predecesor del átomo actual Referencia Columnas Tabla PlanEstudiosAtomos Nombre de columna ClaveCurso ClaveCapitulo ClaveAtomo Distancia Tipo de dato integer integer integer integer ClaveCapituloPredeceso integer r ClaveAtomoPredecesor integer Llaves primary key foreign key Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo ClaveCurso, ClaveCapitulo, ClaveAtomo Llave primaria Atomos ClaveCurso, ClaveCapitulo, ClaveAtomo Llave foránea Longitud Propiedades Descripción Clave del curso Clave del capítulo incial de una arista del grafo instruccional Tabla PreRequisitosCapitulos Nombre de columna ClaveCurso ClaveCapituloInicial Tipo de dato integer integer 196 ClaveCapituloFinal integer Clave del capítulo final de una arista del grafo instruccional Llaves foreign key Columnas Referencia ClaveCurso, Capitulos ClaveCapituloIni cial Columnas ClaveCurso, ClaveCapitulo Llave foránea Tabla PreRequisitosAtomos Nombre de columna ClaveCurso ClaveCapituloInicial Tipo de dato integer integer Longitud ClaveAtomoInicial integer ClaveCapituloFinal integer ClaveAtomoFinal integer Llaves foreign key Columnas Referencia ClaveCurso, Atomos ClaveCapituloIni cial, ClaveAtomoInici al 197 Propiedades Columnas ClaveCurso, ClaveCapitulo, ClaveAtomo Descripción Clave del curso Clave del capítulo incial Clave del átomo incial de una arista del grafo instruccional Clave del capítulo final Clave del átomo final de una arista del grafo instruccional Llave foránea 0123()Material del Curso Enseñanza 198 de SQL 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 199 Figura A4.2. Otras investigaciones Figura A4.3. Antecedentes 200 Figura A4.4. Estandarización SQL Figura A4.5. Propósito del curso 201 Figura A4.6. Definición de bases de datos Figura A4.7. Ejemplo 202 Figura A4.8. Tabla A Figura A4.9. Tabla M 203 Figura A4.10. Tabla C Figura A4.11. Relaciones 204 Figura A4.12. Definición de sistema administrador de base de datos 205 0123(). Contenido de los Archivos 206 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); 207 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); 208 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'); 209 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'); 210 425262178"9 211 [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 ActorBased 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. 212 [HREF1, 1995] “Interactive Courseware”, 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/proye ctos/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. Barcelona, http://www.doe.d5.ub.es/te/any96/marques_software. España, 1996. pmarques@pie.xtec.es. [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. 213 http://www.sc.istucf.edu/ - [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. 214