SISTEMA AVANZADO DE APOYO PARA LA PREPARACIÓN DE EXÁMENES TEST (SAAPET)

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA PROYECTO FIN DE CARRERA SISTEMA AVANZADO DE A

4 downloads 72 Views 3MB Size

Recommend Stories


Sistema de CPAP nasal avanzado
Sistema de CPAP nasal avanzado www.hamilton-medical.com/arabella Terapia no invasiva, de bajo costo, eficaz y segura Terapia de CPAP neonatal nasal

Sistema Avanzado de Control de Accesos SACAP
Sistema Avanzado de Control de Accesos SACAP 1.0 18/10/2016 SISTEMA AVANZADO DE CONTROL DE ACCESOS PLATAFORMA SOFTWARE PARA CONTROL DE ACCESOS SAC

ANALIZADOR DE AGUA SISTEMA FOTOMETRICO AVANZADO MANUAL DE INSTRUCCIONES
con ANALIZADOR DE AGUA SISTEMA FOTOMETRICO AVANZADO MANUAL DE INSTRUCCIONES 2 CONTENIDO SUMARIO ................................................

Story Transcript

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA

PROYECTO FIN DE CARRERA

SISTEMA AVANZADO DE APOYO PARA LA PREPARACIÓN DE EXÁMENES TEST (SAAPET)

DIRECTOR: PROF. DR. D. CARLOS MATÉ JIMÉNEZ AUTOR: JOSE MARÍA LABERNIA SALVADOR MADRID, JUNIO DE 2005

RESUMEN Los exámenes test son famosos en el mundo entero. Pocos son los que nunca han realizado una de estas pruebas, y es indudable que en este nuevo siglo XXI, dichas pruebas crecerán vertiginosamente tanto en ámbitos académicos como en los empresariales, ya que son pruebas fácilmente corregibles y muy efectivas a la hora de dividir y etiquetar diferentes grupos de personas. ¿Pero saben los examinadores la dificultad o el tipo y número de preguntas que deben de establecer en un test para llegar a un justo nivel entre los aprobados o los suspensos? ¿Son justos dichos exámenes? ¿A partir de qué conocimiento se puede decir que el alumno aprobará con casi total seguridad el examen? ¿A partir de qué valores se dispara la probabilidad de pasar uno de estos test? El proyecto que se presenta consiste en un sistema de apoyo, tanto para los alumnos que quieran aumentar sus conocimientos en una materia determinada, como para los profesores, para cuando les llega la hora de preparar un examen de tipo test. El presente es un proyecto de los denominados end-to-end, ya que se han seguido todas las etapas implícitas en un proyecto informático: diseño, desarrollo, pruebas e implantación. Se diseñaron inicialmente los requisitos funcionales del módulo “offline” de la herramienta. Dicho módulo ofrece diferentes medidas (tales como notas esperadas, probabilidades, etc...) y gráficas sobre los exámenes de tipo test. Con los requisitos bien delimitados, el siguiente paso fue el de diseñar los algoritmos y plasmar en papel los cálculos que iban a ser necesarios para la obtención de dichas medidas que se querían obtener, y después de ahí se optó por desarrollar el módulo “offline” para poder obtener un resultado a priori del trabajo realizado. I

Verificado el módulo “offline”, era el momento de empezar a trabajar con el “online”. Dicho módulo sólo está disponible si al ejecutar la herramienta existe conexión de red con un servidor central que gestiona todas las preguntas de tipo test y los usuarios del sistema. Al igual que en el módulo “offline”, se especificaron los requisitos funcionales por parte del director del proyecto y se diseñó, a la vez que los algoritmos que se implantarían, todo el flujo de información que existiría en cada una de las opciones. Con el sistema desarrollado sólo faltaba introducir en el servidor las preguntas de tipo test deseadas y realizar las pruebas pertinentes sobre la aplicación. Al ser una herramienta que se iba a distribuir entre los alumnos de la Escuela, obligó a depurar al máximo todos los pequeños “bugs” y a perfeccionar el software. La manera de hacerlo fue la de pensar como lo harían los usuarios finales a los que iba dirigido el sistema, y tener bien claro qué es lo que necesitaban y qué podrían hacer en cada una de las ventanas del programa. La manera idónea de minimizar los problemas que pudieran acontecer es previendo las situaciones a las que se podían encontrar dichos usuarios. Estando ya seguros de que el sistema funcionaba correctamente, se implantó el servidor central de la aplicación en un departamento de la Universidad y se dio una charla voluntaria para los alumnos de la Escuela acerca de la herramienta, su funcionamiento, y de cómo sacarle el máximo provecho a la misma. Pasado un tiempo, los resultados fueron todo un éxito. El sistema cuenta con un formulario automatizado a modo de encuesta, en el que se registraron las peticiones de los usuarios y su evaluación del producto. La calidad fue uno de los parámetros medidos mediante una nota numérica en la escala del 0 al 10, y la más repetida fue la del 8 seguida del 9. Además entre otras cosas, todos los usuarios que respondieron a la encuesta reconocieron que el sistema era de gran ayuda II

para los alumnos y un 90% declaró que les gustaría utilizarlo en otras asignaturas. Como resultado de toda esta información se modificaron algunos detalles de la herramienta, haciendo caso a sus usuarios que son al fin y al cabo los que deben de opinar y pedir lo que necesitan. El grado de satisfacción de los usuarios va en relación a los buenos resultados que la herramienta acarrea. Se midió durante un mes el progreso del conocimiento de cada uno de los temarios de una asignatura de la Escuela con la herramienta desarrollada, observando una clara mejoría en el conocimiento medio de cada grupo. Además, el proyecto ha hecho posible la aceptación de una ponencia en las “III Jornadas de Redes de Investigación en Docencia Universitaria” del ICE, del Instituto de Ciencias de la Educación de la Universidad de Alicante, para dar a conocer el sistema desarrollado, y el escribir un artículo (pendiente de su publicación) de difusión sobre la herramienta en la publicación de julio-agosto de la revista Anales de Mecánica y Electricidad (revista de la Asociación de Ingenieros del ICAI). Este proyecto cuenta con una componente de realidad mayor que otros, por haber sido usado por los alumnos de la Escuela durante el presente curso. Ha sido muy bien acogido entre la comunidad universitaria, aunque es lo suficientemente flexible para adaptarse a otros entornos de trabajo, como pudieran ser la formación y búsqueda de empleados en el departamento de recursos humanos de una empresa, o como juego competitivo para una residencia, o en la universidad de mayores.

III

ABSTRACT Multiple-Choice (MC) tests are very famous around the world. Almost everybody has done one of this test and there is no doubt that in this new XXIst century those test will grow exponentially not only in academic grounds but also on big companies and organizations because they are easy to correct and very effective at the time of matching different groups of people. But do teachers know the level or the number of questions to fix in one of this tests to get a just balance between the passed students and the failed ones? Are MC tests just? From what level of knowledge can we assure that a student will pass a test? The master thesis that is been presented is a support system for both students that want to improve their knowledge in a course and teachers that need to prepare a MC test for their students. It is an end-to-end project, as it has been needed to follow all the steps recommended and inherit in a computer project: design, development, tests and installation. First of all, the functional requirements were fixed for the offline module. This module gives the user different measurements (as hoped marks, probabilities, etc...) and graphs about MC tests. Once the requirements were specified, the next step was to design the algorithms for this module and to write it down on paper. When this was done, the offline module was developed so that a first version of the tool could came out. Verified the offline module, the time to start with the online module had become. This module is only available if there is a net connection to a server when IV

launching the application. As with the offline module, the functional requirements were specified with the project’s director and all the algorithms and the flow of data was design for each option of the module. When the system was all developed, there was still one thing to do: to introduce MC questions in the server and make the testing for the application. As it was a tool that was going to be distributed among students at University, bugs had to be fixed with maximum detail. The way to do so was to think as if I, the programmer, was the user that was going to face the interfaces. Being sure that the system worked all together perfectly, the central server was installed at a University’s department and a brief class was given to some students so that they could get the maximum of the system. When the time passed by, the results were a complete success for the project. The system counts with a formulary that acts as a poll where users can also give suggestions for improvement. The questionnaire revealed that the quality of the system is high (8 and 9 grades were the most repeated over a 10 scale), and that all the students that answered recognised that the system is a great help at the time of preparing a test. The satisfaction degree of the users is directly matched with the good results that the tool hauls. The progress of knowledge in a group by using the software was measured day by day during a month and a great improvement has been observed. Besides, this master thesis has brought me the opportunity to give a speech in the “III Journeys of Investigation Networks in University Training” in ICE, Instituto de Ciencias de la Educación at Universidad de Alicante, and to write an article about the software for a scientific magazine: “Anales de Mecánica y Electricidad”. V

The master thesis presented counts with a component of reality missing in other thesis as it has been used by students at University in the present year. It has been very welcomed among the University Community although it is fully flexible so that it can be adapted to others frameworks as in the process of selection new employees in a company, as a competitive game in a old people residency or in other public institutions.

VI

INDICE

1

INTRODUCCIÓN Y PLANTEAMIENTO DEL PROYECTO ........................1

2

SOBRE LOS EXÁMENES DE TIPO TEST ................................................5

3

SOBRE LAS BASES DE DATOS ...........................................................22

4

PLANIFICACIÓN DEL PROYECTO ......................................................36

5

ENTORNOS DE PROGRAMACIÓN Y HERRAMIENTAS ELEGIDAS .......39

6

DESCRIPCIÓN DEL MODELO DESARROLLADO..................................44

7

CÁLCULOS Y ALGORITMOS UTILIZADOS ..........................................82

8

MANTENIMIENTO ...........................................................................107

9

RENDIMIENTO DE SAAPET .............................................................122

10 CONCLUSIONES ..............................................................................127 11 PRESUPUESTO ................................................................................132 12 BIBLIOGRAFÍA................................................................................133 13 APÉNDICES .....................................................................................140

VII

INDICE DETALLADO

1

INTRODUCCIÓN Y PLANTEAMIENTO DEL PROYECTO ........................1 1.1

2

ESTADO DEL ARTE ..................................................................................................................... 3

SOBRE LOS EXÁMENES DE TIPO TEST ................................................5 2.1

NUMERO DE RESPUESTAS........................................................................................................ 6

2.1.1

RECOMENDACIÓN Y PRÁCTICA HABITUAL: ............................................................................................ 7

2.1.2

NÚMERO DE RESPUESTAS Y DISCRIMINACIÓN EN EL CONJUNTO DE LA MUESTRA.................................. 7

2.1.3

NÚMERO DE RESPUESTAS Y FIABILIDAD DE TODO EL TEST ................................................................... 8

2.1.4

NÚMERO DE RESPUESTAS, EFICIENCIA DEL TEST Y CALIDAD DE LOS DISTRACTORES .......................... 10

2.1.5

NÚMERO DE RESPUESTAS Y DIFICULTAD EN REDACTAR BUENOS DISTRACTORES ................................ 11

2.1.6

NÚMERO DE RESPUESTAS Y HABILIDAD PARA RESPONDER CORRECTAMENTE SIN CONOCER LA

RESPUESTA CORRECTA ...................................................................................................................................... 11 2.1.7

2.2

RECOMENDACIONES SOBRE EL NÚMERO DE RESPUESTAS.................................................................... 12

PREGUNTAS DEL TIPO VERDADERO-FALSO ..................................................................... 13

2.2.1

LA DIFICULTAD DE LAS PREGUNTAS CON RESPUESTA VERDADERO-FALSO ........................................... 15

2.2.2

EL PODER DISCRIMINATORIO DE LAS PREGUNTAS VERDADERO-FALSO................................................ 15

2.2.3

LOS TESTS DEL TIPO VERDADERO-FALSO COMPARADOS CON LOS DE ELECCIÓN MÚLTIPLE ................. 16

2.2.4

CONVERSIÓN DE PREGUNTAS DE ELECCIÓN MÚLTIPLE EN PREGUNTAS VERDADERO-FALSO ................. 17

2.3

PREGUNTAS DE RESPUESTA ALTERNATIVA..................................................................... 18

2.4

CORRECCIÓN DE LAS PRUEBAS DE ELECCIÓN MÚLTIPLE: PROBLEMAS DEL

ADIVINAR Y DEL CONOCIMIENTO PARCIAL CUANDO HAY UNA SOLA RESPUESTA CORRECTA................................................................................................................................................ 19 2.4.1

3

LA FÓRMULA DE CORRECCIÓN POR ADIVINACIÓN ............................................................................... 21

SOBRE LAS BASES DE DATOS ...........................................................22 3.1

DEFINICIÓN DE BASES DE DATOS........................................................................................ 22

3.2

ORÍGENES Y ANTECEDENTES ............................................................................................... 22

3.3

VENTAJAS A LA HORA DE USAR UNA BASE DE DATOS. ................................................ 25

3.3.1 3.3.2

VENTAJAS POR LA INTEGRACIÓN DE DATOS........................................................................................ 25 VENTAJAS POR LA EXISTENCIA DEL SGBD ........................................................................................... 27

3.4

INCONVENIENTES A LA HORA DE USAR SISTEMAS DE BASES DE DATOS................ 29

3.5

EL SQL ......................................................................................................................................... 31

3.5.1

¿QUÉ ES EL SQL? ................................................................................................................................ 31

3.5.2

¿CÓMO SE USA EL SQL? ...................................................................................................................... 33

VIII

3.5.3

¿PARA QUÉ SIRVE EL SQL? .................................................................................................................. 34

4

PLANIFICACIÓN DEL PROYECTO ......................................................36

5

ENTORNOS DE PROGRAMACIÓN Y HERRAMIENTAS ELEGIDAS .......39

6

5.1

ENTORNOS DE PROGRAMACIÓN Y SGBD ELEGIDOS ...................................................... 39

5.2

INSTALACIÓN Y PUESTA A PUNTO DE LA PLATAFORMA.............................................. 42

5.3

HERRAMIENTAS PARA LA ELABORACIÓN DE LA MEMORIA........................................ 43

DESCRIPCIÓN DEL MODELO DESARROLLADO..................................44 6.1

VERSIÓN ALUMNO ................................................................................................................... 44

6.1.1

OPCIONES OFFLINE ............................................................................................................................ 45

6.1.1.1

Opción 1: Simular resultados en un examen de tipo test .............................................................. 45

6.1.1.1.1

Hallar la nota esperada en un test ......................................................................................... 45

6.1.1.1.2

Hallar la probabilidad de aprobar un examen de tipo test........................................................ 45

6.1.1.1.3

Gráfica interactiva para obtener una nota determinada con el número de preguntas fijas y según

varíe la probabilidad de acierto “p” en el test ............................................................................................. 46 6.1.1.1.4

Gráfica interactiva para obtener una nota determinada con la probabilidad de acertar las

preguntas “p” fija, y según varíe el número de preguntas del test: .............................................................. 46 6.1.1.2 6.1.2

Opción 2: Nota esperada en un test............................................................................................ 47

OPCIONES ONLINE.............................................................................................................................. 47

6.1.2.1

Opción 3: Gestión de usuarios .................................................................................................... 47

6.1.2.1.1

Alta de un nuevo usuario ...................................................................................................... 47

6.1.2.1.2

Baja de un usuario ............................................................................................................... 47

6.1.2.1.3

Modificación de un usuario.................................................................................................... 47

6.1.2.1.4

Consulta de los datos de usuario en un temario concreto ........................................................ 48

6.1.2.2

Opción 4: Responder preguntas y actualizar tu probabilidad “p” de acertar ................................... 48

6.1.2.3

Opción 5: Responder preguntas previamente falladas .................................................................. 49

6.1.2.4

Opción 6: Realizar estudios estadísticos y encuesta ..................................................................... 49

6.1.2.4.1

Resumen de un grupo .......................................................................................................... 49

6.1.2.4.2

Gráfica de la clase ................................................................................................................ 50

6.1.2.4.3

Cuartiles y percentiles........................................................................................................... 50

6.1.2.5

6.2

Encuesta ................................................................................................................................... 50

VERSIÓN PROFESOR ................................................................................................................ 51

6.2.1

OPCIONES OFFLINE ............................................................................................................................ 51

6.2.2

OPCIONES ONLINE.............................................................................................................................. 52

6.2.2.1

Opción 3: Introducir nuevas preguntas en el sistema................................................................... 52

6.2.2.2

Opción 4: Eliminar preguntas existentes en el sistema ................................................................. 52

IX

6.2.2.3

6.3

6.2.2.3.1

Preguntas falladas: ............................................................................................................... 53

6.2.2.3.2

Ver Encuestas: ..................................................................................................................... 53

DIAGRAMAS DE FLUJOS DEL SISTEMA............................................................................... 54

6.3.1

VERSIÓN ALUMNO .............................................................................................................................. 54

6.3.2

VERSIÓN PROFESOR ........................................................................................................................... 56

6.4

ENTRADAS Y SALIDAS DEL SISTEMA ................................................................................. 57

6.5

ARQUITECTURA DEL SISTEMA ............................................................................................. 62

6.5.1

ARQUITECTURA CLIENTE/SERVIDOR ................................................................................................... 62

6.5.2

TOPOLOGÍA DE LA RED ....................................................................................................................... 63

6.5.3

7

Opción 5: Realizar estudios estadísticos ...................................................................................... 52

ACCESO A DATOS; ACTIVEX DATA OBJECT (ADO) ................................................................................ 64

6.6

DESCRIPCIÓN DE LA BASE DE DATOS ................................................................................ 66

6.7

CONSULTAS LANZADAS DESDE EL SISTEMA ................................................................... 73

6.7.1

VERSIÓN ALUMNO .............................................................................................................................. 74

6.7.2

VERSIÓN PROFESOR: .......................................................................................................................... 79

CÁLCULOS Y ALGORITMOS UTILIZADOS ..........................................82 7.1

PARÁMETROS DE UN EXAMEN TIPO TEST......................................................................... 82

7.1.1

PROBABILIDAD DE SACAR UNA NOTA DETERMINADA EN UN EXAMEN: ................................................. 82

7.1.1.1

Sin descontar errores................................................................................................................. 82

7.1.1.2

Descontando errores.................................................................................................................. 84

7.1.2

NOTA ESPERADA EN UN TEST ............................................................................................................. 85

7.1.2.1

Descontando errores: ........................................................................................................... 86

7.1.2.1.2

Sin descontar errores:........................................................................................................... 87

7.1.2.2 7.1.2.2.1 7.1.2.2.2 7.1.2.3

7.2

Nota esperada con un único bloque de preguntas: ...................................................................... 85

7.1.2.1.1

Nota esperada con dos bloques de preguntas: ............................................................................ 87 Descontando errores: ........................................................................................................... 87 Sin descontar errores:........................................................................................................... 91 Nota Esperada con k bloques de preguntas:................................................................................ 92

7.1.2.3.1

Descontando errores: ........................................................................................................... 93

7.1.2.3.2

Sin descontar errores:........................................................................................................... 94

ALGORITMOS............................................................................................................................. 95

7.2.1

ALGORITMOS OFFLINE:....................................................................................................................... 95

7.2.1.1

7.2.2

GRÁFICAS DE LA PROBABILIDAD PARA OBTENER UNA NOTA ESPERADA ..................................... 95

7.2.1.1.1

Para un número fijo de preguntas ......................................................................................... 95

7.2.1.1.2

Para una probabilidad fija de acertar cada pregunta ............................................................... 97

7.2.1.1.3

Para calcular la nota esperada en un test............................................................................... 99

ALGORITMOS ONLINE ......................................................................................................................... 99 7.2.2.1.1

Para calcular la “p” de acierto, fallo y de no contestar ante las preguntas de tipo test............... 99

7.2.2.1.2

Para calcular los percentiles ................................................................................................ 100

7.2.2.1.3

Para realizar el gráfico de caja y patillas............................................................................... 102

X

8

9

MANTENIMIENTO ...........................................................................107 8.1

DIRECTRICES PARA LA CREACIÓN DE USUARIOS......................................................... 107

8.2

PASOS PARA INTRODUCIR UN NUEVO TEMARIO........................................................... 111

8.2.1

En el servidor SQL Server, en la base de datos:................................................................................... 111

8.2.2

En el programa: ................................................................................................................................ 114

8.2.2.1

En el interfaz del programa: ..................................................................................................... 114

8.2.2.2

En el código fuente del programa: ............................................................................................ 116

RENDIMIENTO DE SAAPET .............................................................122 9.1

USO, FLEXIBILIDAD Y UTILIDAD DE SAAPET ................................................................. 122

9.2

ENCUESTAS.............................................................................................................................. 123

10 CONCLUSIONES ..............................................................................127 10.1

CONCLUSIONES GENERALES .............................................................................................. 127

10.2

PROYECCIÓN DEL PROYECTO Y CONSIDERACIONES PARA FUTUROS ESTUDIOS 129

11 PRESUPUESTO ................................................................................132

12 BIBLIOGRAFÍA................................................................................133 12.1

CONCEPTOS ESTADÍSTICOS Y PREGUNTAS DE TIPO TEST ............................................................... 133

12.2

CONCEPTOS TÉCNICOS INFORMÁTICOS ......................................................................................... 138

13 APÉNDICES .....................................................................................140 13.1

ANEXO A: MANUAL DE LA VERSIÓN USUARIO ............................................................. 140

13.1.1

OPCIONES OFFLINE: ......................................................................................................................... 143

13.1.2

OPCIONES ONLINE............................................................................................................................ 155

13.2 13.2.1

13.3

ANEXO B: MANUAL DE LA VERSIÓN PROFESOR........................................................... 178 OPCIONES ONLINE............................................................................................................................ 178

ANEXO B: TABLAS DE PROGRESO DE LAS PROBABILIDADES DE ACIERTO “P” ..... 184

13.3.1

DESCRIPTIVA.................................................................................................................................... 184

13.3.2

PROBABILIDAD ................................................................................................................................. 185

XI

13.3.3

INFERENCIA...................................................................................................................................... 186

13.3.4

MULTIVARIANTE ............................................................................................................................... 187

13.4

ANEXO C: FUNCIONES MÁS COMPLEJAS UTILIZADAS ................................................. 188

XII

1 INTRODUCCIÓN Y PLANTEAMIENTO DEL PROYECTO Alegría es la reacción típica de un alumno cualquiera a la hora de recibir la noticia de que se le evaluará en una de sus asignaturas con un examen de tipo test. Lo primero que le viene a la cabeza es un examen al que se podrá presentar sin ni si quiera haberse leído la materia, ya que siempre tendrá la posibilidad de confiar en la casuística y en su propia suerte para salir adelante. Cuando más tarde se ponga a hacer exámenes de prueba, se dará cuenta de que las apariencias engañan, y se verá envuelto en una nube de inseguridad y miedo si no domina la materia. Muchísima gente en Madrid, en España y en el mundo entero se examina alguna vez en su vida con un examen de tipo test. Sólo contando el permiso de circulación y los millones de personas que lo han obtenido sería suficiente para dedicarle el tiempo necesario a investigar y sacar todos los entresijos a esta modalidad de evaluación del conocimiento al que los alumnos se someten. Pero la realidad va más allá: cualquier asignatura de cualquier licenciatura o diplomatura puede ser evaluada con un test y dichos exámenes también son muy utilizados en numerosas entrevistas de trabajo. La potencia de los ordenadores actuales y el gran avance que han tenido las redes de comunicaciones en los últimos 15 años permiten interactuar diferentes tecnologías para interconectar diferentes sistemas, a fin de llegar a conseguir una herramienta que ayude a examinadores y opositores. Es indudable, que en este nuevo siglo XXI, las pruebas y exámenes de tipo test en ámbitos académicos y estatales crecerán vertiginosamente. Son pruebas fácilmente corregibles y muy efectivas a la hora de dividir y etiquetar diferentes grupos de personas. Tras el esfuerzo de desarrollar una herramienta que automatice la corrección y almacenamiento de las respuestas de dichos test, las grandes

-1-

escuelas u organismos que las implementen tendrán mucho ganado en un mundo en el que, más que nunca, el tiempo es oro. Todo el mundo conoce correctamente el funcionamiento de este tipo de exámenes y a muchos profesores les gusta por la facilidad de corrección que conllevan. ¿Pero saben los profesores la dificultad o el tipo y número de preguntas que deben de establecer en un test para llegar a un justo nivel entre los aprobados o los suspensos? ¿Son justos dichos exámenes? ¿A partir de que conocimiento se puede decir que el alumno aprobará con casi total seguridad el examen? ¿A partir de qué valores se dispara la probabilidad de pasar uno de estos test? ¿Podría desarrollarse una herramienta que ayudara a ambos, profesores y alumnos, a mejorar estos resultados y simular las diferentes posibilidades a las que pueden optar? En este proyecto se ha intentado dar respuesta a todas estas preguntas a la vez que se ha desarrollado una herramienta que ayude a todos a conocer algo más estos exámenes tan utilizados. Una herramienta en la que los alumnos podrán evaluarse a sí mismos, y en la que los profesores podrán conocer el conocimiento de sus alumnos a la vez que simular hipotéticos exámenes y establecer qué nivel de dificultad se debe de fijar para aprobar sus asignaturas. Lo novedoso y original del tema puede hacer que SAAPET sea un éxito entre la comunidad de estudiantes; SAAPET es una aplicación fácil de utilizar para todos sus usuarios potenciales, y tiene la ventaja de ser tan portable como las herramientas que se distribuyen hoy en día por Internet.

-2-

