Back to top

Ficha Proyecto I.E. 2011-2012



Coordinador(a): CLARA BENAC EARLE
Centro: E.T.S. DE INGENIEROS INFORMÁTICOS
Nivel:
Código:
... memoria no disponible
Línea:
Palabras clave:
  • Elaboracion material docente
  • Evaluación del aprendizaje
  • Uso de TIC
Miembros de la comunidad UPM que lo componen
Nombre y apellidos Centro Plaza *
ANGEL HERRANZ NIEVA E.T.S. DE INGENIEROS INFORMÁTICOS PDI (UPM)
CLARA BENAC EARLE E.T.S. DE INGENIEROS INFORMÁTICOS PDI (UPM)
LARS-AKE FREDLUND . E.T.S. DE INGENIEROS INFORMÁTICOS PDI (UPM)
JULIO MARINO E.T.S. DE INGENIEROS INFORMÁTICOS PDI (UPM)
MANUEL CARRO LINARES E.T.S. DE INGENIEROS INFORMÁTICOS PDI (UPM)
* La plaza que se muestra corresponde a la ocupada en el momento de la convocatoria
(para PDI/PAS de la UPM, en el resto de casos no se especifica).
Lineas de trabajo principales en las que incide
  • Facultad de Informática
    • Mejorar los sistemas de evaluación y calificación
      • Realización de pruebas de evaluación asociadas a los resultados de aprendizaje correspondientes a competencias específicas (recogidas en las guías de aprendizaje de las asignaturas)
    • Mejorar la eficiencia en la adquisición de los resultados de aprendizaje por parte de los estudiantes
      • Implantación de metodologías activas que mejoren los ratios asociados al rendimiento del alumno en los títulos oficiales
Descripción del desarrollo y las fases
OBJETIVOS DEL PROYECTO

El objetivo general del proyecto es mejorar los sistemas de evaluación y calificiación de los ejercicios y trabajos prácticos realizados por los alumnos en las asignaturas de programación, lo que implica que el proyecto se centra en los objetivos OBJ2 y OBJ3 de la convocatoria.

En el grado en ingeniería informática, la programación supone un importante porcentaje de los créditos de los estudiantes y del esfuerzo del profesorado. Las asignaturas de programación tienen un elevado componente práctico. Disponer de una evaluación y un diagnóstico rápido y fiable es fundamental para que tanto el estudiante como el profesor adviertan, cuanto antes, carencias en el grado de consecución de las competencias y se puedan tomar medidas correctoras.

Lograr un diagnóstico rápido y fiable pasa, inevitablemente, por la creación de procesos automáticos de comprobación de las entregas realizadas por los estudiantes. Lo habitual es que el profesor defina para cada práctica y de forma ad-hoc un conjunto de pruebas. Escribir un buen conjunto de pruebas a mano consume mucho tiempo y, en general, la detección de importantes errores quedan fuera de su alcance. Por otro lado, la evaluación de los ejercicios prácticos no puede ceñirse únicamente a la funcionalidad de los programas entregados por el estudiante. Un aspecto importante es la elegancia y las buenas prácticas. La evaluación de dichos aspectos suele realizarse a mano y con un importante esfuerzo por parte del profesor.

Los objetivos más concretos del proyecto son los siguientes:

  1. Comprobación de buenas prácticas: desarrollar plataformas que permitan la comprobación rápida y eficaz de que el estudiante aplica buenas prácticas al escribir sus programas.
  2. Pruebas automáticas dirigidas por modelos: desarrollar plataformas que permitan la comprobación rápida y eficaz de que el estduante ha escrito programas correctos.
FASES DEL PROYECTO

 

A continuación expresamos el plan de desarrollo para alcanzar cada uno de los objetivos mencionados: 1. comprobación de buenas prácticas y 2. pruebas automáticas dirigidas por modelos. Las fases que planteamos a continuación serán llevados a cabo, como experiencia piloto, en dos asignaturas del grado en ingeniería informática: "Algoritmos y Estructuras de datos" y "Concurrencia", asignaturas que usan el lenguaje Java. Los dos objetivos están alineados con todas las competencias de las dos asignaturas.

1. Comprobación de buenas prácticas.

Nuestro punto de partida es el de exigir que los estudiantes observen ciertas reglas que pueden considerarse estándares a la hora de programar: coding standards (o code conventions). Seguir dichas reglas no asegura que los programas cumplan los criterios de buenas prácticas que se exigen a la hora de programar pero no seguirlas refleja que el estudiante se aleja de ellas. Las fases para la consecución de este primer objetivo son:

  1. Estudio de los estándares de codificación para el lenguaje de programación Java (lenguaje común a todas las asignaturas del grado en ingeniería informática).
  2. Selección de uno de los estándares o, en su defecto, selección de las reglas de codificación exigibles en nuestras asignaturas.
  3. Estudio de herramientas automáticas de comprobación de código que fuercen la aplicación de reglas de codificación.
  4. Selección de una herramienta que permita definir y comprobar el estándar o las reglas seleccionadas en el punto 2.
  5. Ajuste de la herramienta seleccionada al estándar del punto 2.
  6. Difusión de los resultados y aplicación a otras asignaturas.

2. Pruebas automáticas dirigidas por modelos.

