PSeInt — fundamentos antes de Python

Volver a 03 Fundamentos.

Idea central: antes de aprender la sintaxis de Python, hay que aprender a pensar algoritmos. PSeInt permite escribir pseudocódigo en español, ejecutarlo, ver la traza y corregir la lógica sin distraerse con detalles del lenguaje.

PSeInt no es el objetivo

Es el laboratorio para aprender lógica, secuencia, decisiones, repetición y modularidad. Python viene después, para traducir esa lógica a un lenguaje real.

Orden de aprendizaje

1. Problema, algoritmo y programa

  • Qué es un problema computable.
  • Diferencia entre algoritmo, pseudocódigo y programa.
  • Entrada → proceso → salida.
  • Precisión, finitud y determinismo.

2. Datos y variables

  • Variables y constantes.
  • Tipos básicos: entero, real, lógico, carácter y cadena.
  • Asignación y actualización de variables.
  • Nombres descriptivos y legibilidad.

3. Operadores y expresiones

  • Aritméticos: suma, resta, multiplicación, división, módulo.
  • Relacionales: igual, distinto, mayor, menor, mayor o igual, menor o igual.
  • Lógicos: Y, O, NO.
  • Precedencia y paréntesis.
  • Conversión entre tipos.

4. Control de flujo

  • Si / Entonces / SiNo.
  • Condicionales anidados.
  • Según para múltiples casos.
  • Validación de entradas.

5. Bucles

  • Mientras para repetición condicionada.
  • Repetir / Hasta Que para ejecutar al menos una vez.
  • Para para rangos conocidos.
  • Cuándo usar cada uno y cómo evitar bucles infinitos.

6. Patrones básicos

  • Contadores.
  • Acumuladores.
  • Banderas o centinelas.
  • Máximo y mínimo.
  • Búsqueda lineal.
  • Validación con reintento.

7. Arreglos

  • Vectores: recorrido, carga, suma, promedio, búsqueda.
  • Matrices: recorrido por filas y columnas, suma, transpuesta.
  • Índices y límites.
  • Ordenamiento básico (burbuja) y su costo.

8. Subprocesos y funciones

  • Modularidad: dividir para entender.
  • Parámetros y valores de retorno.
  • Variables locales y alcance.
  • Funciones que calculan y funciones que muestran.
  • Evitar duplicación.

9. Traza y depuración

  • Ejecutar a mano paso a paso.
  • Tabla de traza: variables, condiciones y salidas.
  • Puntos de interrupción y ejecución paso a paso en PSeInt.
  • Detectar errores de lógica, no solo de sintaxis.

10. Diagramas de flujo

  • Símbolos: inicio/fin, proceso, decisión, entrada/salida.
  • Convertir pseudocódigo a diagrama y viceversa.
  • Leer un diagrama antes de programarlo.

11. Pruebas

  • Casos normales.
  • Casos límite: cero, negativos, vacío, máximo.
  • Casos inválidos.
  • Criterio de aceptación antes de escribir el código.

12. Traducción a Python

Solo cuando la lógica esté clara:

  • Misma secuencia, distinta sintaxis.
  • Si → if, Mientras → while, Para → for.
  • Arreglos → listas.
  • Subprocesos → funciones.
  • Comparar el pseudocódigo con el programa y verificar que la lógica no cambió.

Práctica mínima

30 ejercicios

Secuencia y variables

  • 1. Sumar dos números.
  • 2. Calcular el promedio de tres notas.
  • 3. Calcular área y perímetro de un rectángulo.
  • 4. Convertir grados Celsius a Fahrenheit.
  • 5. Calcular el salario con horas extra.

Condicionales

  • 6. Determinar si un número es par o impar.
  • 7. Mostrar el mayor de dos números.
  • 8. Mostrar el mayor de tres números.
  • 9. Clasificar una nota como insuficiente, suficiente, bueno o excelente.
  • 10. Calcular un descuento según el monto de compra.

Bucles y patrones

  • 11. Sumar los números del 1 al N.
  • 12. Mostrar la tabla de multiplicar de un número.
  • 13. Calcular el factorial de un número.
  • 14. Generar los primeros N términos de Fibonacci.
  • 15. Contar los dígitos de un número.
  • 16. Invertir un número.
  • 17. Determinar si un número es primo.
  • 18. Encontrar el máximo y el mínimo de N números.
  • 19. Calcular el promedio con un valor centinela.
  • 20. Validar una contraseña con reintentos.

Arreglos y matrices

  • 21. Cargar un vector y mostrar su suma y promedio.
  • 22. Buscar un elemento en un vector.
  • 23. Ordenar un vector con burbuja.
  • 24. Sumar dos matrices.
  • 25. Calcular la transpuesta de una matriz.
  • 26. Contar vocales en una cadena.
  • 27. Determinar si una palabra es palíndromo.

Subprocesos

  • 28. Crear una función que calcule una potencia.
  • 29. Crear una función que determine si un número es primo.
  • 30. Mini sistema con menú: cargar, mostrar, buscar y salir.

Además

  • 5 diagramas de flujo de los ejercicios anteriores.
  • 3 tablas de traza completas.
  • 3 traducciones de PSeInt a Python, comparando la lógica.

Criterio de dominio

Puedo mirar un problema nuevo y, antes de escribir código:

  1. Descomponerlo en pasos.
  2. Elegir las estructuras de control necesarias.
  3. Escribir el pseudocódigo.
  4. Trazarlo con un caso normal y uno límite.
  5. Explicar qué hace cada parte.

Si puedo hacer eso, estoy listo para Python.

Instalación

PSeInt no está instalado en este equipo. Opciones:

  • Arch Linux con yay: yay -S pseint-bin (precompilado) o yay -S pseint.
  • Descarga oficial: pseint.sourceforge.net

Paquete de AUR

Ambos paquetes aparecen como huérfanos en AUR. Verificar que sigan disponibles antes de instalar; si fallan, usar la descarga oficial.

Sin fechas

Este bloque avanza por evidencia, no por calendario. Se cierra cuando los 30 ejercicios, los 5 diagramas y las 3 traducciones están hechos y explicados.

Enlaces