descargar 1.78 Mb.
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() TUTOR EN AMBIENTE WEB PARA EL ACOMPAÑAMIENTO EN EL ÁREA BÁSICA DE COMPUTADORES. MICHAEL JONATHAN ROJAS BEJARANO COD: 10490527343 MIGUEL ÁNGEL VARGAS CABEZAS COD: 10490529737 /UNIVERSIDAD ANTONIO NARIÑO FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS CON ÉNFASIS EN SOFTWARE BOGOTÁ D.C. 2011 TUTOR EN AMBIENTE WEB PARA EL ACOMPAÑAMIENTO EN EL ÁREA BÁSICA DE COMPUTADORES. MICHAEL JONATHAN ROJAS BEJARANO COD: 10490527343 MIGUEL ÁNGEL VARGAS CABEZAS COD: 10490529737 PROYECTO PARA OPTAR POR EL TÍTULO DE INGENIERO DE SISTEMAS DIRECTOR INGENIERIL MARÍA ISABEL DAVID ASESORA METODOLÓGICA ROSALBA CRUZ C. Especialista en pedagogía UNIVERSIDAD ANTONIO NARIÑO FACULTAD DE INGENIERÍA DE SISTEMAS INGENIERÍA DE SISTEMAS CON ÉNFASIS EN SOFTWARE BOGOTÁ D.C. 2011 Nota de aceptación: ____________________ ____________________ ____________________ ____________________ _______________________ Presidente del jurado _______________________ Jurado _______________________ Jurado _______________________ Jurado Bogotá, 3 de Noviembre de 2011 TABLA DE CONTENIDO RESUMEN 13 INTRODUCCIÓN 14
ANEXOS 209 LISTA DE TABLAS Tabla 1. Jueces Encargados de la validación de fondo 29 Tabla 2. Jueces Encargados de la validación de fondo 29 Tabla 3. Caso de uso Registrar Usuario 88 Tabla 4. Caso de uso Validar Usuario 89 Tabla 5. Caso de uso Recordar Contraseña 91 Tabla 6. Caso de uso Seleccionar opción. 92 Tabla 7. Caso de uso Explicar Temática. 94 Tabla 8. Caso de uso Practicar 95 Tabla 9. Caso de uso Presentar Evaluación 97 Tabla 10. Caso de uso Compilar 99 Tabla 11. Caso de uso Ver resultados 101 Tabla 12. Caso de uso Ver sugerencias 103 Tabla 13. Caso de uso Consultar Históricos 104 Tabla 14. Caso de uso Salir 106 Tabla 15. Caso de uso Editar Perfil 107 Tabla 16. Caso de uso Cambiar contraseña 108 Tabla 17. Caso de uso Administrar explicación por tema 109 Tabla 18. Caso de uso Consultar Preguntas 110 Tabla 19. Caso de uso Modificar Preguntas 113 Tabla 20. Caso de uso Borrar Preguntas 114 Tabla 21. Caso de uso Ingresar Preguntas 115 Tabla 22. Caso de uso Ingresar Sugerencias 117 Tabla 23. Caso de uso Editar sugerencias 119 Tabla 24. Caso de uso Consultar o eliminar sugerencias 121 Tabla 25. Resultado prueba en exploradores 171 Tabla 26. Fases del compilador sintáctico 172 Tabla 27. Elementos reconocibles por el lenguaje pero que no son tokens 173 Tabla 28. Palabras reservadas 173 Tabla 29. Otros tokens 174 Tabla 30. Expresiones regulares palabras reservadas 175 Tabla 31. Otras expresiones regulares 176 LISTA DE FIGURAS Figura1. Funcionamiento de la directiva de preprocesamiento 45 Figura 2. Esquema por etapas de un traductor 46 Figura 3. Proceso de compilación. 55 Figura 4. Organigrama de la Universidad Antonio Nariño 65 Figura 5. Organigrama facultad de sistemas 66 Figura 6. Modelado de Negocio 67 Figura 7. Modelo del casos de uso del negocio del Estudiante. 68 Figura 8. Modelo del casos de uso del negocio del Administrador. 69 Figura 9. Modelo Dominio del Negocio 70 Figura 10. Modelo de Objetos Registrar Usuario 70 Figura 11. Modelo de Objetos Validar Usuario 71 Figura 12. Modelo de Objetos Recordar contraseña 71 Figura 13. Modelo de Objetos Seleccionar Opción 72 Figura 14. Modelo de Objetos Explicar temática 72 Figura 15. Modelo de Objetos Practicar 72 Figura 16. Modelo de Objetos Presentar evaluación 73 Figura 17. Modelo de Objetos Compilar 73 Figura 18. Modelo de Objetos Ver Resultados 73 Figura 19. Modelo de Objetos Ver Sugerencias 74 Figura 20. Modelo de Objetos Consultar Históricos 74 Figura 21. Modelo de Objetos Salir 75 Figura 22. Modelo de Objetos Editar perfil 75 Figura 23. Modelo de Objetos Cambiar contraseña 76 Figura 24. Modelo de Objetos Administrar Explicaciones por temática 76 Figura 25. Modelo de Objetos Consultar Preguntas 76 Figura 26. Modelo de Objetos Ingresar Preguntas 77 Figura 27. Modelo de Objetos Borrar Preguntas 77 Figura 28. Modelo de Objetos Modificar Preguntas 77 Figura 29. Modelo de Objetos Ingresar Sugerencias 77 Figura 30. Modelo de Objetos Editar sugerencias 78 Figura 31. Modelo de Objetos Consultar y/o Eliminar Sugerencias 78 Figura 32. Caso de uso Registrar Usuario 88 Figura 33. Caso de uso Validar Usuario 89 Figura 34. Caso de uso Recordar Contraseña 90 Figura 35. Caso de uso Seleccionar opción. 92 Figura 36. Caso de uso Explicar Temática 94 Figura 37. Caso de uso Practicar 95 Figura 38. Caso de uso Presentar Evaluación 97 Figura 39. Caso de uso Compilar 99 Figura 40. Caso de uso Ver resultados 101 Figura 41. Caso de uso Ver sugerencias 103 Figura 42. Caso de uso Consultar Históricos 104 Figura 43. Caso de uso Salir 106 Figura 44. Caso de uso Editar Perfil 107 Figura 45. Caso de uso Cambiar contraseña 108 Figura 46. Caso de uso Administrar explicación por tema 110 Figura 47. Caso de uso Consultar Preguntas. 111 Figura 48. Caso de uso Modificar Preguntas 112 Figura 49. Caso de uso Borrar Preguntas 114 Figura 50. Caso de uso Ingresar Preguntas 115 Figura 51. Caso de uso Ingresar Sugerencias 117 Figura 52. Caso de uso Editar sugerencias 119 Figura 53. Caso de uso Consultar o eliminar sugerencias 121 Figura 54. Diag. De casos de uso 123 Figura 55. Diag. De secuencia Caso de Uso Registrar usuario. 124 Figura 56. Diag. De secuencia Caso de Uso Validar usuario 124 Figura 57. Diag. De secuencia Caso de Uso Recordar Contraseña 125 Figura 58. Diag. De secuencia Caso de Uso Seleccionar Opción 125 Figura 59. Diag. De secuencia Caso de Uso Explicar Temática 126 Figura 60. Diag. De secuencia Caso de Uso Practicar 127 Figura 61. Diag. De secuencia Caso de Uso Presentar Evaluación 128 Figura 62. Diag. De secuencia Caso de Uso Compilar 128 Figura 63. Diag. De secuencia Caso de Uso Ver Resultados 129 Figura 64. Diag. De secuencia Caso de Uso Ver Sugerencias 129 Figura 65. Diag. De secuencia Caso de Uso Consultar Históricos 130 Figura 66. Diag. De secuencia Caso de Uso Salir 130 Figura 67. Diag. De secuencia Caso de Uso Editar Perfil 131 Figura 68. Diag. De secuencia Caso de Uso Cambiar Contraseña 131 Figura 69. Diag. De secuencia Caso de Uso Administrar explicación por tema 133 Figura 70. Diag. De secuencia Caso de Uso Consultar Preguntas 133 Figura 71. Diag. De secuencia Caso de Uso Modificar Preguntas 134 Figura 72. Diag. De secuencia Caso de Uso Borrar Preguntas 135 Figura 73. Diag. De secuencia Caso de Uso Ingresar Preguntas 135 Figura 74. Diag. De secuencia Caso de Uso Ingresar Sugerencias 136 Figura 75. Diag. De secuencia Caso de Uso Editar sugerencias 137 Figura 76. Diag. De secuencia Caso de Uso Consultar o Eliminar Sugerencias 138 Figura 77. Diag. De actividades del Casos de uso registrar usuario 139 Figura 78. Diag. De actividades del Casos de uso validar usuario 140 Figura 79. Diag. De actividades del Casos de uso Recordar contraseña 141 Figura 80. Diag. De actividades del Casos de uso Seleccionar opción 142 Figura 81. Diag. De actividades del Casos de uso Explicar temática 143 Figura 82. Diag. De actividades del Casos de uso Practicar 144 Figura 83. Diag. De actividades del Casos de uso Presentar evaluación 145 Figura 84. Diag. De actividades del Casos de uso Compilar 146 Figura 85. Diag. De actividades del Casos de uso Ver resultados 147 Figura 86. Diag. De actividades del Casos de uso Ver sugerencias 148 Figura 87. Diag. De actividades del Casos de uso Consultar históricos 149 Figura 88. Diag. De actividades del Casos de uso Salir 150 Figura 89. Diag. De actividades del Casos de uso Editar perfil 151 Figura 90. Diag. De actividades del Casos de uso Cambiar contraseña 152 Figura 91. Diag. De actividades del Casos de uso Administrar explicación por tema 153 Figura 92. Diag. De actividades del Casos de uso Consultar preguntas 154 Figura 93. Diag. De actividades del Casos de uso Modificar preguntas 155 Figura 94. Diag. De actividades del Casos de uso Borrar preguntas 156 Figura 95. Diag. De actividades del Casos de uso Ingresar preguntas 157 Figura 96. Diag. De actividades del Casos de uso Ingresar sugerencias 158 Figura 97. Diag. De actividades del Casos de uso Editar sugerencias 159 Figura 98. Diag. De actividades del Casos de uso Consultar o eliminar Sugerencias 160 Figura 99. Diag. De clases 161 Figura 100. Diag. De objetos 162 Figura 101. Diag. De despliegue 163 Figura 102. Diag. De componentes 165 Figura 103. Diag. Entidad Relación 168 Figura 104. Fases del compilador sintáctico 172 Figura 105. Aut. Finíto para los identificadores del compilador sintáctico 176 Figura 106. Aut. Finíto para los numeros enteros del compilador sintáctico 177 Figura 107. Aut. Finíto para los numeros reales del compilador sintáctico 177 Figura 108. Aut. Finíto para los op. De comparacion del compilador sintáctico 178 Figura 109. Aut. Finíto para los op.de asociacion del compilador sintáctico 178 Figura 110. Aut. Finíto para los op.aritmeticos y de asignacion del compilador sintáctico 179 Figura 111. Aut. De las P. reservadas que empiezan con las letras a y b 180 Figura 112. Aut. De las P. reservadas que empiezan con la letra c. 181 Figura 113. Aut. De las P. reservadas que empiezan con la letra d. 182 Figura 114. Aut. De las P. reservadas que empiezan con la letra e. 183 Figura 115. Aut. De las P. reservadas que empiezan con las letras f y g. 184 Figura 116. Aut. De las P. reservadas que empiezan con las letras i y l. 185 Figura 117. Aut. De las P. reservadas que empiezan con la letra r. 186 Figura 118. Aut. De las P. reservadas que empiezan con la letra s. 187 Figura 119. Aut. De las P. reservadas que empiezan con las letras t y u. 188 Figura 120. Aut. De las P. reservadas que empiezan con las letras v y w. 189 Figura 121. Continuación del autómata con las letras restantes. 189 Figura 122. Comparación gramática y notación generada por Yacc 192 LISTA DE ANEXOS Anexo A Solicitud para la validación del software dirigida a los expertos. 210 Anexo B PRE- TEST POST-TEST 215 Anexo C Solicitud para la validación del software dirigida a los expertos 217 Anexo D Instructivo de Validación para expertos ingenieros 221 Anexo E Preguntas orientadas a reforzar la competencia propositiva. 224 Anexo F Aplicación de instrumentos de validación 227 Anexo G Manual técnico 254 Anexo H Manual de usuario 295 RESUMEN El desarrollo del presente proyecto consiste en el diseño e implementación de una herramienta web, que preste la labor de tutor a través de un ambiente virtual en el área de la programación de computadores en el lenguaje C. Esta idea se soporta en líneas de investigación de ingeniería de software, información educativa y software libre. El sistema tutor en ambiente web es un software adaptativo orientado hacia el estudiante de programación de computadores. Esta herramienta describe una arquitectura que sigue las características del modelo pedagógico de aprendizaje por competencias y algunos de los estilos de aprendizaje propuestos por autores como Ausubel, Piaget y Margarita A. de Sánchez. Para su creación, se tomó como punto de partida el paradigma de la programación orientada a objetos (POO) y la web 2.0, Así como herramientas de última generación como HTML5 y Ajax las cuales facilitan el proceso de desarrollo. El desarrollo de esta herramienta web se realiza con el fin de brindar asesoría las 24 horas del día, los siete días de la semana a los estudiantes que están aprendiendo programación de computadores en el lenguaje C. Dicha herramienta asesora y acompaña al estudiante durante el proceso de aprendizaje de la algoritmia, para esto cuenta con características como las de presentarle explicaciones sobre los temas de la asignatura programación de computadores, evaluaciones que permiten encontrar sus fortalezas y debilidades en la asignatura. El objetivo del sistema tutor es llevar al estudiante a través de un aprendizaje incremental por medio de niveles y temáticas que le permitan apropiarse de los conocimientos básicos en la signatura. INTRODUCCIÓN Con la creación de la computadora personal apoyada por la red mundial de información, se espera que las herramientas informáticas de hoy en día como plataformas e-learning, OVAs (Objetos virtuales de aprendizaje) y sistemas tutores ayuden efectiva y eficientemente en los procesos de aprendizaje y enseñanza, puesto que son actividades fundamentales para el desarrollo de una sociedad. En la actualidad las tecnologías de información y herramientas informáticas tienen una participación fundamental y ésta crece cada día más, un ejemplo de ello es la demanda de educación virtual, que tiene como base el aprendizaje autónomo del estudiante y un dispositivo físico que permita la interacción con el individuo. Las herramientas informáticas con el apoyo de las ciencias básicas como la matemática, la filosofía y el lenguaje han desarrollado métodos y modelos que permiten la incursión de nuevos trabajos en los que se tenían en cuenta la formulación de prototipos que cumplieran metas y objetivos, que tuvieran cierto nivel de aprendizaje y conocimiento, entre otras cualidades; dichos prototipos se han convertido en excelentes soluciones para problemas con altos grados de complejidad. En este proyecto se usarán herramientas Web (navegadores), compiladores, programación orientada a objetos junto con teorías de aprendizaje que permitan a la persona que desee aprender la sintaxis correcta del lenguaje de programación C, contar con un tutor que al ser online cuenta con total disponibilidad, le indique errores sintácticos que está cometiendo, qué debilidades tiene y además le ofrezca alternativas y medios que le permitan mejorar dichas debilidades. Con la finalidad que el estudiante por medio de un proceso de aprendizaje autónomo emplee las herramientas y medios para superar las fallas que tenga. De esta manera el estudiante podrá usar nuevamente el tutor para que sea éste quien le indique mediante evaluaciones si ha mejorado sus debilidades y le presente nuevos problemas o situaciones que permitan reforzar la competencia propositiva del estudiante. El tutor analiza los problemas que tiene el estudiante, identifica sus fortalezas y con base en ellas realizar un proceso de tutoría virtual muy similar a la que podría realizar un Tutor humano.
Durante el proceso de aprendizaje de las materias orientadas a la programación de computadores son visibles los inconvenientes presentes para adquirir las destrezas que en esta área se requiere. Para la gran mayoría de estudiantes resolver exitosamente un problema planteado radica en la forma de expresar dicha solución en un lenguaje que la máquina pueda entender, ó que esta alternativa contenga una estructura acorde a la lógica computacional. El estudiante puede tener clara la manera de resolver una situación conflicto, pero plasmar correctamente la solución de forma que se pueda aplicar al problema para dar como resultado el programa solicitado, es el agujero negro en el proceso. Sin importar qué lenguaje de programación se utilice, así éste sea: comprensible, de una gramática clara y flexible; tengan sus propios compiladores (con resultados más específicos), el problema continúa, estas ayudas no apoyan el proceso de aprendizaje, por el contrario lo obstaculizan; la gran mayoría están enfocadas a personas con alguna experticia en programación de computadores. El aprendizaje de la lógica de programación está acompañado de temáticas enfocadas a adquirir un pensamiento lógico, estructurado y ordenado, para con ello poder expresar la solución a los problemas planteados de forma adecuada. Pero cuando la interfaz para expresar dicha solución no es lo suficientemente amigable, por lo general el estudiante genera un sentimiento de apatía por la impotencia que siente al no identificar claramente las causas de los problemas presentes en la compilación o ejecución del programa que realiza; generalmente las causas de estos errores son: de sintaxis, sentencias de programación, correcta escritura y estructura o sentencias reservadas del lenguaje, problemas que estarán presentes siempre en el desarrollo del software. Las herramientas en las que el estudiante desarrolla los programas de programación no permiten, ni brindan ayudas académicas que enfoque al aprendiz a superar los inconvenientes presentados. Por lo general es necesario el acompañamiento de un profesor tutor que guie y le indique al estudiante que debe reforzar y practicar para que los problemas de programación que se le han presentado sean superados. Esta práctica aleja al estudiante de metodologías autónomas de aprendizaje, puesto que las herramientas de desarrollo usadas para realizar programas de computadores se limitan a expresar que errores sintácticos ha encontrado la maquina al realizar la compilación; pero no invita o sugiere al estudiante, reforzar algún tema de programación en específico que le permita realizar un proceso de aprendizaje en la programación de computadores al estudiante. Este tipo de inconvenientes son frecuentes, puesto que las herramientas de compilación empleadas por el estudiante, tienen un enfoque técnico, es decir no permiten un ambiente pedagógico de aprendizaje. Los estudiantes de la Universidad Antonio Nariño cuando superan la asignatura de lógica computacional continúan con la siguiente asignatura donde aprenderán programación bajo el lenguaje C. Al realizar la programación en C y compilar el código fuente, los estudiantes ven de forma explícita los problemas de sintaxis que poseen. Este cambio de metodología que representa programar a través de la máquina, en ocasiones llega a ser muy complicada para algunos de los aprendices, debido a las reglas semánticas y sintácticas que el lenguaje de programación tiene. La transición a este nuevo lenguaje de programación en C, requiere aprender las estructuras sintácticas del mismo; con esto, el proceso se convierte en una “traducción”, de las estructuras o sentencias aprendidas en el semestre anterior para el desarrollo de pseudocódigo a la estructura establecida por el lenguaje C, pero en este proceso también se identifican problemas en los estudiantes, si ellos no tienen una base sólida en la construcción de programas en pseudocódigo esta transición se convierte en un abismo muy grande de superar. Es por esta sucesión de inconvenientes que para los estudiantes de la asignatura Programación de computadores las herramientas de desarrollo les presentan inconvenientes que ahora deben superar, esto hace que algunos estudiantes generen apatía a la asignatura y la vean como una materia poco práctica y sin enfoque; ya sea porque ellos no cursan carreras orientadas a los Sistemas y/o Telecomunicaciones o porque desisten ante las complejas y poco pedagógicas herramientas de apoyo para la programación. La problemática anterior se sustenta a través de indagaciones informales y una encuesta realizada a los estudiantes de ingeniería de segundo semestre de la Universidad Antonio Nariño (ver anexo A), cuyos resultados evidencian que existen dificultades en la materia PROGRAMACIÓN DE COMPUTADORES debido a que los horarios de clases, de trabajo etc. Se cruzan con los tiempos de atención establecidos por la universidad para las tutorías con los profesores, y por muestra que a los estudiantes les gusta la idea de contar con una herramienta que les facilite el proceso de aprendizaje como el tutor en ambiente web. Adicionalmente se toma como referencia el proyecto de investigación titulado |