¿Cómo saben las computadoras lo que tienen que hacer?

Sitio: Campus Claves Académica
Curso: Pensamiento computacional - EnlaceUBA
Libro: ¿Cómo saben las computadoras lo que tienen que hacer?
Imprimido por: Invitado
Día: jueves, 3 de abril de 2025, 16:52

Descripción

📌 En el bloque anterior nos preocupamos por aprender sobre las computadoras: para qué se inventaron, qué las diferencia de otros artefactos, cuáles son sus componentes fundamentales y algunos hechos históricos relacionados a ellas. En este bloque nos acercaremos al mundo de la programación para comprender cómo saben realmente las computadoras lo que tienen que hacer.

1. Todo al pie de la letra

——————

¡A resolver desafíos!

Estamos rodeados de computadoras que cumplen automáticamente propósitos diferentes, pero: ¿Cómo saben lo que tienen que hacer? Por ejemplo, ¿Cómo hace una aspiradora robot para recorrer automáticamente una habitación? ¿Cómo hace el celular para aplicar un filtro a una foto? ¿Y para mover al personaje de un videojuego cuando tocamos la pantalla? ¿Cómo se da cuenta una aplicación que estamos ingresando mal una contraseña? A lo largo de este bloque vamos a descubrir cómo podemos lograr que las computadoras hagan lo que tienen que hacer, automáticamente.

Para aproximarnos a esto, te vamos a proponer pequeños desafíos en los que vas a tener que darle instrucciones a diferentes personajes para que cumplan un objetivo. En este capítulo vas a comenzar resolviendo cinco desafíos. Al finalizar vamos a relacionar la manera en la que los resolviste con el funcionamiento de las computadoras. ¿Estás listos? ¡Comencemos! 🏁

Desafío Primer desafío

Vayamos al primer desafío y veamos con qué nos encontramos en el entorno. Hacé clic en este enlace para dirigirte a la página de Code.org y comenzá la aventura.

- Primero nos encontramos con un video de presentación que los va a introducir a los desafíos. Pueden omitirlo presionando sobre el botón (❌).

¡Ya estamos en el entorno para resolver los desafíos! Si te aparece el idioma en inglés no te preocupes que primero lo vamos a configurar para que esté en castellano. 

- Podés cerrar el cartel presionando (❌)...

 

... y darle al botón naranja que dice “OK” para omitir los pasos. 


Luego, en la parte inferior izquierda vas a tener un menú para elegir el idioma:

 

En nuestro caso vamos a utilizar “Español (Latinoamérica)”. Tené en cuenta que la página se va a recargar con el idioma cambiado 😉

Una vez que tengamos configurado el idioma, tenemos el primer desafío para resolver:

🎯 “¿Me ayudás a atrapar al cerdo malo? Apilá juntos un par de bloques, avanzá y presioná: 'Ejecutar Programa' para ayudarme a llegar allí.“


El objetivo es que puedas utilizar los bloques disponibles para lograr que el pájaro se mueva hasta el cerdo. Los bloques se pueden arrastrar a la parte derecha de la pantalla y encastrarse con otros bloques. 


Una vez que hayas encastrado los bloques, podés probar si el pájaro alcanza el objetivo presionando el botón “Ejecutar”.   

Ahora es tu turno de resolver hasta el desafío 5 inclusive 😎. 

Para cambiar de desafío podés presionar en el botón “Continuar” luego de resolverlo...


...o seleccionarlo desde la barra superior.


——————

¿Cómo te fue con los desafíos? Ojalá que hayas podido resolver los cinco 😎 De esta manera… ¡Te damos la bienvenida al mundo de la programación! 🎉  ¿Programación? Sí, ¡programación! Lo que tuviste que hacer en estos desafíos es programar a la computadora para que mueva al pájaro y pueda llegar hasta el cerdo. 

Pero, ¿de qué se trata la programación? Se trata de darle instrucciones a una computadora para indicarle lo que tiene que hacer. Las computadoras son máquinas capaces de ejecutar instrucciones muy precisas, ¡al pie de la letra!.

ícono de dato clave La clave de este capítulo

¿Qué cosas sabía realizar la computadora en estos desafíos? El entorno nos ofrecía bloques con instrucciones que la computadora sabe ejecutar para mover al pájaro, por ejemplo, avanzar hacia adelante. 

¿Y cómo utilizaste estas instrucciones? Lo que hiciste fue crear un programa combinando estas instrucciones, apilando los bloques uno debajo del otro. Un programa describe las instrucciones que tiene que llevar a cabo la computadora cuando presionamos el botón “Ejecutar”. 

