UD2. Introducción a la Programación
1. INTRODUCCIÓN: ¿CÓMO PIENSA UN ORDENADOR?
Vivimos rodeados de aparatos "inteligentes". Tu móvil reconoce tu cara, YouTube sabe qué vídeos te gustan y la aspiradora de tu casa esquiva al perro.
Parece magia, pero no lo es. Es PROGRAMACIÓN.
Lo primero que tienes que aprender en esta asignatura es algo que te va a sorprender: Los ordenadores son tontos.
Imagínate que tienes un amigo que es súper rápido corriendo, pero que no tiene sentido común.
Si le dices: "Ve a la cocina", él se chocará contra la pared porque no le has dicho "Abre la puerta primero".
Si le dices: "Tráeme eso", se quedará quieto porque no sabe qué es "eso".
Un ordenador es igual. Es una máquina capaz de hacer millones de cálculos en un segundo, pero incapaz de improvisar.
Solo hace exactamente lo que tú le ordenas. Ni más, ni menos.
1.1. ¿Qué es Programar? (La Realidad vs. Hollywood)
Es muy común que, al escuchar la palabra "programador", nos imaginemos una escena de película: una persona con capucha en una habitación oscura, escribiendo a la velocidad de la luz mientras caen letras verdes por la pantalla al estilo Matrix, o intentando "hackear" la NASA antes de que se acabe el tiempo.
SPOILER: Programar no es eso. Es algo mucho más cotidiano, creativo y menos frenético.
El Arte de Dar Instrucciones
En esencia, programar es el arte de la comunicación. Pero no es una comunicación entre humanos (donde se entienden las indirectas o el contexto), sino una comunicación con una máquina.
Imagina que tienes al asistente más rápido y obediente del mundo, pero que también es extremadamente literal.
Si le dices "hazme un sándwich", se quedará quieto. ¿Por qué?
Porque no sabe qué es pan, dónde está, ni cómo usar un cuchillo.
Programar es:
- Desglosar un problema grande (hacer un sándwich) en pasos diminutos.
- Traducir esos pasos a un idioma que la máquina entienda (el lenguaje de programación).
- Ordenarle que los ejecute.
La regla de oro: El ordenador no hace lo que tú quieres que haga; hace exactamente lo que tú le dices que haga.
El Idioma de la Máquina
Tu ordenador es una calculadora increíblemente potente, pero por sí sola no es inteligente. Necesita que tú seas su cerebro.
Programar consiste en aprender a "hablar el idioma de la máquina" para explicarle paso a paso y sin errores qué debe suceder.
- Paso a paso (Algoritmo): Si te saltas un paso (por ejemplo, "abrir el bote de mermelada" antes de "untar la mermelada"), el programa fallará. La secuencia lógica es vital.
- Sin errores (Sintaxis): A diferencia de un amigo que te entiende aunque escribas mal un WhatsApp, la máquina necesita precisión total. Una instrucción mal dada es una acción que no se realiza.
En resumen: Programar no es magia negra; es simplemente la habilidad de decirle a una computadora cómo resolver un problema por nosotros.
1.1.1. La Analogía Perfecta: Una Receta de Cocina
Para terminar de entender qué es programar, pensemos en algo que todos hemos visto: una receta de cocina.
Un programa informático no es más que una receta muy sofisticada.
- Los Ingredientes son los Datos (números, textos, imágenes).
- Los Pasos de la receta son el Algoritmo (las instrucciones).
- El Plato final es el Resultado (lo que ves en la pantalla).
El problema de la "Mente Humana" vs. la "Mente Máquina"
La gran diferencia es que, cuando un humano lee una receta que dice "Batir los huevos", su cerebro asume muchas cosas por contexto.
Sabe que primero debe romper la cáscara y poner el contenido en un bol.
Si le das esa misma instrucción a un ordenador (un robot de cocina literal) sin ser específico, intentará batir los huevos con la cáscara cerrada y destrozará la cocina.
Ejemplo: "Preparar Cereal con Leche"
| Instrucción para un Humano | Instrucción para una Máquina (Programar) |
|---|---|
| "Prepárate un bol de cereal." | 1. Buscar bol vacío. |
| 2. Colocar bol en la mesa. | |
| 3. Buscar caja de cereal. | |
| 4. Abrir caja. | |
| 5. Verter cereal en el bol. | |
| 6. Buscar leche. | |
| 7. Verter leche sobre el cereal. |
¿Por qué es vital este detalle?
8. Fin del proceso.
Si en la columna de la derecha cambiamos el orden y ponemos el paso 7 (verter leche) antes del paso 1 (buscar bol), la máquina verterá la leche directamente sobre la mesa.
Conclusión: Programar es el arte de redactar esa receta perfecta, donde no dejamos nada a la imaginación, asegurándonos de que cada paso siga al anterior en el orden lógico correcto.
1.2. El Pensamiento Computacional
Existe una regla de oro en la informática: La programación es 20% escritura y 80% pensamiento.
Antes de lanzarte a tocar el teclado, tienes que "ordenar tu cabeza". A este proceso mental lo llamamos Pensamiento Computacional.
No es algo exclusivo de los ingenieros; es una habilidad para la vida.
Consiste en tomar un problema complejo y difícil, desmontarlo y convertirlo en una serie de pequeños pasos fáciles de resolver. A esto lo llamamos descomposición. Si no eres capaz de explicar la solución paso a paso en un papel, no serás capaz de programarla en el ordenador.
PARA PENSAR: El Desafío del Bocadillo
Para entender la importancia de este pensamiento detallado, hagamos un ejercicio mental.
Imagina que tienes que enseñar a un robot, que no sabe nada del mundo humano, a prepararse un bocadillo de Nocilla.
El intento fallido: Si tú le dices simplemente: "Robot, hazme un bocadillo", el robot se quedará quieto.
No sabe qué es "bocadillo", ni dónde están las cosas. Es una instrucción demasiado vaga.
El intento detallado (Algoritmo): Para que funcione, tienes que descomponer la tarea en micro-instrucciones:
- Ir a la despensa.
- Coger la bolsa de pan.
- Coger el bote de Nocilla.
- Coger un cuchillo.
- Sacar dos rebanadas de pan.
- Meter el cuchillo en el bote...
- ¡ERROR DE LÓGICA! ¿Te diste cuenta del fallo en la lista anterior?
En el paso 6 le dijimos "Meter el cuchillo en el bote", pero... ¡se nos olvidó decirle que quitara la tapa roja primero!
Como el robot es literal y obedece ciegamente, intentará atravesar el cristal o la tapa de plástico con el cuchillo, romperá el bote y manchará toda la cocina.
El programa habrá fallado, no porque el robot no funcione, sino porque tu pensamiento computacional pasó por alto un detalle crítico.
Lección: En programación, lo que para ti es obvio (quitar la tapa), para la máquina es un misterio si no se lo explicas. El detalle lo es todo.
2. EL ALGORITMO: LA RECETA DE COCINA
Esta es la palabra más importante de toda la unidad, así que grábatela a fuego: ALGORITMO.
A menudo, cuando la gente escucha "algoritmo", piensa en ecuaciones matemáticas imposibles o en secretos de Google.
Pero nada más lejos de la realidad. Un algoritmo es un concepto increíblemente simple:
Definición: Un algoritmo es una lista ordenada de instrucciones para conseguir un objetivo concreto.
Tu día a día es un algoritmo
Sin darte cuenta, ejecutas algoritmos todo el tiempo. Una receta de cocina es el ejemplo perfecto.
Imagina que quieres hacer una tortilla francesa:
- Romper los huevos.
- Batir los huevos.
- Echar la mezcla a la sartén.
¿Qué pasa si cambiamos el orden? Si inviertes los pasos 1 y 3 (echas los huevos a la sartén antes de romperlos), no obtienes una tortilla.
Obtienes unos huevos fritos con cáscara y un desastre en la cocina.
En programación, el orden de los factores sí altera el producto.
Las 3 Leyes del Algoritmo
Para que una lista de instrucciones sea considerada un "Algoritmo de verdad" en informática, no vale cualquier cosa.
Debe cumplir estrictamente estas tres normas:
- 1. Tiene que ser PRECISO: Las máquinas no entienden ambigüedades ni "medias tintas".
- Mal: "Muévete un poco hacia allá". (¿Cuánto es un poco? ¿Hacia dónde es allá?).
- Bien: "Muévete 10 pasos hacia el norte".
- Mal: "Gira".
- Bien: "Gira 90 grados a la derecha".
- 2. Tiene que ser FINITO: Todo algoritmo debe tener un Principio y un Final. Debe resolver el problema y detenerse.
Si un algoritmo entra en un bucle infinito sin salida y se queda "pensando" eternamente, se considera un error (se ha "colgado").
- 3. Tiene que ser ORDENADO (Secuencia): Los pasos deben ejecutarse uno detrás de otro, sin saltos extraños.
- Primero el paso 1.
- Luego el paso 2.
- Finalmente el paso 3. A esta ejecución lineal la llamamos SECUENCIA. Es la base de todo lo que programaremos.
3. LOS DIAGRAMAS DE FLUJO: EL MAPA DEL TESORO
Hasta ahora hemos visto que un algoritmo es una lista de pasos. Pero, ¿qué pasa cuando la vida se complica?
A veces, escribir una lista de texto plano es un lío, sobre todo cuando aparecen decisiones.
La vida no es una línea recta; está llena de bifurcaciones:
- "Si llueve, cojo paraguas... pero si no, cojo gafas de sol".
- "Si tengo dinero, compro el helado... si no, sigo caminando".
Escribir todos esos "SI" y "NO" en un texto puede resultar confuso muy rápido. Para ver estas decisiones con claridad, los programadores utilizamos una herramienta visual llamada DIAGRAMA DE FLUJO.
¿Qué es un Diagrama de Flujo?
Es como un mapa de carreteras para tu programa. En lugar de leer frases, sigues una línea que te lleva de una instrucción a otra.
Te permite ver, de un solo vistazo, todos los caminos posibles que puede tomar tu código.
El Idioma de las Formas
Para que este mapa lo pueda entender cualquier programador del mundo (sea de Japón, de Estados Unidos o de tu clase), nos hemos puesto de acuerdo en usar siempre las mismas formas geométricas.
Cada figura significa una cosa diferente:
| Forma | Nombre | Significado |
|---|---|---|
| Óvalo | INICIO / FIN | Indica dónde empieza y dónde termina el algoritmo. Es la puerta de entrada y salida. |
| Rectángulo | PROCESO (Acción) | Representa una orden directa o una acción (ej: "Caminar", "Sumar", "Encender luz"). |
| Rombo | DECISIÓN | ¡El más importante! Aquí se hace una pregunta de "Sí o No". El camino se divide en dos: una flecha para la respuesta Sí y otra para el NO. |
| Flechas | FLUJO | Son las carreteras. Nos dicen hacia dónde tenemos que ir después de cada paso. |
La Regla de Oro: Nunca puedes perderte. Siguiendo las flechas, siempre debes llegar desde el "Inicio" hasta el "Fin", pasando por las acciones y decisiones correspondientes.
4. PROGRAMACIÓN POR BLOQUES: JUGANDO A LEGO
A menudo, cuando pensamos en programación, imaginamos pantallas negras llenas de texto incomprensible, símbolos extraños y la frustración de que un solo punto y coma faltante arruine todo el trabajo.
Sin embargo, el aprendizaje de la computación ha evolucionado para centrarse en lo que realmente importa: el pensamiento lógico.
Para este punto del curso, dejaremos de lado la escritura de código tradicional para adentrarnos en la Programación por Bloques, una metodología revolucionaria que democratiza el acceso a la tecnología.
1. ¿Por qué Bloques? El fin de los "Errores de Escritura"
En los lenguajes de programación textuales (como C++, Python o Java), el programador debe dominar dos habilidades simultáneamente: la lógica del algoritmo (qué queremos que pase) y la sintaxis estricta (cómo debemos escribirlo).
El problema: Un error tipográfico, un paréntesis mal cerrado o una mayúscula donde iba una minúscula suelen provocar un "Error de Sintaxis" que impide que el programa funcione, generando frustración en quien está aprendiendo.
La programación por bloques elimina esta barrera técnica. Al utilizar elementos visuales predefinidos, es imposible cometer errores de sintaxis. Esto nos permite canalizar el 100% de nuestra energía mental en resolver el problema y diseñar la solución, sin preocuparnos por la ortografía del código.
2. La Metáfora de LEGO: Construyendo Algoritmos
La mejor forma de visualizar este sistema es compararlo con el juego de construcción más famoso del mundo: LEGO.
Imagina que cada instrucción que quieres dar a la máquina (moverse, esperar, emitir un sonido, calcular) es una pieza de plástico de un color y forma específica:
- Encaje Visual: Al igual que las piezas de LEGO, los bloques de código tienen formas que indican cómo pueden conectarse. Si dos bloques no encajan visualmente (como una pieza redonda en un hueco cuadrado), significa que esas instrucciones no son compatibles lógicamente.
- Modularidad: Construimos programas complejos uniendo piezas simples, una encima de otra, creando estructuras sólidas y fáciles de leer a simple vista.
- Intuición: Los bloques suelen estar agrupados por colores (azul para movimiento, rosa para sonido, etc.), lo que hace que la navegación sea intuitiva y rápida.
3. Nuestra Herramienta: Microsoft MakeCode
Para llevar estos conceptos a la práctica, utilizaremos MakeCode, un entorno de desarrollo creado por Microsoft que es el estándar de oro en la educación STEM actual.
MakeCode no es un juguete; es un puente poderoso hacia la programación profesional.
Nos ofrece un lienzo interactivo donde arrastraremos y soltaremos nuestros bloques para dar vida a nuestros proyectos.
Además, tiene una ventaja educativa enorme: nos permite ver en tiempo real cómo nuestros bloques visuales se traducirían a código real (JavaScript o Python), facilitando la transición al código escrito en el futuro.
En resumen: En esta sección, aprenderemos a "pensar como un ordenador" usando un lenguaje visual, seguro y divertido. Olvídate de teclear comandos oscuros; aquí venimos a construir lógica pieza a pieza.
5. LAS HERRAMIENTAS DEL PROGRAMADOR
Para crear cualquier programa que te imagines, desde un videojuego complejo como Fortnite hasta el chip que controla la lavadora de tu casa, se utilizan siempre los mismos cimientos.
No importa el lenguaje; la lógica es universal. Aquí están las dos herramientas maestras que debes dominar.
5.1. LOS BUCLES (La Repetición)
Color en MakeCode: VERDE (Bucles)
Hay un secreto que debes saber: Los programadores somos "vagos" inteligentes.
Si queremos que el ordenador repita una acción mil veces, jamás escribiremos la misma orden mil veces.
Eso es perder el tiempo y arriesgarse a errores. En su lugar, escribimos la orden una sola vez y la metemos dentro de un BUCLE.
Un bucle es una estructura que dice: "Repite lo que hay aquí dentro". En MakeCode, usaremos principalmente dos tipos:
- Repetir [X] veces: Se usa cuando sabes el número exacto de repeticiones.
Ejemplo: "Parpadear 3 veces" o "Dar 10 pasos". Una vez que termina la cuenta, el programa sigue.
- Por siempre (Forever): Este es el bloque rey en la robótica.
- La analogía del corazón: Imagina que tu corazón latiera 100 veces y luego se detuviera. ¡Mal asunto! Tu corazón necesita latir "por siempre" mientras estés vivo.
- En robots: Un robot necesita este bucle para estar "vivo": leer sus sensores y esperar órdenes infinitamente hasta que se le acabe la batería. Si no usas este bloque, el robot hará la acción una vez y se "apagará".
5.2. LOS CONDICIONALES (La Decisión) ❓
Color en MakeCode: AZUL CELESTE (Lógica)
Si los bucles son los músculos (repetición), los condicionales son el **cerebro**.
Aquí es donde la máquina empieza a parecer inteligente. Usamos el famoso bloque **"SI... ENTONCES..." (If... Then...)**.
Su funcionamiento es pura lógica binaria:
- La máquina comprueba una Condición (una pregunta de Sí o No).
- Dependiendo de la respuesta, toma dos caminos:
- Si la condición es VERDADERA ($\text{True}$): El programa entra en la "boca" del bloque y ejecuta las instrucciones que hay dentro.
- SI la condición es FALSA ($\text{False}$): El programa ignora por completo lo que hay dentro y pasa a lo siguiente, como si no existiera.
Ejemplo Práctico: Videojuego
Imagina que estás programando un juego de plataformas y el personaje camina sobre el terreno.
Condición: ¿Estoy tocando la lava?
SI (Verdadero): $\rightarrow$ Restar una vida y Reproducir sonido "Ouch".
SI (Falso): $\rightarrow$ No pasa nada, el juego sigue normal.
Sin condicionales, los programas serían tontos; harían siempre lo mismo pase lo que pase.
Con condicionales, el programa reacciona al mundo.
6. LAS VARIABLES: LA MEMORIA DEL ORDENADOR
Llegamos al "jefe final" de los conceptos básicos. Esta es la parte que suele costar más entender al principio, así que presta mucha atención.
Si entiendes esto, tienes el poder de recordar cosas.
El Problema de la Amnesia
Imagina que estás jugando un partido de baloncesto muy intenso. Metes una canasta. Luego el equipo contrario mete dos.
Luego tú otra... Si no tuvieras dónde anotarlo, al cabo de 5 minutos nadie sabría quién va ganando.
Necesitas un marcador.
En programación, el ordenador sufre de amnesia constante. Si no le dices explícitamente "guarda este número", lo olvida al instante.
Ese "lugar seguro" donde apuntamos los datos para que no se pierdan se llama **VARIABLE**.
La Metáfora de la Caja
Para entender qué es una variable, olvídate de las matemáticas y piensa en una caja de zapatos.
Una variable no es más que una caja vacía en la memoria del ordenador que creamos para guardar algo.
Esta caja tiene tres reglas de funcionamiento:
- 1. La Etiqueta (El Nombre): Primero cogemos la caja y le escribimos un nombre con rotulador, por ejemplo:
Puntos. Así, cuando queramos saber el resultado, le diremos al ordenador: "Ve a buscar la caja que se llama Puntos". - 2. El Contenido (El Valor): Al empezar el partido, la caja está vacía. Escribimos un número en un papel (por ejemplo, un 0) y lo metemos dentro.
- 3. La Variación (Por eso se llama Variable): Aquí viene la magia. Cuando metes una canasta, vas a la caja
Puntos, tiras a la basura el papel que ponía 0 y metes un papel nuevo que pone 2. El contenido varía a lo largo del tiempo, pero la caja sigue siendo la misma.
¿Para qué sirven en la vida real?
Sin variables, el software moderno no existiría. Piénsalo:
- En Fortnite, la variable
Saludempieza en 100 y baja cuando te disparan. - En Instagram, la variable
Nombre_Usuarioguarda tu nick para mostrarlo en tu perfil. - En tu móvil, la variable
Bateriaguarda el porcentaje de energía que queda.
En Resumen: Una variable es el truco que usamos para que el ordenador tenga memoria y pueda recordar datos (vidas, puntos, nombres) mientras el programa está funcionando.
7. ROBÓTICA: CUANDO EL CÓDIGO SALE DE LA PANTALLA
Hasta este momento, todo lo que hemos aprendido (bucles, variables, condicionales) vivía encerrado dentro del ordenador. Eran "fantasmas" digitales.
Pero esta asignatura se llama Robótica, y aquí es donde la cosa se pone emocionante.
Un robot es, básicamente, una máquina programada que es capaz de interactuar con el mundo físico.
Ya no se trata de mover un personaje en un videojuego; se trata de mover un motor real, encender una luz real o detectar si en tu habitación hace frío o calor.
El Esquema Sagrado: E-P-S (Entrada - Proceso - Salida)
Para funcionar, absolutamente todos los robots del mundo (desde el Roomba que barre tu suelo hasta el rover Perseverance en Marte) funcionan siguiendo el mismo esquema de tres fases: E-P-S (Entrada - Proceso - Salida).
Imagina al robot como si fuera un ser vivo:
1. ENTRADA (Los Sentidos)
En el mundo técnico los llamamos SENSORES. Son los "ojos" y "oídos" de la máquina.
Sin ellos, el robot sería ciego y sordo; no sabría qué está pasando a su alrededor.
Su trabajo es capturar datos del mundo exterior y enviarlos al cerebro.
- Botones: Equivalen al sentido del Tacto (saber si alguien lo toca).
- Sensor de Luz: Equivale a la Vista (saber si es de día o de noche).
- Micrófono: Equivale al oído (detectar ruido o palmas).
- Acelerómetro: Equivale al Equilibrio (saber si está inclinado o cayendo).
- Termómetro: Equivale a la Sensación térmica (temperatura).
2. PROCESO (El Cerebro)
Aquí es donde ocurre la magia. Es el chip físico (en nuestro caso, la placa micro:bit).
En su interior está guardado tu ALGORITMO (el programa que escribiste con bloques). El cerebro sigue estos pasos:
- Lee la información de los Sensores ("Oye, el sensor de luz dice que está oscuro").
- Consulta tus instrucciones ("Mi programador dijo que SI está oscuro, ENTONCES encienda la luz").
- Manda la orden a la siguiente fase.
3. SALIDA (Los Músculos)
En el mundo técnico los llamamos ACTUADORES. Son las piezas encargadas de realizar la acción física.
Son los que obedecen al cerebro y ejecutan el trabajo.
- LEDs / Pantallas: Para comunicarse visualmente (mostrar una carita feliz o iluminar un camino).
- Altavoces / Zumbadores: Para comunicarse con sonido (emitir una alarma o música).
- Motores / Servos: Para generar movimiento (abrir una barrera, girar una rueda o mover un brazo).
PARA PENSAR: El ejemplo de la Puerta Automática
Para ver si lo has entendido, analicemos una puerta automática de un supermercado:
- Entrada (Sensor): Un sensor de movimiento detecta que te acercas.
- Proceso (Cerebro): El chip piensa: "¡Alerta! Hay un humano cerca $\rightarrow$ Orden: Abrir".
- Salida (Actuador): El motor eléctrico recibe la orden y desliza la puerta.
¡Si faltara cualquiera de las tres partes, la puerta no funcionaría!