Pseudocódigo, diagramas de flujo y bloques

El pseudocódigo, el diagrama de flujo y los bloques son tres formas de escribir el mismo algoritmo. Cada una deja ver algo distinto, y usarlas juntas hace más fácil entender qué hace un programa y por qué.

Un algoritmo, tres formas

Este algoritmo pregunta tu edad y te dice si ya puedes votar. Primero, en pseudocódigo: palabras en español, una instrucción por línea.

Algoritmo puede_votar
    Escribir "¿Tu edad?"
    Leer edad
    Si edad >= 18 Entonces
        Escribir "Puedes votar"
    SiNo
        Escribir "Faltan ", 18 - edad
    FinSi
FinAlgoritmo

El mismo algoritmo como diagrama de flujo. Cada figura es un tipo de paso y las flechas marcan el camino. En el rombo, el camino se divide en dos.

Diagrama de flujo de Algoritmo puede_votarInicioEscribir "¿Tu edad?"Leer edadedad >= 18Escribir "Faltan ", 18 - edadEscribir "Puedes votar"FinNoSí

Y como bloques: piezas de colores que encajan unas dentro de otras. Cada color es un tipo de instrucción, y lo que va dentro del Si queda abrazado por él.

El algoritmo puede_votar en bloquesEscribir"¿Tu edad?"LeeredadSiedad >= 18EntoncesEscribir"Puedes votar"SiNoEscribir"Faltan ", 18 - edad

Los tres dicen exactamente lo mismo. No son tres programas: son tres maneras de mirar uno solo. Lo que cambia es qué se ve más fácil en cada una.

El pseudocódigo: preciso y cerca de programar

El pseudocódigo es la forma más compacta. Un programa de 30 pasos cabe en una pantalla, se corrige borrando una palabra y se comparte copiando y pegando. Además, se parece mucho a los lenguajes de verdad: Si es if, Mientras es while. Por eso es el formato que más acerca a programar en Python, C o Java.

Lo difícil: hay que escribir bien. Una comilla que falta o un FinSi olvidado detienen todo, y al principio esos errores distraen de lo importante, que es la lógica. También cuesta ver de un vistazo cuántos caminos tiene el programa: un Si dentro de otro Si se nota solo por la sangría.

Conviene cuando: ya entiendes la idea y quieres escribirla completa, cuando el programa es largo o cuando te preparas para pasar a un lenguaje de programación. Si quieres conocerlo a fondo, está la guía qué es el pseudocódigo.

El diagrama de flujo: ver el camino

El diagrama dibuja lo que el pseudocódigo solo dice. Las decisiones se ven como bifurcaciones y los ciclos como flechas que regresan. Con el dedo puedes seguir el camino que tomaría el programa con cierto dato, y eso es justo lo que hace falta para entenderlo.

Esto tiene respaldo. En un experimento clásico, David Scanlan comparó a estudiantes que leían algoritmos como diagramas de flujo estructurados contra otros que los leían en pseudocódigo. Con los diagramas los entendieron en menos tiempo, se equivocaron menos al responder preguntas sobre ellos y confiaron más en su respuesta. La ventaja creció conforme los algoritmos se hacían más complicados (Scanlan, 1989).

Lo difícil: los diagramas crecen rápido. A mano, un programa con varios ciclos llena una hoja, y corregir un paso en medio obliga a redibujar. Ojo también con lo que mide ese estudio: leer y entender un algoritmo, no escribirlo.

Conviene cuando: estás aprendiendo una estructura nueva (decisiones, ciclos), cuando explicas un algoritmo a alguien o cuando no entiendes por qué tu programa toma el camino que toma. Para aprender a dibujarlos, revisa cómo hacer un diagrama de flujo.

Los bloques: armar sin errores de escritura

Con bloques no escribes: eliges una pieza y la llenas. No hay comillas que olvidar ni cierres que faltan, porque cada Si ya viene con su forma de C y su SiNo. Además, todas las instrucciones están a la vista: no tienes que recordar cómo se escribe Repetir, la ves en la lista.

En un estudio de cinco semanas con estudiantes de bachillerato, David Weintrop y Uri Wilensky compararon una versión con bloques y otra con texto del mismo entorno de programación. Quienes usaron bloques aprendieron más conceptos en ese tiempo. Los de texto, en cambio, sentían que lo suyo se parecía más a programar de verdad (Weintrop y Wilensky, 2017). Después, ambos grupos pasaron a Java y, tras 10 semanas, la diferencia desapareció: empezar con bloques no los dejó atrás (Weintrop y Wilensky, 2019).

Lo difícil: armar un programa grande pieza por pieza es más lento que escribirlo, y tarde o temprano hay que pasar a texto. Los bloques son una rampa, no el destino.

Conviene cuando: estás empezando y los errores de escritura te frenan, o cuando quieres concentrarte en el orden de los pasos sin pelear con la sintaxis.

Comparación rápida

Pseudocódigo, diagrama de flujo y bloques
PseudocódigoDiagrama de flujoBloques
Lo que se ve mejorCada paso, completo y en ordenLos caminos: decisiones y ciclosQué va dentro de qué
Error típicoDe escritura: comillas, cierresFlechas que no llegan a ningún ladoPieza en el lugar equivocado
Programas largosBien: es compactoDifícil: crece muchoLento de armar
Más útil paraEscribir y pasar a otro lenguajeEntender y explicarEmpezar sin trabarse
En papelFácil de escribirTardado de corregirNo se usa

