Skip to content

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

  1. 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).
  2. 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").
  3. Usa nombres descriptivos: Aunque colores y combinaciones son claros, en ejercicios didácticos ayuda usar nombres como lista_colores o permutaciones_generadas para reforzar el propósito de cada variable.
  4. Incluye validación básica: Añade un if para 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).