1.1 ESTADO DEL ARTE Actualmente no hay ninguna herramienta desarrollada y distribuida a gran escala que cumpla las funcionalidades que SAAPET proporciona. Evidentemente, hay muchas herramientas que sirven para calcular todo tipo de probabilidades y de medidas estadísticas. Las más eficientes y famosas podrían ser StatGraphics, Mathematica y SPSS (todas ellas desarrolladas por gigantes del software). En muchas de ellas es necesario introducir los datos a tratar durante la ejecución de las aplicaciones. Esto lleva implícito mucho tiempo perdido y a la vez, posibles errores de los usuarios. SAAPET ahorra este coste administrativo ya que es él mismo quien genera dicha información, gracias a la interactuación de los usuarios. No existe por tanto ninguna herramienta que pueda integrar las necesidades de una institución, universidad o empresa con la flexibilidad que proporciona SAAPET. Como ya se ha escrito en la sección anterior, es indudable que las pruebas de tipo test tendrán una mayor utilización en este siglo XXI en el que nos encontramos. Un siglo en el que la automatización de la información es ya una realidad, y las preguntas de tipo test pueden clasificar los conocimientos u otras aptitudes en grupos de una manera rápida y sencilla. Existen herramientas muy potentes en lo relativo a los cálculos estadísticos, pero son muy pocas las herramientas en las que existe la posibilidad de personalizar el sistema introduciendo las preguntas de tipo test deseadas y utilizadas por los usuarios. Una es Hot Potatoes, que crea código fuente de una manera transparente y que ayuda a la ejecución y resolución de dichas preguntas de tipo test. SAAPET no sólo proporciona una gestión de las preguntas de tipo test de un tema en concreto sino que proporciona una serie de datos estadísticos personales a sus usuarios que se detallan a continuación. -3-

Por otra parte, la apuesta más fuerte de algunas empresas en lo relativo a preguntas de tipo test fijas ha sido la de proporcionar este servicio por medio de páginas webs. Estas páginas, ofrecen publicidad y diferentes servicios a cambio de registrarse en el sistema y participar en un temario de preguntas de tipo test. En España suelen ser para mejorar los conocimientos de cara a realizar la prueba del carné de conducir, aunque evidentemente, son un mero reclamo publicitario y no proporcionan al alumno demasiada información. Además, estas páginas no permiten configurar y adaptar las preguntas a las necesidades del usuario. Existe pues una gran oportunidad en un mercado aún sin explotar. Un mercado que se ha “quedado dormido” y no ha previsto la futura utilización de los exámenes de tipo test, y que está pidiendo a gritos una herramienta como la que se presenta.

-4-

2

SOBRE LOS EXÁMENES DE TIPO TEST

Una de las claves del éxito que la herramienta pueda tener está asociada a la incorporación por parte del administrador del sistema o profesor de las preguntas a las que se deben de someter los alumnos. Es de vital importancia tener en consideración diversos aspectos sobre las pruebas objetivas (PO). Algunas ventajas de las PO frente a las pruebas de respuesta abierta son, según Sinking y Kuechler (2005), las siguientes. Son capaces de ser evaluadas por máquinas, lo que aumenta la precisión a la hora de fijar una nota. Son una manera eficaz de recoger y evaluar exámenes con un alto número de personas examinadas. Ayuda a los examinadores a ponerse de acuerdo sobre que preguntas presentar en una prueba. Facilita la publicación de los resultados correctos. Se observa objetividad a la hora de evaluar a un alumno. Permite al examinador preguntar ampliamente sobre un temario con un número de preguntas considerablemente elevadas. Ayuda a los examinados a no perder puntos por errores de gramática o faltas de ortografía.

-5-

Permiten una forma fácil y sencilla de preparar las pruebas por parte de los alumnos. Reduce la ansiedad de los estudiantes. Diversas versiones de la misma pregunta dificultan la tarea a los tramposos que se dedican a copiar en los exámenes. Ayuda a evitar la siempre subjetiva labor de evaluar redacciones. Las preguntas del test pueden ser almacenadas electrónicamente para reusarlas en un futuro con ligeros cambios. Una vez vistas las ventajas, en esta sección se tratará de aconsejar al administrador del sistema a la hora de introducir nuevas preguntas, según Morales (2000), donde entre otros se tratan cuatro temas relacionados con las pruebas objetivas de tipo test.

2.1 NUMERO DE RESPUESTAS El determinar cuál es el número de respuestas óptimo es importante. Intuitivamente podemos ver que a mayor número de respuestas va a ser más difícil adivinar la respuesta correcta; por otra parte un mayor número de respuestas supone un mayor esfuerzo por parte del que construye el test; no todas las alternativas falsas (o distractores) son siempre plausibles para el que no sabe; en definitiva un mayor número de respuestas no implica automáticamente una mayor calidad del test. Sobre este punto hay mucho investigado y aunque en estos temas nunca hay conclusiones definitivas para

-6-

todas las situaciones, vamos a ver que en conjunto el número óptimo de respuestas es de tres; la correcta y dos alternativas incorrectas.

2.1.1 RECOMENDACIÓN Y PRÁCTICA HABITUAL: La mayoría de los textos recomiendan cuatro o cinco alternativas (una correcta y tres o cuatro falsas o distractores). La razón que suele aducirse es que con un mayor número de alternativas disminuye la probabilidad de adivinar la respuesta correcta. El no recomendar más de cuatro alternativas incorrectas se debe a la dificultad de redactar respuestas falsas y a la vez plausibles. Posiblemente cuatro es el número más frecuente, a pesar de los numerosos estudios (como iremos viendo) que favorecen la inclusión de sólo tres respuestas (la correcta y dos falsas). A pesar de que son numerosos los estudios que confirman que, como criterio general, tres respuestas son suficientes (al menos preferible por el ahorro de tiempo que supone y sin desventajas claras), la mayoría de los textos siguen recomendando rutinariamente utilizar cuatro o cinco respuestas. Owen y Froman (1987) revisan 35 textos de evaluación, y 31 recomiendan utilizar más de tres respuestas sin citar ninguna investigación.

2.1.2 NÚMERO DE RESPUESTAS Y DISCRIMINACIÓN EN EL CONJUNTO DE LA MUESTRA Diversos estudios (sobre todo Lord (1977a, 1977b); Levine y Drasgow (1983); Owen y Froman (1987), y otros que iremos mencionando) muestran que el número óptimo es de tres alternativas, una correcta y dos incorrectas. Es útil caer en la cuenta de que el número de respuestas discrimina de manera diferencial en los diversos segmentos de la muestra.

-7-

Los estudios de Lord, y de los otros autores mencionados, muestran que en general: a) Dos alternativas (una correcta y otra incorrecta, o el clásico verdaderofalso) discriminan mejor solamente en la parte alta de la distribución: quedan más diferenciados los que saben más (que son quienes menos responden al azar) pero en el resto de la distribución quedan todos más indiferenciados. b) Tres alternativas discriminan e informan mejor en el centro de la distribución (los mejores y los peores quedan menos diferenciados entre sí). c) Cuatro o más alternativas dan mejores resultados en la parte más baja de la distribución, donde el adivinar es más frecuente; para los alumnos con menos ciencia las alternativas falsas pueden ser más plausibles; a mayor número de alternativas quedan peor, obviamente, los que menos saben tienden más a adivinar y tienen más oportunidades de equivocarse. Lo que sucede es que los que menos saben pueden quedar suficientemente diferenciados (quedar en el lugar que les corresponde) con menos alternativas.

2.1.3 NÚMERO DE RESPUESTAS Y FIABILIDAD DE TODO EL TEST Entendemos fiabilidad en su sentido psicométrico: a mayor fiabilidad los sujetos quedan mejor diferenciados, mejor ordenados; en exámenes equivalentes se hubiera mantenido un orden semejante. Resumimos brevemente las conclusiones de algunos estudios experimentales importantes. 1. Haladyna y Downing (1985) revisan 56 estudios experimentales sobre la redacción de los ítems y añaden otro propio (Haladyna y Downing 1988, -8-

con N = 1111, estudiantes de medicina) llegando también a la conclusión de que en conjunto el número óptimo es el de tres alternativas: la fiabilidad tiende a subir al aumentar el número de alternativas (se discrimina mejor en la parte más baja de la distribución), pero a partir de tres alternativas el aumento de la fiabilidad es mínimo y despreciable. 2. Otros estudios no muestran una relación apreciable entre fiabilidad y número de respuestas. Trevisan, Sax y Michael (1994) concluyen que no hay diferencias en fiabilidad utilizando tres, cuatro y cinco respuestas, por lo que son preferibles tres opciones que además facilitan el aumentar el número de preguntas. La no relación entre número de respuestas y características psicométricas (fiabilidad, validez) también la confirma el estudio de Rogers y Harley (1999): los tests con tres alternativas de respuesta son por lo menos equivalentes a los de cuatro respuestas. En un estudio anterior (Trevisan y Sax (1990)) se analiza la relación entre número de alternativas y fiabilidad y validez de todo el test, pero teniendo en cuenta la capacidad intelectual del alumno. Las conclusiones finales vienen a ser las mismas; en conjunto todos los resultados y para todos los grupos favorecen las tres alternativas como el formato más eficaz. A la misma conclusión llegan Bruno y Dirkzwager (1995), que además mencionan otros muchos estudios, analizando el problema desde otras perspectivas no puramente psicométricas: la información que aporta un test sube al aumentar el número de alternativas, pero a partir de tres el aumento es marginal (la calidad de las alternativas que no son igualmente atractivas; el tiempo y coste adicional no compensa aumentar el número de alternativas). 3. Al menos un estudio concreto (Cizek, Robinson y O’Day, 1998) muestra que al bajar de cinco a cuatro alternativas (eliminando la alternativa menos funcional) aumenta la discriminación de los ítems y la fiabilidad de -9-

todo el test. Por otra parte la reducción en tiempo de examen puede permitir con facilidad ampliar el número de preguntas. Ya vemos que no todos los estudios nos dan resultados consistentes, pero la conclusión obvia es que la investigación muestra que, en general, los tests de cuatro alternativas (o más) no son superiores a los de tres alternativas en términos

de

fiabilidad.

Prácticamente

todas

las

investigaciones

mencionadas tienden a favorecer las tres alternativas.

2.1.4 NÚMERO

DE

RESPUESTAS,

EFICIENCIA

DEL

TEST

Y

CALIDAD DE LOS DISTRACTORES Por eficiencia se entiende aquí la razón tiempo/información obtenida. La máxima información en menor tiempo se obtiene con tres, o incluso cuatro, alternativas. Más alternativas por ítem supone más tiempo de lectura y de contestar al test sin que compense la información adicional obtenida. La eficiencia suele ser mayor con tres alternativas, aunque, naturalmente, hay que procurar que todas las alternativas sean de calidad. La calidad consiste fundamentalmente en que los dos distractores falsos sean funcionales; las dos características que proponen Haladyna y Downing (1988) para juzgar como funcionales a los distractores falsos son: Que sean escogidos por más del 5% de la muestra; Que tengan una correlación (biserial-puntual) negativa con el total; este análisis supone tratar cada alternativa como si fuera una pregunta, con respuesta 0 ó 1 Esta correlación de cada ítem con el total (menos el ítem) es lo que se hace habitualmente con la alternativa correcta para determinar en qué grado discrimina cada ítem, pero además es útil hacerlo con todas las alternativas (sean tres o más) porque nos dice en qué medida el escoger una alternativa - 10 -

falsa está relacionado con estar bien o mal en el conjunto del test. Todo esto se puede comprobar en cada ocasión mediante los análisis apropiados.

2.1.5 NÚMERO DE RESPUESTAS Y DIFICULTAD EN REDACTAR BUENOS DISTRACTORES Podemos añadir una razón más para no incluir muchas alternativas incorrectas: la dificultad en encontrar una tercera, cuarta o quinta alternativa que sea incorrecta y a la vez plausible, de manera que funcione eficazmente como distractor. Esta dificultad la observan muchos autores como, por ejemplo, Heywood (1989) tratando sobre la evaluación en la universidad, y Bruno y Dirkwager (1995) que juzgan extremadamente difícil redactar ítems con cuatro o cinco respuestas igualmente atractivas. Es, además, lo que suele observarse con mucha frecuencia cuando se analizan las respuestas; en muchas preguntas hay distractores que nadie o casi nadie escoge, ni siquiera los que a juzgar por el mismo test que se analiza saben menos.

2.1.6 NÚMERO DE RESPUESTAS Y HABILIDAD PARA RESPONDER CORRECTAMENTE SIN CONOCER LA RESPUESTA CORRECTA Rogers y Harley (1999) incluyen una nueva variable en su investigación sobre el número de alternativas y que de alguna manera coincide con la dificultad anterior, sobre la dificultad de redactar buenas alternativas cuando las falsas son más de dos. El estudio de Roger y Harley se refiere a la habilidad de algunos examinados para responder correctamente o adivinar con más facilidad la respuesta correcta sin conocimientos suficientes, simplemente eliminando las alternativas menos plausibles; ya hemos tratado también de este punto en otro contexto (sobre las normas para redactar buenas preguntas). Cuando los alumnos tienen solamente conocimiento parcial, esta habilidad (que no todos los examinados tienen en idéntico grado) contribuye a mejorar su - 11 -

puntuación total independientemente de su ciencia. Lo que estos autores confirman es que al reducir el número de alternativas (pasar de cuatro a tres) desaparece o disminuye el influjo de esta habilidad (o astucia), en la cual pueden diferir alumnos con idéntico conocimiento parcial. En definitiva, al reducir el número de alternativas se eliminan las de peor calidad (a veces son absurdas) y desaparecen (o disminuyen) las pistas que facilitan responder correctamente sin conocimiento seguro. Trataremos también sobre el influjo legítimo del conocimiento parcial en responder correctamente (lo veremos más adelante en el contexto de la adivinación). De lo que se trata aquí es de eliminar pistas (que básicamente son alternativas incorrectas de mala o dudosa calidad) que ayudan a unos alumnos más que otros al margen de que sepan más o menos.

2.1.7 RECOMENDACIONES SOBRE EL NÚMERO DE RESPUESTAS Haladyna y Downing (1988) proponen en definitiva tres alternativas (una correcta y dos falsas) como número óptimo, y ya vemos que es una recomendación tan habitual como quizás poco seguida. Las razones para limitarse a tres respuestas, una verdadera y dos falsas, podemos resumirlas así: 1. Se ahorra tiempo en la preparación del test, 2. Se reduce la longitud del test, 3. Se reduce el tiempo de administración del test, 4. Se pueden mantener las características deseables en todo test (fiabilidad, información óptima sobre los examinados). La razón más importante es la última; es una condición para poder aceptar las tres primeras razones, pues en ningún caso debe bajar la calidad del test. Como conclusiones razonables de lo mucho investigado sobre el número de alternativas podemos añadir: - 12 -

1. Parece claro que al preparar un test objetivo la norma debería ser utilizar tres respuestas y aumentar, en cambio, el número de ítems para cubrir más contenido, aumentando también la fiabilidad (que aumenta al aumentar el número de ítems): son preferibles cuatro preguntas con tres alternativas que tres preguntas con cuatro alternativas. 2. Si en una primera versión de un test con cuatro o cinco alternativas, ya preparado y utilizado, se observan alternativas no funcionales (a juicio de expertos, o apenas escogidas por los alumnos, etc.), es preferible disminuir el número de opciones en las versiones subsiguientes. Los

análisis de ítems (de los que no estamos tratando aquí) son muy útiles para ir mejorando la calidad de estas pruebas. 3. Podemos añadir además que es importante analizar las pruebas objetivas que de hecho se utilizan para irlas mejorando; estos análisis pueden encontrarse ya programados y son de fácil comprensión. Esta orientación (más preguntas y menos alternativas) puede ser especialmente conveniente en exámenes que interesa que sean más bien largos.

2.2 PREGUNTAS DEL TIPO VERDADERO-FALSO Estas preguntas son tan frecuentes como discutidas. Es normal juzgar este tipo de preguntas como de peor calidad que las que tienen más posibles respuestas. Las limitaciones que suelen señalarse a estas preguntas son: a) que el adivinar pesa mucho,

- 13 -

b) que comprueban sobre todo conocimientos de memoria y c) que con frecuencia son ambiguas (porque si se formula la afirmación con mucha claridad y matiz, se puede convertir en claramente falsa o verdadera). El que el adivinar pese mucho en la puntuación total dependerá del número de preguntas y de dónde se ponga el número mínimo de respuestas correctas para el apto. El que con frecuencia sean ambiguas quiere decir que no es tan fácil como puede parecer el redactarlas bien. Es verdad que muchas de estas preguntas (afirmaciones) son verdaderas o falsas según se den o no se den determinadas condiciones que no siempre se especifican, por lo que pueden resultar ambiguas para muchos alumnos. En definitiva, es un problema a tener en cuenta en la redacción de estas preguntas. El que estas preguntas comprueben preferentemente conocimientos de pura memoria también es discutible; depende de cómo se formulen, aunque es verdad que son más fáciles de componer para comprobar conocimientos de memoria. Para autores de indudable prestigio y experiencia en este campo, como Ebel (Morales 2000) que comenta ampliamente este tipo de preguntas y da normas sobre su redacción, estas preguntas pueden ser útiles, discriminantes y pueden además estimular la capacidad de pensar del alumno (“thought provoking”). En opinión de este autor cuando estas preguntas no son buenas preguntas se debe a que no están bien pensadas y redactadas más que al mismo formato de Verdadero-Falso. Sobre estas preguntas se ha investigado mucho acerca de su facilidad y dificultad y de su poder discriminatorio; también hay estudios que las comparan según diversos criterios con las preguntas de elección múltiple y se han propuesto alternativas para minimizar sus limitaciones. Sobre estos puntos se trata en los siguientes apartados.

- 14 -

2.2.1 LA DIFICULTAD DE LAS PREGUNTAS CON RESPUESTA VERDADERO-FALSO La dificultad de estas preguntas depende de dos factores: que la respuesta correcta sea verdadero o falso, que el ítem esté formulado positivamente o negativamente. Varios estudios experimentales examinan la dificultad relativa de los ítems según estos dos factores y es frecuente encontrar que:

Formulación del

Más fácil cuando la

Más dificil cuando la

item

respuesta correcta es

respuesta correcta es

Positiva

Verdadero

Falso

Negativa

Falso

verdadero

Naturalmente no hay que esperar unanimidad en estos estudios (Wason, 1961; Peterson y Peterson, 1976). Lo más claro parece ser que los ítems con formulación negativa son de hecho más difíciles cuando la respuesta correcta es verdadero.

2.2.2 EL

PODER

DISCRIMINATORIO

DE

LAS

PREGUNTAS

VERDADERO-FALSO Los ítems cuya respuesta correcta es Falso suelen ser más discriminantes y tienen por lo tanto una fiabilidad mayor (considerados como un sub-test) que los que tienen Verdadero como respuesta correcta. La razón está en que cuando se responde con duda o ignorancia intentando adivinar la respuesta correcta es - 15 -

más frecuente elegir Verdadero como respuesta. Los que saben más y los que saben menos quedan más diferenciados en las preguntas con respuesta correcta Falso y más igualados cuando la respuesta correcta es Verdadero. La tendencia a responder Falso de manera preferente es menos usual. Textos importantes de medición educacional recomiendan por este motivo incluir más preguntas (hasta un 67%) cuya respuesta correcta sea Falso.

2.2.3 LOS TESTS DEL TIPO VERDADERO-FALSO COMPARADOS CON LOS DE ELECCIÓN MÚLTIPLE 1º Tienden a ser: a) Más fáciles (se acierta más adivinando), b) Menos discriminantes c) Hacen que la fiabilidad de todo el test aumente si se mantiene constante el número de ítems. Esta menor fiabilidad de los tests con preguntas de dos alternativas con respecto a los que tienen tres respuestas o más (manteniendo constante el número de preguntas) está muy comprobada experimentalmente (Frisbie, 1973; Ebel, 1975; Lord, 1977a; Straton y Catts, 1980; Grosse y Wright, 1985). 2º Para conseguir una fiabilidad suficiente y reducir el influjo de la adivinación hacen falta más ítems (5 ítems Verdadero-Falso por cada 3 de elección múltiple para obtener una fiabilidad comparable). Con sólo dos alternativas (VerdaderoFalso u otro par de alternativas) se han sugerido hasta 150 ítems para conseguir una fiabilidad lo suficientemente adecuada como para tomar decisiones sobre los examinados (Downing, 1992).

- 16 -

3º Se responden en un tiempo menor; típicamente se responden tres ítems del tipo Verdadero-Falso en el mismo tiempo en que se responden dos de elección múltiple. 4º Los tests con preguntas de sólo dos respuestas suelen tener con otros criterios correlaciones semejantes a las que tienen tests con preguntas de más respuestas

2.2.4 CONVERSIÓN DE PREGUNTAS DE ELECCIÓN MÚLTIPLE EN PREGUNTAS VERDADERO-FALSO Se puede pensar en convertir las preguntas de elección múltiple (varias respuestas, una correcta) en preguntas del tipo Verdadero-Falso (cada alternativa se convierte en una pregunta) al menos en dos circunstancias: 1º Cuando las preguntas de elección múltiple equivalen de hecho a una serie de afirmaciones independientes a las que se podría responder directamente Verdadero o Falso. En este caso puede ser preferible convertir las alternativas en otras tantas preguntas del tipo Verdadero-Falso: a) Suelen tener mayor fiabilidad porque en este caso aumenta notablemente el número de ítems (si la fiabilidad es alta se puede pensar que el adivinar no ha pesado mucho, Morales (2000)); de todas maneras el problema que puede suponer el adivinar lo tratamos más adelante; b) Se responden en menos tiempo; c) Son más fáciles de construir. En cualquier caso las preguntas de elección múltiple cuyas respuestas son una serie de afirmaciones independientes no son buenas preguntas.

- 17 -

2º Cuando las preguntas de elección múltiple tienen varias respuestas correctas pueden convertirse con ventaja en bloques de preguntas del tipo VerdaderoFalso. Se utiliza así el conocimiento parcial del alumno que puede conocer unas respuestas y desconocer otras. El tener en cuenta este conocimiento parcial aumenta la fiabilidad y validez de todo el test, como veremos más adelante. El problema de las dos respuestas, Verdadero-Falso u otras, está en la mayor probabilidad de responder sin saber y acertar con la respuesta correcta (con dos respuestas y respondiendo al azar, se puede responder correctamente el 50% de las preguntas).

2.3 PREGUNTAS DE RESPUESTA ALTERNATIVA Son preguntas con sólo dos respuestas pero distintas del Verdadero-Falso. Estas preguntas podría haberlas incluido en el apartado anterior, como una variedad del Verdadero-Falso, pero prefiero destacarlas tratándolas por separado. Aunque coincidan con las preguntas del tipo Verdadero-Falso en que sólo hay dos respuestas, sus características son distintas, por eso conviene distinguirlas. Las respuestas Verdadero-Falso se pueden sustituir por otras dos alternativas formuladas de otra manera; por ejemplo: Los eclipses de sol solamente pueden ocurrir en luna: a) llena

b) nueva

en vez de: Los eclipses de sol solamente pueden ocurrir en luna nueva: a) verdadero

b) falso

Estas preguntas pueden ser una buena alternativa al Verdadero-Falso:

- 18 -

a) Se puede evitar con más facilidad la ambigüedad inherente a muchas preguntas del tipo Verdadero-Falso porque permiten comparar las dos respuestas sin requerir un juicio absoluto sobre la falsedad o veracidad de una proposición; b) También posiblemente se redactan con mayor facilidad (no es siempre fácil redactar proposiciones absolutamente verdaderas o falsas); c) Permiten con facilidad comprobar conocimientos que no son de pura memoria. Estas preguntas, además, suelen ser más discriminantes y consecuentemente los tests hechos con estas preguntas tienen una mayor fiabilidad si los comparamos con los del tipo Verdadero-Falso (Downing, 1992). Estas preguntas se asemejan más a las preguntas de elección múltiple; en realidad son preguntas de elección múltiple con sólo dos respuestas, e invitan menos a un adivinar ciego. De hecho, en muchos tests con preguntas de elección múltiple sólo hay uno o dos distractores funcionales (atractivos para el que no sabe). Naturalmente el problema de acertar adivinando es el mismo que en las preguntas Verdadero-Falso, por lo que hace falta un número mayor de ítems.

2.4 CORRECCIÓN MÚLTIPLE:

DE

LAS

PROBLEMAS

PRUEBAS DEL

DE

ELECCIÓN

ADIVINAR

Y

DEL

CONOCIMIENTO PARCIAL CUANDO HAY UNA SOLA RESPUESTA CORRECTA Dos problemas importantes asociados con los diversos métodos propuestos para corregir y calificar las pruebas objetivas de elección múltiple con una única respuesta correcta son: - 19 -

1º La posibilidad de adivinar la respuesta correcta, por puro azar, y cómo controlar estas respuestas mediante fórmulas correctoras; 2º Cómo utilizar el conocimiento parcial del alumno: puede no estar seguro sobre cuál es la respuesta correcta pero sí puede ser capaz de eliminar algunas de las alternativas como claramente falsas. Los dos problemas, y modos de tratar las respuestas a preguntas objetivas, responden a dos maneras de entender el adivinar en estas situaciones. Cuando el adivinar la respuesta correcta se percibe como un problema, se prescinde de que el alumno, cuando escoge una respuesta sin seguridad de que sea la correcta, puede no estar escogiendo una respuesta al azar sino que lo que hace es calcular probabilidades sobre cuál puede ser la repuesta correcta guiándose de su intuición (intuición basada en sospechas fundadas sobre cuál es la respuesta correcta) y de lo que ya sabe sobre la materia. Cuando el problema se sitúa no en el adivinar, sino en tener en cuenta la ciencia parcial y/o insegura del alumno, se acepta de antemano que la dicotomía saber/no saber no se da en la práctica (al menos no se da siempre o simplemente puede no darse) cuando se responde a estas preguntas. Trato los dos puntos por separado, aunque están relacionados y responden al mismo problema de fondo aunque con distintos enfoques y también, de alguna manera, desde distintas actitudes por parte del profesor. En el segundo punto enunciado, cómo utilizar el conocimiento parcial del alumno, se prescinde de fórmulas correctoras y en cambio se pretende tener en cuenta y aprovechar el conocimiento parcial o inseguro del alumno. Cada enfoque supone un tratamiento metodológico muy distinto, y obviamente supone también que los

- 20 -

alumnos reciben instrucciones distintas sobre cómo responder a estas pruebas objetivas.