Por qué aprender con los tres a la vez

La investigación sobre aprender con varias representaciones, como la de Shaaron Ainsworth, explica por qué juntarlas ayuda (Ainsworth, 2006). Cuando ves la misma idea de varias formas, pasan tres cosas:

  • Se complementan. Cada formato muestra algo que el otro esconde: el pseudocódigo da el detalle, el diagrama da la forma.
  • Se aclaran entre sí. Lo que ya conoces ayuda a leer lo nuevo. Si dudas de qué hace un SiNo escrito, el rombo del diagrama te lo dice.
  • Construyen una idea más profunda. Al relacionarlas entiendes lo que tienen en común: el algoritmo, que no es ni el texto ni el dibujo.

La misma investigación advierte algo: tener varias representaciones no ayuda solo. Lo más difícil para quien empieza es traducir de una a otra, y si nadie lo apoya en eso, más representaciones pueden confundir en vez de ayudar.

Por eso en Jaguar las tres vistas están conectadas. Cambias una línea de pseudocódigo y el diagrama y los bloques cambian con ella. Tocas una figura del diagrama y ves qué línea es. La traducción que en papel tendrías que hacer tú, aquí la ves hecha y puedes comprobarla. Y cuando ya no la necesitas, usas solo una vista.

Hay una cuarta forma de mirar el programa: en el tiempo. La prueba de escritorio muestra qué vale cada variable en cada paso. Así se ve el algoritmo puede_votar cuando escribes 15:

Prueba de escritorio con edad = 15
PasoLíneaInstrucciónedadPantalla
13Escribir "¿Tu edad?"¿Tu edad?
24Leer edad15
35Si edad >= 18 Entonces15
48Escribir "Faltan ", 18 - edad15Faltan 3

El pseudocódigo dice qué hacer, el diagrama muestra por dónde va, los bloques muestran qué contiene qué, y la prueba de escritorio enseña lo que pasó de verdad.

Cómo usarlos al estudiar o en clase

  1. Al empezar un tema, mira primero el diagrama: te da la forma general antes de los detalles.
  2. Si los errores de escritura te frenan, arma el programa en bloques y luego mira cómo queda escrito.
  3. Para la tarea o el examen, escribe en pseudocódigo: es lo que más se pide y lo más cercano a programar.
  4. Cuando algo no sale, haz la prueba de escritorio: casi siempre muestra en qué paso se rompe la lógica.

Si das clase, tres actividades que funcionan bien:

  • Del diagrama al código. Muestra un diagrama y pide el pseudocódigo. Luego comparan con la vista de Jaguar.
  • Del código al diagrama, a mano. Pide dibujar el diagrama en papel y después revisarlo contra el que genera Jaguar. Las diferencias son la discusión.
  • Predecir antes de ejecutar. Con la prueba de escritorio en modo Practicar, cada quien llena la tabla y Jaguar revisa cada celda.

Fuentes

  • Ainsworth, S. (2006). DeFT: A conceptual framework for considering learning with multiple representations. Learning and Instruction, 16(3), 183–198. doi.org/10.1016/j.learninstruc.2006.03.001
  • Scanlan, D. A. (1989). Structured flowcharts outperform pseudocode: an experimental comparison. IEEE Software, 6(5), 28–36. doi.org/10.1109/52.35587
  • Weintrop, D. y Wilensky, U. (2017). Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education, 18(1), artículo 3. PDF
  • Weintrop, D. y Wilensky, U. (2019). Transitioning from introductory block-based and text-based environments to professional programming languages in high school computer science classrooms. Computers & Education, 142, 103646. PDF

Preguntas frecuentes

¿Qué es mejor, el diagrama de flujo o el pseudocódigo?

Ninguno es mejor siempre. El diagrama ayuda a entender por dónde va un algoritmo, sobre todo con decisiones y ciclos. El pseudocódigo es más rápido de escribir y corregir, y se parece más a un lenguaje de programación. Lo ideal es saber pasar de uno a otro.

¿Cuál es la diferencia entre un diagrama de flujo y el pseudocódigo?

Dicen lo mismo de formas distintas. El pseudocódigo escribe los pasos con palabras, uno por línea. El diagrama de flujo los dibuja con figuras (óvalos, rectángulos, rombos) unidas por flechas que muestran el orden.

¿Los bloques son solo para niños?

No. Sirven a cualquiera que esté empezando, porque quitan los errores de escritura y dejan ver la estructura. En un estudio con estudiantes de bachillerato, quienes empezaron con bloques aprendieron más conceptos en las primeras semanas y no tuvieron desventaja al pasar a Java.

En el examen me piden el diagrama a mano. ¿Me sirve Jaguar?

Sí. Practica dibujándolo en papel y después escribe el mismo algoritmo en Jaguar para comparar tu dibujo con el diagrama que genera. Si no coinciden, encontraste un error o una forma distinta de resolverlo.

¿Tengo que aprender los tres?

Lo que se pide casi siempre es pseudocódigo y diagrama de flujo. Los bloques son opcionales: úsalos si te ayudan a empezar. Lo importante no es el formato, sino entender el algoritmo que está detrás de los tres.

Sigue aprendiendo