Una de las asignaturas que imparto en Formación Profesional incluye como parte del temario el aprendizaje del lenguaje de programación Python. A modo de broma les había dicho a mis alumnos que, si lo pedían con antelación, podrían hacer un examen utilizando IA. Para mi sorpresa, esta semana me lo pidieron de verdad.

Durante todo el curso les he enseñado a usar la IA como un tutor: para aprender, preparar ejercicios y resolver dudas. Tanto ellos como yo sabemos que, a su nivel, cualquier ejercicio o examen previo se lo resolvería una IA a la perfección. Así que era evidente que este examen tenía que ser especial.
Preparación
Tenía varias ideas para el examen y, por supuesto, consulté a una IA para que me recomendara alguna opción factible y justa. La primera propuesta fue irrisoria: la habrían resuelto en 30 segundos con cualquier herramienta. Le pedí entonces que me indicara qué cosas podría entender peor una IA. Entre lo que imaginaba y lo que fui recopilando quedó claro que el enunciado debía cumplir estas condiciones:
-
Incluir conceptos de un dominio específico, más allá de la programación.
-
Añadir restricciones que requiriesen creatividad.
-
Evitar instrucciones paso a paso, como las que suelen encontrar en los exámenes.
-
Introducir ciertos elementos de ambigüedad que exigieran interpretación humana.
Con esas bases preparé un examen de cuatro folios en inglés (es una enseñanza bilingüe, así que el idioma está justificado). Sin embargo, cuando lo comenté en casa me dijeron que era una locura. Así que lo sustituí por otra versión más corta, de un solo folio, y con ese me fui a clase.
Corrección
Llegados a este punto, estaba claro que, si había empezado utilizando IA, debía continuar por el mismo camino. Me fui a una de las IAs que uso habitualmente para programación Qwen , (del grupo chino de Aliexpress) , le envié el examen y le pedí que generara una rúbrica de corrección. Me llevó unos quince minutos ajustar el resultado para que incluyera los comentarios sobre el código que quería pedir a los alumnos, pero finalmente el resultado me pareció lo suficientemente bueno.
Con eso listo, tocaba algo más sofisticado. He probado varios editores de código con IA, pero al final, como viejo aficionado a la terminal, me he quedado con Claude Code. Evidentemente, para tareas de voluntariado o proyectos personales no pienso pagar la tarifa de Anthropic), así que lo tengo conectado a otra IA que me cuesta 8 €/trimestre y que es más que suficiente.
Preparé una carpeta con mi examen, mi rúbrica, descargué de Moodle un zip con los archivos de las soluciones de los alumnos y un último documento de instrucciones. Lancé Claude code y le di un único prompt:
lee instrucciones.md y haz lo que pide
Me fui a comer y me olvidé del tema. Cuando volví, me estaba pidiendo permiso para generar los informes de evaluación de los alumnos. Le dije que sí y, en unos quince minutos, los tenía todos. A continuación dejo un ejemplo del resultado (con el nombre del alumno cambiado por motivos de privacidad):
# Evaluación del Examen - NombreAlumno Apellido1 Apellido2
## Exercise 1 - Design the Library (3 pts)
### Calificación: 2.7/3.0
**Componentes:**
- **Task/algorithm/design correctness**: 1.0/1.0
- **Code clarity & structure**: 0.4/0.5
- **Evidence of individual understanding**: 1.3/1.5
### Comentarios específicos:
#### ✅ Fortalezas:
- **Excelente modelo de datos**: Implementa clases claras (`Libro`, `SistemaBiblioteca`) con atributos bien definidos
- **Sistema de categorías múltiple**: Maneja libros que pertenecen a múltiples categorías mediante una lista de categorías
- **Definición clara de "popular"**: Usa un umbral cuantificable (UMBRAL_POPULARIDAD = 5)
- **Política de preservación robusta**: Considera tanto rareza como valor histórico con umbrales específicos
- **Sistema de prioridades implementado**: Distingue entre lectores prioritarios y estándar
- **Código modular y bien estructurado**: Métodos bien definidos y separados por funcionalidad
#### ⚠️ Áreas de mejora:
- Los comentarios podrían ser más específicos sobre las decisiones de diseño (por ejemplo, por qué se eligió el umbral de 5 para popularidad)
- El método `retirar_libro` podría tener una implementación más completa del sistema de prioridades
## Exercise 2 - Create a Reservation System (3 pts)
### Calificación: 2.8/3.0
**Componentes:**
- **Task/algorithm/design correctness**: 1.0/1.0
- **Code clarity & structure**: 0.5/0.5
- **Evidence of individual understanding**: 1.3/1.5
### Comentarios específicos:
#### ✅ Fortalezas:
- **Sistema de límite dinámico bien implementado**: Considera múltiples factores (demanda, historial, período académico)
- **Visualización contextual excelente**: El método `mostrar_inventario_contextual` agrupa por tema o autor de manera efectiva
- **Manejo de conflictos sofisticado**: Implementa una lista de espera con sistema de prioridades compuesto
- **Lógica anti-inanición**: Usa `tiempo_espera_acumulado` para evitar que usuarios queden atrapados en la lista de espera
- **Priorización por propósito**: Distingue entre investigación, estudio y ocio
- **Código muy bien documentado**: Los comentarios explican claramente el diseño y las decisiones tomadas
#### ⚠️ Áreas de mejora:
- Podría incluir más detalles sobre cómo se determina la demanda en un sistema real
## Exercise 3 - Fairness & Ethical Constraints (0 pts)
### Calificación: 0/4
**Componentes:**
- **Task/algorithm/design correctness**: 0/2.0
- **Code clarity & structure**: 0/0.5
- **Evidence of individual understanding**: 0/1.5
### Comentarios específicos:
#### ❌ Observaciones:
- **No se entregó el Exercise 3**: El archivo no contiene implementación del Exercise 3
- El ejercicio 3 debía reemplazar/modificar el código del Exercise 2 para añadir restricciones éticas y anti-abuso
## Nota Final: 5.5/10
### Resumen:
NombreAlumno muestra una excelente comprensión de los conceptos de programación orientada a objetos y diseño de sistemas. Los ejercicios 1 y 2 están muy bien implementados con código limpio, modular y bien documentado. Sin embargo, la falta del Exercise 3 reduce significativamente la calificación final.
### Puntos fuertes destacados:
- Diseño de clases robusto y coherente
- Implementación completa de los requisitos solicitados
- Código bien estructurado y mantenible
Viendo lo que la IA puede hacer ya como tutor y, ahora, como examinador, no sé qué futuro tendremos los profesores. Para los que trabajamos en Formación Profesional parece que con las prácticas nos salvamos, pero para el resto…. en poco tiempo un profesor podrá atender a 100 alumnos con 100 agentes de IA. Ya veremos….