Todos los programas que utilizamos cotidianamente, están compuestos por instrucciones que le indican a la computadora que es lo que tiene que hacer. Por ejemplo, cuando le aplicamos un filtro a una foto o presionamos el botón de enviar luego de escribir un mensaje, la computadora está siguiendo las instrucciones de un programa al pie de la letra. Entonces, ¡las computadoras no hacen más que lo que está establecido por un programa! 

Pero… ¿Quiénes hacen estos programas? ¡Personas! O mejor dicho, programadoras y programadores. Incluso los programas y aplicaciones que utilizamos cotidianamente están creados por equipos de programadoras y programadores.

 

En este capítulo dimos nuestros primeros pasos en el mundo de la programación. En los siguientes capítulos vamos a descubrir nuevos conceptos de programación que podemos utilizar para resolver nuevos problemas. ¿Nos acompañan?

2. No solo una secuencia de comandos

——————

Sigamos programando

En el capítulo anterior vimos que las computadoras ejecutan al pie de la letra las instrucciones de un programa. En este capítulo vas a tener que resolver desafíos de programación muy similares a los anteriores pero utilizando menos instrucciones, ¿se podrá? 🤔

En esta ocasión, te proponemos que continúes resolviendo los desafíos 6 hasta el 9 inclusive de la secuencia anterior. Prestá atención a la nueva instrucción que aparece así después analizamos cuál es y qué utilidad tiene. ¿Estás listo/a? ¡A programar!

——————

La repetición

¿Cómo te fue con los desafíos? ¿Descubrieste la nueva instrucción? Una de las cosas que saben hacer las computadoras muy bien y muy rápido (¡sin cansarse! 😂) es ejecutar instrucciones, incluso cuando hay instrucciones que se repiten continuamente. En este desafío tenemos la posibilidad de indicarle a la computadora que repita instrucciones una cantidad de veces definida:

Pero, ¿qué ganamos con esta nueva herramienta? Si de todas formas la computadora tiene que realizar todas esas instrucciones. Bueno, como vimos, las computadoras son muy buenas ejecutando programas, pero quienes leen y escriben esos programas son… ¡personas!.

La tarea de programar, además de darle instrucciones a una computadora, requiere que podamos escribir programas fáciles de entender para otras personas. La instrucción “Repetir” es útil para escribir programas que tienen que repetir varias instrucciones de una manera más corta y fácil de entender para las personas que están leyendo el programa. 

Desafío Segundo desafío

Para dejar más clara esta idea te proponemos un mini desafío: ¿pueden contestar rápidamente cuántas veces salta el gato en cada programa?

Programa 1 Programa 2

Este ejemplo es sencillo, pero ¿qué pasa si el gato tiene que saltar más veces? Por ejemplo, ¿cómo modificarían cada uno de los programas para que el gato salte 100 veces?

¿Estás para un desafío más? En este caso necesitarás una instrucción muy parecida a la que descubriste en el desafío anterior.

Desafío Tercer desafío

Resolvé los desafíos 10 a 13 inclusive. Al igual que antes, tené en cuenta la nueva instrucción que aparece y qué tiene de diferente con respecto a la instrucción del desafío anterior.

——————

Otra manera de repetir

¿Cómo te fue con los desafíos? ¿Cuál es la nueva instrucción? En muchos casos la cantidad de veces que tenemos que repetir algo no lo podemos definir de antemano en el programa. Sin embargo, podemos indicarle a la computadora cuando tiene que dejar de repetir las instrucciones. Esto lo podemos hacer con la instrucción “repetir hasta que”. En estos ejemplos, la computadora repite instrucciones hasta que el personaje llegue al objetivo (el cerdo o la planta de girasol).


ícono de dato clave La clave de este capítulo

Cuando nos encontramos ante la necesidad de realizar las mismas instrucciones seguidas en un programa, no hace falta colocar repetidamente esas instrucciones una después de otra sino que podemos aprovechar que las computadoras pueden repetir un mismo conjunto de instrucciones una cantidad definida de veces o hasta que algo suceda (por ejemplo, alcanzar un objetivo). Además, utilizar instrucciones de repetición nos permite obtener programas más cortos y fáciles de entender por las personas.

En este capítulo descubrimos una nueva instrucción que podemos utilizar en nuestros programas: la repetición. En los siguientes capítulos vamos a seguir descubriendo otras instrucciones que nos van a ser útiles para resolver otro tipo de desafíos. ¡Nos vemos en el siguiente capítulo!