2.4.1 LA FÓRMULA DE CORRECCIÓN POR ADIVINACIÓN Una de las críticas más comunes a las pruebas objetivas de elección múltiple es la posibilidad de adivinar la respuesta correcta. Como respuesta a este problema se ha desarrollado una fórmula denominada de corrección por adivinación muy utilizada. Esta fórmula no es la única, pero como es la que realmente se ha impuesto es la que se expone con más detalle. En general las limitaciones de este tipo de correcciones por adivinación se pueden aplicar también a otras fórmulas. Las ventajas e inconvenientes de esta fórmula han sido objeto de numerosas discusiones y estudios experimentales. Siendo k el número de opciones de cada pregunta en una prueba objetiva, la nota será la siguiente:

Nota = Aciertos −

Fallos k −1

Si se quiere entrar en más detalle, acudir a Morales (2000) en dónde se hace un estudio y una síntesis de lo mucho que se ha investigado, sin pretender llegar a una respuesta definitiva en un tema controvertido.

- 21 -

3 SOBRE LAS BASES DE DATOS

3.1 DEFINICIÓN DE BASES DE DATOS Colección de datos relacionados entre sí gestionados a través de un software específico (SGBD, Sistema Gestor de Base de Datos) (Piattini, de Miguel, y Marcos (2000)).

3.2 ORÍGENES Y ANTECEDENTES Los predecesores de los sistemas de bases de datos fueron los sistemas de ficheros. No hay un momento concreto en que los sistemas de ficheros hayan cesado y hayan dado comienzo los sistemas de bases de datos. De hecho, todavía existen sistemas de ficheros en uso. Se dice que los sistemas de bases de datos tienen sus raíces en el proyecto estadounidense Apolo de mandar al hombre a la luna, en los años sesenta. En aquella época, no había ningún sistema que permitiera gestionar la inmensa cantidad de información que requería el proyecto. La primera empresa encargada del proyecto, NAA (North American Aviation), desarrolló un software denominado GUAM (General Update Access Method) que estaba basado en el concepto de que varias piezas pequeñas se unen para formar una pieza más grande, y así sucesivamente hasta que el producto final está ensamblado. Esta estructura, que tiene la forma de un árbol, es lo que se denomina una estructura jerárquica. A mediados de los sesenta, IBM se unió a NAA para desarrollar GUAM en lo que ahora se conoce como IMS (Information Management System). El motivo por el cual IBM restringió IMS al manejo de - 22 -

jerarquías de registros fue el de permitir el uso de dispositivos de almacenamiento serie, más exactamente las cintas magnéticas, ya que era un requisito del mercado por aquella época. (Marqués 2001) A mitad de los sesenta, se desarrolló IDS (Integrated Data Store), de General Electric. Este trabajo fue dirigido por uno de los pioneros en los sistemas de bases de datos, Charles Bachmann. IDS era un nuevo tipo de sistema de bases de datos conocido como sistema de red, que produjo un gran efecto sobre los sistemas de información de aquella generación. El sistema de red se desarrolló, en parte, para satisfacer la necesidad de representar relaciones entre datos más complejas que las que se podían modelar con los sistemas jerárquicos y, en parte, para imponer un estándar de bases de datos. Para ayudar a establecer dicho estándar, CODASYL (Conference on Data Systems Languages), formado por representantes del gobierno de EEUU y representantes del mundo empresarial, formaron un grupo denominado DBTG (Data Base Task Group), cuyo objetivo era definir unas especificaciones estándar que permitieran la creación de bases de datos y el manejo de los datos. El DBTG presentó su informe final en 1971 y aunque éste no fue formalmente aceptado por ANSI (American National Standards Institute), muchos sistemas se desarrollaron siguiendo la propuesta del DBTG. Estos sistemas son los que se conocen como sistemas de red, o sistemas CODASYL o DBTG. (Marqués 2001) Los sistemas jerárquico y de red constituyen la primera generación de los SGBD. Pero estos sistemas presentan algunos inconvenientes: Es necesario escribir complejos programas de aplicación para responder a cualquier tipo de consulta de datos, por simple que ésta sea. La independencia de datos es mínima.

- 23 -

No tienen un fundamento teórico. En 1970 Codd, de los laboratorios de investigación de IBM, escribió un artículo presentando el modelo relacional. En este artículo, presentaba también los inconvenientes de los sistemas previos, el jerárquico y el de red. Entonces, se comenzaron a desarrollar muchos sistemas relacionales, apareciendo los primeros a finales de los setenta y principios de los ochenta. Uno de los primeros es System R, de IBM, que se desarrolló para probar la funcionalidad del modelo relacional, proporcionando una implementación de sus estructuras de datos y sus operaciones (Jones (2003)). Esto condujo a dos grandes desarrollos: El desarrollo de un lenguaje de consultas estructurado denominado SQL, que se ha convertido en el lenguaje estándar de los sistemas relacionales. La producción de varios SGBD relacionales durante los años ochenta, como DB2 y SLQ/DS de IBM, y ORACLE de ORACLE Corporation. Hoy en día, existen cientos de SGBD relacionales, tanto para microordenadores como para sistemas multiusuario, aunque muchos no son completamente fieles al modelo relacional. Otros sistemas relacionales multiusuario son INGRES de Computer Associates, Informix de Informix Software Inc. y Sybase de Sybase Inc. Ejemplos de sistemas relacionales de microordenadores son Paradox y dBase IV de Borland, Access de Microsoft, FoxPro y R:base de Microrim. Los SGBD relacionales constituyen la segunda generación de los SGBD. Sin embargo, el modelo relacional también tiene sus fallos, siendo uno de ellos su limitada capacidad al modelar los datos. Se ha hecho mucha investigación desde

- 24 -

entonces tratando de resolver este problema. En 1976, Chen presentó el modelo entidad-relación, que es la técnica más utilizada en el diseño de bases de datos. En 1979, Codd intentó subsanar algunas de las deficiencias de su modelo relacional con una versión extendida denominada RM/T (1979) y más recientemente RM/V2 (1990). Los intentos de proporcionar un modelo de datos que represente al mundo real de un modo más fiel han dado lugar a los modelos de datos semánticos (Marqués, 2001). Como respuesta a la creciente complejidad de las aplicaciones que requieren bases de datos, han surgido dos nuevos modelos: el modelo de datos orientado a objetos y el modelo relacional extendido. Sin embargo, a diferencia de los modelos que los preceden, la composición de estos modelos no está clara. Esta evolución representa la tercera generación de los SGBD.

3.3 VENTAJAS A LA HORA DE USAR UNA BASE DE DATOS. Los sistemas de bases de datos presentan numerosas ventajas que se pueden dividir en dos grupos: las que se deben a la integración de datos y las que se deben a la interface común que proporciona el SGBD (Post (2005)).

3.3.1 VENTAJAS POR LA INTEGRACIÓN DE DATOS

Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos - 25 -

datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos, o bien es necesaria para mejorar las prestaciones. Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Desgraciadamente, no todos los SGBD de hoy en día se encargan de mantener automáticamente la consistencia. Más información sobre la misma cantidad de datos: Al estar todos los datos integrados, se puede extraer información adicional sobre los mismos. Compartición de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados. Además, las nuevas aplicaciones que se vayan creando pueden utilizar los datos de la base de datos existente. Mantenimiento de estándares:

- 26 -

Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.

3.3.2 VENTAJAS POR LA EXISTENCIA DEL SGBD

Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. Mejora en la seguridad: La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros. Sin embargo, los SGBD permiten mantener la seguridad mediante el establecimiento de claves para identificar al personal autorizado a utilizar la base de datos. Las autorizaciones se pueden realizar a nivel de operaciones, de modo que un usuario puede estar autorizado a consultar ciertos datos pero no a actualizarlos, por ejemplo. Mejora en la accesibilidad a los datos:

- 27 -

Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel. Muchos SGBD también proporcionan un entorno de cuarta generación consistente en un conjunto de herramientas que simplifican, en gran medida, el desarrollo de las aplicaciones que acceden a la base de datos. Gracias a estas herramientas, el programador puede ofrecer una mayor productividad en un tiempo menor. Mejora en el mantenimiento gracias a la independencia de datos: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se

- 28 -

simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o, incluso, que se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad y de recuperación ante fallos: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos. En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

3.4 INCONVENIENTES A LA HORA DE USAR SISTEMAS DE BASES DE DATOS Complejidad:

- 29 -

Los SGBD son conjuntos de programas muy complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder sacar un buen partido de ellos. Tamaño: Los SGBD son programas complejos y muy extensos que requieren una gran cantidad de espacio en disco y de memoria para trabajar de forma eficiente. Coste económico del SGBD: El coste de un SGBD varía dependiendo del entorno y de la funcionalidad que ofrece. Por ejemplo, un SGBD para un ordenador personal puede costar 500 euros, mientras que un SGBD para un sistema multiusuario que dé servicio a cientos de usuarios puede costar entre 10.000 y 100.000 euros. Además, hay que pagar una cuota anual de mantenimiento que suele ser un porcentaje del precio del SGBD. Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara. Coste de la conversión: En algunas ocasiones, el coste del SGBD y el coste del equipo informático que sea necesario adquirir para su buen funcionamiento,

- 30 -

es insignificante comparado al coste de convertir la aplicación actual en un sistema de bases de datos. Este coste incluye el coste de enseñar a la plantilla a utilizar estos sistemas y, probablemente, el coste del personal especializado para ayudar a realizar la conversión y poner en marcha el sistema. Este coste es una de las razones principales por las que algunas empresas y organizaciones se resisten a cambiar su sistema actual de ficheros por un sistema de bases de datos. Prestaciones: Un sistema de ficheros está escrito para una aplicación específica, por lo que sus prestaciones suelen ser muy buenas. Sin embargo, los SGBD están escritos para ser más generales y ser útiles en muchas aplicaciones, lo que puede hacer que algunas de ellas no sean tan rápidas como antes. Vulnerable a los fallos: El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse.

3.5 EL SQL 3.5.1 ¿QUÉ ES EL SQL? El SQL es un lenguaje que permite expresar operaciones diversas, por ejemplo, aritméticas, combinatorias y lógicas, con datos almacenados en bases de datos relacionales, que son aquéllas que se caracterizan porque la información está contenida en estructuras, llamadas tablas, donde los datos están dispuestos en filas y columnas.

- 31 -

La palabra SQL está formada con las iniciales inglesas Structured Query Language, o en español, Lenguaje Estructurado de Consultas. El nombre no refleja todas las posibilidades del lenguaje, pues éste no sólo permite consultas sino también actualizaciones de datos y otras operaciones. Suele aceptarse que el concepto de bases de datos relacionales arranca de un artículo publicado en 1970 por Codd, a la sazón empleado de IBM, donde se sentaban los conceptos básicos de un modelo relacional de datos y de un sublenguaje para acceder a ellos basado en el cálculo de predicados. Estas ideas fueron desarrolladas en años posteriores en los laboratorios de IBM dando lugar a un lenguaje llamado SEQUEL y a un prototipo de sistema relacional llamado System R. Hubo más o menos simultáneamente otros ensayos de lenguajes relacionales en diversas Universidades, empresas y centros de investigación. Por su parte, el SEQUEL evolucionó y su nombre fue cambiado, dando lugar al SQL. (Benavides, Olaizola y Rivero (1991))

En los últimos años han ido apareciendo en el mercado múltiples productos de bases de datos basados en el SQL, tanto para micro y miniordenadores como para grandes sistemas, haciendo de este lenguaje un vehículo común ampliamente utilizado en entornos muy diversos de máquinas y sistemas operativos. Esta tendencia hacia su usio generalizado en la industria se ha visto consolidada al ser adoptado por el Instituto Americano de Normas (ANSI, American National Standards Institute), que ha desarrollado y publicado unas especificaciones para este lenguaje, aceptadas también posteriormente (1987) por la organización ISO (International Standards Organization). Esto no quiere decir que los productos concretos disponibles sigan estrictamente estas especificaciones. Hay desviaciones, en parte porque aquéllas no cubren todas las necesidades y deben ser completadas por los productos, y en parte

- 32 -

por razones históricas. También hay diferencias entre unos productos y otros. Por ello, se recomienda leer los manuales de referencia del producto concreto que se vaya a usar antes de trabajar con él. En todo caso, estas diferencias suelen referirse a opciones adicionales o detalles menores de las que no se ha hecho uso en el presente proyecto. Una de las características más importantes del SQL frente a los lenguajes tradicionales no relacionales de bases de datos es que sus sentencias permiten manejar conjuntos de registros, en vez de un solo registro cada vez. Otra es que, al tener una firme base teórica, posee una gran capacidad expresiva aunque su estructura es muy simple. Todo ello dota al lenguaje de una gran potencia que permite expresar con una sola sentencia consultas complejas, que tradicionalmente podrían requerir uno o más programas para su formulación, lo que redunda en una alta productividad en la codificación y prueba de programas. Por otra parte, esta flexibilidad y potencia expresiva unidas a la capacidad de usarlo interactivamente para realizar consultas no planificadas, es decir, no previamente incluidas en programas, abre a los usuarios finales la posibilidad de acceder directamente a los datos.

3.5.2 ¿CÓMO SE USA EL SQL? Las peticiones sobre los datos se expresan en SQL mediante sentencias, que deben escribirse de acuerdo con las reglas sintácticas y semánticas de este lenguaje. Estas sentencias pueden escribirse directamente en la pantalla de un terminal interactivo, en la cual también se recibe el resultado de la petición expresada en

- 33 -

ellas, o embeberlas en el código fuente de los programas, como ha sido el caso en SAAPET. Hay dos técnicas para utilizar el SQL embebido en programas. En una de ellas, llamada SQL estático, las sentencias incluidas en el programa no pueden cambiar durante su ejecución. En la otra, llamada SQL dinámico, una sentencia puede ser modificada total o parcialmente por el propio programa durante su ejecución. SAAPET está codificado utilizando SQL estático, en la que únicamente cambia las condiciones de la sentencia a la hora de solicitar una u otra información a petición del usuario. De esta manera, no ha sido necesario manejar dinámicamente la memoria y sus variables.

3.5.3 ¿PARA QUÉ SIRVE EL SQL?

El SQL permite la realización de consultas y actualizaciones sobre datos almacenados en tablas relacionales. Pero también hay otras tareas que se pueden realizar mediante sentencias SQL, aunque pertenecen más a las responsabilidades de lo que suele llamarse administrador de bases de datos. Son las siguientes: Definición y destrucción de objetos: Antes de poder usar una tabla para almacenar o consultar datos en ella, hay que describirla al SGBD, dándole su nombre y características. Esto se hace definiéndola. Hay otros mcuhos objetos que maneja un SGBD, tales como espacios para ficheros físicos, índices, etc...Todos ellos se definen con sentencias SQL. Nosotros sólo vamos a tratar de un tipo de objetos: las tablas. Los restantes son más interesantes para las funciones del

- 34 -

administrador que para los programadores y usuarios. Por tanto, están más allá del objetivo del proyecto. Gestión de las autorizaciones de acceso: Un usuario final no podrá consultar o actualizar datos de una tabla si previamente no ha sido autorizado para ello. Tampoco podrá hacerlo un programa si la persona que ha solicitado su ejecución no ha sido previamente autorizada. Estas autorizaciones se conceden o deniegan mediante sentencias SQL.

- 35 -

4 PLANIFICACIÓN DEL PROYECTO Estos son los pasos clave que se han seguido para la consecución del presente proyecto. Definición del proyecto Definición de los objetivos del proyecto Definición de las suposiciones del proyecto Definición de las delimitaciones del proyecto Planificación de las actividades del proyecto Creación de fases y subfases del proyecto Establecimiento de fases críticas Establecimiento de hitos Estimación de las duraciones de cada tarea Planificación y adquisición de los recursos Identificación y estimación de los requisitos de los recursos Instalación de los recursos obtenidos Planificación de los costos del proyecto Al no tener históricos, simular costos previsibles Realización de un seguimiento de los procesos Desarrollo de cada una de las fases del proyecto Registrar los avances Actualizar las estimaciones originales

- 36 -

Creación de informes del estado del proyecto Posición en el gráfico de seguimiento Creación de un Informe Revisión del resultado final del proyecto Presentación del proyecto Para poder llevar un mejor seguimiento, Microsoft Project ofrece un módulo en el que es posible mostrar un diagrama de Gant personalizado para el proyecto. Este diagrama ha sido de gran utilidad para el seguimiento por parte del coordinador de proyectos, y para tener una buena planificación de cara a la fecha de entrega final.

- 37 -

Como podemos observar, se ha planificado el proyecto en fases bien marcadas y definidas, e hitos en la finalización de fases claves para el proyecto. La documentación se ha venido realizando durante la elaboración de todo el proyecto, y las tareas se han ido concatenando una tras otra. Los tres hitos que se visualizan corresponden a la finalización de toda la parte del módulo offline, de la finalización del módulo online y de la toma de conclusiones a la hora de recoger y analizar las encuestas.1

1

A partir de este punto no se señalará de una forma especial las palabras offline ni online como

manda la R.A.E., ya que se consideran palabras heredadas en el presente proyecto al igual que pasa con otras de habla inglesa como parking, stop, sándwich, etc…

- 38 -

5 ENTORNOS

DE

PROGRAMACIÓN

Y

HERRAMIENTAS

ELEGIDAS

5.1 ENTORNOS DE PROGRAMACIÓN Y SGBD ELEGIDOS No hubo ninguna duda en cuanto al lenguaje de programación, ya que se buscaba una aplicación muy visual y de fácil manejo para los usuarios finales. Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code), que fue creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas personas que estaban interesadas en iniciarse en algún lenguaje de programación. Tras sufrir varias modificaciones, en el año 1978 se estableció el BASIC estándar. La sencillez del lenguaje ganó el desprecio de los programadores avanzados por considerarlo "un lenguaje para principiantes". Pero Visual Basic ya no es más "un lenguaje para principiantes", sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows. Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce como Visual. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para los sistemas operativos Windows de la familia de Microsoft (Kurtz y Thomas (1985)). Es un lenguaje conducido por eventos, es decir, el usuario podrá realizar una serie de acciones sobre los distintos objetos que componen la aplicación originando una serie de acciones sensibles al entorno.

- 39 -

La programación en Visual Basic se caracteriza porque la primera tarea que realiza el programador es el diseño de la interfaz del usuario: creación de las ventanas que serán la base de la interfaz de la aplicación, añadir los objetos que componen las ventanas que se han creado que reconocerán automáticamente acciones del usuario tales como el clic de los botones del ratón, pulsar una tecla, y definir su aspecto. La respuesta que den los objetos a las acciones del usuario dependerá del código que se escriba. Una vez definido el lenguaje de programación y el entorno de desarrollo a utilizar (Visual Studio), había que tomar la determinación del gestor de base de datos que se iba a utilizar. El gestor de base de datos era un requisito indispensable. Una base de datos relacional y bien estructurada era necesaria para tener centralizadas las preguntas y a los usuarios, de manera que siempre se pudieran compartir estos datos entre todos los clientes. A la hora de definir dicho gestor surgieron varias dudas. Descartado Microsoft Access por su ineficiencia a la hora de trabajar con tablas de un número determinado de registros y el no poder interactuar los clientes de una manera concurrente, se plantearon como solución los siguientes gestores: MySQL, PostgreSQL, Predator y SQL Server. El PostgreSQL y el Predator quedaron descartados por ser gestores menos utilizado y no disponer de demasiadas fuentes donde buscar ayuda. Finalmente el SQL Server fue el elegido al tener avalada su eficiencia habiendo permanecido de manera brillante en el mercado desde su aparición. Microsoft SQL Server 2000 es el último lanzamiento de los productos de bases de datos de Microsoft, que aprovecha la sólida base establecida por SQL Server 6.5 y SQL 7. Como la mejor base de datos para Windows ALL, SQL Server es el SGBD ideal para un amplio espectro de clientes corporativos y productores independientes de software (ISV) inmersa en la creación de aplicaciones. Las

- 40 -

necesidades y requisitos de los clientes han dado lugar a innovaciones significativas en el producto SQL Server 2000, entre las que se incluyen la facilidad de uso, escalabilidad y fiabilidad, y almacenamiento de datos. SQL Server 2000 es la oferta completa de base de datos y análisis: tanto por la capacidad para consultar la base de datos mediante un explorador como por la compatibilidad con el Lenguaje de marcado extensible (XML, Extensible Markup Language) que podrían ser útiles a la hora de ampliar el sistema. Tanto si lo que se mide es la velocidad en el desarrollo de aplicaciones como la velocidad del procesamiento de transacciones, SQL Server 2000 es la base de datos más rápida, lo que la convierte en la opción principal para la herramienta que he desarrollado, ya que se buscaba ante todo agilidad en las operaciones. Además, he apostado por invertir en un sistema de gestión de bases de datos en forma de módulos escritos para dicha base de datos. Esta inversión debe estar controlada: a medida que el sistema crezca, la base de datos debe crecer para tratar más datos, transacciones y usuarios. Para satisfacer estas necesidades, el SQL Server 2000 ofrece un único motor de base de datos ampliable desde un equipo portátil que ejecuta el sistema operativo Windows 95 o Windows 98, hasta clusters multiprocesador simétricos de varios terabytes de información y que ejecutan Windows 2000 Server Enterprise Edition. Todos estos sistemas mantienen la seguridad y fiabilidad que exigen los sistemas críticos. (http://microsoft.com) Su diseño para cubrir las necesidades cada vez mayores del mercado de la informática móvil, con nuevas e innovadoras funcionalidades como un pequeño espacio físico para la memoria, ajuste automático y duplicación en varias instalaciones, le convierten en el gestor que mejor se acopla a SAAPET. Dispone de funcionalidades de escalabilidad como bloqueo dinámico a nivel de filas, paralelismo entre consultas, consulta distribuida y mejoras en bases de datos de

- 41 -

gran tamaño (Very Large Database, VLDB). Estas funcionalidades podrían ser utilizadas en el caso de que el sistema resultara un éxito y se decidiera ampliar a otras asignaturas en años venideros. La seguridad basada en funciones y el cifrado de archivos y de la red dan la tranquilidad necesaria a una base de datos que podría ser muy codiciada por los alumnos. SQL Server ayudará también a descubrir patrones y tendencias de los alumnos con la minería de datos y hacer mejores predicciones acerca de las tendencias futuras de cada uno de los grupos. Adicionalmente, al ser de la familia de Microsoft, permitirá una comunicación más sencilla con el Visual Basic sin perder ninguna de las características que debe de tener un gestor de base de datos.

5.2 INSTALACIÓN Y PUESTA A PUNTO DE LA PLATAFORMA Para desarrollar el sistema se ha necesitado instalar como entorno de desarrollo, el Visual Basic 6.0, e instalar el servidor de base de datos. Estas aplicaciones tienen los siguientes requisitos mínimos para su funcionamiento: Visual Basic: Microprocesador Pentium 100 Mhz o superior Disco duro con un espacio mínimo disponible de 100Mb Unidad de CD-ROM Un ratón 32 Mb de memoria RAM o más Microsoft Windows 95 o posterior SQL Server: 128 MB para MSDE, aunque con 64 son disponibles 44MB del MSDE, 130MB del gestor

- 42 -

CD-ROM VGA o monitor de mayor resolución Para más información sobre cómo instalar dichos entornos, consulte la web de microsoft: http://support.microsoft.com/ Además, se necesitó instalar el “Microsoft SQL Server Desktop Engine 2000” para terminar de configurar el SQL Server. Instrucciones para su instalación se encuentran en http://www.ra-ma.es/down/ApendiceMSDE.pdf

5.3 HERRAMIENTAS

PARA

LA

ELABORACIÓN

DE

LA

MEMORIA Para la elaboración de la presente memoria se ha utilizado el paquete Microsoft Office 2003, en concreto las aplicaciones Microsoft Word, Microsoft PowerPoint para las presentaciones, y Microsoft Excel para determinadas gráficas y tablas. Además, también de la familia de Microsoft, se han utilizado el Microsoft Visio para la creación de algunos gráficos de la arquitectura, y Microsoft Project. Microsoft Project es una herramienta de administración de proyectos eficaz y flexible que se puede utilizar para controlar proyectos simples o complejos. Le ayudará a programar y realizar un seguimiento de todas las actividades para supervisar su progreso. A medida que genera un plan de proyecto, Microsoft Project calcula y crea una programación de trabajo basada en la información que proporciona acerca de las tareas a realizar, las personas que trabajan en ellas, el equipamiento y los suministros utilizados para realizarlas y los costos que suponen.

- 43 -

6 DESCRIPCIÓN DEL MODELO DESARROLLADO

6.1 VERSIÓN ALUMNO El sistema se compone de dos grandes módulos: las opciones offline y las opciones online. Nada más ejecutar el programa, SAAPET comprobará si existe o no conexión de red con el servidor central del sistema. Si no existe o no está disponible dicha conexión, se le informará al usuario del percance y se desactivarán automáticamente todas las opciones online del menú principal. Si la conexión existe, todas las opciones del menú principal estarán disponibles.

- 44 -

6.1.1 OPCIONES OFFLINE 6.1.1.1 Opción 1: Simular resultados en un examen de tipo test Si el usuario elige esta opción en el menú principal, el programa le mostrará un menú para poder elegir que tipo de resultados desea simular. Este menú consta de las 4 opciones siguientes.

6.1.1.1.1

Hallar la nota esperada en un test

Si el usuario elige esta opción, podrá calcular la nota media que obtendrá en un examen según diferentes parámetros que el usuario le proporciona al sistema. Dichos parámetros son: a) El número de respuestas que tienen las preguntas de tipo test b) El número de temarios claramente diferenciados que tiene el test (de 1 a 10) c) La posibilidad o no de que resten las preguntas mal contestadas d) La nota mínima a obtener para pasar el test e) La probabilidad “p” de acierto, fallo y de no contestar a las preguntas en cada uno de los diferentes bloques temáticos que tiene el test y que ha introducido el usuario. f) El número de preguntas de cada uno de los diferentes bloques temáticos Además, el usuario también podrá solicitar al sistema el número de preguntas más probables que acertará en cada uno de los bloques. Esto ayudará al usuario a saber si pasará el corte que se establece en algunos exámenes en el que se obliga al menos a contestar bien un número determinado de preguntas.

6.1.1.1.2

