Algoritmos y pensamiento computacional
Una computadora hace exactamente lo que le pedís, ni más ni menos. Si le decís «poné un rato a cocinar», no sabe qué hacer. ¿Cómo se le explica una tarea a una máquina que no tiene sentido común? Con una lista de pasos exactos: un algoritmo. Y pensar así, descomponiendo, buscando patrones y quedándote con lo importante, es el pensamiento computacional.
Qué es un algoritmo
Todo algoritmo, como todo proceso computacional, tiene tres partes: lo que entra (entrada), lo que se hace con eso (proceso) y lo que se obtiene (salida). Pensarlo así te obliga a decir con qué empezás, qué hacés y qué resultado esperás.
Escribí el algoritmo, como una lista de pasos numerados, para preparar un sándwich de queso, de forma que una persona que nunca hizo uno pueda seguirlo sin dudas. Revisá…
Escribí el algoritmo, como una lista de pasos numerados, para preparar un sándwich de queso, de forma que una persona que nunca hizo uno pueda seguirlo sin dudas. Revisá tu lista y comprobá que no falten pasos que dabas por supuestos.
En la receta «freír un huevo» identificá la entrada (los ingredientes y utensilios), el proceso (los pasos con el fuego y la sartén) y la salida (el resultado). Explicá…
En la receta «freír un huevo» identificá la entrada (los ingredientes y utensilios), el proceso (los pasos con el fuego y la sartén) y la salida (el resultado). Explicá por qué pensar así ayuda a escribir algoritmos claros.
Escribí el algoritmo para preparar un vaso de leche con cacao en seis u ocho pasos, tan precisos que los pudiera seguir un robot: cantidades, orden de los pasos y cómo…
Escribí el algoritmo para preparar un vaso de leche con cacao en seis u ocho pasos, tan precisos que los pudiera seguir un robot: cantidades, orden de los pasos y cómo comprobar que el cacao se disolvió antes de terminar.
Una receta dice «remové la salsa hasta que espese». Explicá por qué un algoritmo debe terminar siempre y qué podría pasar si la salsa nunca espesara. Reescribí ese paso…
Una receta dice «remové la salsa hasta que espese». Explicá por qué un algoritmo debe terminar siempre y qué podría pasar si la salsa nunca espesara. Reescribí ese paso para que el cocinero no se quede removiendo para siempre.
Decisiones y repeticiones
Los algoritmos no son solo listas rectas. A veces hay que decidir (si pasa tal cosa, hago esto; si no, esto otro) y a veces hay que repetir (mientras queden cartas, repartir una). Los electrodomésticos lo hacen todo el tiempo: el lavarropas repite ciclos de lavado, el microondas decide cuándo parar según el tiempo programado, el semáforo repite sus luces una y otra vez.
Estos pasos del algoritmo «ir a la escuela» están desordenados: (a) entrar en clase, (b) levantarse, (c) desayunar, (d) salir de casa, (e) vestirse, (f) caminar hasta la…
Estos pasos del algoritmo «ir a la escuela» están desordenados: (a) entrar en clase, (b) levantarse, (c) desayunar, (d) salir de casa, (e) vestirse, (f) caminar hasta la escuela. Ordenalos correctamente y agregá al algoritmo una decisión: qué hacer si está lloviendo al salir de casa.
Leé este algoritmo: (1) agarrá el mazo, (2) mientras queden cartas en la mano, repartí una a cada jugador empezando por tu izquierda, (3) cuando no queden cartas,…
Leé este algoritmo: (1) agarrá el mazo, (2) mientras queden cartas en la mano, repartí una a cada jugador empezando por tu izquierda, (3) cuando no queden cartas, anunciá «repartidas». Explicá con una frase qué hace el algoritmo y señalá qué parte es la repetición y cuándo termina.
Muchos aparatos cotidianos siguen algoritmos. Elegí dos de esta lista —lavarropas, microondas, semáforo— y describí para cada uno qué datos recibe (entrada), qué decide…
Muchos aparatos cotidianos siguen algoritmos. Elegí dos de esta lista —lavarropas, microondas, semáforo— y describí para cada uno qué datos recibe (entrada), qué decide o repite (proceso) y qué hace al final (salida).
Descomponer, reconocer patrones y abstraer
Descomposición. «Organizar la fiesta de fin de curso» parece enorme, pero se divide en lugar, comida, música e invitaciones. Cada parte es más fácil de resolver, se puede repartir entre varias personas y, si algo falla, sabés dónde buscar.
Patrones. En la secuencia 3, 6, 12, 24… cada número es el doble del anterior; el próximo es 48. Si encontrás la regla, la podés escribir una sola vez en el algoritmo y que se repita.
Dependencias entre tareas. Al descomponer, algunas tareas dependen de otras y deben hacerse en orden, y otras son independientes y pueden hacerse a la vez si hay más de una persona.
Varios algoritmos para un mismo problema. Ordenar un mazo de cartas se puede hacer de muchas maneras: pasando una por una a su lugar, o armando montones por palo y después ordenando cada uno. Todos resuelven el problema, pero uno puede necesitar menos pasos o menos tiempo. «Mejor» suele significar más rápido, con menos errores o con menos esfuerzo.
Descomponé el problema «organizar la fiesta de fin de curso» en cuatro subproblemas más pequeños y escribí dos pasos concretos para resolver cada uno. Explicá qué…
Descomponé el problema «organizar la fiesta de fin de curso» en cuatro subproblemas más pequeños y escribí dos pasos concretos para resolver cada uno. Explicá qué ventaja tiene dividir así un problema grande.
Reconocer patrones es encontrar la regla que se repite. Descubrí el patrón de estas tres secuencias y expresalo como una regla clara: (a) 5, 10, 15, 20, …, (b) 100, 90,…
Reconocer patrones es encontrar la regla que se repite. Descubrí el patrón de estas tres secuencias y expresalo como una regla clara: (a) 5, 10, 15, 20, …, (b) 100, 90, 80, 70, …, (c) lunes: 1 flexión, martes: 2, miércoles: 4, jueves: 8, … Indicá qué valor vendría después en cada una.
Para ordenar un mazo de cartas existen varios algoritmos distintos, y unos son más rápidos que otros. Explicá con un ejemplo de la vida diaria que un mismo problema…
Para ordenar un mazo de cartas existen varios algoritmos distintos, y unos son más rápidos que otros. Explicá con un ejemplo de la vida diaria que un mismo problema puede tener varios algoritmos que lo resuelven y qué significa que uno sea «mejor» que otro.
El mapa del subte no dibuja la ciudad real: elimina distancias, curvas y calles, y se queda solo con estaciones y conexiones. Explicá qué es la abstracción usando este…
El mapa del subte no dibuja la ciudad real: elimina distancias, curvas y calles, y se queda solo con estaciones y conexiones. Explicá qué es la abstracción usando este ejemplo y aplicala después al plano de tu escuela: qué tres cosas incluirías y qué tres cosas eliminarías.
Podés hacerlo en papel y enviar una foto con tu respuesta.
Dos personas preparan juntas el desayuno para cuatro invitados: hay que hacer café, tostar pan, exprimir jugo y poner la mesa. Repartí las tareas entre los dos…
Dos personas preparan juntas el desayuno para cuatro invitados: hay que hacer café, tostar pan, exprimir jugo y poner la mesa. Repartí las tareas entre los dos respetando las dependencias (no se puede servir el café antes de hacerlo) y explicá qué tareas pueden hacerse a la vez y cuáles no, con su orden.
Casos límite y errores en los algoritmos
Una receta dice: «agregá sal y dejá cocinar un rato a fuego medio». Explicá por qué una computadora no podría seguir esa instrucción y reescribila como un paso de…
Una receta dice: «agregá sal y dejá cocinar un rato a fuego medio». Explicá por qué una computadora no podría seguir esa instrucción y reescribila como un paso de algoritmo preciso, indicando cantidades, tiempos y cómo comprobar que el paso terminó.
Este algoritmo de «hacer la colada» tiene un error: (1) meter toda la ropa en el lavarropas, blanca y de color junta, (2) agregar detergente, (3) elegir el programa…
Este algoritmo de «hacer la colada» tiene un error: (1) meter toda la ropa en el lavarropas, blanca y de color junta, (2) agregar detergente, (3) elegir el programa largo de agua caliente, (4) tender. Encontrá dos pasos problemáticos, explicá qué puede salir mal en cada uno y reescribí el algoritmo corregido con un paso de clasificación previa.
El algoritmo de un comedor reparte un sándwich a cada asistente, pero falla cuando hay más asistentes que sándwiches. Explicá qué es un «caso límite» en un algoritmo,…
El algoritmo de un comedor reparte un sándwich a cada asistente, pero falla cuando hay más asistentes que sándwiches. Explicá qué es un «caso límite» en un algoritmo, proponé cómo debería comportarse el reparto en esa situación y reescribí el paso conflictivo para que el algoritmo no falle.
Un cajero automático solo tiene billetes de $\$20\,000$ y su algoritmo reparte la cantidad pedida en billetes. Explicá qué ocurre cuando alguien pide $\$75\,000$, por…
Un cajero automático solo tiene billetes de $\$20\,000$ y su algoritmo reparte la cantidad pedida en billetes. Explicá qué ocurre cuando alguien pide $\$75\,000$, por qué es un caso límite y reescribí las reglas del cajero para que responda siempre algo razonable.
Diseñá el algoritmo completo, con pasos numerados que incluyan decisiones y repeticiones, de un semáforo peatonal con botón: qué ocurre desde que alguien pulsa el botón…
Diseñá el algoritmo completo, con pasos numerados que incluyan decisiones y repeticiones, de un semáforo peatonal con botón: qué ocurre desde que alguien pulsa el botón hasta que el semáforo vuelve a su estado inicial, incluyendo los tiempos de cada luz.
Pensá en un programa que juega al tres en raya. Describí la estrategia que seguiría en cada turno: qué datos del tablero debe mirar, en qué orden, y qué reglas usarías…
Pensá en un programa que juega al tres en raya. Describí la estrategia que seguiría en cada turno: qué datos del tablero debe mirar, en qué orden, y qué reglas usarías para decidir dónde colocar la ficha. No hace falta escribir código: basta con las reglas en lenguaje natural.
Para el reciclaje del aula se proponen dos algoritmos: (a) cada día, la persona responsable separa toda la basura del día en los tres contenedores, y (b) cada semana,…
Para el reciclaje del aula se proponen dos algoritmos: (a) cada día, la persona responsable separa toda la basura del día en los tres contenedores, y (b) cada semana, por turnos, una pareja clasifica lo acumulado. Evaluá ambos con criterios de tiempo total, errores de clasificación y reparto del esfuerzo, y elegí uno justificándolo.
Volvé al principio: la máquina no sabe qué es «un rato», pero sí entiende «3 minutos a fuego medio y comprobar que espesó». Esa precisión es lo que convierte una receta en un algoritmo.