3. Tomando la decisión correcta

En el capítulo anterior resolvimos desafíos en los que podíamos indicarle a la computadora que repita un conjunto de instrucciones. En este capítulo te proponemos siete desafíos nuevos en los que vas a tener que descubrir y utilizar una nueva instrucción para lograr que los diferentes personajes alcancen su objetivo. ¿Están listos/as? Allá vamos…

Desafío Cuarto desafío

Resolvé los desafíos 14 a 17 inclusive de la secuencia con la que venías trabajando. 

——————

Alternativas condicionales

¿Cómo te fue con los desafíos? ¿Cuál es la nueva instrucción que descubriste? En estos desafíos nuevamente, tuviste que crear programas para que los personajes se muevan por el laberinto y alcancen su objetivo. Pero… ¿se repetían siempre los mismos movimientos? No! Porque el camino ya no seguía un mismo patrón sino que variaba, por ejemplo, en algún momento el personaje debía girar y realizar más (o menos) pasos. 

Aún así, tuvimos disponible una nueva instrucción para saber si el camino seguía hacia la izquierda o a la derecha y continuar avanzando: la instrucción “si”. Esta nueva instrucción nos permite realizar instrucciones sólo si se cumple una condición. Por ejemplo, solo debemos girar a la izquierda si hay camino en esa dirección. 


Por ejemplo, en el desafío 14 la computadora debe repetir la pregunta "¿hay camino a la izquierda?" (y girar en caso de que sea cierto) para que el personaje no se salga del camino.

En estos desafíos siempre había que continuar el camino en la misma dirección, pero ¿qué sucede si personaje puede avanzar en cualquiera de las dos direcciones? Te proponemos los últimos desafíos para descubrir una instrucción similar a la que acabamos de utilizar. 

Desafío Quinto desafío

Resolvé los desafíos 18 a 20 inclusive de la secuencia.

 


——————

Más alternativas condicionales

¿Cómo te fue con los últimos desafíos? ¿Qué tiene de diferente la nueva instrucción? En este caso, la instrucción “si-si no” nos da la posibilidad de realizar instrucciones cuando no se cumpla la condición, a diferencia del bloque "si" donde solo podemos realizar instrucciones cuando se cumple la condición.


Esta nueva instrucción es útil cuando estamos ante dos alternativas posibles y debemos realizar acciones en cada uno de los casos, por ejemplo, en el desafío 18 teníamos dos alternativas posibles: hay un camino adelante o no. En el primer caso, la instrucción a realizar es "Avanzar" mientras que en el otro caso (cuando no hay un camino adelante) es "Girar a la izquierda". 


Es importante observar que estas dos nuevas instrucciones son útiles cuando el problema puede presentar varias alternativas posibles durante la ejecución y necesitamos indicarle a la computadora las decisiones que debería tomar para alcanzar el objetivo. Por ejemplo, cuando, si no conocemos el camino de antemano, y no tiene un patrón definido, debemos indicarle a la computadora cómo decidir hacia donde debe avanzar el personaje en cada paso.

ícono de dato clave La clave de este capítulo

En general las computadoras procesan información de la más variada y es indispensable que sepan cuáles son las decisiones que tienen que tomar para poder lograr su propósito. Estas decisiones no ocurren por arte de magia en la computadora sino que están definidas en los programas, por ejemplo, cuando la aspiradora robot tiene que cambiar automáticamente su recorrido porque está frente a una pared, cuando la aplicación nos pide una contraseña y tiene que decidir si nos da acceso o no, o cuando queremos descargar una aplicación y el celular nos informa que no tenemos espacio disponible.

Las computadoras son muy buenas (¡y rápidas!) ejecutando instrucciones, repitiéndolas y tomando decisiones. Además, pueden interpretar un montón de instrucciones más, pero la gran mayoría de las aplicaciones con las que interactuamos utilizan estas instrucciones para funcionar. 

En el siguiente capítulo vamos a descubrir algunas instrucciones más que podemos utilizar para programar. Para eso, te proponemos programar un videojuego muy sencillo que funciona a través de la pantalla (o el mouse). ¿Estás preparado/a? ¡Nos vemos allá!

4. Mi primer videojuego

En los capítulos anteriores descubrimos algunas herramientas de programación para crear nuestros primeros programas: instrucciones básicas, repetir y “si/si-si no”. En este capítulo vamos a desarrollar un videojuego muy sencillo en el que hay que controlar a un personaje presionando la pantalla para que vaya sorteando obstáculos. ¿Están listos/as? ¡Comencemos!


