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
lista = ['Hola', 'Qué tal', 'Adios']
print('Lista: ', lista)
print('Permutaciones: ')
for p in permutations(lista):
    print(' '.join(p))

Análisis

Cumple con el enunciado

No. El programa utiliza la biblioteca itertools, la cual no está permitida en esta práctica. El objetivo es implementar manualmente el algoritmo de permutaciones usando estructuras básicas como bucles anidados o recursión, no funciones predefinidas. El enunciado busca reforzar el entendimiento de cómo generar permutaciones desde cero.

Es fácil de leer y entender

Sí, pero con observaciones. El código es corto y usa una sintaxis clara para imprimir resultados. Sin embargo, al depender de itertools, no muestra la lógica interna del proceso de permutación, lo cual es esencial para cumplir con el propósito pedagógico de la práctica. Un compañero sin conocimiento de la biblioteca no entendería cómo se generan las permutaciones.

Sigue buenas prácticas de programación

Parcialmente. Aunque el uso de itertools es eficiente en proyectos reales, en este contexto (práctica introductoria) no se alinea con los objetivos de aprendizaje. Además, la lista está definida de forma estática sin permitir entrada de usuario, lo que limita su flexibilidad y reutilización.

Recomendaciones de mejora

  • Evita itertools: Implementa las permutaciones manualmente usando bucles anidados (por ejemplo, para una lista de 3 elementos, usa tres bucles for que verifiquen índices distintos).
  • Permite entrada dinámica: En lugar de una lista fija, pide al usuario que ingrese los elementos (ej: input().split()).
  • Explica el proceso: Añade comentarios breves que describan cómo funcionan los bucles para generar cada permutación, reforzando el aprendizaje de la lógica subyacente.