Marco normativo de referencia
- LOMLOE (Ley Orgánica 3/2020) y Ley Orgánica 3/2022, de 31 de marzo, de ordenación e integración de la Formación Profesional, que consolida el enfoque competencial y modular de la FP.
- Currículo del título de Técnico Superior en Desarrollo de Aplicaciones Multiplataforma (DAM): RD 450/2010 (título) y su desarrollo curricular en la Comunitat Valenciana (Orden de la GVA). El módulo 0485 Programación (1.º curso, ~256 h) tiene resultados de aprendizaje y criterios de evaluación propios.
- DUA: principios introducidos por la LOMLOE (LO 3/2020) y, en Formación Profesional, por la LO 3/2022 de ordenación e integración de la FP, desarrollados en la Orden 20/2019 de la GVA de organización de la respuesta educativa para la inclusión (medidas de niveles I-IV).
- Competencia digital docente y del alumnado: marcos DigCompEdu y DigComp 2.2 (referencia europea), e integración de la IA conforme a las orientaciones de uso responsable.
Cuestión 1 — Reto técnico (ejercicio de programación)
El ejercicio es idóneo para la unidad de estructuras de control y funciones: requiere bucles (for/while), condicionales, operador módulo y descomposición en funciones (función auxiliar esPrimo + función principal), sin estructuras de datos avanzadas.
Enunciado para el alumnado (lo que se entrega al grupo, sin solución):
Práctica: Análisis de números primos en un array
Escribe en Java una función con la siguiente firma:
public static int[] analizarPrimos(int[] numeros)
La función recibe un array de enteros y devuelve un array de dos posiciones:
- posición
0: la cantidad de números primos que contiene el array.
- posición
1: la suma de todos esos números primos.
Recuerda: un número es primo si es mayor que 1 y solo es divisible por 1 y por sí mismo. El 1 no es primo; el 2 sí es primo (es el único primo par). Los números negativos y el 0 no son primos.
Debes implementar una función auxiliar boolean esPrimo(int n) y usarla desde la función principal. No está permitido usar librerías que resuelvan el problema directamente.
Si el array está vacío, la función debe devolver {0, 0}.
Entregables: (a) el código fuente; (b) la traza en papel de la ejecución para el array de prueba que se indique en clase; (c) una breve defensa oral (2-3 min) explicando tu lógica de esPrimo.
Datos de prueba para validar la corrección (diseñados por clases de equivalencia + casos límite):
| # |
Entrada (array) |
Salida esperada {conteo, suma} |
Qué valida |
| 1 |
{2, 3, 5, 7} |
{4, 17} |
Caso normal, todos primos |
| 2 |
{4, 6, 8, 9, 10} |
{0, 0} |
Sin primos (compuestos) |
| 3 |
{1, 0, -3, -7} |
{0, 0} |
Caso límite: 1, 0 y negativos NO son primos |
| 4 |
{} |
{0, 0} |
Caso límite: array vacío |
| 5 |
{2} |
{1, 2} |
El 2 sí es primo (único primo par) |
| 6 |
{11, 12, 13, 14, 15, 17} |
{3, 41} |
Mezcla primos/compuestos (11+13+17) |
| 7 |
{97, 100, 1} |
{1, 97} |
Primo grande + compuesto + 1 |
Los casos 3 y 4 son los límite clave: descartan los errores típicos (contar el 1 como primo y no gestionar el array vacío). El caso 5 verifica el tratamiento correcto del 2.
(Para corrección interna del profesor, la solución de referencia recorrería el array invocando esPrimo, que comprueba n > 1 y prueba divisores desde 2 hasta √n; pero esto NO se entrega al alumnado.)
Cuestión 2 — Situación de aprendizaje competencial
Título de la SdA: "¿Es primo o no? Construyendo un mini-validador numérico".
Reto / pregunta de partida: un equipo de desarrollo necesita una utilidad que analice listas de números (p. ej., depurar identificadores o claves) detectando primos. ¿Cómo lo programamos de forma fiable y cómo demostramos que funciona?
Producto final: una clase Java documentada con la función analizarPrimos, su batería de pruebas (mini test con assert o comprobaciones por consola) y un breve vídeo/defensa de 2-3 min explicando el código y la traza de un caso. La obligatoriedad de la traza y la defensa es lo que rompe el «copiar y pegar».
Fases:
- Activación (15 min): lluvia de ideas sobre qué es un primo y cómo decidirlo; trazado en papel de
esPrimo(15) y esPrimo(7) sin ordenador.
- Desarrollo (sesión): diseño del algoritmo (pseudocódigo), codificación de
esPrimo, luego de analizarPrimos, y validación con los datos de prueba.
- Cierre (final): code review entre parejas y defensa oral; puesta en común de optimizaciones (parar en
√n).
Agrupamientos: parejas heterogéneas (alumnado con base sólida + base floja) en fase de codificación, individual en la defensa, y gran grupo en activación y cierre. El TDAH se empareja en posición que le facilite el foco.
Conexión curricular (módulo 0485 Programación):
- Competencia específica / RA: "Escribe y depura código, analizando y utilizando las estructuras de control del lenguaje" (resultado de aprendizaje del módulo sobre estructuras de control y, en conexión, sobre desarrollo de clases y métodos).
- Saberes básicos: tipos de datos y operadores (módulo
%); estructuras de control selectivas e iterativas; diseño y uso de funciones/métodos con parámetros y valor de retorno; arrays unidimensionales; pruebas y depuración.
- Competencias del título (RD 450/2010): desarrollar, depurar y documentar aplicaciones; competencias personales y sociales de trabajo en equipo.
Cómo se evita el «copiar y pegar»: contextualización personalizada (cada pareja recibe un array de datos distinto), entrega obligatoria de traza en papel, defensa oral individual del código y code review entre iguales. El producto evaluable es la comprensión demostrada, no solo el fichero .java.
Cuestión 3 — Atención a la diversidad (DUA)
Aplicación de los tres principios DUA manteniendo el mismo nivel de logro (no es adaptación significativa, sino accesibilidad y andamiaje):
Principio I — Representación (el «qué» del aprendizaje):
- Presentar el concepto de primo en múltiples formatos: explicación verbal, esquema visual de divisibilidad, animación/criba de Eratóstenes y ejemplo trazado paso a paso.
- Glosario con términos clave (primo, módulo, divisor, función, parámetro, retorno).
- Código de referencia comentado línea a línea como modelo.
Principio II — Acción y expresión (el «cómo»):
- Scaffolding / andamiaje desmontable: plantilla de código con la firma y comentarios
// TODO que el alumnado completa; se retira el andamiaje en sucesivas tareas.
- Segmentación de la tarea para el alumno con TDAH (medida nivel II): dividir la práctica en micro-objetivos cortos con checklist (1º
esPrimo, 2º bucle, 3º suma, 4º pruebas), tiempos breves y descansos pautados; ubicación sin distractores; permitir entregar por hitos.
- Material multinivel para la base floja (acceso desde grado medio): versión guiada con pseudocódigo dado y versión de ampliación (optimizar a
√n, criba para los más avanzados).
- Permitir expresar la solución también de forma oral o con diagrama de flujo antes de codificar.
Principio III — Implicación / motivación (el «porqué»):
- Reto realista y cercano, con autonomía para elegir el contexto de los datos.
- Refuerzo positivo y feedback inmediato por hitos (clave en TDAH).
- Trabajo cooperativo en parejas heterogéneas que reduce la ansiedad de la base floja.
- Autoevaluación con rúbrica visible desde el inicio (autorregulación).
Ninguna medida rebaja el resultado de aprendizaje común: todo el grupo debe entregar analizarPrimos funcional; cambian los apoyos, no el objetivo.
Cuestión 4 — Uso responsable de la IA generativa
Enfoque: la IA (ChatGPT, Copilot…) es una herramienta de aprendizaje y productividad del desarrollador, no un sustituto del razonamiento. Se integra de forma transparente y se evalúa la comprensión, no la mera entrega de código.
Rediseño de la tarea:
- IA como par/mentor, no como autor: se permite usar IA para explicar un concepto o revisar el propio código, pero el alumnado debe declarar qué preguntó y qué cambió (registro de prompts). Esto trabaja el uso ético y la cita de fuentes.
- Actividad invertida ("rompe la IA"): se entrega código generado por IA con un error introducido; el alumnado debe detectarlo, explicarlo y corregirlo. Comprender > generar.
Rediseño de la evaluación (para demostrar comprensión real):
- Defensa oral del código: el alumno explica su
esPrimo, justifica por qué para en √n y responde a preguntas «¿qué pasa si elimino esta condición?». Si lo copió sin entender, se detecta aquí.
- Code review entre iguales con guion: cada pareja revisa el código de otra y reporta fortalezas/mejoras.
- Traza en papel: ejecutar a mano
analizarPrimos({1,2,9}) paso a paso. La IA no ayuda en el examen manual.
- Control sin ordenador / prueba escrita breve: completar una función con huecos o predecir la salida. Pondera para que el peso recaiga en la comprensión individual.
Relación con la competencia digital: se desarrollan áreas del marco DigComp/DigCompEdu: creación de contenidos digitales (programación), uso responsable y ético de herramientas de IA, evaluación crítica de la información generada (la IA se equivoca: hay que validar con pruebas), y seguridad/propiedad intelectual (citar el uso de IA). Se forma a futuros técnicos que usan IA con criterio, no que dependen de ella.
Cuestión 5 — Evaluación
Carácter: evaluación competencial, continua y formativa, referida a los criterios de evaluación del módulo 0485 (RA sobre estructuras de control y desarrollo de métodos).
Instrumentos de evaluación (variados y complementarios):
- Observación directa en el aula-taller (registro/diario del docente) durante la codificación: autonomía, depuración, trabajo en pareja.
- Análisis de la producción: el código entregado y su batería de pruebas (corrección frente a los datos de prueba de la Cuestión 1, incluidos los casos límite).
- Prueba práctica individual breve sin IA (función con huecos / predecir salida).
- Defensa oral y code review entre iguales (rúbrica de coevaluación).
Rúbrica (criterios anclados a los criterios de evaluación del módulo):
| Criterio |
No logrado (0-4) |
En proceso (5-6) |
Logrado (7-8) |
Excelente (9-10) |
| C1. Corrección funcional (estructuras de control y resultado correcto) |
El código no compila o falla en la mayoría de casos |
Funciona en casos normales pero falla en algún caso límite (vacío, 1, negativos) |
Pasa todos los datos de prueba, incluidos los límite |
Pasa todo y gestiona robustamente entradas inesperadas |
| C2. Uso de funciones y modularidad |
No separa en funciones |
Usa esPrimo pero con lógica confusa |
esPrimo + analizarPrimos bien separadas, parámetros y retorno correctos |
Modular, eficiente (corte en √n) y reutilizable |
| C3. Comprensión demostrada (defensa + traza) |
No sabe explicar su código |
Explica parcialmente, dudas en la traza |
Explica con claridad y traza correctamente un caso |
Justifica decisiones de diseño y propone optimizaciones |
| C4. Proceso, calidad y uso responsable de IA (legibilidad, pruebas, declaración de IA) |
Sin pruebas, código ilegible, IA sin declarar |
Pruebas mínimas, comentarios escasos |
Código legible y comentado, pruebas y uso de IA declarado |
Documentación, pruebas exhaustivas y uso crítico/ético de la IA |
Feedback formativo:
- Continuo y por hitos (especialmente útil para el alumno con TDAH): comentarios cortos tras cada micro-objetivo.
- Feedback descriptivo y orientado a la mejora ("tu
esPrimo falla con n=1: revisa la condición de partida"), no solo una nota.
- Coevaluación guiada en el code review y autoevaluación con la rúbrica visible desde el inicio, fomentando la autorregulación.
- Posibilidad de reentrega tras el feedback, coherente con la evaluación formativa y la mejora del resultado de aprendizaje.