Hallar la probabilidad de aprobar un examen de tipo test

Si el usuario elige esta opción, podrá obtener la probabilidad de sacar un 5 en un examen de tipo test. La información que necesitará el sistema para obtener dicha probabilidad será el número de preguntas del test, la probabilidad de

- 45 -

acierto que ha obtenido o que espera obtener el usuario, y el número de preguntas mal que restan una bien contestada.

6.1.1.1.3

Gráfica interactiva para obtener una nota determinada con

el número de preguntas fijas y según varíe la probabilidad de acierto “p” en el test Una vez elegida dicha opción, el usuario fijará el número de preguntas que tiene un test. El sistema mostrará entonces una gráfica que tendrá en el eje de abscisas las probabilidades “p” de acertar las preguntas, desde 0 hasta 1, y en el eje de ordenadas la probabilidad desde 0 hasta 1, de obtener dicha nota esperada. Esta gráfica, por tanto, mostrará cómo influye la probabilidad de acierto “p” a la hora de obtener una nota determinada en un test, según su número de preguntas. Inicialmente el sistema muestra la gráfica para obtener una nota igual a 5 sobre 10, que es la nota usual de corte para aprobar un examen de tipo test. El gráfico es interactivo, y si el usuario lo desea podrá cambiar dicha nota que desea obtener por cualquier otra del 0 al 10. Además, también podrá cambiar el número de preguntas del test para ver cómo va cambiando la gráfica y cuáles son las probabilidades de obtener dicha nota esperada según va variando las probabilidades de acierto “p” en el test.

6.1.1.1.4

Gráfica interactiva para obtener una nota determinada con

la probabilidad de acertar las preguntas “p” fija, y según varíe el número de preguntas del test: Una vez elegida dicha opción, el usuario visualizará una gráfica en la que se mostrará cómo influye el número de preguntas a la hora de obtener una nota determinada, según una probabilidad “p” fija de acierto en las preguntas de dicho test. Al igual que en la opción anterior, el gráfico es interactivo y se podrá ver como cambia la gráfica cambiando la probabilidad de acierto “p” o la nota deseada en un test.

- 46 -

6.1.1.2 Opción 2: Nota esperada en un test Esta opción del menú principal lleva única y exclusivamente a la sección 6.1.1.1.1, ya descrita anteriormente.

6.1.2 OPCIONES ONLINE Si existe conexión con el servidor central de preguntas, al iniciar el programa se le pedirá a dicho servidor que le proporcione al sistema el número de preguntas totales que tiene en la base de datos. Una vez que el sistema tenga la información sobre que temarios tienen preguntas en la base de datos y cuantas son, se mostrará el menú principal con 4 opciones bien diferenciadas. 6.1.2.1 Opción 3: Gestión de usuarios Si el usuario elige este módulo, tendrá 4 opciones para gestionar su usuario o crear uno nuevo. Dichas opciones son las que siguen.

6.1.2.1.1

Alta de un nuevo usuario

El usuario introducirá un identificador válido en el sistema, una contraseña para dicho usuario, su nombre y apellidos y su email. Además, podrá darse de alta en los temarios que existen para el sistema.

6.1.2.1.2

Baja de un usuario

Todo usuario podrá darse de baja en el sistema, con la eliminación de todos sus datos y estadísticas que tiene asociados en el sistema para cada uno de los temarios en los que estaba dado de alta. El sistema le pedirá, eso si, el identificador de dicho usuario a dar de baja y su contraseña que verifiquen que el usuario que se quiere dar de baja dice ser quien es.

6.1.2.1.3

Modificación de un usuario

Un usuario siempre podrá modificar sus datos de registro en el sistema. Además, a través de este formulario, el usuario podrá darse de baja de temarios - 47 -

que ya no utiliza o no le interesan o darse de alta en un nuevo temario al que no pertenecía.

6.1.2.1.4

Consulta de los datos de usuario en un temario concreto

Cualquier usuario podrá comprobar que datos suyos hay registrados en el sistema, y cuáles son sus probabilidades “p” de acierto, fallo y de no contestar a las preguntas en el temario que desee. Gracias a esta opción, el usuario podrá más tarde dirigirse al módulo donde se calcula la nota previsible en un examen de tipo test e introducir dichos valores cuando se los solicite el sistema. 6.1.2.2 Opción 4: Responder preguntas y actualizar tu probabilidad “p” de acertar Bajo dicha opción, el usuario podrá contestar a preguntas de tipo test del temario que elija (siempre y cuando esté dado de alta en dicho temario). El usuario podrá ver sus probabilidades “p” de acierto, fallo y de no contestar a las preguntas en el temario y cómo cambian cada vez que responde a una pregunta. Dichas probabilidades son fáciles de calcular: el sistema guarda para cada usuario el número de preguntas que ha visualizado, el número de preguntas acertadas y el número de preguntas falladas. A partir de ahí, sacará la probabilidad “p” de acierto como la división del total de preguntas acertadas entre las totales visualizadas, la probabilidad “p” de fallo como el total de las preguntas falladas entre las totales visualizadas, y la probabilidad “p” de no contestar a las preguntas como el número de preguntas que no ha contestado el usuario (las totales visualizadas menos las totales acertadas y las totales falladas) entre el número de preguntas totales visualizadas. Cuando un usuario falle una pregunta, se le mostrará un aviso antes de cambiar de pregunta con la opción que era la correcta. De esta manera podrá comprobar y pensar por qué era esa la pregunta que tenía que haber respondido. Además, podrá ver una gráfica circular en donde se muestra cómo reacciona y se distribuyen sus respuestas en un examen de tipo test: a modo de analogía - 48 -

con los colores de un semáforo, el total de las preguntas acertadas se mostrarán con color verde, las no contestadas con amarillo y las falladas en color rojo. 6.1.2.3 Opción 5: Responder preguntas previamente falladas Una vez que un usuario haya interactuado con el sistema, podremos asegurar con casi total seguridad que habrá alguna pregunta que no ha contestado correctamente. Este módulo permitirá al usuario contestar a preguntas previamente falladas en cada uno de los temarios en los que está dado de alta. El usuario siempre tendrá a la vista el número de preguntas que tiene registradas como falladas, y no se pasará a la siguiente pregunta hasta que no estudie y conteste correctamente a la pregunta que se le presenta. Esta opción será fundamental para que un usuario se entrene y no vuelva a fallar en los mismos tópicos. 6.1.2.4 Opción 6: Realizar estudios estadísticos y encuesta Hay que notar que un alumno o usuario se puede dar de alta en un temario, pero luego no contestar a ninguna pregunta en dicho temario. Estos usuarios no se tienen en cuenta a la hora de calcular las probabilidades medias o cualquier otra medida estadística que se desarrollan en esta sección. Son usuarios que distorsionarían dichas medidas, por lo que todos los usuarios que no han visualizado ninguna pregunta son descartados en todos los estudios. Siguiendo con la descripción y exposición del sistema, si el usuario elige esta opción, será reconducido a otro menú en el que elegirá que datos desea visualizar.

6.1.2.4.1

Resumen de un grupo

Un usuario siempre podrá ver diferente información de cada uno de los temarios que existe en el sistema. Dicha información consistirá en: Número de alumnos dados de alta en el temario - 49 -

Número de alumnos con probabilidad “p” de acierto mayor o igual a 0.5 Número de alumnos con probabilidad “p” de acierto mayor que 0 Probabilidad “p” de acierto más alta en el grupo Probabilidad “p” de acierto más baja en el grupo Probabilidad “p” de acierto media en el grupo

6.1.2.4.2

Gráfica de la clase

Un usuario podrá visualizar una gráfica en la que se muestra cómo se distribuyen las probabilidades “p” de acierto entre el número de alumnos, y cuántos alumnos tienen su probabilidad “p” de acierto en dicho rango. El gráfico es interactivo y se podrán visualizar hasta diez modalidades, ya sean de 2 ó 3 dimensiones. Las probabilidades “p” de acierto se agrupan de 0.1 en 0.1, y evidentemente, en un rango de 0 a 1.

6.1.2.4.3

Cuartiles y percentiles

Si el usuario lo desea, podrá visualizar los cuartiles que hay en un grupo, y solicitar cualquier percentil dentro del rango de usuarios que están dados de alta en el sistema. También podrá ver si se encuentra en el primer, segundo o tercer cuartil, y una gráfica de caja y patillas de dicho grupo respecto a las probabilidades “p” de acierto. Un punto azul mostrará la situación del usuario con respecto a dicho gráfico, y diferentes líneas mostraran la media y la mediana de la distribución. En la gráfica de caja y patillas quedan descartados los outliers, y cómo se ha comentado anteriormente, todos los usuarios que no hayan contestado a ninguna pregunta en el temario determinado. 6.1.2.5 Encuesta El sistema dispone de un importante feedback y opinión directa de los usuarios al estar ya implantado y disponer de una sección en la que se puede enviar una encuesta para valorar la herramienta, y sugerencias al respecto. - 50 -

6.2 VERSIÓN PROFESOR Al igual que en la versión alumno, nada más ejecutar la herramienta se comprobará si existe o no conexión con el servidor, y se desactivarán las opciones online en caso negativo. A continuación se muestran las diferentes opciones a las que se puede acceder en la versión profesor.

6.2.1 OPCIONES OFFLINE Las opciones offline de la versión profesor coinciden con las versiones offline de la versión alumno, descritas en la sección 6.1.1 del presente documento. Son,

- 51 -

por tanto, dos opciones en las que el profesor podrá navegar para simular diferentes exámenes de tipo test con todos los parámetros ya descritos.

6.2.2 OPCIONES ONLINE 6.2.2.1 Opción 3: Introducir nuevas preguntas en el sistema El poseedor de la versión profesor de la herramienta será un administrador o un profesor que conozca la materia. Como conocedor de la materia, se ha desarrollado este módulo para que pueda subir al sistema preguntas de cada uno de los temarios. Las preguntas deberán de ser caracteres alfanuméricos, y se necesitará siempre la respuesta a dicha pregunta para poder subirla al sistema. Este módulo ha sido verificado y depurado al máximo debido a la importancia del mismo: si se introdujeran preguntas con un mal formato, el sistema en la versión alumno no las reconocería. El profesor siempre podrá escoger el número de respuestas que desea para la pregunta, entre 2 y 4, y el sistema se ajustará a dichas respuestas en la versión alumno de manera automática. 6.2.2.2 Opción 4: Eliminar preguntas existentes en el sistema El profesor dispone de un módulo para poder visualizar todas las preguntas que hay en el sistema, y eliminarlas tras elegir su identificador numérico. Las preguntas reordenarán sus índices de manera transparente para el profesor. 6.2.2.3 Opción 5: Realizar estudios estadísticos Casi todas las opciones de la versión profesor sobre los estudios estadísticos que se pueden realizar en el sistema, están ya descritos en la sección 6.1.2.4 del presente documento. La única opción que no está disponible es la de enviar una encuesta, y las opciones extra con las que cuenta la versión profesor son las siguientes:

- 52 -

6.2.2.3.1

Preguntas falladas:

El administrador o profesor podrá visualizar para cada temario, cuáles son las preguntas más conflictivas y que número de alumnos las han fallado. Estas preguntas se mostrarán en un gráfico de manera descendente, de manera que las que primero ve el profesor son los identificadores de las preguntas que más se han fallado en un temario determinado. Además, se podrá visualizar un gráfico en el que se muestre para un conjunto de temarios o todos ellos, cuáles son los más fallados. Un profesor podrá así incidir sobre un bloque temático de la materia en mayor o menor medida si aprecia que es un bloque conflictivo o no, o potenciar ciertos conocimientos de cada temario si advierte que unas preguntas en concreto se fallan más que otras.

6.2.2.3.2

Ver Encuestas:

El poseedor de esta versión podrá ver a través de 5 diferentes gráficas cuáles son los resultados de las encuestas enviadas por los alumnos, y todas sus sugerencias. La nota sobre la calidad del programa se mostrará en un gráfico de barras de 2 dimensiones, y el resultado del resto de las preguntas serán mostrados a través de gráficos circulares.

- 53 -

6.3 DIAGRAMAS DE FLUJOS DEL SISTEMA

6.3.1 VERSIÓN ALUMNO Éste es el diagrama de flujo del programa en la versión ALUMNO:

INICIO

RED

NO

DESACTIVAR OPC’S ONLINE

SI

MENÚ PRINCIPAL

2

1

SIMULAR RESULTADOS TEST

2

OPCIÓN

1

NOTA ESPERADA TEST

6

5

OPCIÓN

3

4

GESTIÓN USUARIOS

REALIZAR TEST

RESPONDER PREG’S FALLADAS

ALTA, BAJA, MODIFICACIÓN USUARIOS, CONSULTA DE p

4

3

PROBABILIDAD DE APROBAR UN TEST

AUTENTIFICACIÓN

GRAFICA DE GRAFICA DE PROBABILIDAD PROBABILIDAD APROBAR APROBAR EXAMEN CON EXAMEN CON P FIJA VARIANDO n FIJAS VARIANDO p n

OPCIÓN

1

4

3 2 PERCENTILES

CARGAR PREG

RESUMEN GRUPO

CARGAR PREG

CONTESTAR

CALCULAR NOTA SEGÚN PARÁMETROS

ESTUDIOS ESTADÍSTICOS Y ENCUESTA

SALTAR PREG

GRÁFICAS CLASE

1

ENCUESTA

OPCIÓN

2

CUARTILES Y PERCENTILES

CAJA Y PATILLAS

GRÁFICA REACCIÓN ANTE PREG’S

BASE DE DATOS

En el anterior diagrama viene representado un esquema general de las opciones de la herramienta, y de cómo se integran todos los módulos entre sí. - 54 -

Al inicio del programa, se comprobará si hay conexión con el servidor de base de datos. Si no hay conexión, únicamente estarán disponibles las opciones 1 y 2 del menú principal. Las opciones 3, 4, 5 y 6 precisan de conexión con el servidor SQL Server para culminar sus funcionalidades. No se muestra toda la complejidad y flujos de datos del sistema debido a que se necesitarían dos hojas juntas para poder visualizarlo. En la presente memoria hay un plano adjuntado al final de la misma en el que se llega a tener una reproducción exacta del modelo. Por ejemplo, en el ejemplo anterior, es evidente que el programa comprobará si el usuario está autentificado al acceder a una de las opciones online, y le pedirá que lo haga si no lo estaba. También es evidente que el usuario podrá elegir cada uno de los temarios en cada una de las opciones online, que hay muchas más maneras de volver al menú principal y que la forma de actuar interactivamente con las gráficas es algo diferente a como se muestra en la página anterior.

- 55 -

6.3.2 VERSIÓN PROFESOR Éste es el diagrama de flujo del programa en la versión PROFESOR:

INICIO

RED

NO

DESACTIVAR OPC’S ONLINE SI

MENÚ PRINCIPAL

1

2

AUTENTIFICACIÓN

OPCIÓN

5 4 3

SIMULAR RESULTADOS TEST

1

OPCIÓN 2

NOTA ESPERADA TEST

INTRODUCIR NUEVA PREGUNTA

ESTUDIOS ESTADÍSTI COS Y ENCUESTA

ELIMINAR UNA PREGUNTA

4

1

2

OPCIÓN

4

3

PROBABILIDAD DE APROBAR UN TEST

3 GRAFICA DE PROBABILID AD APROBAR EXAMEN CON n FIJAS VARIANDO p

GRAFICA DE PROBABILID AD APROBAR EXAMEN CON P FIJA VARIANDO n

RESUMEN GRUPO

GRÁFICAS CLASE

VER ENCUESTA

PERCENTILES

OPCIÓN

CALCULAR NOTA SEGÚN PARÁMETROS

1

2

CUARTILES Y PERCENTILES

CAJA Y PATILLAS

BASE DE DATOS

- 56 -

Como se observa, el profesor podrá introducir nuevas preguntas en cualquier tabla de la base de datos, y tendrá acceso a la recopilación y resultado de las encuestas. A continuación, tras haber visualizado cada una de las secciones o módulos del programa, se muestran algunos de los algoritmos más interesantes a la hora de realizar diferentes cálculos o de obtener algunas de las gráficas más útiles del sistema.

6.4 ENTRADAS Y SALIDAS DEL SISTEMA La funcionalidad del sistema es fidedigna a la tabla que a continuación se presenta, en la que para cada módulo se establecen las entradas y las salidas del sistema. MODULO

ENTRADA A SAAPET

SALIDA DE SAAPET

Número de preguntas del test OFFLINE

Probabilidad de acierto de

Probabilidad de aprobar el

las preguntas

examen

Número de preguntas fallidas que restan una correcta Gráfica interactiva que tiene en el eje de ordenadas la OFFLINE

Número de preguntas del

probabilidad de obtener dicha

test

nota, en función de la

Nota deseada a obtener

probabilidad de acertar cada pregunta que se encuentra en el eje de abscisas

- 57 -

Gráfica que muestra la probabilidad de obtener dicha OFFLINE

Probabilidad de acierto de

nota deseada en el eje de

las preguntas

ordenadas, en función del

Nota deseada a obtener

número de preguntas que tiene el test que se muestra en el eje de abscisas

Número de opciones de respuesta que tienen las preguntas en un test Número de bloques temáticos que tiene el test

OFFLINE

Si se descuentan o no las

Nota esperada a obtener

preguntas falladas en el test

Si se aprobará o no el test

Nota necesaria para aprobar

Número más probable de

el test

preguntas a acertar en cada

Probabilidad de acierto, fallo

bloque temático

y de no contestar a las preguntas en cada bloque temático Número de preguntas de cada bloque temático Probabilidad “p” personal de acierto, fallo y de no contestar ONLINE

Identificador de usuario Elección de un temario

a las preguntas en dicho temario para el usuario proporcionado Gráfica de reacción del usuario frente a las preguntas de tipo

- 58 -

test Preguntas de tipo test del temario elegido para responder Nueva probabilidad “p” de acierto, fallo y de no contestar ONLINE

Respuesta del usuario a una

a las preguntas en dicho

pregunta de tipo test

temario Solución a la pregunta si fue fallada Número de preguntas falladas

ONLINE

Identificador de usuario

que el usuario tiene

Elección de un temario

registradas Preguntas falladas a revisar Número de alumnos registrados en dicho temario y grupo Número de alumnos con una probabilidad “p” de acierto mayor a 0.5 Número de alumnos con una

ONLINE

Grupo o temario elegido

probabilidad “p” de acierto mayor a 0 Probabilidad “p” más alta registrada en dicho grupo Probabilidad “p” más baja registrada en dicho grupo Probabilidad media de la clase descontando los alumnos con

- 59 -

una “p”=0 Gráfica interactiva (a elegir entre 11 tipos de gráfica) en ONLINE

Grupo o temario elegido

las que se muestra la distribución de probabilidades de los alumnos en intervalos de 0.1 unidades Probabilidad mínima en dicho grupo o temario elegido Probabilidad de acierto “p” en el primer cuartil para dicho grupo Probabilidad de acierto “p” en el segundo cuartil para dicho

ONLINE

Identificador de usuario Grupo o temario elegido

grupo Probabilidad de acierto “p” en el tercer cuartil para dicho grupo Probabilidad de acierto “p” máxima para dicho grupo Media de la probabilidad “p” de acierto para dicho grupo Número del cuartil en la que se encuentra el usuario

Grupo o temario elegido ONLINE

Orden k de un percentil, de 0

Percentil de orden k

a 100 ONLINE

Identificador de usuario

Gráfica de caja y patillas de la

Grupo o temario elegido

probabilidad de acierto “p”

- 60 -

para dicho grupo Situación del alumno dentro de ese gráfico de caja y patillas según su probabilidad de acierto “p” en dicho grupo Pregunta Número de posibles ONLINE (PROFESOR)

respuestas

Confirmación de registro de la

Respuestas posibles a la

pregunta en el servidor

pregunta Solución a la pregunta ONLINE (PROFESOR)

Temario

Confirmación de la eliminación

Identificador de pregunta a

de la pregunta y muestra las

eliminar

nuevas preguntas del temario Gráfica que muestra qué

ONLINE (PROFESOR)

preguntas son más conflictivas

Temario

y número de alumnos que las han fallado

- 61 -

6.5 ARQUITECTURA DEL SISTEMA Una vez descrito el sistema, se procede a la explicación de la arquitectura necesaria y utilizada para el buen funcionamiento de la aplicación.

6.5.1 ARQUITECTURA CLIENTE/SERVIDOR

Puesto 1: WINALL

BD Puesto 2: WINALL

.....

SQL Server 130.206.70.64

Puesto n: WINALL

Como

podemos observar en la anterior imagen, n puestos de trabajo podrán acceder al servidor SQL Server realizando peticiones sobre el mismo, y tener acceso de esta manera a los datos almacenados en la base de datos. Esta tecnología tiene importantes ventajas comparativas con respecto al ambiente centralizado de ejecución de operaciones en el que el servidor recibe toda la carga de procesamiento. Gracias a la arquitectura Cliente/Servidor esta carga se comparte entre el servidor y los clientes optimizando el rendimiento global de la aplicación. Los usuarios interactuarán con el sistema gracias a los mensajes que intercambiará con el servidor, y el sistema mostrará toda la información que el servidor le envíe.

- 62 -

6.5.2 TOPOLOGÍA DE LA RED El servidor SQL Server está instalado en el despacho del Departamento de Organización Industrial de la Universidad Pontificia de Comillas, (DOI), conectado a la red de personal, aunque se puede acceder a sus datos también desde la red de alumnos.

Cliente WINALL

Cliente WINALL

Cliente WINALL

Cliente WINALL

Red ALUMNOS

Word Wide Web

Cliente WINALL

Cliente WINALL

Cliente WINALL Cliente WINALL

Cliente WINALL

Cliente WINCE

WAN Cliente WINALL

DB

Firewall

Cliente WINALL

Cliente WINALL

Servidor SQL SERVER 130.206.70.64

Red PERSONAL

Cliente WINALL

Cliente WINALL

Cliente WINALL Cliente WINALL

La aplicación puede ser ejecutada desde cualquier ordenador que esté conectado a la red de la universidad Pontificia de Comillas, tanto en la red de alumnos como la de personal. Se ha limitado el acceso desde el exterior de la universidad al servidor, ya que se ha considerado que sería una fuente de ataques para hackers.

- 63 -

6.5.3 ACCESO A DATOS; ACTIVEX DATA OBJECT (ADO) Una parte importante del proyecto consiste en la conectividad y en el acceso a datos desde Visual Basic al servidor de base de datos, SQL Server. Visual Basic presenta un modelo de objetos con tres formas de acceso a datos: objetos de datos ActiveX (ADO), objetos de datos remotos (RDO) y objetos de acceso a datos (DAO). Para que SAAPET se conecte a la base de datos se ha utilizado ADODB. La tecnología ADO necesita menos memoria que DAO por lo que es más adecuado en sistemas informáticos de red que experimentan tráficos muy elevados y elevadas tasas de transacciones. Dicho componente ya desarrollado previamente, está a disposición de todos los programadores y ahorra toda la engorrosa faena de programación para que el cliente y el servidor se comuniquen. La interfaz ADO se ha diseñado como una interfaz de nivel de aplicación fácil de usar para acceso a datos, compuesta por una serie de objetos ActiveX similares a los de DAO utilizando el paradigma de acceso a datos OLE DB. OLE DB es una interfaz de programación similar a ODBC, pero está basado en COM, la tecnología de objetos de Mircosoft. Utiliza un proveedor que ofrece información y una aplicación que actúa como el cliente que necesita la información y que va a utilizar OLE DB para comunicarse con el proveedor. Proporciona un acceso de alto rendimiento a cualquier origen de datos. En nuestro caso, el proveedor será el servidor SQL Server, y la aplicación cliente el sistema, SAAPET. El sistema delega por tanto en dicho componente para que le devuelva la información solicitada.

- 64 -

Como vemos en la visual, ADO soporta diferentes lenguajes de programación, y se comunica a su vez con diferentes gestores de bases de datos. En nuestro caso, VB 6 es el entorno de programación y SQL Server nuestro gestor de bases de datos. ¿Cómo se hace para delegar dichos servicios? Existe una topología para los paquetes de clases ADODB ya definida. SAAPET trabaja con dichos interfaces; se muestran a continuación:

- 65 -

LEYENDA Clases Colecciones

6.6 DESCRIPCIÓN DE LA BASE DE DATOS Es necesario diseñar la base de datos de forma que no exista información redundante, pero que a la vez el sistema disponga de toda la información necesaria. El sistema cuenta actualmente con 20 tablas en la base de datos. Estas tablas se distribuyen según: 2 tablas fijas llamadas “alumnos” y “encuesta”. Estas tablas estarán siempre en el sistema. 3 tablas por cada temario o asignatura diferente que hay en el sistema. Actualmente el sistema cuenta con 6 temarios diferentes

- 66 -

(carnet de conducir, y los temarios de estadística siguientes: descriptiva, probabilidad, inferencia, multivariante y aplicaciones). La tabla “alumnos” guardará todos los datos personales del alumno. Sus atributos son: Id_alumno (char 30) Password (char 20), not null. Nombre (char 20) Apellidos (char 50) Email (char 100), not null. Información relevante a si pertenece a cada uno de los temarios o no (bit). De esta manera, si el usuario tiene en dicha tabla un 0 en la columna “conducir” y un 1 en la columna “descriptiva”, se le dará acceso a las gráficas y preguntas concernientes a la parte de descriptiva pero no a las del carnet de conducir. Además, si se introduce un nuevo temario en el sistema habrá que añadir una columna al final de la tabla con un nombre referente a dicho nuevo temario, para que al modificar el código fuente pueda registrar alumnos en dicho nuevo temario o establecer que no pertenecen al mismo con un 0 en el campo que debe ser de tipo bit. Será not null. La tabla “encuesta” guardará todas las encuestas que los usuarios hayan querido enviar. Su clave principal, al igual que en la tabla “alumnos”, es el identificador del usuario. ¿Y por qué no haber juntado la tabla “alumnos” con la de “encuesta”? Hubiera sido lógico ya que se está repitiendo la información del código del usuario, pero hubiera resultado conflictivo cuando un usuario se quisiera dar de baja en el sistema. Es más útil dar de baja a los usuarios que lo deseen, pero mantener siempre las encuestas que han sido enviadas para un

