Antes de encender un computador, los programadores aprenden a descomponer problemas en pasos pequeños, ordenados y claros. Esa habilidad se llama pensamiento computacional y es la base de todo lo que construiremos en este taller.
No se trata de memorizar comandos ni de ser experto en tecnologia. Se trata de organizar ideas de manera logica, como cuando explicas a alguien cómo preparar una comida o cómo sembrar una semilla en el huerto. Si la explicación tiene un orden confuso, el resultado sera confuso. Si es precisa, el resultado sera el esperado.
¿Qué es un algoritmo?
Un algoritmo es simplemente una lista de pasos ordenados que resuelven una tarea. No es necesariamente algo complejo ni algo exclusivo de las computadoras. Cuando sigues la receta para hacer arepas, cuando guias a alguien a ir a un sitio o cuando describes como encender un fogón, estas usando algoritmos.
Definición práctica: Un algoritmo es una secuencia de instrucciones claras que, realizadas en orden, llevan a un resultado especifico.
La diferencia entre una explicación común y un algoritmo es la precisión. Un algoritmo no puede dar por sentado que la persona (o la máquina) que lo ejecuta "ya sabe" lo que se espera. Cada paso debe ser explícito.
El robot que solo obedece
Imagina que tienes frente a ti un robot. Este robot puede caminar, girar, agarrar objetos y dibujar, pero no puede adivinar ni completar pasos que tu olvides mencionar. Si le dices "levántate y camina", el robot no sabrá hacia donde ni cuantos pasos. Si le dices "toma el marcador", no sabrá con que mano ni como sujetarlo.
Para que el robot cruce el salón, tome un marcador y dibuje un circulo en el tablero, necesitas una secuencia como esta:
Algoritmo: Dibujar un circulo en el tablero
- Levantar el pie derecho.
- Avanzar un paso hacia adelante.
- Repetir los pasos 1 y 2 diez veces.
- Girar noventa grados hacia la derecha.
- Avanzar cinco pasos hacia adelante.
- Extender la mano derecha hasta el tablero.
- Agarrar el marcador azul con los dedos pulgar e indice.
- Levantar el marcador del soporte.
- Dibujar un círculo de treinta centímetros de diámetro.
- Devolver el marcador al soporte.
Observación: Si en el paso 3 hubieras dicho solo "camina hasta el tablero", el robot no sabria cuantos pasos dar. Si en el paso 7 no especificas el color, podria agarrar cualquier marcador. La precision te salva de errores.
Algoritmos en la vida
En el campo se trabaja con procedimientos heredados de generación en generación. Muchos de esos procedimientos son algoritmos perfectos: pasos probados, en orden, con resultados predecibles.
Ejemplo: Sembrar una semilla de yuca
- Elegir una estaca de yuca sana, de al menos veinte centímetros.
- Cavar un hueco de quince centímetros de profundidad en tierra suelta.
- Colocar la estaca en posicion vertical, con la parte de los brotes hacia arriba.
- Cubrir con tierra sin apretar demasiado.
- Regar con un litro de agua alrededor del tallo.
- Repetir cada tres días durante la primera semana.
Ejemplo: Preparar chicha de maíz
- Dejar remojar el maíz en agua durante 1 día.
- Lavar los granos hasta que el agua salga limpia.
- Moler los granos con agua.
- Colar la mezcla con un pano limpio.
- Agregar panela rallada al gusto.
- Servir fría o a temperatura ambiente.
Si alteras el orden de estos pasos, el resultado cambia. Si omites el remojo, el maíz queda duro. Si no lo cuelas, la textura es arenosa. Los algoritmos cotidianos nos enseñan que el orden y el detalle importan.
De la logica a Python
Cuando escribimos un programa en Python, estamos haciendo exactamente lo mismo que con el robot o con la receta de la chicha: damos instrucciones precisas a una máquina que no interpreta, no complementa y no adivina.
La unica diferencia es el idioma. En lugar de decir "levanta el pie derecho", escribimos instrucciones en un lenguaje que la computadora entiende. Por ejemplo, para mostrar un mensaje en pantalla usamos:
print("Hola")
Esta linea es una instruccion exacta: "muestra en pantalla el texto entre comillas". Si olvidas una comilla o un parentesis, Python se detiene y te avisa, igual que el robot se detendría si le faltara una instrucción.
Consejo: Antes de escribir código, escribe en papel los pasos que tu programa debe seguir. Esa lista de papel es tu algoritmo. Traducirla a Python es solo el segundo paso.
Diagramas de flujo
Un diagrama de flujo es una forma de dibujar un algoritmo usando figuras. Cada figura representa una acción y las flechas indican el orden. Es útil porque permite ver el recorrido completo de un vistazo.
Simbolos basicos
- Óvalo: Inicio o fin del proceso.
- Rectángulo: Una acción o instrucción.
- Rombo: Una decisión (si / no).
- Flechas: Dirección del flujo.
No necesitas programas especiales para dibujarlos. Con papel y lápiz puedes representar cualquier proceso: desde cómo llegar al rio hasta cómo decidir si una semilla esta lista para sembrarse.
Retos en papel
Antes de pasar a la siguiente sesion, intenta estos ejercicios mentalmente o en una hoja:
Reto 1: La ruta a la escuela
Escribe los pasos exactos para guiar a una persona desde su casa hasta la escuela. No des nada por sentado: indica direcciones, puntos de referencia y distancias aproximadas.
Reto 2: Encender el fogón
Describe paso a paso como encender un fogón de leña para hacer un asado. Incluye que hacer si la leña esta humeda.
Reto 3: De algoritmo a dibujo
Dibuja un diagrama de flujo simple para decidir si hoy necesitas paraguas: mira por la ventana, observa el cielo, decide si esta nublado o soleado, y elige tu respuesta.