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:

#!/usr/bin/env python3

from itertools import permutations
lista = ["Hola","Qué tal","Adiós"]
print('Lista:', lista)
print('Permutaciones:', list(permutations(lista)))

Análisis

Cumple con el enunciado

No cumple.
El enunciado de la práctica indica que el programa debe generar permutaciones sin utilizar la biblioteca itertools. Sin embargo, este código depende directamente de itertools.permutations para resolver el problema, lo que evita que el alumno implemente la lógica manualmente mediante bucles anidados u otros métodos básicos.

Es fácil de leer y entender

Sí, es fácil de leer.
El código es breve y utiliza nombres claros para la lista (lista) y las funciones de itertools. Las instrucciones están ordenadas y los print muestran los resultados de forma directa. No obstante, carece de comentarios explicativos que ayuden a entender el propósito de cada línea, especialmente para alumnos principiantes.

Sigue buenas prácticas de programación

No sigue buenas prácticas.
Aunque el código funciona, su uso de itertools va en contra de los objetivos de la práctica. Además, no se validan posibles errores (como listas vacías) ni se estructura la lógica en funciones reutilizables. Para una práctica introductoria, se espera que el alumno demuestre comprensión de bucles y condicionales en lugar de recurrir a bibliotecas externas.

Recomendaciones de mejora

  1. Evitar itertools:
    Reemplazar itertools.permutations con una implementación manual usando bucles anidados o recursión, como se requiere en la práctica. Por ejemplo, usar for para iterar sobre los elementos y generar combinaciones válidas.

  2. Mejorar la claridad con comentarios:
    Añadir comentarios que expliquen cómo se generan las permutaciones y el propósito de cada sección del código, especialmente para quienes revisen el programa posteriormente.

  3. Usar nombres más descriptivos:
    Cambiar lista por un nombre más específico, como mensajes o elementos, para reflejar el contenido real de la lista.

  4. Validar entradas básicas:
    Asegurarse de que la lista no esté vacía antes de intentar generar permutaciones, para evitar errores inesperados.

  5. Estructurar en funciones:
    Separar la lógica en funciones (ej. generar_permutaciones) para facilitar la reutilización y el testing, aunque esto no sea explícitamente requerido por el enunciado.