Desafío Sexto desafío

Resolvé los primeros nueve desafíos. El décimo desafío es abierto para que puedas crear tu propia versión del videojuego y compartirla con quienes quieras.


——————

Los eventos

¿Cómo te fue con los desafíos? ¿Qué propósito tienen los bloques de color verde? A diferencia de los desafíos de los capítulos anteriores donde tenías que programar todo dentro del bloque "Cuando se ejecuta", tuviste que programar diferentes bloques que se ejecutaban cuando sucedía algo, por ejemplo, cuando presionábamos la pantalla o cuando le sucedía algo al personaje como tocar el suelo, pasar un obstáculo o chocarlo. 


A cada uno de estos bloques los llamamos eventos y se ejecutan cuando ocurre algún suceso que involucre dispositivos de entrada (por ejemplo, tocar un botón, hacer clic o presionar la pantalla) o al personaje del juego (por ejemplo, tocar el suelo o chocar con un obstáculo).

📱¿Qué eventos ocurren cuando utilizamos el celular? Por ejemplo, presionar el botón de bloqueo es un evento que tiene como consecuencia prender (o apagar) la pantalla. Presionar los botones de volumen son eventos que aumentan o disminuyen el valor del volumen. Arrastrar el dedo por la pantalla cuando recibimos una llamada es un evento que tiene como efecto atender o rechazar una llamada. Estos son solo algunos ejemplos de eventos pero seguramente te estés imaginando muchos más. En particular, estos eventos están asociados a los dispositivos de entrada del celular. 

——————

Todo está guardado en la memoria

¿Cómo funciona el puntaje del juego? ¿Cómo hace la computadora para recordarlo durante todo el juego? Como parte de los desafíos tuvieron que programar a la computadora para que vaya controlando el puntaje del juego. Cómo vimos en el bloque anterior, uno de los componentes principales de la computadora es la memoria. Lo que podemos observar es que la computadora almacena el puntaje del juego en la memoria principal y durante su ejecución podemos indicarle que lo modifique con la instrucción de “anotar un punto”. Internamente lo que está sucediendo es que la computadora recupera el valor almacenado, le suma uno y lo vuelve a almacenar en la memoria. ¿Se te ocurren otros datos que se podrían almacenar durante la ejecución de un videojuego, además del puntaje?

Más allá de los videojuegos, ¿Qué datos podrías almacenar los programas? Por ejemplo, una aplicación de mensajería almacena el mensaje que estamos escribiendo antes de ser enviado, una aplicación de llamadas almacena la duración de la comunicación, una aplicación para mirar videos almacena el nombre del archivo que estamos reproduciendo y por qué parte vamos.     

ícono de dato clave La clave de este capítulo

En los capítulos anteriores creaste programas que comenzaban a ejecutarse al presionar el botón “Ejecutar”. En este caso, la ejecución del programa depende, además, de eventos que van sucediendo durante su transcurso, ya sea por el uso de dispositivos de entrada (como botones, mouse o pantalla) o situaciones que le van sucediendo al personaje. Por otro lado, los programas necesitan almacenar información durante su ejecución y esto es posible gracias a la memoria principal de la computadora. 

En estos capítulos dimos nuestros primeros pasos de programación utilizando bloques, conocimos de qué se trata y nos acercamos a algunos conceptos fundamentales. Pero este recorrido es simplemente una puerta de entrada y aún queda mucho por descubrir. Programar no solo se trata de encastrar bloques sino que en la mayoría de los casos es necesario escribir los programas en algún lenguaje textual. Aún así, las posibilidades son muchas y de lo más variadas, por mencionar algunas: videojuegos, aplicaciones de celular, páginas web… y más. ¡Te invitamos a descubrirlas!

5. Lo que aprendiste

En este bloque aprendiste que:

✅ Una computadora es una máquina capaz de ejecutar instrucciones muy precisas al pie de la letra.

✅ El comportamiento de una computadora depende de uno o más programas.

✅ A partir de un programa las computadoras pueden:

👉 Repetir un conjunto de instrucciones

👉 Tomar decisiones en situaciones variadas

👉 Responder a eventos, por ejemplo, hacer clic con el mouse, presionar la pantalla o presionar una tecla.

👉 Los programas son creados por personas (en la mayoría de los casos, equipos de personas).

6. Si querés saber más...

Chica programando

Para explorar más sobre programación te recomendamos:

7. ¿Nos regalás 5 minutos?