Este segundo objetivo es más ambicioso. La aproximación más simplista sería el uso de herramientas de testing estándares como JUnit, sin embargo, dicho enfoque mantiene las dificultades mencionadas: definición ad-hoc de las pruebas para cada práctica, poca fiabilidad en el diagnóstico del problema, gran esfuerzo por parte del profesor. Nuestra propuesta consiste en la aplicación de herramientas capaces de generar pruebas de forma automática a partir de descripciones abstractas del problema que el programa debe resolver (hablamos principalmente de la herramienta QuickCheck http://www.quviq.com/, o de su variante opensource PropEr). Su aspectos fundamentales son el alto nivel de abstracción con el que se pueden especificar las pruebas así como la calidad del diagnóstico de los errores.

Las fases para la consecución de este segundo objetivo son:

  1. Estudio para adaptar al lenguaje de programación Erlang (el lenguaje de referencia de QuickCheck) las construcciones básicas del lenguaje de programación empleado en las asignaturas. Como ya se ha mencionado, el lenguaje de programación es Java y las construcciones básicas serán las creaciones de instancias y las llamadas a métodos.
  2. Construir un API que permita trabajar a Erlang sobre las construcciones del lenguaje de programación de los estudiantes.
  3. Creación de modelos más abstractos que la propia solución de ejercicios prácticos de convocatorias anteriores utilizando QuickCheck y análisis de los resultados sobre entregas realizadas por alumnos en dichas convocatorias.
  4. Comprobación y aprendizaje del tipo de modelos a crear para futuros ejercicios prácticos (programación secuencial).
  5. Comprobación y aprendizaje del tipo de modelos a crear para futuros ejercicios prácticos (programación concurrente).
  6. Diseño de un mecanismo de calificación de los estudiantes utilizando como elemento comparador el hecho de que una entrega es mejor que otra cuando los casos en los que falla la primera son un subconjunto de los casos en los que falla la segunda. El mismo mecanismo puede ser utilizado para detectar potenciales copias entre los estudiantes.
  7. Elaboración de una guía de uso de la plataforma completa.
  8. Difusión de los resultados y aplicación a otras asignaturas.

Resultados

Los resultados esperados son prototipos que permitan:

  • Ofrecer información inmediata al estudiante de la calidad de su entrega desde el punto de vista de la elegancia y la aplicación de buenas prácticas de programación.
  • Ofrecer información inmediata al estudiante de la calidad de su entrega desde el punto de vista de la corrección de la misma.
  • Ofrecer al estudiante, de forma automática, un diagnóstico claro y eficaz de los errores cometidos.
  • Crear una calificación previa de las entregas de los estudiantes.

Además, entre los resultados se contempla la elaboración de informes y artículos que permitan difundir los logros conseguidos y su aplicación a todas las asignaturas de programación.

EVALUACION DEL PROYECTO

Como hemos mencionado anteriormente, los dos principales beneficios que tendrá nuestro proyecto serán

  1. Los alumnos recibirán una evaluación preliminar de sus ejercicios prácticos de forma potencialmente inmediata y mucho más precisa de la que actualmente somos capaces de ofrecerles utilizando técnicas estándares de testing y análisis manual de sus entregas realizado por su profesor.
  2. El esfuerzo que el profesor deberá dedicar a preparar los tests así como el tiempo a revisar manualmente las entregas deberá reducirse sustancialmente. Es cierto que el profesor deberá realizar aún comprobaciones manuales pero lo hará sobre entregas que han superado controles que garantizan cierta calidad.

Indicadores

Por lo tanto, los dos principales indicadores para evaluar el éxito del proyecto serán el tiempo desde que el alumno realiza una entrega hasta que recibe una primera evaluación preliminar y el esfuerzo que el profesor dedica a elaborar los mecanismos de evaluación y al proceso de evaluación en sí mismo.

En el primer caso, tiempo desde la entrega hasta que el alumno recibe una evaluación preliminar, se espera una mejora drástica que podría pasar de "semanas" a "horas" (con la ayuda de sistemas de entrega automática como aquella de la que dispone nuestro departamento), "días" en el peor de los casos.

La medición de la reducción del esfuerzo para el profesor es más complicada de realizar pero nuestra estimación es que el tiempo para crear los tests asociados a un enunciado de un ejercicio puede oscilar entre dos y cinco días de trabajo y la evaluación de la entrega de un alumno entre media hora y dos horas. Creemos que nuestro proyecto podría reducir dicho esfuerzo en un 50%.

Los valores exactos de los indicadores se obtendrán mediante encuestas al alumnado y al profesorado implicado así como a través de la revisión de correos y comunicaciones realizadas al alumnado en convocatorias anteriores.

Evaluación

El principal mecanismo para evaluar el impacto de los resultados del proyecto será su difusión en el contexto internacional a través de conferencias sobre enseñanza e innovación educativa aplicada al ámbito de la informática. Se espera obtener al menos una publicación internacional de los resultados.

Alcance

En un primer momento los resultados del proyecto se aplicarán a las asignaturas de "Algoritmos y Estructuras de Datos" (alrededor de 300 estudiantes con múltiples ejercicios pequeños y un proyecto grande) y "Concurrencia" (alrededor de 150 estudiantes, con 10 ejercicios semanales y un proyecto grande). Consideramos que todos los resultados serán aplicables a todas las asignaturas de programación como "Programación I", "Programación II", etc.