Pensamiento Computacional (090) · Unidad 1 — Algoritmos y programación
Qué es un algoritmo
Un algoritmo es una receta: pasos finitos, sin ambigüedad, que a partir de ciertos datos llegan a un resultado. Programar es escribir recetas para alguien que no interpreta nada.
La explicación
La definición, y por qué cada palabra importa
Un algoritmo es una secuencia finita de pasos no ambiguos que, partiendo de unos datos de entrada, produce un resultado.
- Finita: tiene que terminar. Un procedimiento que da vueltas para siempre no es un algoritmo.
- No ambigua: cada paso significa una sola cosa. "Agregar sal a gusto" no sirve: ¿cuánta?
- Con entrada y salida: recibe datos y produce algo. Si no produce nada, no sirve de mucho.
Descomponer: el paso que la gente se saltea
Antes de escribir código, hay que partir el problema en pasos chicos. Es la parte que más cuesta y la que menos se practica, porque parece que "no es programar".
Ejemplo — servir un vaso de jugo. Un primer intento sería:
2. Servirlo en el vaso
Suena bien, pero le falta todo. ¿De dónde sale el vaso? ¿El cartón está abierto? ¿Qué pasa si no hay jugo? Una versión que una máquina podría seguir:
2. Si no hay cartón de jugo, terminar (no se puede servir)
3. Tomar el cartón
4. Cerrar la heladera
5. Agarrar un vaso y apoyarlo sobre la mesa
6. Si el cartón está cerrado, abrirlo
7. Inclinar el cartón sobre el vaso hasta que esté lleno hasta 2 cm del borde
8. Enderezar el cartón
Fijate qué apareció al detallar: una decisión (paso 2 y 6) y una condición de corte
(paso 7, "hasta que"). Esas dos cosas son if y while, que vas a ver en
la unidad 3. Los algoritmos cotidianos ya las tienen; sólo hay que reconocerlas.
Qué buscar cuando descomponés
- Qué datos necesito antes de empezar. (la entrada)
- Qué decisiones hay. Cada "si pasa tal cosa" es una bifurcación.
- Qué se repite. Si escribís el mismo paso varias veces, ahí hay un ciclo.
- Cuándo termina. Sobre todo en lo que se repite.
- Qué pasa si sale mal. Que no haya jugo es un caso válido, no un olvido.
Escribir el algoritmo para que una máquina saque plata de un cajero, para alguien que nunca usó uno.
Primero, la entrada. ¿Qué hace falta tener antes de empezar? La tarjeta y el PIN. Si falta alguno, ni tiene sentido arrancar.
2. Insertar la tarjeta
3. Ingresar el PIN
4. Si el PIN es incorrecto, volver al paso 3 (hasta 3 intentos)
5. Elegir la opción "Extracción"
6. Ingresar el monto
7. Si el monto supera el saldo, avisar y volver al paso 6
8. Retirar el dinero
9. Retirar la tarjeta
Ahora mirá qué estructuras aparecieron solas:
- El paso 1 y el 7 son decisiones →
if - El paso 4 es una repetición con corte →
while, y el corte doble (acertó, o se acabaron los intentos) evita el ciclo infinito
El control que vale la pena hacerse siempre: ¿este algoritmo termina en todos los casos? Acá sí, porque el paso 4 tiene tope de intentos. Sin ese tope, alguien que no recuerda el PIN se queda ahí para siempre — y eso deja de ser un algoritmo.
Dónde se cae la mayoría
- Escribir pasos que una persona entiende pero una máquina no ("poner un poco", "hasta que esté listo").
- Olvidar el caso en que algo falla o no está: la lista vacía, el archivo que no existe, el cero.
- Saltear la descomposición y largarse a escribir código. Ahí es donde después no sale.
Hasta acá la explicación. La práctica es la otra mitad: 7 ejercicios de este tema, en cuatro niveles, que no te dicen sólo si está bien al final sino que te corrigen en cada paso y te explican por qué. Además trae una animación que muestra la idea en movimiento.
Practicar Qué es un algoritmo →