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', 'Adiós']
print('Lista:', lista)
print('Permutaciones:')
for p in permutations(lista):
    print(' '.join(p))

Análisis

Cumple con el enunciado

No cumple.
El enunciado de la práctica indica que se deben generar permutaciones sin usar la biblioteca itertools. Este programa utiliza itertools.permutations, lo cual evita que el alumno demuestre comprensión del algoritmo de permutaciones mediante bucles anidados, que es el objetivo principal de la actividad.

Es fácil de leer y entender

Sí, es fácil de leer.
El código es breve y claro: define una lista, muestra su contenido y luego imprime todas las permutaciones usando un bucle for. La estructura y los mensajes son intuitivos para un principiante. Sin embargo, al depender de itertools, no enseña cómo funcionan las permutaciones internamente.

Sigue buenas prácticas de programación

⚠️ Parcialmente.
Usar itertools es una buena práctica en programas reales, pero no en esta práctica, ya que el objetivo es implementar el algoritmo manualmente. Además, el nombre de la variable (lista) es genérico, pero suficiente para el contexto. No hay comentarios, lo que podría dificultar la comprensión del propósito del código para alguien que no conozca el enunciado.

Recomendaciones de mejora

  1. Evitar itertools
    Reemplazar permutations(lista) con bucles anidados que generen las permutaciones manualmente. Por ejemplo, para una lista de 3 elementos, usar 3 bucles for con condiciones para evitar repetir índices.

  2. Explicar el proceso
    Añadir comentarios que describan cómo se generan las permutaciones, especialmente si se reescribe el código sin itertools.

  3. Formatear la salida
    Separar las permutaciones con comas o saltos de línea para mejorar la legibilidad (ej.: print(', '.join(p))).

  4. Usar variables descriptivas
    Aunque lista es válido, un nombre como mensajes o elementos podría ser más claro en este contexto.