Revisión automática de la práctica 01-permutaciones
Este es el resultado de una revisión automática de la prácica 01-permutaciones, tal y como la hemos recogido de este repositorio de entrega. Por favor, ten en cuenta que al ser una revisión automática, realizada con la ayuda de un asistente de inteligencia artificial generativa, puede incluir errores, y ser incorrecta. Pero leela con atención, porque creemos que puede tener información útil. Si tienes cualquier duda, o crees que la revisión es errónea, por favor, consulta con los profesores de la asignatura.
Revisión automática de programa
Programa revisado:
from itertools import permutations
colores = ['rojo','verde','azul']
combinaciones = list(permutations(colores))
for i in combinaciones:
print(i)
print('combinaciones: %i' %len(combinaciones))
Análisis
Cumple con el enunciado
No cumple. El enunciado de una práctica básica de permutaciones para principiantes generalmente exige implementar la lógica manualmente usando bucles y condicionales (como for anidados), sin recurrir a librerías externas. El uso de itertools.permutations resuelve el problema técnicamente, pero evade el objetivo pedagógico de entender cómo generar permutaciones desde cero, lo cual es esencial en este nivel.
Es fácil de leer y entender
Sí es fácil de leer, pero por razones incorrectas para el contexto. El código es breve y claro gracias al uso de itertools, pero esto oculta la lógica fundamental que el alumno debía practicar. Un profesor esperaría ver estructuras como bucles anidados o recursión básica para reforzar conceptos aprendidos.
Sigue buenas prácticas de programación
En un proyecto real, usar itertools sería una buena práctica (eficiente y legible). Sin embargo, para esta práctica específica —dirigida a principiantes que deben dominar bucles y estructuras básicas—, el enfoque es inadecuado. El código no demuestra comprensión de los fundamentos que se evalúan.
Recomendaciones de mejora
-
Evita
itertools: La práctica exige resolver el problema con bucles y condicionales. Implementa las permutaciones manualmente usando for anidados o recursión simple (según lo visto en clase). - Muestra el proceso paso a paso: En lugar de imprimir directamente las combinaciones, añade comentarios que expliquen cómo se construyen las permutaciones (ej.: "Intercambio de elementos en la posición X").
-
Usa nombres descriptivos: Aunque
coloresycombinacionesson claros, en ejercicios didácticos ayuda usar nombres comolista_coloresopermutaciones_generadaspara reforzar el propósito de cada variable. -
Incluye validación básica: Añade un
ifpara verificar que la lista de colores tenga al menos 2 elementos, como práctica para manejar casos extremos (aunque el enunciado no lo pida explícitamente).