- 67 -

posterior tratamiento. Adicionalmente, estas encuestas tienen una naturaleza de vida diferente para el negocio que la tabla en la que están almacenados todos los usuarios del sistema. Son dos entidades claramente diferenciadas. La tabla “encuesta” guardará por tanto: Id_alumno (char 30) Utilidad (char 12) Calidad (char 3) Futuro (char 12) Ayuda (bit) Examenes (char 16) Sugerencias (char 800) Estos campos serán explicados de una manera más detallada en la sección 9.2 de la presente memoria. Una vez explicadas las 2 tablas que siempre deben de existir en el sistema, se detalla una de los grupos de tablas para un determinado temario: temario de descriptiva, de la asignatura de Estadística. Por cada temario habría que añadir estas 3 nuevas tablas, y deben de existir todas ellas para que un temario esté totalmente operativo. Una tabla de estas tres que corresponden con el temario es la llamada “pregs_descriptiva”. Es evidente que en dicha tabla estarán todas las preguntas de descriptiva. Los atributos de esta tabla son: Id_preg (smallint) Preg (char 700), not null. Opc1 (char 300), not null.

- 68 -

Opc2 (char 300), not null. Opc3 (char 300) Opc4 (char 300) Sol (tinyint), not null. Las opciones 3 y 4 pueden ser null, ya que de esta manera el sistema podrá trabajar con preguntas de 2, 3 Ó 4 opciones de preguntas a la vez. Sol guardará el número de la opción correcta, en la columna preg estará descrita la pregunta, y desde opc1 hasta opc4 cada una de las opciones de respuesta que se le proporcionarán al usuario. La segunda de las tablas que son necesarias para que un temario entre en funcionamiento es la llamada “usuarios_descriptiva”. En dicha tabla se guardará la información de las preguntas vistas, acertadas y falladas de cada usuario. Así se podrá obtener su probabilidad (p) de acierto, fallo y de no contestar a las preguntas. Cuando se elimine un usuario de la tabla de alumnos, también habrá que eliminar al usuario de esta tabla si es que estaba dado de alta en el temario de descriptiva. Sus atributos son: Id_alumno (char 30) Preg_vistas (float 8), not null. Preg_acert (float 8), not null. Preg_fall (smallint), not null. Ultima_preg (smallint), not null. Los atributos preg_vistas y preg_acert son float por una sencilla razón: cuando le preguntemos al gestor que nos dé la probabilidad (p) máxima de acierto, o cualquier otra probabilidad (p) como puede ser la de un usuario en concreto, es deseable tener una precisión mayor que si nos devolviera únicamente un tipo

- 69 -

entero, en el que las probabilidades sólo serían 1 ó 0. Se ha estimado que de momento preg_fall y ultima_preg ocupen 2 bytes en memoria, que les dará la posibilidad de tener en el sistema 65536 preguntas para cada temario. Como se puede suponer, ultima_preg es el identificador de la última pregunta que respondió el usuario en dicho temario. De esta manera, cuando vuelva a intentar realizar un test, se le mostrará la pregunta por la que iba. La tercera y última tabla necesaria para que un temario funcione es referente a las preguntas que falla un usuario. El sistema es sensible a dichos fallos, y guarda el identificador de la pregunta para que en un futuro, el usuario pueda responder a las preguntas falladas de dicho temario. Su nombre es “falladas_descriptiva”. Tiene únicamente dos atributos que forman la clave de la tabla: Id_alumno (char 30) Id_preg (smallint) Las tablas están normalizadas. Concretamente se encuentran en tercera forma normal o también llamadas de Boyce-Cod. Se muestra el esquema general de uno de los bloques temáticos, y a continuación cada uno de los temarios existentes:

- 70 -

alumnos

encuesta

PK,FK1,FK2 id_alumno

PK 0..1

passw nombre apellidos email descriptiva conducir aplicaciones inferencia probabilidad multivariante

id_alumno utilidad calidad futuro ayuda examenes sugerencias

0..1

falladas_descriptiva

usuarios_descriptiva PK,FK1

id_alumno

*

PK PK

id_alumno id_preg

pregs_descriptiva *

PK,FK1

id_preg preg opc1 opc2 opc3 opc4 sol

preg_vistas preg_acert preg_fall ultima_preg

A continuación, se muestran cada uno de los bloques de tablas que componen cada uno de los temarios: Temario del Carnet de Conducir:

usuarios_conducir PK,FK1 id_alumno

falladas_conducir PK PK

id_alumno id_preg

preg_vistas preg_acert preg_fall ultima_preg

pregs_conducir PK,FK1

id_preg preg opc1 opc2 opc3 opc4 sol

- 71 -

Temario de Probabilidad, de la asignatura de Estadística:

usuarios_probabilidad

falladas_probabilidad

pregs_probabilidad

PK,FK1 id_alumno

PK PK

PK,FK1

id_alumno id_preg

preg_vistas preg_acert preg_fall ultima_preg

id_preg preg opc1 opc2 opc3 opc4 sol

Temario de Inferencia, de la asignatura de Estadística:

usuarios_inferencia PK,FK1 id_alumno

falladas_inferencia PK PK

id_alumno id_preg

pregs_inferencia PK,FK1

preg_vistas preg_acert preg_fall ultima_preg

id_preg preg opc1 opc2 opc3 opc4 sol

Temario de Multivariante, de la asignatura de Estadística:

usuarios_multivariante

falladas_multivariante *

pregs_multivariante

PK,FK1 id_alumno

PK PK

PK,FK1

id_alumno id_preg

preg_vistas preg_acert preg_fall ultima_preg

id_preg preg opc1 opc2 opc3 opc4 sol

- 72 -

Temario de Aplicaciones, de la asignatura de Estadística:

usuarios_aplicaciones

falladas_aplicaciones *

pregs_aplicaciones

PK,FK1 id_alumno

PK PK

PK,FK1

id_alumno id_preg

preg_vistas preg_acert preg_fall ultima_preg

id_preg preg opc1 opc2 opc3 opc4 sol

Como se observa, las tablas correspondientes a un temario seguirán siempre la misma estructura.

6.7 CONSULTAS LANZADAS DESDE EL SISTEMA El lenguaje SQL está compuesto por una serie de sentencias y de cláusulas muy reducidas en número, pero muy potentes en efectividad. De entre todas las palabras, existen cuatro que son las más utilizadas normalmente, estando compuestas por una sentencia y por tres cláusulas principalmente: SELECT

lista_campos

FROM

lista_tablas

[WHERE

criterios

[ORDER

BY

lista_campos]] Para más información, consultar Benavides, Olaizola y Rivero (1991). A continuación se muestran las sentencias SQL utilizadas y el objetivo de búsqueda de las mismas. El código está escrito en Visual Basic, pero la sentencia SQL purista es fácil de calcular con la estructura proporcionada en el anterior párrafo.

- 73 -

6.7.1 VERSIÓN ALUMNO Para consultar los datos de un usuario y mostrarlo en la gestión de usuarios: rst.Source = "select nombre, apellidos, email from alumnos where id_alumno='" & login & "' and passw='" & password & "'"

Para consultar el número de preguntas vistas, acertadas y falladas de un usuario, y la última pregunta que visualizó el usuario: rst.Open = "select preg_vistas, preg_acert, preg_fall, ultima_preg from " & bd_elegida & " where id_alumno='" & login & "'"

Para cargar una pregunta, en concreto, la siguiente a la última que visualizó el usuario: rst.Open = "select preg, opc1, opc2, opc3, opc4, sol from " & preguntas_bd_elegida & " where id_preg='" & ultimaPreg & "' "

Para seleccionar un identificador de pregunta de entre las falladas de un usuario: rst.Source = "select min(id_preg) as minim from " & tbl_falladas & " where id_alumno='" & login & "'"

Para contar el número de preguntas que tiene falladas un usuario: rst.Source = "select count(id_preg) as preg_restan_fall from " & tbl_falladas & " where id_alumno='" & login & "'"

Para consultar los datos de un usuario en la gestión de usuarios, y después mostrarlos: rst.Source = "select id_alumno, passw, nombre, apellidos, email from alumnos where id_alumno='" & login & "' and passw='" & password & "'"

Para resetear las probabilidades “p” de acierto, fallo y de no contestar de un usuario en un temario en concreto: - 74 -

Set rst = cnn.Execute("update " & bd_elegida & " set preg_vistas=1, preg_acert=0, preg_fall=0 where id_alumno= '" & login & "'")

Para consultar a qué temarios pertenece un usuario en concreto: rst.Source

=

"select

id_alumno,

descriptiva,

conducir,

aplicaciones,

inferencia,

probabilidad, multivariante from alumnos where id_alumno='" & login & "' and passw='" & password & "'"

Para eliminar a un usuario de la tabla de alumnos Set rst = cnn.Execute("delete from alumnos where id_alumno='" & Text1.Text & "' and passw='" & Text2.Text & "'")

Para eliminar a un usuario de la tabla de usuarios de un temario en concreto. En este ejemplo, de la tabla de los alumnos correspondientes al temario de descriptiva: Set rst = cnn.Execute("delete from usuarios_descriptiva where id_alumno='" & Text1.Text & "'")

Para eliminar los registros correspondientes a las preguntas falladas que un usuario tiene registradas, cuando se quiere dar de baja. Set rst = cnn.Execute("delete from falladas_descriptiva where id_alumno='" & Text1.Text & "'")

Para comprobar si un determinado usuario ha enviado ya una encuesta o no: rst.Source = "select id_alumno from encuesta where id_alumno='" & login & "'"

Para comprobar si existe ya un usuario con el identificador que el usuario proporciona cuando quiere crear un nuevo usuario: rst.Source = "select id_alumno from alumnos where id_alumno='" & Text1.Text & "'"

- 75 -

Para dar de alta a un usuario en una tabla de usuarios de un determinado temario, en este caso, el temario de descriptiva. Preg_vistas, preg_acert, preg_fall y ultima_preg toman valores por defecto, explicados en la sección sobre las tablas utilizadas y la base de datos: Set

rst

=

cnn.Execute("insert

into

usuarios_descriptiva(id_alumno,

preg_vistas,

preg_acert, preg_fall, ultima_preg) values ('" & Text1.Text & "', 1, 0, 0, 1)")

Para dar de alta a un usuario en la tabla de alumnos. Los campos descriptiva, conducir, aplicaciones, inferencia, probabilidad y multivariante valdrán 1 o 0 dependiendo de si el usuario quiso o no darse de alta en dicho temario: Set rst = cnn.Execute("insert into alumnos (id_alumno, passw, nombre, apellidos, email, descriptiva, conducir, aplicaciones, inferencia, probabilidad, multivariante) values ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "', '" & alta_descriptiva & "', '" & alta_conducir & "', '" & alta_aplicaciones & "', '" & alta_inferencia & "', '" & alta_probabilidad & "', '" & alta_multivariante & "')")

Para contabilizar el número de alumnos que hay dados de alta en el sistema, en un temario en concreto: rst.Source = "select count(id_alumno) as caja_uno from " & bd_elegida & ""

Para contabilizar el número de alumnos que hay de alta en un temario y cuya probabilidad “p” de acierto es al menos 0.5: rst.Source = "select count(id_alumno) as caja_dos from " & bd_elegida & " where (preg_acert/preg_vistas)>= 0.5"

Para contabilizar el número de alumnos que hay dados de alta en un determinado temario, y que al menos han contestado a una pregunta. Esta consulta es necesaria, porque hay veces que un usuario se da de alta en un temario y que más tarde no contesta a ninguna pregunta. Si en determinadas consultas no les descartamos, los datos estarían “contaminados”:

- 76 -

rst.Source = "select count(id_alumno) as caja_tres from " & bd_elegida & " where preg_vistas> 1"

Para calcular la probabilidad de acierto “p” máxima de los alumnos en un grupo o temario determinado: rst.Source = "select max(preg_acert/preg_vistas) as caja_cuatro from " & bd_elegida & " where preg_vistas>1 "

Para calcular la probabilidad “p” mínima de acierto en un temario o grupo determinado: rst.Source = "select min(preg_acert/preg_vistas) as caja_cinco from " & bd_elegida & " where preg_vistas>1"

Para calcular la probabilidad “p” media en un grupo o temario determinado: rst.Source = "select avg(preg_acert/preg_vistas) as caja_seis from " & bd_elegida & " where preg_vistas>1"

Para actualizar los datos de un usuario: Set rst = cnn.Execute("update alumnos set nombre='" & Text3.Text & "', apellidos='" & Text4.Text & "', email='" & Text5.Text & "', descriptiva='" & alta_descriptiva & "', conducir='" & alta_conducir & "', aplicaciones='" & alta_aplicaciones & "', inferencia='" & alta_inferencia & "', probabilidad='" & alta_probabilidad & "', multivariante='" & alta_multivariante & "' where id_alumno='" & login & "' and passw='" & login & "'")

Para actualizar las preguntas vistas, acertadas y falladas de un usuario cuando contesta a una pregunta: Set rst = cnn.Execute("update " & bd_elegida & " set preg_vistas='" & pregVistas & "', preg_acert='" & pregAcert & "', ultima_preg='" & ultimaPreg & "' where id_alumno= '" & login & "'")

Para comprobar si una pregunta en concreto ya estaba registrada como fallada para el usuario que ha contestado a una pregunta: - 77 -

rst.Source = "select count(*) as reg from " & tbl_falladas & " where id_alumno='" & login & "' and id_preg=" & pregunta & ""

Para registrar una pregunta como fallada en el sistema para un usuario: Set rst = cnn.Execute("insert into " & tbl_falladas & "(id_alumno, id_preg) values ('" & login & "', '" & pregunta & "')")

Para contabilizar el número de alumnos que han interactuado con el sistema y han contestado al menos a una pregunta: rst.Source = "select count(id_alumno) as numero_alumnos from " & bd_elegida & " where preg_vistas>1"

Para calcular todas las probabilidades “p” de acierto de los usuarios en un grupo, y calcular más tarde percentiles, cuartiles y construir la gráfica de caja y patillas: rst.Source = "select preg_acert/preg_vistas as probabilidad from " & bd_elegida & " where preg_vistas>1 order by probabilidad"

Para calcular la probabilidad “p” de acierto de un temario en concreto: rst.Source = "Select preg_acert, preg_vistas from " & bd_elegida & " where id_alumno='" & login & "'"

Para calcular el número de alumnos que interactuan con un grupo y la probabilidad “p” mínima, máxima y media del grupo: rst.Source = "select count(id_alumno) as numero_alumnos, max(preg_acert/preg_vistas) as maxim, min(preg_acert/preg_vistas) as minim, avg(preg_acert/preg_vistas) as medi from " & bd_elegida & " where preg_vistas>1 "

Para eliminar una pregunta bien contestada de la tabla de falladas para un usuario: Set rst = cnn.Execute("delete from " & tbl_falladas & " where id_alumno='" & login & "' and id_preg='" & cargar_pregunta & "'")

- 78 -

Para calcular el identificador de pregunta siguiente que se tiene que mostrar a un usuario, cuando está respondiendo a preguntas registradas como falladas previamente: rst.Source = "select min(id_preg) as minim from " & tbl_falladas & " where id_alumno='" & login & "'"

Para contabilizar el número de preguntas que tiene un usuario registradas como falladas en un temario: rst.Source = "select count(id_preg) as preg_restan_fall from " & tbl_falladas & " where id_alumno='" & login & "'"

Para calcular el número de preguntas que hay en el servidor, de una tabla o temario en concreto. En el ejemplo, del temario de descriptiva: rst.Source = "select count(*) as numero_descriptiva from pregs_descriptiva"

6.7.2 VERSIÓN PROFESOR: Para contabilizar el número de encuestas totales que hay en el sistema registradas: rst.Source = "select count(*) as encuestas from encuesta"

Para traer de la base de datos las encuestas y visualizarlas en un formulario: rst.Source = "select utilidad, calidad, futuro, ayuda, examenes from encuesta"

Para pedir al servidor las sugerencias que haya registradas en el sistema y mostrarlas: rst.Source = "select sugerencias from encuesta"

Para saber cuántas preguntas hay en una tabla o temario, y calcular d eesta manera cuál será el índice de la nueva pregunta a introducir: - 79 -

rst.Source = "select count(*) as indice from " & preguntas_bd_elegida & ""

Para insertar una pregunta nueva en una tabla elegida por el administrador o profesor: Set rst = cnn.Execute("insert into " & preguntas_bd_elegida & " (id_preg, preg, opc1, opc2, opc3, opc4, sol) values ('" & indice_prox & "', '" & Text1.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & Text9.Text & "','" & Text10.Text & "', '" & Solucion & "')")

Para contabilizar el número de diferentes preguntas que se han fallado en un temario en concreto: rst.Source = "select count(distinct id_preg) as num_falladas from " & tbl_falladas & ""

Para obtener una lista ordenada de mayor a menor número de veces que se ha fallado una pregunta, ordenándose en segundo orden por el identificador de pregunta: rst.Source = "select id_preg, count(*) as num_veces_fallada from " & tbl_falladas & " group by id_preg order by 2 desc, 1 asc"

Para contabilizar el número de preguntas diferentes que se han llegado ha fallar en un temario en concreto: rst.Source = "select count(distinct id_preg) as num_falladas from falladas_descriptiva"

Para contabilizar el número total de preguntas que hay en un temario en concreto, y obtener este índice para crear un combobox con los identificadores de las preguntas: rst.Source = "select count(*) as totales from " & preguntas_bd_elegida & ""

Para obtener todas las preguntas de un temario en concreto, y mostrarlas en el módulo de eliminar preguntas de un temario: rst.Source = "select id_preg, preg, opc1, opc2, opc3, opc4, sol from " & preguntas_bd_elegida & ""

- 80 -

Para eliminar de la tabla de falladas todos los registros que tengan como identificador de usuario la pregunta que se va a eliminar: Set rst = cnn.Execute("delete from " & tbl_falladas & " where id_preg='" & Combo1.Text & "' ")

Para eliminar de la base de datos la pregunta que ha solicitado el administrador o professor: Set rst = cnn.Execute("delete from " & preguntas_bd_elegida & " where id_preg='" & Combo1.Text & "' ")

Para actualizar el identificador de pregunta de las preguntas que tenían un identificador mayor del que se ha eliminado: Set rst = cnn.Execute("update " & preguntas_bd_elegida & " set id_preg='" & k & "' where id_preg= '" & k + 1 & "'")

- 81 -

7 CÁLCULOS Y ALGORITMOS UTILIZADOS En esta sección se describirán primeramente, las fórmulas y la forma de calcular determinadas medidas según las hipótesis consideradas, y a continuación los algoritmos que a juicio del autor son los más interesantes.

7.1 PARÁMETROS DE UN EXAMEN TIPO TEST En esta sección se van a describir todos los cálculos que han sido necesarios para dar la funcionalidad requerida a la herramienta. En todo lo que sigue se dispone:

7.1.1 PROBABILIDAD DE SACAR UNA NOTA DETERMINADA EN UN EXAMEN: 7.1.1.1 Sin descontar errores Para la resolución de este apartado, debemos de definir la variable aleatoria X como “el número de aciertos en el examen de tipo test”. Esta variable aleatoria se basa en una prueba de Bernouilli, puesto que para una pregunta tendremos: Suceso A(acierto) con una probabilidad p Y Suceso Ā(fallo) con una probabilidad (1 - p)

Al ser el número de preguntas mayor que uno, y se supone que todas las preguntas son independientes la una de la otra, deberemos de aproximar la variable aleatoria por una Binomial (número de preguntas, p de acertar): - 82 -

X≈B(N, p) Por lo tanto, si queremos hallar la probabilidad de aprobar, deberemos de sacar igual o más preguntas que la mitad. Por lo tanto definimos t como el número de preguntas a acertar:

≡ (si “Nº preguntas” es impar, es evidente que hay que sumar 0.5 a t para que éste sea entero) Por lo tanto, en el caso general, para aprobar tendremos que calcular la probabilidad de que X sea mayor o igual a t. Como X se aproxima a una binomial sería:





∑ =

⎛ ⎜ ⎝

⎞ ⎟∗ ⎠





Si lo que queremos es obtener una nota determinada, un 3, por ejemplo, tendremos que cambiar la t (el número de preguntas a acertar). Podemos obtener esta t, fácilmente, mediante una regla de tres: Para sacar un 10 ----------------------------> tendré que acertar todas las preguntas Para sacar una nota en concreto ---------> tendré que acertar t preguntas



- 83 -

7.1.1.2 Descontando errores Para la resolución de este apartado, debemos de definir la variable aleatoria ≡



(La v.a. X ya está definida en el apartado anterior)

La variable aleatoria Y se aproximará por una binomial: Y≈B(Nº preg’s, 1 - p) Por tanto, para aprobar tendremos que calcular la probabilidad de que X sea mayor o igual a z. La constante t seguirá valiendo lo mismo, y z será:



∗ + +

Siendo “e” el número de preguntas mal para descontar una bien, que introducimos a través del programa. Por lo tanto, en este nuevo caso, la probabilidad de aprobar sería:





∑ =

⎛ ⎜ ⎝

⎞ ⎟∗ ⎠





Al igual que en el caso anterior, en el que no se descuentan los errores, para sacar una cierta nota esperada únicamente habría que cambiar el número de preguntas a acertar: t. No se muestra el desarrollo de cálculo de dicha t si se descuentan errores debido a que el sistema no utiliza dicha fórmula. En las gráficas de cálculo de probabilidad de obtener una cierta nota, no se contabilizan

- 84 -

las preguntas falladas. El sistema cuenta con un módulo offline para calcular la probabilidad de aprobar un examen contabilizando las preguntas falladas.

7.1.2 NOTA ESPERADA EN UN TEST Teniendo ya descrita la sección del programa donde el usuario puede elegir como parámetros: El número de las preguntas de un test La probabilidad p de acertar cada pregunta (suponiendo las preguntas independientes) El número de errores que descontaban una pregunta bien respondida, obteniendo como salida la probabilidad de aprobar un examen de tipo test, es decir, de acertar al menos la mitad de las preguntas, es necesario definir los procedimientos e hipótesis sobre los que la herramienta se basa para obtener la nota esperada en un test y la moda. Vamos a tratar el problema en 3 grandes apartados: Suponiendo que tenemos un único bloque de preguntas, mismo temario. Suponiendo que tenemos dos bloques de preguntas o de temario diferente Suponiendo que tenemos k bloques de preguntas o de temario diferente. Para cada uno de los bloques, se especificará como obtener la nota esperada descontando errores y sin descontar errores. 7.1.2.1 Nota esperada con un único bloque de preguntas: Entradas al sistema por parte del usuario:

- 85 -

Número de preguntas del examen, n. Número de opciones que tendrán las preguntas, op. (Está op vendrá del sistema por defecto a la hora de ejecutar un test o pre-test online). ¿Descuentan los errores (si/no)?

7.1.2.1.1

Descontando errores:

Suponemos todas las preguntas independientes. Si el test tiene n preguntas, estas se distribuirán según: na, número de preguntas Acertadas nf, número de preguntas Falladas nnc, Número de preguntas No Contestadas Es trivial que n = na + nf + nnc Y a partir de estas preguntas podremos desglosar tres tipos de probabilidades p: pa = Probabilidad de acierto = pf = Probabilidad de fallo =

na n

nf n

pnc = Probabilidad de no contestar =

nnc n

Es igualmente trivial que pa + pf + pnc = 1 Nos basaremos en las acertadas y en las falladas para obtener la nota esperada ya que las no contestadas se podrían deducir a partir de ellas. Definimos las variables aleatorias A y F como: A = Número de aciertos ≅ B(n, pa) - 86 -

F = Número de fallos ≅ B(n, pf) Siendo A y F dos variables aleatorias dependientes, y op el número de opciones de respuestas posibles en las preguntas. La nota esperada con dichos parámetros descontando errores sería:

pf ⎞ ⎛ ⎟ NE de = n × ⎜⎜ p a − op − 1 ⎟⎠ ⎝

7.1.2.1.2

Sin descontar errores:

A la hora de no descontar los errores, únicamente se tendría en cuenta pa ya que no

importa

las

que

se

dejen

sin

contestar

o

se

fallen.

Por tanto, la nota esperada sin descontar errores sería muy sencilla de calcular:

NE sde = n × p a

7.1.2.2 Nota esperada con dos bloques de preguntas: Entradas al sistema por parte del usuario: Número de preguntas en el examen del bloque 1, n1 Número de preguntas en el examen del bloque 2, n2 Número de opciones que tendrán las preguntas, op. (Está op vendrá del sistema por defecto a la hora de ejecutar un test o pre-test online. Además, debe ser común a los dos bloques del universo del discurso). ¿Descuentan los errores (si/no)? (Debe ser común a los dos bloques del universo del discurso.).

7.1.2.2.1

Descontando errores:

Suponemos todas las preguntas independientes. - 87 -

La Nota Esperada tendrá en cuenta las probabilidades de acierto en cada uno de los bloques y el número de preguntas en cada parte. De esta manera, un examen de dos partes en el que el alumno tuviera una probabilidad p de acierto de 0,88 en un bloque con 5 preguntas y una probabilidad de acierto p de 0,12 en un bloque de 50 preguntas, estaría predestinado a suspender. La nota esperada será por tanto la suma de cada una de las notas esperadas en cada parte teniendo en cuenta el número de preguntas de dicha parte.

NE de = NE1de + NE 2 de

Siendo:

NE1de : Nota Esperada del bloque 1 descontando errores:

Si el primer bloque del test tiene n1 preguntas, estas se distribuirán según: na1, número de preguntas Acertadas en el bloque 1 nf1, número de preguntas Falladas en el bloque 1 nnc1, Número de preguntas No Contestadas en el bloque 1 Es trivial que n1 = na1 + nf1 + nnc1 Y a partir de estas preguntas podremos desglosar tres tipos de probabilidades p en el bloque 1:

- 88 -

pa1 = Probabilidad de acierto = pf1 = Probabilidad de fallo =

na1 n1

nf1 n1

pnc1 = Probabilidad de no contestar =

n nc1 n1

Es igualmente trivial que pa1 + pf1 + pnc1 = 1 Definimos las valiables aleatorias A1 y F1 como: A1 = Número de aciertos en el bloque 1 ≅ B(n1, pa1) F1 = Número de fallos en el bloque 1 ≅ B(n1, pf1) Siendo A1 y F1 dos variables aleatorias dependientes. La nota esperada con dichos parámetros descontando errores en el bloque 1 sería:

NE 1de =

n1 ntotalesTest

pf1 ⎞ ⎛ ⎟ × ⎜⎜ p a1 − op − 1 ⎟⎠ ⎝

NE 2de : Nota Esperada del bloque 2 descontando errores:

Si el segundo bloque del test tiene n2 preguntas, estas se distribuirán según: na2, número de preguntas Acertadas en el bloque 2 nf2, número de preguntas Falladas en el bloque 2 - 89 -

nnc2, Número de preguntas No Contestadas en el bloque 2 Es trivial que n2 = na2 + nf2 + nnc2 Y a partir de estas preguntas podremos desglosar tres tipos de probabilidades p en el bloque 2:

pa2 = Probabilidad de acierto = pf2 = Probabilidad de fallo =

na 2 n2

nf 2 n2

pnc2 = Probabilidad de no contestar =

nnc 2 n2

Es igualmente trivial que pa2 + pf2 + pnc2 = 1 Definimos las valiables aleatorias A2 y F2 como: A2 = Número de aciertos en el bloque 2 ≅ B(n2, pa2) F2 = Número de fallos en el bloque 2 ≅ B(n2, pf2) Siendo A2 y F2 dos variables aleatorias dependientes. La nota esperada con dichos parámetros descontando errores en el bloque 2 sería:

NE 2de =

n2 ntotalesTes t

pf 2 ⎞ ⎛ ⎟ × ⎜⎜ pa 2 − op − 1 ⎟⎠ ⎝

Nota Aclarativa: - 90 -

Lo que realmente estamos haciendo en este apartado de calcular la nota esperada con dos bloques temáticos diferentes, es definir una variable aleatoria At como el número de aciertos en total de la prueba, y Ft como el número de fallos totales en la prueba. At = Número de aciertos en la prueba en total ≅ B(n1 + n2, p*)

Siendo p ∗ =

n2 n1 × p a1 + × pa2 n1 + n2 n1 + n2

Ft = Número de fallos totales en la prueba en total ≅ B(n1 + n2, p**)

Siendo p ∗∗ =

n2 n1 × pf1 + × pf2 n1 + n2 n1 + n 2

Y remitirnos de esta manera al caso inicial en el que tenemos 1 único bloque. (Nota esperada con un único bloque de preguntas:) En el que la Nota Esperada sería: pf ⎞ ⎛ ⎟⎟ , siendo pa = p* y pf = p** NE de = n × ⎜⎜ p a − op − 1 ⎠ ⎝

7.1.2.2.2

Sin descontar errores:

La nota esperada sería la suma de las notas esperadas en cada parte, teniendo en cuenta el número de preguntas de dichas partes.

NE sde = NE1sde + NE 2 sde

- 91 -

Siendo:

NE1sde : Nota Esperada del bloque 1 sin descontar errores: A la hora de no descontar los errores, únicamente se tendría en cuenta pa1 ya que no importa las que se dejen sin contestar o se fallen. Por tanto, la nota esperada sin descontar errores en el bloque 1 sería muy sencilla de calcular: NE1sde =

n1 ntotalesTest

× p a1

NE 2sde : Nota Esperada del bloque 2 sin descontar errores: A la hora de no descontar los errores, únicamente se tendría en cuenta pa2 ya que no importa las que se dejen sin contestar o se fallen. Por tanto, la nota esperada sin descontar errores en el bloque 2 sería muy sencilla de calcular: NE 2 sde =

n2 ntotalesTest

× pa2

7.1.2.3 Nota Esperada con k bloques de preguntas: Entradas al sistema por parte del usuario: Número de bloques del examen, k Número de preguntas en el examen del bloque 1, n1 Número de preguntas en el examen del bloque 2, n2 .........

Número de preguntas en el examen del bloque k, nk Número de opciones que tendrán las preguntas, op. (Está op vendrá del sistema por defecto a la hora de ejecutar un test o pre-test online. Además, debe ser común a los k bloques del universo del discurso).

- 92 -

¿Descuentan los errores (si/no)? (Debe ser común a los dos bloques del universo del discurso.).

7.1.2.3.1

Descontando errores:

Suponemos todas las preguntas independientes. La Nota Esperada tendrá en cuenta las probabilidades de acierto en cada uno de los bloques y el número de preguntas en cada parte. La nota esperada será, por tanto, la suma de cada una de las notas esperadas en cada parte teniendo en cuenta el número de preguntas de dicha parte.

NE de = NE1de + NE 2 de + ...... + NE kde

Siendo:

NE1de : Nota Esperada del bloque k descontando errores:

Si el j-ésimo bloque del test tiene nj preguntas, con j=1, ...., k, estas se distribuirán según: naj, número de preguntas Acertadas en el bloque j nfj, número de preguntas Falladas en el bloque j nncj, Número de preguntas No Contestadas en el bloque j Es trivial que nj = naj + nfj + nncj Y a partir de estas preguntas podremos desglosar tres tipos de probabilidades p en el bloque j:

- 93 -

paj = Probabilidad de acierto = pfj = Probabilidad de fallo =

naj nj

n fj nj

pncj = Probabilidad de no contestar =

nncj nj

Es igualmente trivial que paj + pfj + pncj = 1 Definimos las valiables aleatorias Aj y Fj como: Aj = Número de aciertos en el bloque j ≅ B(nj, paj) Fj = Número de fallos en el bloque j ≅ B(nj, pfj) Siendo Aj y Fj dos variables aleatorias dependientes. La nota esperada con dichos parámetros descontando errores en el bloque k sería:

NE jde =

nj ntotalesTest

p fj ⎞ ⎛ ⎟ × ⎜⎜ paj − op − 1 ⎟⎠ ⎝

Siendo j=1, ...., k.

7.1.2.3.2

Sin descontar errores:

La nota esperada sería la suma de las notas esperadas en cada parte, teniendo en cuenta el número de preguntas de dichas partes.

NE sde = NE1sde + NE 2 sde + ...... + NE kde

- 94 -

Para j=1, ...., k, siendo:

NE jsde : Nota Esperada del bloque j sin descontar errores: A la hora de no descontar los errores, únicamente se tendría en cuenta paj ya que no importa las que se dejen sin contestar o se fallen. Por tanto, la nota esperada sin descontar errores en el bloque j sería muy sencilla de calcular: NE jsde =

nj ntotalesTest

× paj

7.2 ALGORITMOS En esta sección se incluyen algunos de los algoritmos más interesantes y la solución dada a algunos de los problemas que se presentaron, como por ejemplo, a la hora de representar valores gráficamente.

7.2.1 ALGORITMOS OFFLINE: Basándonos en las funciones y cálculos descritos en la sección 7, se describen los algoritmos offline más interesantes: 7.2.1.1 GRÁFICAS DE LA PROBABILIDAD PARA OBTENER UNA NOTA ESPERADA Como está descrito en la sección 7.1.1, el sistema es capaz de calcular la probabilidad de sacar una nota determinada en un examen de tipo test.

7.2.1.1.1

Para un número fijo de preguntas

- 95 -

//Defino la matriz donde voy a guardar todas las probabilidades como una nube //de puntos //La matriz tiene 99 filas y 2 columnas: //(probabilidad de acierto en cada pregunta, probabilidad de obtener la nota //deseada) matriz(98, 1) como real A=0 //Calculo el número de preguntas a acertar //t será la parte entera de la división //z será la división real con decimales t = (NroPreguntasTest * NotaDeseada) \ 10 z = (NroPreguntasTest * NotaDeseada) / 10 //Si la parte entera de la división no coincide con la división real, tendremos que //acertar una pregunta más para obtener la nota deseada. Por ejemplo, para //sacar una nota de 3 con un test de 13 preguntas, se necesitarían acertar 3,9 //preguntas. Como una pregunta se acierta o no se acierta, en realidad se deben //de acertar 4 preguntas. Si t =! z entonces t=t+1 Fin si //Ahora se calcula la probabilidad de acertar t preguntas según la probabilidad //de acierto de cada pregunta p. (Descrito en la sección 7.1.1) Para p = 0.01 hasta 1 , p=p+0.01 //pongo a 0 el contenido de la variable prob = o //calculo la probabilidad de sacar t preguntas con la p del bucle en la que //se encuentra

- 96 -

Para i = t hasta NroPreguntasTest, i=i+1 j = Factorial(NroPreguntasTest) k = Factorial(i) l = Factorial(NroPreguntasTest - i) prob = prob + (j / (l * k)) * (p) ^ i * (1 - p) ^ (NroPreguntasTest i) Siguiente i //Inserto la pareja (probabilidad de acertar cada pregunta, probabilidad de //obtener la nota esperada) en la matriz matriz(A, 0) = p matriz(A, 1) = prob //añado una unidad al índice de la matriz A=A+1 Siguiente p //Cuando tengo toda la nube de puntos en la matriz, delego en un componente //OCX incluido en el entorno de desarrollo para que dibuje la gráfica PuntosGráfica = matriz

7.2.1.1.2

Para una probabilidad fija de acertar cada pregunta

//Defino la matriz donde voy a guardar todas las probabilidades como una nube //de puntos //La matriz tiene 50 filas y 2 columnas: //(probabilidad de acierto en cada pregunta, probabilidad de obtener la nota //deseada) matriz(49, 1) como real A=0 //Se calcula la probabilidad de sacar la nota esperada según el número de //preguntas del test Para NroPreguntasTest=1 hasta 50, NroPreguntasTest=NroPreguntasTest+1 - 97 -

//pongo a 0 el contenido de la variable prob Prob=0 //Calculo el número de preguntas a acertar //t será la parte entera de la división //z será la división real con decimales t = (NroPreguntasTest * NotaDeseada) \ 10 z = (NroPreguntasTest * NotaDeseada) / 10 //Si la parte entera de la división no coincide con la división real, //tendremos que acertar una pregunta más para obtener la nota deseada. //Por ejemplo, para sacar una nota de 3 con un test de 13 preguntas, se //necesitarían acertar 3,9 preguntas. Como una pregunta se acierta o no //se acierta, en realidad se deben de acertar 4 preguntas. Si t =! z entonces t=t+1 Fin si //Ahora se calcula la probabilidad de acertar t preguntas según el número //de preguntas del test. (Descrito en la sección 7.1.1) Para i=t hasta NroPreguntasTest , i=i+1 //calculo la probabilidad de acertar t preguntas con según el //número de preguntas del test del bucle en la que se encuentra, //teniendo fija la probabilidad de acierto de cada pregunta Para i = t hasta NroPreguntasTest, i=i+1 j = Factorial(NroPreguntasTest) k = Factorial(i) l = Factorial(NroPreguntasTest - i) prob = prob + (j / (l * k)) * (ProbabilidadCadaPregunta) ^ i *

(1

-

ProbabilidadAciertoCadaPregunta)

(NroPreguntasTest - i)

- 98 -

^

Siguiente i //Inserto la pareja (Número de preguntas del test, probabilidad de //obtener la nota esperada) en la matriz matriz(A, 0) = NroPreguntasTest matriz(A, 1) = prob * 100 //Añado una unidad al índice de la matriz A=A+1 //añado una unidad al índice de la matriz A=A+1 Siguiente p //Cuando tengo toda la nube de puntos en la matriz, delego en un componente //OCX incluido en el entorno de desarrollo para que dibuje la gráfica PuntosGráfica = matriz

7.2.1.1.3

Para calcular la nota esperada en un test

No se utiliza ningún algoritmo en especial, sino la aplicación de las fórmulas expuestas y explicadas en la sección 7.1.2 de la presente memoria.

7.2.2 ALGORITMOS ONLINE 7.2.2.1.1

Para calcular la “p” de acierto, fallo y de no contestar ante

las preguntas de tipo test Como ha quedado descrito en la sección 6.6, un usuario tendrá registradas en la base de datos el número de preguntas que ha visto, las que ha fallado y las que ha acertado en un temario en concreto. El sistema se basa de dichos datos para calcular el número de preguntas no contestadas como: Preguntas no contestadas = preguntas vistas – preguntas falladas – preguntas acertadas

- 99 -

Las probabilidades “p” de acierto, fallo y de no contestar son fáciles de obtener llegados a este punto: únicamente hay que dividir el número de preguntas de la “p” que queramos calcular entre el número de preguntas totales. Es decir:

na n

pa = Probabilidad de acierto = pf = Probabilidad de fallo =

nf n

pnc = Probabilidad de no contestar =

7.2.2.1.2

nnc n

Para calcular los percentiles

//Hay que obtener de la base de datos el número de alumnos totales en el //grupo, y que al menos hayan contestado a una pregunta select count(id_alumno) as numero_alumnos from " & bd_elegida & " where preg_vistas>1 //Almaceno en una variable el orden del percentil que ha pedido el usuario percentil = Orden del percentil a elección del usuario //Calculo hasta cuando se tiene que ir recorriendo la tabla de probabilidades //según el percentil que me han solicitado y el número de alumnos totales parar_bucle = percentil * numero_alumnos / 100 //Si el resto de Percentil*numero_alumnos entre 100 es 0, significa que habrá //que continuar un registro más una vez que el bucle se pare, y además habrá //que modificar el valor de parada del bucle, puesto que habrá que quitarle los //decimales del valor de parada (no se puede hacer un bucle desde 1, hasta 3.5, //por ejemplo). Si (percentil * numero_alumnos) Mod 100 0 Entonces var = (percentil * numero_alumnos) Mod 100 var = var / 100 parar_bucle = parar_bucle - var - 100 -

siguiente = verdadero //Si el resto si es 0, no habrá que continuar a un nuevo registro para calcular el //percentil Sino siguiente = falso Fin si //Calculo el percentil solicitado ahora que se donde pararme. Solicito la tabla de //probabilidades de los alumnos que al menos han contestado a una pregunta, y //en orden ascendente. select preg_acert/preg_vistas as probabilidad from " & bd_elegida & " where preg_vistas>1 order by probabilidad //Recorro la tabla hasta que el bucle se pare en el sitio calculado Para i = 1 hasta parar_bucle - 1 De 1 en 1 Mover al siguiente registro de la tabla Siguiente i //Cuando haya recorrido toda la tabla hasta pararme en el sitio preciso, miro a //ver si necesito moverme a un registro siguiente o no según lo calculado al //principio del algoritmo: Si siguiente = verdadero entonces Mover al siguiente registro de la tabla percentil = probabilidad Sino percentil = probabilidad Fin si //Además, hay que tratar el caso en el que se pida un percentil muy bajo, y que //la variable parar_bucle sea 0. En ese caso, el percentil sería el primer registro //de la tabla de probabilidades solicitada. Lo haremos con las siguientes //instrucciones.

- 101 -

Si parar_bucle = 0 entonces Mover al siguiente registro percentil = probabilidad Fin si //Finalmente lo mostramos por pantalla: Mostrar percentil

7.2.2.1.3

Para realizar el gráfico de caja y patillas

Para realizar el gráfico de caja y patillas de las probabilidades de acierto “p” en un grupo se necesitará hallar las siguientes medidas : Las probabilidades “p” máxima y mínima del grupo, la media de probabilidades “p” del grupo y medidas de posición relativa. Estas medidas son también llamadas cuantilas, cuantiles o fractiles y cuyo objetivo es describir el comportamiento de una variable dividiendo la serie de valores en diferente número de partes porcentualmente iguales. En nuestro caso calcularemos los tres cuartiles. Éstos son aquellos números que dividen a éstas en cuatro partes porcentualmente iguales. Hay tres cuartiles, Q1, Q2 y Q3. El primer cuartil Q1, es el valor en el cual o por debajo del cual queda aproximadamente un cuarto (25%) de todos los valores de la sucesión (ordenada); El segundo cuartil Q2 es el valor por debajo del cual queda el 50% de los datos (Mediana), el tercer cuartil Q3 es el valor por debajo del cual quedan las tres cuartas partes (75%) de los datos. Las tres primeras medidas a obtener se pueden solicitar fácilmente al servidor SQL Server a través de una consulta. Las siguientes tres medidas, Q1, Q2 y Q3 no son más que calcular los percentiles de orden 25, 50 y 75 de la forma descrita en la sección anterior, 7.2.2.1.2. - 102 -

Una vez que se tienen todas las medidas, hay que representarlas en el formulario. Hay creado un gráfico de caja y patillas genérico que servirá de modelo para los demás. Se muestra a continuación:

Podemos observar que la línea horizontal que medirá el mínimo y el máximo están precisamente en los valores de probabilidades mínimos y máximos: 0 y 1. Esta línea servirá para representar las patillas de la gráfica. La caja que medirá dónde están situadas la mayoría de las probabilidades “p” de acierto de los alumnos (el recorrido intercuartílico) tiene una altura fijada, y simplemente se estrechará o se ampliará según convenga. Lo mismo pasará con la línea horizontal que mide el mínimo y el máximo. Esto es gracias a dos propiedades de los objetos de tipo shape en Visual Basic:

- 103 -

Left: establecerá dónde se tiene que empezar a pintar el objeto. Width: establecerá cuál tiene que ser el ancho del objeto La línea roja y azul representarán la mediana y la media de las probabilidades de acierto “p”, y se moverán ene el eje de las X según sus propiedades: X1: establecerá en que punto del eje de abscisas X hay que situar el extremos superior de la línea. X2: establecerá en que punto del eje de abscisas X hay que situar el extremo inferior de la línea. Por tanto, lo único que se hace es estrechar la línea horizontal que representa las patillas según el mínimo y el máximo y la caja según el recorrido intercuartílico dentro de los valores que sean necesarios. Estas propiedades empiezan a contar en 0 en el punto donde se establece las probabilidades mínimas, que es el comienzo del picture box en el que están contenidos. Por último, al igual que se mueven en el eje de las X las líneas de la media y la mediana, hay que mover el punto azul que representa la probabilidad “p” de acierto del usuario en el eje de las X según su valor. Se muestran las operaciones a realizar una vez obtenidos las medidas necesarias: (Nota: los valores se multiplican por 10000 para que se ajusten a la escala de pixels de Visual Basic). //Defino los máximos y mínimos, teniendo en cuenta outliers si los hubiera recorrido_intercuartilico = cuartil_tres - cuartil_uno

- 104 -

Si maximo - cuartil_tres > (3 / 2) * recorrido_intercuartilico entonces maximo = ((3 / 2) * recorrido_intercuartilico) + cuartil_uno Fin si Si cuartil_uno - minimo > (3 / 2) * recorrido_intercuartilico entonces minimo = (3 / 2) * recorrido_intercuartilico Fin si //Muevo el punto azul en el eje de abscisas según sea la probabilidad del usuario PuntoAzul.Left = probabilidad_usuario * 10000 //Estrecho la línea con respecto a las probabilidades mínimas y máximas //calculadas LineaPatillas.X1 = minimo * 10000 LineaPatillas.X2 = maximo * 10000 //Fijo la barra vertical en el extremo de la patilla que representa el mínimo LineaBarraMínimo.X1 = minimo * 10000 LineaBarraMínimo.X2 = minimo * 10000 //Fijo la barra vertical en el extremo de la patilla que representa el máximo LineaBarraMáximo.X1 = maximo * 10000 LineaBarraMáximo.X2 = maximo * 10000 //Fijo la posición y ancho de la caja Caja.Left = cuartil_uno * 10000 Caja.Width = 10000 * recorrido_intercuartilico //Fijo la línea que representa a la mediana LineaMediana.X1 = cuartil_dos * 10000 LineaMediana.X2 = cuartil_dos * 10000 //Fijo la línea que representa a la media LineaMedia.X1 = media * 10000 LineaMedia.X2 = media * 10000

- 105 -

No hay que modificar ninguna otra propiedad para ningún objeto de la gráfica. El resto de propiedades ya están definidas por defecto en el prototipo de gráfico de caja y patillas, y por supuesto, tampoco hay que mover ningún objeto con respecto al eje de ordenadas.

- 106 -

8 MANTENIMIENTO

8.1 DIRECTRICES PARA LA CREACIÓN DE USUARIOS Al estar la herramienta implantada y el gestor de base de datos configurado, SAAPET está listo para que cualquier alumno pueda utilizarlo en cualquier pc que hay instalado en la escuela, tanto en la red de personal como en la de alumnos. Es

de

agrado

para

los

diferentes

profesores

de

los

diferentes

temarios/asignaturas el saber cómo están sus alumnos en un determinado momento. El problema deriva en que a veces hay diferentes profesores en diferentes grupos, y que el nivel académico alcanzado por los alumnos varía de un año para otro. Se plantea por tanto una necesidad de tener almacenados los datos de los alumnos cada curso y por cada grupo, para poder compararlos y sacar mejores conclusiones. Para poder agrupar estos usuarios por grupos o por cursos o incluso por titulaciones, se propone usar el lenguaje de consulta estructurado SQL. Este lenguaje permite solicitar al servidor que proporcione listas de los usuarios de un determinado grupo, curso, titulación o año académico. Para ello se utilizarán funciones y cláusulas propias del SQL que se detallan en la sección 6.7 Para poder gestionar administrativamente los usuarios de una manera eficiente, se plantean unas directrices a seguir para la creación de los usuarios: Los usuarios que deseen utilizar la herramienta sin pertenecer a ningún grupo o asignatura en concreto, podrán utilizar el identificador de usuario (login) que deseen al registrarse en el sistema, con la única condición de que no exista ya para otro usuario. - 107 -

Los usuarios que pertenezcan a una asignatura en concreto, deberán seguir unas normas para la creación un usuario, a solicitud del profesor. El identificador de usuario debería de estar compuesto de la siguiente forma: Titulación a la que pertenece + Curso académico + Año académico en el que se encuentran + Grupo al que pertenecen en dicho curso + “guión“ + login identificador A continuación se detallan las diferentes posibilidades para cada una de las partes de dicho identificador:

TITULACIÓN A LA QUE PERTENECE IIND

Ingeniero Industrial

IINF

Ingeniero en Informática

IOI

Ingeniero en Organización Industrial

IAEI

Ingerniero en Automática y Electrónica Industrial

ITIE

Ingeniero Técnico Industrial, Especialidad en Electricidad

ITIEI

Ingeniero Técnico Industrial, Especialidad en Electrónica Industrial

ITIM

Ingeniero Técnico en Informática de Mecánica

ITIG

Ingeniero Técnico en Informática de Gestión

ITIS

Ingeniero Técnico en Informática de Sistemas

...

........... CURSO ACADÉMICO 0405 O5O6 ....

- 108 -

AÑO ACADÉMICO EN EL QUE SE ENCUENTRA 1 2 3 4 5 GRUPO EN EL QUE SE ENCUENTRA A B C D E ... Ejemplos para el identificador de la creación de un usuario: NOTA: el sistema no es case sensitive, por lo que no diferencia mayúsculas y minúsculas a la hora de autentificar el login y password de los usuarios. Un alumno de 3er curso de Ingeniería Industrial, y perteneciente al grupo C en la asignatura de estadística este año, tendría un identificador como sigue: IIND04053C-pepito Un alumno de 2do curso de Ingeniería Industrial, y perteneciente al grupo A, tendría un identificador como sigue: iind04052a-juanito

- 109 -

Un alumno de 4to curso de Ingeniería Informática, y perteneciente al grupo B, tendría un identificador como sigue: iinf04054b-200201384

Evidentemente, para facilitar la labor al usuario, estas directrices deberían de ser comunicadas por parte del profesor, aunque un usuario siempre podría desobedecerlas e ir por libre para llegar a calcular sus propias probabilidades “p” de acierto, fallo y de no contestar a las preguntas. De esta manera, en el caso anterior, el identificador únicamente sería “pepito”, “juanito” o 200201384, y el profesor no tendría constancia de si ese alumno pertenece o no a su grupo de alumnos.

- 110 -

8.2 PASOS PARA INTRODUCIR UN NUEVO TEMARIO

8.2.1 En el servidor SQL Server, en la base de datos: Agregar una tabla en la base de datos, en el servidor SQL Server que tenga de nombre “pregs_TEMARIO”. Dicha tabla tendrá un identificador de pregunta, un campo para la pregunta en cuestión, cuatro campos para cada una de las preguntas posibles y un campo numérico indicando si la solución correcta es la 1, la 2, la 3 o la 4. Se muestra un ejemplo del diseño de la tabla de estadística, del tema de “descriptiva”:

- 111 -

Es el momento de introducir las preguntas en la base de datos Una vez que haya terminado, continúe con este procedimiento. En la tabla de alumnos de la base de datos, habrá que añadir un atributo más. Este atributo será un smallint según la terminología sql server, y tendrá de nombre un identificativo que valdrá para saber si dicho usuario está dado de alta (el campo valdrá 1) o no (el campo valdrá 0) en dicha tabla de preguntas. Este nombre podría ser “descriptiva” si nos referimos a preguntas de estadística de los temas de descriptiva, o “conducir” si nos referimos a preguntas del test de conducir. En este resumen, la llamaremos “TEMARIO” como nombre genérico. Cuando se amplíe dicha tabla, habrá que ejecutar una sentencia SQL o hacerlo manualmente, para insertar un 0 a todos los alumnos existentes. Por defecto, ese valor valdrá NULL. La sentencia a ejecutar será: UPDATE ALUMNOS SET TEMARIO=0 Se debe de crear una nueva tabla de usuarios para dicho temario. Tendrá de nombre: “usuarios_TEMARIO”, y vendrá definida como sigue en el siguiente ejemplo del tema de “descriptiva” en la asignatura de estadística.

- 112 -

Esta tabla guardará, para cada alumno en cada temario, el número de preguntas que ha visualizado, cual fue la última pregunta que vio, el número de preguntas que acertó y las que falló. Se necesita también la creación de una nueva tabla en la que se albergarán, para cada temario, las preguntas que preguntas ha fallado cada usuario. Esta tabla tendrá de nombre falladas_TEMARIO, y como clave principal ambos atributos de la tabla simultáneamente:

- 113 -

8.2.2 En el programa: 8.2.2.1 En el interfaz del programa:

Habrá que cambiar ciertos interfaces de usuarios. Habrá que añadir un nuevo “optionbutton” en el formulario 14 . Dicho “optionbutton” tendrá en la propiedad “caption” una frase o nombre que identifique a la nueva tabla/temario de preguntas.

- 114 -

También habrá que modificar los formularios 18 y 20. En dichos formularios, habrá que añadir en el “frame2”, un nuevo “checkbox” que tenga en la propiedad “caption” una frase o nombre que identifique a la nueva tabla/temario de preguntas.

Una vez retocados los interfaces, sólo queda modificar algunas líneas de código del programa para que este nuevo temario se tenga en cuenta. - 115 -

8.2.2.2 En el código fuente del programa: Habrá que establecer diferentes variables globales del programa: Public num_pregs_TEMARIO As Integer Public alta_TEMARIO as Integer Public pertenece_TEMARIO As Bolean

Son variables que me ayudarán a controlar el número de preguntas que tiene un determinado temario, y si un usuario está dado de alta o no en dicho temario o lo quiere hacer. En el formulario inicial del programa, llamado “Titulo_del_Programa”, habrá

que

darle

valor

a

la

nueva

variable

global

definida:

“num_pregs_TEMARIO”. El valor de dicha variable es modificado única y exclusivamente en el método “form_load” del primer formulario. Se le dará el valor de “número de preguntas en la base de datos + 1”. Esta unidad adicional que se le añade es debido a que se hace una lectura anticipada de las preguntas y una vez respondida, se calcula si se ha llegado a la última tupla de la tabla o no. En caso de haber llegado a la última tupla, el programa modificará en la base de datos que para dicho usuario se le debe mostrar como siguiente pregunta la número 1 de la tabla. El programa únicamente llegará a calcular el número de preguntas de cada temario si hay conexión a internet. Evidentemente, no sirve de nada tener calculadas el número de preguntas si no hay conexión, puesto que no se podría a acceder a la zona On-Line en la que se pueden realizar test. Habrá que añadir las siguientes instrucciones bajo la opción de que la variable conexión valga “true”: rst.Source = "select count(*) as numero_TEMARIO from pregs_TEMARIO"

- 116 -

rst.Open num_pregs_TEMARIO = rst.Fields("numero_TEMARIO") + 1 rst.Close

En el form12, tras hacer clic sobre cambiar usuario, antes de delegar responsabilidades al formulario 16 habrá que poner la variable Pertenece_TEMARIO=false

En el formulario13, si se quieren modificar los datos y el usuario ya está autentificado, habrá que añadir el siguiente código antes de pasar al formulario 20, en el que el usuario podrá modificar sus datos: If pertenece_TEMARIO = True Then Form20.Check X(donde x es el número del nuevo optionbutton).Value = 1 Else Form20.Check X(donde x es el número del nuevo optionbutton).Value = 0 End If

En el formulario 14, dichas líneas en el método “form load”: Option X(donde x es el número del nuevo optionbutton).Value = False If pertenece_TEMARIO = False Then Option X(donde x es el número del nuevo optionbutton).Enabled = False End If

Esto hará que el usuario en cuestión sólo pueda ver datos o preguntas de los temarios que tiene dados de alta. El resto de opciones estará desactivado, a no ser que se haya solicitado un estudio estadístico. Por lo tanto, necesitamos estas instrucciones para dicho caso: If solicitud_grafica_clase = True Or notas = True Then OptionX(donde x es el número del nuevo optionbutton).Enabled = True End if

También en el form 14, si se hace click en continuar: If Option X(donde x es el número del nuevo optionbutton).Value = True Then

- 117 -

bd_elegida = "usuarios_TEMARIO" preguntas_bd_elegida = "pregs_TEMARIO" tbl_falladas="falladas_TEMARIO" num_pregs_segun_bd = num_pregs_TEMARIO End If

Esto hará que se trabaje a partir de ese momento con el temario elegido por el usuario. También habrá que modificar para el nuevo botón la instrucción siguiente: If Option1.Value = False And Option2.Value = False and Option X(donde x es el número

del nuevo optionbutton)=False Then

en el caso en el que se haga doble click sobre “Continuar”. Nada más hacer click sobre continuar en el form16, habrá que modificar la siguiente instrucción: rst.Source = "select id_alumno, descriptiva, conducir, TEMARIO from alumnos where id_alumno='" & login & "' and passw='" & password & "'"

y si la consulta devuelve un único registro, añadir el siguiente código: If rst.Fields("TEMARIO") = 1 Then pertenece_TEMARIO = True End If

En el caso en que esté a “true” la variable solicitud_modificación, habrá que añadir las siguientes instrucciones y dejarlas como siguen If pertenece_TEMARIO = True Then Form20.Check X(donde x es el número del nuevo checkbox).Value = 1 Else Form20.Check X(donde x es el número del nuevo checkbox).Value = 0 End If

Siguiendo en el formulario 16, bajo la sección de que la variable solicitud_eliminar valga “true”, se deben de incluir las siguientes - 118 -

instrucciones para que se le de de baja en los temarios a los que estaba apuntado. If pertenece_TEMARIO = True Then Set rst = cnn.Execute("delete from usuarios_TEMARIO where id_alumno='" & Text1.Text & "'") Set rst = cnn.Execute("delete from falladas_TEMARIO where id_alumno='" & Text1.Text & "'") pertenece_TEMARIO=false End If

En el form 18: Tras la comprobar que los campos marcados con * no están en blanco, habrá que inicializar la variable global: alta_TEMARIO = 0

Añadir el siguiente código para que se cree una entrada nueva en la base de datos, cuando un usuario se quiera dar de alta en dicho nuevo temario: If Check X(donde x es el número del nuevo checkbox).Value = Checked Then alta_TEMARIO = 1 Set rst = cnn.Execute("insert into usuarios_TEMARIO(id_alumno, preg_vistas, preg_acert, preg_fall, ultima_preg) values ('" & Text1.Text & "', 1, 0, 0, 1)") End If

También en dicho formulario, habrá que modificar la siguiente línea y dejarla como sigue: Set rst = cnn.Execute("insert into alumnos (id_alumno, passw, nombre, apellidos, email, descriptiva, conducir, TEMARIO) values ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "', '" & alta_descriptiva & "', '" & alta_conducir & "', '" & alta_TEMARIO & "')")

Esto hará que se inserte el nuevo alumno con la información correspondiente a si eligió darse de alta en dicho nuevo temario disponible o no.

- 119 -

En el formulario 20 habrá que introducir algo más de código que en los anteriores formularios. Pertenece al formulario de actualización de datos de un usuario, y desde dicho formulario un usuario puede darse de baja o de alta de cualquier temario que esté disponible en la base de datos. Para empezar, habrá que inicializar la variable alta_TEMARIO=0

y Añadir: If pertenece_TEMARIO = False And Check X(donde x es el número del nuevo

checkbox).Value = Checked Then alta_TEMARIO = 1 Set rst = cnn.Execute("insert into usuarios_TEMARIO(id_alumno, preg_vistas, preg_acert, preg_fall, ultima_preg) values ('" & Text1.Text & "', 1, 0, 0, 1)") Pertenece_TEMARIO=true End If

Y también en dicho formulario: If pertenece_TEMARIO = True And Check X(donde x es el número del nuevo

checkbox).Value = Unchecked Then If MsgBox("ATENCIÓN: Has solicitado darte de baja del temario de TEMARIO. Se borrarán el número de preguntas vistas, las acertadas y falladas para el usuario, por lo que la p de acierto volverá a su valor inicial, 0. ¿Desea continuar?", vbExclamation + vbYesNo + vbDefaultButton1vbYesNo, "CONFIRME LA BAJA") = vbYes Then alta_TEMARIO = 0 'eliminar el usuario de la tabla usuarios_TEMARIO Set

rst

=

cnn.Execute("delete

from

usuarios_TEMARIO

where

from

falladas_TEMARIO

where

id_alumno='" & Text1.Text & "'") Set

rst

=

cnn.Execute("delete

id_alumno='" & Text1.Text & "'") pertenece_TEMARIO=false Else alta_TEMARIO = 1

- 120 -

End If End If

El trozo de código anterior hará que si un usuario estaba dado de alta en un determinado temario y decide darse de baja, pueda hacerlo. También serán necesarias estas instrucciones: If pertenece_TEMARIO = True And Check X(donde x es el número del nuevo

checkbox).Value = Checked Then alta_TEMARIO = 1 End If

Así ya tendremos todas las posibilidades cubiertas. Un usuario podrá estar dado de alta o no en un temario, y podrá apuntarse si no pertenece al mismo, o apuntarse si se quiere dar de alta. Evidentemente, no habrá que hacer nada si el usuario no está dado de alta y quiere seguir en dicho estado, ya que por defecto la variable “alta_TEMARIO” vale 0 y éste es el valor para indicar que no pertenece al temario. Para terminar con el proceso, modificar esta instrucción y dejarla como queda: Set rst = cnn.Execute("update alumnos set id_alumno='" & Text1.Text & "', passw='" & Text2.Text & "', nombre='" & Text3.Text & "', apellidos='" & Text4.Text & "', email='" & Text5.Text & "', descriptiva='" & alta_descriptiva & "', conducir='" & alta_conducir & "', TEMARIO='" & alta_TEMARIO & "' where id_alumno='" & Form16.Text1.Text & "' and passw='" & Form16.Text2.Text & "'")

De esta manera modificaremos los datos del alumno con los datos que se han introducido en el formulario 20.

- 121 -

9 RENDIMIENTO DE SAAPET

9.1 USO, FLEXIBILIDAD Y UTILIDAD DE SAAPET Como se ha descrito en secciones anteriores, la herramienta que se presenta ha sido implantada en la Universidad Pontificia Comillas de Madrid. Se ha configurado la herramienta para el uso de los alumnos de 3er curso de Ingeniería Industrial, y en concreto para la asignatura de Métodos Estadísticos de la Ingeniería. En esta asignatura de Estadística hay cinco temarios claramente diferenciados: Descriptiva Probabilidad Inferencia Multivariante Aplicaciones La herramienta fue presentada y distribuida a los alumnos a finales del mes de marzo, de manera que éstos pudieran contribuir a la fase de pruebas del sistema. A la finalización de la presente memoria, un total de 76 usuarios se dieron de alta en el sistema, aunque fueron alrededor de 30 alumnos los que utilizaron la herramienta con frecuencia. El sistema es flexible y fácilmente extensible a otros temarios y tablas en la base de datos. Los requerimientos del sistema cumplen con los solicitados por el

- 122 -

director del proyecto, y se identifican con las necesidades que un alumno tiene cuando se quiere preparar un examen. La versión profesor del sistema ha ayudado además a descubrir cuáles son los temarios más fallados en la asignatura de Estadística, y cuáles son las preguntas más conflictivas y falladas. Esto ha servido para tomar medidas correctivas por parte del profesor antes de que se presentaran los exámenes, y poder incidir sobre el temario o las preguntas más difíciles para los alumnos.

9.2 ENCUESTAS El sistema cuenta con un formulario que sirve a los usuarios a modo de encuesta si deciden y desean contribuir con el proyecto. La encuesta pide cinco diferentes puntos de vista de la herramienta, divididos en dos grandes bloques: Utilidad y Calidad de la herramienta Uso del programa Se presenta una tabla de las diferentes preguntas tal como son presentadas en el sistema, y sus posibles valores:

- 123 -

BLOQUE

PREGUNTA FORMULADA

POSIBLES RESPUESTAS Excelente Muy buena

UTILIDAD Y CALIDAD

Valoración de la utilidad

DEL

Poco útil Valoración de la calidad ¿Te gustaría utilizarlo en más asignaturas?

PROGRAMA

Regular Mala

SISTEMA

USO DEL

Buena

De 0 a 10, en intervalos de 0.5 Si No Quizás

¿Crees que ayuda al

Si

alumno?

No Sí

¿Lo utilizarías para

Quizás

preparar exámenes?

No tengo internet No creo

Si un usuario decidía no elegir uno de los campos del sistema, se enviaba la respuesta “No sabe/No contesta” para dicha encuesta en esa pregunta en cuestión. Además, los usuarios han podido enviar sugerencias al sistema con lo que se ha contado con una importante retroalimentación sobre los requisitos funcionales y de diseño de los usuarios. Evidentemente, un usuario sólo puede enviar una encuesta, porque de otra manera los resultados de las encuestas no tendrían validez.

- 124 -

Al término del proyecto, hay registradas en el sistema 17 encuestas. Se muestran sus resultados.

- 125 -

Las encuestas registradas destacan la clara ayuda que proporciona el sistema al alumno, y el 90% de los usuarios que respondieron a la encuesta les gustaría seguir utilizando el sistema en un futuro en otras asignaturas. Los alumnos valoran la herramienta como “Excelente”, “Muy buena” y “Buena”, y la nota más repetida dada por los alumnos para la calidad del programa es de un 8 seguida de un 9. El resultado de las encuestas avalan el éxito que la aplicación ha tenido entre la comunidad universitaria, y animan a seguir mejorando la herramienta con nuevas funcionalidades.

- 126 -

10 CONCLUSIONES

10.1

CONCLUSIONES GENERALES

El proyecto presentado ha contado con una componente ausente en muchos otros proyectos de fin de carrera, y ha sido la de la implantación y utilización de la herramienta desarrollada. Ha sido un proyecto muy vivo en el que los alumnos de 3er curso de Ingeniería Industrial de la ETSI (ICAI) han colaborado y han sido clave para poder presentar un sistema que funciona y que realmente ayuda a los alumnos y a los profesores. Prueba de ello son los excelentes resultados de su utilización que se presentan en el ANEXO B: TABLAS DE PROGRESO DE LAS PROBABILIDADES DE ACIERTO “p”. En dicho anexo se presentan unas tablas en las que se pueden apreciar, por temarios, las evoluciones de las probabilidades “p” de acierto máxima, mínima y media de la clase, así como el valor de las “p” también de acierto en los tres cuartiles de la distribución. Al cierre de ésta memoria no se dispone de datos que permitan cuantificar la mejora que SAAPET aporta sobre sus usuarios, pero sin duda éste es un terreno que abre enormes posibilidades de investigación a todas las personas involucradas en la docencia de cualquier ámbito. Con dicha información se podrá comparar gracias a un gráfico de caja y patillas para cada día, cómo dichas probabilidades han ido aumentando a la vez que se ha ido utilizando la herramienta y el impacto que ha ejercido con respecto al resultado de los exámenes que los alumnos realizaron antes de poder utilizar la herramienta y a la conclusión del proyecto. Actualmente en desarrollo, la construcción del Espacio Europeo de Educación Superior (EEES) implica una profunda reestructuración de la docencia universitaria, que afecta al diseño curricular, a las estrategias de aprendizaje y a - 127 -

los modelos de evaluación, entre otros aspectos. Se puede afirmar que SAAPET es un instrumento de innovación pedagógica que está en sintonía con las líneas de actuación que marca la declaración de Bolonia, dentro de las reformas que se han de acometer en el denominado EEES para antes de finalizar el año 2010. Por otra parte, la ventaja de tener un servidor de preguntas centralizado ha sido clave para la gestión de las preguntas sin que los usuarios se enterasen ni sufrieran trastorno alguno. Internet ha sido fundamental para la distribución de la herramienta y para el diseño de la información a compartir en lo que se podría definir como un entorno de estudio compartido atendiendo a las opciones online y a los estudios que realizan. SAAPET nos ofrece también conclusiones sobre exámenes de tipo test genéricos, gracias a sus opciones offline. Se puede estudiar cuales son las notas esperadas en un test atendiendo a los diferentes parámetros que lo componen, y sacar conclusiones a priori como: Que un examen de número de preguntas par es más fácil de aprobar que uno de preguntas impar. Es decir, un test de 16 preguntas es más fácil de aprobar que uno de 15, y uno de 30 también más sencillo que uno de 25. Que a partir de una probabilidad “p” de acierto en un examen superior a 0.42, las probabilidades de aprobar un examen aumentan de manera mayor que en el rango de probabilidades menor. Es decir, que una vez que un alumno llega a un determinado conocimiento, si estudia un poco más se verá recompensado su esfuerzo con una nota mucho mejor. Que son más exactos los exámenes de tipo test con mayor número de preguntas.

- 128 -

De todas formas lo mejor de la herramienta es que, por lo sencillo de su uso, cada usuario puede obtener las conclusiones que le conciernen y se dará cuenta de muchos entresijos que las pruebas objetivas ocultan.

10.2

PROYECCIÓN

DEL

PROYECTO

Y

CONSIDERACIONES PARA FUTUROS ESTUDIOS El proyecto desarrollado es un prototipo de lo que podría ser una herramienta a gran escala para la comunidad universitaria. Prueba de ello es la ponencia aceptada para hablar de SAAPET en las “III Jornadas de Redes de Investigación en Docencia Universitaria” en el Instituto de Ciencias de la Educación de la Universidad de Alicante. En dichas jornadas, se explica cómo SAAPET influye positivamente en el esfuerzo y tiempo de aprendizaje de los conocimientos y del uso de Internet para innovar nuevas formas de aprendizaje (Más información en http://www.ua.es/ice/jornadas2005/). Además, algunos profesores y departamentos de ICAI se han interesado por la posibilidad de adaptar la herramienta a sus exámenes y temarios. Los pasos por tanto a dar, para evolucionar la herramienta a una versión superior en el ICAI serían las siguientes: El conectar el servidor SQL Server con el servidor central que alberga las cuentas de usuarios de la Universidad. De esta manera, los usuarios tendrían por defecto un usuario creado que sería el mismo que el de acceso a las aulas de informática. De esta manera no sería necesario por parte de los usuarios el darse de alta en los temarios que deseen, sino

- 129 -

que podrían responder directamente a preguntas de asignaturas de las que estén matriculados en el presente curso. Como evoluciones de la herramienta no sólo para el ICAI sino para toda la comunidad universitaria, se deberían de introducir las siguientes funcionalidades extra que la herramienta no contempla, ya que no fueron establecidos como requisitos al comienzo del proyecto: El poder visualizar preguntas de tipo test con objetos de ecuaciones definidos, por ejemplo, con el Editor de Ecuaciones de Microsoft Word. Este problema surge a la hora de introducir preguntas de matemáticas o de cualquier otra asignatura técnica que precise de fórmulas matemáticas. Para ello habría que modificar el diseño de la base de datos e inventar algún modo de enlazar dichas imágenes con cada pregunta. El problema es que cada pregunta tiene un número indefinido de imágenes, y a la vez pasa lo mismo con las posibles respuestas que se quieran presentar. Una forma de hacerlo sería introduciendo cada pregunta y cada opción como un documento de Microsoft Word, pero eso quedó descartado por la poca flexibilidad y la cantidad de espacio que sería necesario. Sería también interesante el poder guardar cada una de las probabilidades “p” de acierto, fallo y de no contestar a las preguntas en el tiempo, para poder ver posteriormente un gráfico de cómo evolucionan dichas probabilidades con la utilización de la herramienta. Por último, existen otras proyecciones que se le pueden dar a la herramienta. Un ejemplo sería el de adaptar la herramienta para la gestión de los recursos humanos de una empresa. Este es uno de los temas tratados en un artículo pendiente de su publicación en la revista “Anales de mecánica y electricidad”,

- 130 -

revista de la Asociación de Ingenieros del ICAI, en la edición de julio-agosto de 2005. Un sistema como SAAPET podría ayudar a las tareas de reclutar y seleccionar candidatos. Por ejemplo, una posible opción sería que cuando un candidato presentara su curricum vitae, se le obligara a darse de alta en el sistema y a comprobar sus conocimientos de diferentes materias a través de pruebas objetivas. Dicho candidato podría más tarde desde su casa mejorar su conocimiento en cualquier área en el que esté dado de alta realizando tantas pruebas como quisiera, y comprobar su evolución a medida que interactúa con el sistema. Si la candidata o candidato no resultan finalmente elegidos no habrán perdido el tiempo como en otros procesos de selección, puesto que ellos mismos podrán comprobar cómo de rápido ha crecido su conocimiento en una determinada materia. Además, la empresa sería capaz de ver el interés y espíritu de superación que los candidatos presentan.

- 131 -

11 PRESUPUESTO Se presenta el siguiente presupuesto sobre lo que costaría la implantación del sistema desarrollado:

Unidades

Precio/Unidad

Total

DISEÑO DE LA APLICACIÓN Opciones Off-Line Opciones On-Line

25 35

40 € 48 €

1.000 € 1.680 €

DESARROLLO DE LA APLICACIÓN Opciones Off-Line Opciones On-Line

30 80

25 € 38 €

750 € 3.040 €

OTROS Pruebas

25

25 €

625 €

HARDWARE Servidor P-III, 1400 MHz, 256 RAM, 25HDD

1

700 €

700 €

SOFTWARE SQL Server Standard 2000 Microsoft Visual Basic 6 6.0 Professional Edition

1 1

1.831 € 610 €

TOTAL

- 132 -

1.831 € 610 €

10.236 €

12 BIBLIOGRAFÍA

12.1

Conceptos estadísticos y preguntas de tipo test

Se han utilizado las siguientes fuentes para la documentación sobre las preguntas de tipo test y para los diferentes conceptos estadísticos que se han necesitado.

Forma de citar Benavides,

Olaizola

Referencia y J.

BENAVIDES

ABAJO,

J.M.

OLAIZOLA

BARTOLOMÉ, E. RIVERO CORNELIO. (1991) SQL

Rivero (1991)

para usuarios y programadores. Paraninfo. Bruno

y

Dirkzwager BRUNO, JAMES E. y DIRKWAGER, A., (1995).

(1995)

Determining the Optimal Number of Alternatives to a Multiple-Choice Test Item: An Information Theoretic

Perspective,

Educational

and

Psychological Measurement, 55, 6, 959-966. Cizek, Robinson y O’Day CIZEK, GREGORY J.; ROBINSON, K. LYNNE y (1998)

O’DAY,

Options:

DENIS

a

M

Closer

(1998).

Look,

Nonfunctioning Educational

and

Psychological Measurement, 58 (4), 605-611 Downing (1992)

DOWNING, STEVEN M., (1992). True-False,

- 133 -

Alternate-Choice, and Multiple-Choice Items, Educational Measurement: Issues and Practice, 11 (3), 27-30. EBEL, ROBERT L. (1975). Can Teachers Write

Ebel (1975)

Good

True-False

Items?,

Educational

and

Psychological Measurement, 12, 31-35. FRISBIE, DAVID A. (1973). Multiple Choice

Frisbie (1973)

versus True-False: a Comparison of Reliabilities and Concurrent Validities, Journal of Educational Measurement, 10, 297-304. Grosse y Wright (1985)

GROSSE, M.E. y WRIGHT, B.D., (1985). Validity

and Reliability of True-False Items, Educational and Psychological Measurement, 45, 1-13. Haladyna

y

Downing HALADYNA, T. M. y DOWNING, S.M., (1985). A

Quantitative Review of Research on Multiple-

(1985)

Choice Item-Writing, paper presented at the annual meeting of the American Educational Research Association, Chicago. Haladyna (1988)

y

Downing HALADYNA, T. M. y DOWNING, S.M., (1988)

Functional Distractors: Implications for Test-Item and Test Design, paper presented at the annual meeting of the American Educational Research Association, New Orleans.

- 134 -

Heywood (1989)

HEYWOOD, JOHN, (1989). Assessment in Higher

Education, 2nd. edit., London, John Wiley. Jones (2003)

JONES, J. (2003) The Big Picture: IBM DB2

Information Management Software and DB2 Universal Database Kurtz y Thomas (1985)

KEMENY, JOHN G.; Y KURTZ, THOMAS E. (1985).

Back

To

BASIC

-

The

History,

Corruption, and Future of the Language. Addison Wesley Publishing Levine y Drasgow (1983)

LEVINE, M. V. y DRASGOW, F., (1983). The

Relation Between Incorrect Option Choice and Estimated Ability, Educational and Psychological Measurement 43, 675-685. Lord (1977a)

LORD, FREDERIC M. (1977a). Optimal Number

of Choices per Item: A Comparison of Four Approaches,

Journal

of

Educational

Measurement, 14, 33-38. Lord, (1977b)

LORD, FREDERIC M. (1977b). Reliability of

Multiple-Choice Tests as a Function of Number of Choices per Item, Journal of Educational Psychology, 35, 175-180. Marqués (2001)

MARQUÉS ANDRÉS M. M. (2001) Apuntes de

Ficheros y Bases de Datos, 58, 3-6. - 135 -

MORALES VALLEJO, P. (2000). Las pruebas

Morales (2000)

objetivas: normas, modalidades y cuestiones discutidas,

Universidad

Pontificia

Comillas,

Madrid, 57, 6-43. Owen y Froman (1987)

OWEN, STEVE V. y FROMAN, ROBIN D., (1987).

What's Wrong With Three-Option Multiple Choice Items?

Educational

and

Psychological

Measurement, 47 (2), 513-522. Peterson

y

Peterson PETERSON, C.C. y PETERSON, J.L., (1976)

Linguistic Determinants of the Difficulty of True-

(1976)

False Test Items, Educational and Psychological Measurement, 36, 161-164. Piattini,

de

Miguel,

Marcos (2000)

y Piattini Mario, Adoración de Miguel, Marcos Esperanza.

Diseño

de

bases

de

datos

relacionales. Ed. Alfaomega. Post (2005)

GERALD

V.

POST.

(2005).

Database

management sytems: designing and building business applications. McGraw-Hill. Rogers y Harley (1999)

ROGERS, W. TODD y HARLEY, DWIGHT (1999).

An Empirical Comparison of Three- and FourChoice Items and Tests: Susceptibility to TestWiseness and Internal Consistency Reliability. Educational and Psychological Measurement,

- 136 -

Vol. 59 (2), 234-247. Simkin y Kuechler (2005)

MARK G. SIMKIN Y WILLIAM L. KUECHLER, (2005).

Multiple-Choice

Understanding: Decisión

What

Sciences

Tests is

and

the

Journal

Student

Connection?,

of

Innovative

education, vol 3 no 1, 73-98 (26), 75-79. Straton y Catts (1980)

STRATON, R.G. y CATTS, R.M., (1980). A

Comparison of Two, Three and Four-Choice Items Tests Given a Fixed Total Number of Choices,

Educational

and

Psychological

Measurement, 40, 357-365. Trevisan y Sax (1990)

TREVISAN, MICHAEL S. y SAX, GILBERT, (1990).

Reliability

and

Validity

of

Multiple-Choice

Examinations as a Function of the Number of Options per Item and Student Ability, paper presented

at

the

annual

American

Educational

meeting

Research

of

the

Association,

Boston. Trevisan, Sax y Michael TREVISAN, (1994)

MICHAEL

S.;

SAX,

GILBERT

y

MICHAEL, WILLIAM B., (1994). Estimating the

optimum number of options per item using an incremental option paradigm, Educational and Psychological Measurement, 54, 1, 86-91. Wason (1961)

WASON, P.C., (1961). Response to Affirmative

- 137 -

and Negative Binary Responses, British Journal of Psychology, 52, 133-142.

12.2

Conceptos técnicos informáticos

Además, se han utilizado las siguientes fuentes de documentación para la ayuda al desarrollo de la aplicación:

Aprenda Visual Basic 6.0 como si estuviera en primero Editorial: Escuela Superior de Ingenieros Industriales, Universidad de Navarra Autor: JAVIER GARCÍA DE JALÓN, JOSÉ IGNACIO RODRÍGUEZ, ALFONSO BRAZALES

Aprenda Visual Basic 6.0 ya Editorial: Mc Graw Hill Autor: MICHAEL HALVORSON

Bases de datos con Visual Basic 6 Editorial: Prentice Hall Autor: JEFFREY P. MCMANUS

Guía Rápida Visual Basic 6 Editorial: Paraninfo Autor: ANTONIA GONZÁLEZ MANGAS

Microsoft Visual Basic 6.0

- 138 -

Editorial: Mc Graw Hill Autor: MICROSOFT CORPORATION

Programación de bases de datos con Visual Basic Editorial: Ra-Ma Autor: ALFONS GONZÁLEZ

SQL para usuarios y programadores Editorial Paraninfo Autor: J. BENAVIDES ABAJO, J.M. OLAIZOLA BARTOLOMÉ, E. RIVERO CORNELIO

Visual Basic 6 a fondo. Editorial: Inforbook’s Autor: SERGIO ÄRBOLES, LUIS NAVARRO www.elguille.info

- 139 -

13 APÉNDICES

13.1

ANEXO A: MANUAL DE LA VERSIÓN USUARIO

El programa se encuentra en el recurso compartido del ICAI, que es la unidad S, y en la carpeta con nombre “Saapet”. Para ejecutar el programa, únicamente hay que hacer click en el ejecutable de nombre “SAAPET V1.0, versión ALUMNO.exe”:

DOBLE CLICK!!

Nada

más

programa

se

ejecutar

el

mostrará

un

formulario como el que sigue. Tras

hacer

click

en

“Comienzo”, accederemos al menú principal del programa en el que se podrá acceder a todas

las

herramienta.

- 140 -

opciones

de

la

En el menú principal se pueden diferenciar dos áreas de trabajo diferentes: las opciones offline y las opciones online:

Si al ejecutar el programa no existiera conexión de red con el servidor central, el sistema avisará al usuario a través de un mensaje:

Y el menú principal tendrá las opciones online desactivadas:

- 141 -

Siguiendo con la ejecución normal del programa, en la que todas las opciones están disponibles, el usuario podrá optar por simular resultados de exámenes de tipo test en las opciones offline o ejecutar cualquiera de las opciones online.

Para continuar con el tutorial, seleccione la opción 1 y haga click en “Seguir”.

- 142 -

13.1.1

OPCIONES OFFLINE:

Las opciones offline tienen un submenú en el que poder elegir entre diferentes opciones.

La primera de las opciones disponibles en el submenú es la de hallar una nota determinada en un examen de tipo test. Esta opción es idéntica a la de la opción 2 del menú principal de la herramienta, y por lo tanto sólo se explicará en esta sección. Tras elegir esta opción y hacer click en “Seguir”, el usuario deberá de introducir información sobre el tipo de test a calcular la nota esperada:

- 143 -

Dichos parámetros son el número de posibles respuestas en cada pregunta (es obligación que todas las preguntas tengan el mismo número de respuestas y que sean independientes), el número de diferentes bloques temáticos que tiene examen de tipo test (desde un bloque hasta diez), la contabilización o no de los errores a la hora de la corrección, y una nota mínima necesaria para que el test resulte apto.

Tras introducir toda la información y hacer click en “Continuar”, el usuario deberá de introducir las probabilidades “p” de acierto, fallo y de no contestar a las preguntas en cada uno de los bloques temáticos que ha introducido. En el ejemplo que acontece, existen 4 bloques temáticos en los que las probabilidades son diferentes.

- 144 -

Estas probabilidades son difíciles de obtener a priori para cualquier usuario, y más aún si hay que diferenciar los distintos bloques o temarios. Es por esto que el sistema proporciona un módulo para el cálculo de dichas probabilidades que se detallará más adelante en las opciones online. Si las probabilidades de acierto, fallo y de no contestar no suman 1 en cada bloque el sistema no le dejará continuar al usuario, siempre será necesario cuadrar las probabilidades para obtener una nota esperada correcta. Tras hacer click en “Continuar”, el sistema solicitará al usuario que introduzca el número de preguntas que tiene cada uno de los bloques que ha descrito en el primero de los pasos.

- 145 -

Cuando el usuario introduzca el número de preguntas de cada bloque y haga click en “Continuar”, el sistema calculará con todos los

parámetros

introducidos

la

nota

esperada más probable a obtener, y le informará al usuario si el test estará apto o no con respecto a lo que introdujo en el primero de los formularios.

Si el usuario necesita saber el número de preguntas que va a acertar

en

cada

bloque,

será

posible tras hacer click en el boton de nombre “Numero de preguntas que

se

acertarán”.

Aparecerá

entonces un formulario como el que sigue, con el número de preguntas

más

probables

que

serán bien contestadas en cada uno de los bloques:

- 146 -

Esto será de gran utilidad en exámenes en los que el apto se establece como un número de preguntas mínimas a responder correctamente. Por ejemplo, en los test para el carné de conducir, en el que es necesario responder bien al menos a 36 preguntas para obtener el permiso de circulación. A medida que el usuario va introduciendo parámetros, los formularios se quedan en la pantalla del ordenador. De esta manera, se podrán ir cambiando los parámetros que se deseen para ver cuál sería la nota esperada en cada uno de los cambios y calcular más rápidamente cuáles son los parámetros necesarios para obtener una nota deseada.

- 147 -

Volviendo al submenú principal de las opciones offline,

- 148 -

si se selecciona la segunda se podrá calcular la probabilidad de aprobar un examen de tipo test. Esto es, de sacar una nota mayor o igual a 5. Para ello, tras hacer click en “Seguir” se le pedirá al usuario que introduzca el número de preguntas

del

test,

la

probabilidad de acierto en las

preguntas

y

descuentan o no errores.

- 149 -

si

En el caso de que los errores contabilicen negativamente, se le preguntará al usuario cada cuantas preguntas mal contestadas le restará una correcta:

Tras hacer click en “Seguir”, el sistema informará al usuario cual es dicha probabilidad de aprobar el examen con los parámetros que ha introducido.

Volviendo de nuevo al menú principal, esta vez seleccionaremos la opción 3:

- 150 -

Tras hacer click en “Seguir”, el sistema nos solicitará el número de preguntas del test para el cual queremos obtener una gráfica en la que muestre la probabilidad de obtener una nota determinada para el mismo.

Introducimos

el

número

de

preguntas, 14 por ejemplo: Y obtenemos un gráfico en la que se muestra la probabilidad de obtener una nota igual a 5 según varíe la probabilidad “p” de acierto en el test:

Además, el gráfico es interactivo y el usuario podrá cambiar en todo momento el número de preguntas y la nota a obtener en el examen y comprobar como las probabilidades cambian:

- 151 -

La última de las opciones offline es otra gráfica en la que fijaremos las probabilidades de acierto “p” en el examen y variaremos las preguntas:

- 152 -

Tras elegir la cuarta opción y hacer click en “Seguir”, el sistema solicitará dicha probabilidad “p” fija para graficar las probabilidades de

obtener

una

nota

determinada en función del número de preguntas del test. Una vez introducida dicha probabilidad, haga click en “Obtener gráfica”.

La gráfica por defecto que aparece es para obtener una nota igual a un 5, pero como en el caso anterior se puede cambiar los parámetros del examen y la nota deseada para volver a re-dibujar la gráfica

- 153 -

Los dientes de sierra de estas gráficas son justificadas, ya que para obtener una nota de un 4 en un examen de tipo test con 20 preguntas, habrá que responder correctamente a 8 preguntas, mientras que un test con 21 preguntas necesitará tener bien 8.4 preguntas, es decir, 9 preguntas bien contestadas. Esta diferencia entre los exámenes de tipo test con un número de preguntas par o impar son la causa de los altibajos que se producen.

Volviendo al menú principal, se explicarán ahora las opciones online que ofrece el programa.

- 154 -

13.1.2

OPCIONES ONLINE

Siguiendo el menú principal de las opciones online, vamos a ir navegando por cada una de ellas para conocerlas mejor:

Si elegimos la primera de las opciones,

tras

hacer

click

en

“Seguir” iremos a un submenú en donde

los

alumnos

gestionar sus usuarios.

- 155 -

podrán

Para crear un nuevo usuario, elegiremos la primera de las opciones “ALTA de un nuevo usuario

y

haremos

click

en

“Continuar”. Aparecerá en ese momento un formulario en el que

el

usuario

deberá

de

introducir un identificador válido para el sistema (que no exista aún en el servidor, aunque el usuario no debe preocuparse por eso, el sistema le comunicará si ha habido algún error y le pedirá otro si dicho identificador ya existía),

una

nombre

y

contraseña, apellidos

y

su una

dirección de e-mail. Es ahora cuando el usuario puede elegir a qué temarios quiere pertenecer. En el ejemplo, el usuario “jmlabernia” querría darse de alta en el temario de Descriptiva y de Inferencia de la asignatura de Estadística. A partir de ahora, utilizaremos el ejemplo de este usuario para la explicación del resto de opciones online. Tras hacer click en “Generar Password”, el sistema le proporcionará al usuario una contraseña aleatoria en caso de que a éste no se le ocurra ninguna. Finalmente, tras hacer click en “Crear usuario”, el sistema mostrará un mensaje de confirmación o de error en el proceso de dicha creación.

- 156 -

Si lo que en cambio queremos es eliminar a un usuario que hemos creado, elegiremos la segunda de las opciones, “BAJA de un usuario”.

Introduciendo el identificador de usuario y su password y tras hacer click en “Eliminar” el usuario será dado de baja.

La tercera de las opciones en la gestión de usuarios es la modificación de sus datos personales. Tras elegirla y hacer click en “Continuar”, un formulario muestra toda la información personal que el sistema tiene almacenada para dicho usuario:

- 157 -

El

formulario

mostrará

toda

la

información que es posible modificar (el nombre, los apellidos, el email y los temarios a los que está dado de alta). Para modificar la información, habrá que sobrescribir los datos, o borrar los que no queremos que estén en el sistema. Igualmente, se podrá dar de alta a nuevos temarios a los que no pertenezca o de baja en temarios a los que no quiera pertenecer más tiempo. (Si se da de baja en un temario perderá toda la información relativa a sus probabilidades de acierto, fallo y de no contestar en dicho temario).

- 158 -

Para consultar las probabilidades que un usuario tiene en un temario en concreto, podrá hacerlo también desde la gestión de usuarios. Deberá de seleccionar la última de las opciones, “CONSULTAR datos de usuario y RESETEAR “p” de acierto”, y hacer click en “Continuar”.

A continuación, el sistema le mostrará los temarios a los que pertenece y de los que puede consultar probabilidades de acierto, fallo, y de no contestar. Como

podemos

observar,

sólo

los

temarios de Descriptiva y de Inferencia están

disponibles

“jmlabernia”. “Continuar”

Tras

para

el

hacer

podremos

usuario click

en

consultar

las

probabilidades para ese usuario.

- 159 -

Como es un usuario recién creado, no tiene ninguna probabilidad asociada al temario que haya elegido. Además, desde este formulario se podrá poner a 0 las “p’s” en el temario, si el usuario desea empezar de 0 en un temario, por ejemplo, porque ha estudiado en las últimas semanas y no quiere que el poco conocimiento que tenía antes influya en su medición.

- 160 -

Al volver al menú principal, el usuario estará autentificado en el sistema:

Una vez creado un usuario, se puede acceder a opciones online como la de contestar a preguntas de tipo test. Para ello habrá que elegir la opción 4 del menú de opciones online, y hacer click en “Seguir”. Se mostrarán entonces los temarios a los que pertenece el usuario y a los que puede conectarse para responder a preguntas de tipo test. Tras elegir uno y hacer click en continuar, se mostrará el formulario para la contestación de preguntas de tipo test:

- 161 -

Al estar este usuario recién creado, sus probabilidades de acierto, fallo y de no contestar son 0, al igual que se le muestra que no ha contestado aún a ninguna pregunta. En el cuadro superior se muestra la pregunta que el sistema le proporciona, y en la mitad del formulario las posibles respuestas posibles. El usuario debe de contestar eligiendo uno de los botones que cada una de las opciones tiene junto a ella, y haciendo click en “Siguiente Pregunta”. Si desea saltarse la pregunta, simplemente tiene que hacer click en “Saltar pregunta SIN CONTESTAR” y no se le registrará dicha pregunta como fallada.

- 162 -

Si la pregunta fue acertada, se le contabilizará y se recalcularán las probabilidades

de

acierto.

Si

fue

fallada, antes de cambiar a otra pregunta se le informará al usuario cuál era la respuesta correcta para que pueda entender por qué la ha fallado: Tras contestar a un número determinado de preguntas, tendremos una probabilidades de acierto, fallo y de no contestar a las preguntas en el temario que hemos elegido.

- 163 -

Ahora podremos hacer click en el botón “Gráfico” y obtener una distribución de cómo reacciona el usuario ante las preguntas de tipo test:

Volviendo al menú principal, tras hacer click en “Menú Principal”, elegiremos ahora la opción 5 y haremos click en “Seguir”:

- 164 -

El sistema nos pedirá un usuario si no estamos autentificados (no es el caso), y un temario del que queremos contestar a preguntas que han sido registradas con nuestro usuario como falladas en un pasado. El sistema siempre nos informará de las preguntas que quedan registradas como falladas para nuestro usuario en cada momento, y podremos optar por contestar a una pregunta del mismo modo que si no fueran preguntas falladas o volver al menú principal Obviamente, la contestación de estas preguntas no modifican nuestras probabilidades en el temario que sea, ya que son preguntas que hemos visto previamente y contaminarían los resultados.

- 165 -

Cuando contestemos mal a una pregunta, el sistema nos mostrará un aviso y no nos dejará continuar hacia la siguiente pregunta hasta que no demos una solución correcta:

Una vez que hemos contestado a unas cuantas preguntas bien, podemos ver cómo se van eliminando dichas preguntas falladas para nuestro usuario:

- 166 -

Haciendo click en “Salir al Menú Principal” volveremos al menú inicial de la herramienta. Vamos a seleccionar ahora la última de las opciones, la opción 6:

Al hacer click en “Seguir”, iremos al submenú en donde podremos realizar diferentes estudios estadísticos para un temario en particular y comparar el conocimiento del usuario con el de su grupo.

- 167 -

En dicho submenú tendremos 4 opciones posibles, vayamos una a una. Eligiendo la opción 1, podremos elegir un temario en concreto para realizar un resumen que permita al usuario hacerse una idea de cuántos usuarios están dados de alta en el sistema, y de cómo están las probabilidades de acierto en dicho grupo. Tras hacer click en continuar el sistema nos pedirá que seleccionemos un informe para la creación del informe:

Seleccionamos un temario, Inferencia, por

ejemplo,

y

hacemos

click

en

continuar.

- 168 -

El informe mostrará los alumnos que hay dados de alta en el sistema, y diferentes medidas sobre los usuarios que han contestado al menos a una pregunta (los que han interactuado con el sistema)

Volveremos al menú de estudios estadísticos tras hacer click en “Aceptar”. Ahora, vamos a elegir la segunda de las opciones, para graficar las probabilidades de acierto “p” de los alumnos de un temario. Hacemos click en “Continuar” tras elegir la opción 2, y seleccionamos un temario a graficar:

- 169 -

Tras elegir el temario de inferencia, vemos cómo se distribuyen las probabilidades en el eje de abscisas, entre los alumnos en el eje de ordenadas.

El usuario puede interactuar con el gráfico mediante todos los tipos de gráficos que se muestran en la lista desplegable, y obtener una visión en 2 o 3 dimensiones, según elija. Con el simple hecho de cambiar el tipo de gráfica en la lista desplegable la gráfica se ajustará y cambiará automáticamente. A continuación se muestran algunos ejemplos de gráficas que se pueden obtener:

- 170 -

- 171 -

Haciendo click en “Aceptar”, volveremos al

menú

principal

de

los

estudios

estadísticos. Elegiremos ahora la opción 3, y tras hacer click en “Continuar” el sistema nos solicitará la operación a realizar: un gráfico de caja y patillas para lo que necesitamos autenticarnos ya que nos situará a nuestro usuario en dicho gráfico, o un informe sobre los percentiles que nos permitirá calcular el percentil del orden k que desee el usuario.

Elegiremos antes de nada el poder ver un gráfico de caja y patillas para nuestro usuario, de ente los alumnos de inferencia, por ejemplo:

Elegimos la opción 1, “GRÁFICA DE CAJA Y PATILLAS”, y hacemos click en “Continuar”:

- 172 -

Seleccionamos deseamos inferencia,

el

obtener y

temario dicha

hacemos

del

que

información, click

en

“Continuar”.

Obtendremos así un gráfico de caja y patillas para todos los usuarios que hay dados de alta e interactuando con el sistema en el temario de inferencia, y en el que nuestra posición queda representada a través del punto azul.

Además, la mediana y la media también quedan representados como se puede observar en la leyenda del gráfico.

- 173 -

Si en lugar de elegir la opción del gráfico de caja y patillas elegimos el de “CUARTILES Y PERCENTILES” en el menú anterior, tras elegir también un temario, nos aparecería un informe como el que sigue: En dicho informe se nos avisa

de

cuáles

son

los

cuartiles en el grupo, y de nuestra posición particular. Como

vemos,

el

usuario

“jmlabernia” se encuentra en el primer cuartil y una letra roja le avisa del peligro…. El usuario podrá solicitar al sistema cualquier percentil de orden k y hacer click en “Calcular”.

Por

ejemplo,

vamos a calcular el percentil de

orden

30.

Para

ello

seleccionaríamos de la lista desplegable el 30, y tras hacer click obtendríamos el resultado: 0.250, como se muestra en el siguiente formulario:

- 174 -

Al hacer click en “Aceptar” volveremos de nuevo al menú de estudios estadísticos en donde podremos acceder a la última

opción

de

la

herramienta: el enviar una encuesta.

Tras elegir la opción 4, el sistema comprobará si el usuario introducido no ha enviado aún su encuesta, y en caso negativo le mostrará la encuesta a realizar. Podrá elegir los valores de sus respuestas de una lista desplegable al final de cada pregunta, y además también se le aceptará que envíe sugerencias para seguir mejorando. Si no elige uno de los valores establecidos, el sistema enviará “No sabe/No contesta” para la

- 175 -

contestación de dicha pregunta. A continuación se muestra la encuesta:

Si el usuario hace click en “Enviar”, registrará su encuesta. Si en cambio hace click en “Cancelar”, volverá al menú principal. Por último, en el menú principal, haciendo click sobre “Acerca del autor…”

- 176 -

Se mostrará información sobre el mismo y una forma de contacto.

- 177 -

13.2

ANEXO B: MANUAL DE LA VERSIÓN PROFESOR

Debido a la semejanza de la versión alumno con la versión profesor, se remite a todas las opciones offline y a las online que no se pasan a detallar al ANEXO A: MANUAL DE LA VERSIÓN USUARIO. Así mismo la forma de empezar a ejecutar el programa. Una vez que el profesor (o administrador, a partir de ahora) ejecute la herramienta, se le mostrará el siguiente menú principal. Las opciones offline son las mismas que las de la versión alumno, y se detallan a explicar la forma de utilizar las nuevas opciones online:

13.2.1

OPCIONES ONLINE

Para

introducir

nuevas

preguntas en el sistema, elija la opción 3 y haga click

en

“Seguir”.

A

continuación, se le pedirá al profesor que elija el temario del que quiere introducir

nuevas

preguntas, y haga click en “Continuar”.

- 178 -

Una vez llegados al siguiente formulario, el profesor deberá de elegir el número de opciones que tendrá la pregunta de tipo test, la pregunta en su cuadro correspondiente y cada una de las opciones en sus respectivos lugares. La pregunta no podrá ser registrada en el sistema hasta que no se especifique cuál es la respuesta correcta a la pregunta.

Tras hacer click en “Enviar pregunta” se almacenará la pregunta en el servidor.

- 179 -

Volviendo al menú principal, si se elige la opción 5 iremos directamente al menú de estudios estadísticos. Este menú tiene algunas diferencias con respecto a la versión alumno de la herramienta. Las diferencias son la opción 4 y la 5.

Seleccionando la opción 4 y haciendo click en “Continuar”, el sistema nos pedirá que elijamos entre graficar el número de preguntas más falladas de un temario o una distribución de en qué

temarios

se

fallan

más

preguntas. (Actualmente sólo para la asignatura de Estadística de IIND de la Pontificia de Comillas, ICAI).

- 180 -

Si elegimos la opción 1, y hacemos click en “Continuar”, tras elegir el temario que se desee se obtendrá un gráfico con la distribución de preguntas más falladas en dicho temario.

- 181 -

Si por el contrario eligiéramos la opción 2, obtendríamos el gráfico de las preguntas falladas en todos los temarios.

Volviendo al menú de estudios estadísticos, si el usuario elige la opción 5 podrá visualizar el resultado de las encuestas registradas en el sistema:

- 182 -

y haciendo click en “Ver Sugerencias” se mostrarán en una ventana como la que sigue:

- 183 -

13.3

ANEXO

B:

TABLAS

DE

PROGRESO

DE

LAS

PROBABILIDADES DE ACIERTO “p” A continuación se incluyen las mediciones estadísticas realizadas desde el 12/05/2005 al 13/06/2005 a las 15:30, día y hora de comienzo del examen de Métodos Estadísticos de la Ingeniería (3ro IIND). Todos las medidas hacen referencia a la “p” de acierto en las preguntas test.2

13.3.1

2

DESCRIPTIVA

El sistema no estaba accesible durante los tres primeros fines de semana por estar la

Universidad cerrada y el puerto del servidor cerrado al exterior. A partir del 01/06/2005 los alumnos podían acceder al sistema desde sus casas.

- 184 -

13.3.2

PROBABILIDAD

- 185 -

13.3.3

INFERENCIA

- 186 -

13.3.4

MULTIVARIANTE

- 187 -

13.4

ANEXO

C:

FUNCIONES

MÁS

COMPLEJAS

UTILIZADAS 'FUNCION PARA GENERAR UN PASSWORD ALEATORIO '**************************************************************** Public Function randompassword(pwLength As Integer) Dim i As Integer Dim p As String p = "" For i = 1 To pwLength Randomize Timer If Int(2 * Rnd + 1) = 1 Then p = p + Chr(Int((57 - 48 + 1) * Rnd + 48)) Else p = p + Chr(Int((90 - 65 + 1) * Rnd + 65)) End If Next i randompassword = p End Function '****************************************************************' FIN FUNCIÓN

- 188 -

'FUNCION PARA DESACTIVAR LA X SUPERIOR DERECHA DE LOS FORMULARIOS '**************************************************************** 'Desactivo el botón superior derecho de cerrar la ventana Dim A As Long A = GetSystemMenu(Me.hwnd, 0) Call RemoveMenu(A, 6, MF_BYPOSITION) 'Fin de desactivar el botón superior derecho de cerrar la ventana '****************************************************************' FIN FUNCIÓN

- 189 -

'FUNCIÓN PARA VER SI HAY CONEXIÓN A INTERNET. '**************************************************************** Public Function IsWebConnected(Optional ByRef ConnType As String) As Boolean Dim dwflags As Long Dim WebTest As Boolean ConnType = "" WebTest = InternetGetConnectedState(dwflags, 0&) Select Case WebTest Case dwflags And CONNECT_LAN: ConnType = "LAN" Case dwflags And CONNECT_MODEM: ConnType = "Modem" Case dwflags And CONNECT_PROXY: ConnType = "Proxy" Case dwflags And CONNECT_OFFLINE: ConnType = "Offline" Case dwflags And CONNECT_CONFIGURED: ConnType = "Configured" Case dwflags And CONNECT_RAS: ConnType = "Remote" End Select IsWebConnected = WebTest End Function '****************************************************************' FIN FUNCIÓN

- 190 -

'FUNCIÓN PARA CALCULAR EL FACTORIAL DE UN NÚMERO N '**************************************************************** Public Function Factorial(ByVal N As Double) As Double On Error GoTo Factorial_ERR Select Case N Case 0 Factorial = 1 Case 1 Factorial = 1 Case Else Factorial = N * Factorial(N - 1) End Select Exit Function Factorial_ERR: '// n > 170 produce : Derbordamiento '// n > 3155 o n < 0 produce : Espacio Insuficiente en Pila Factorial = 0 MsgBox Err.Description End Function '****************************************************************' FIN FUNCIÓN

- 191 -

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.