LOE/LOMLOE (BOE)Tecnología y Digitalización2º de Educación Secundaria Obligatoria7 min de lectura

Algorítmica y programación por bloques

Un algoritmo es una secuencia de instrucciones precisas, ordenadas y finitas que permiten resolver un problema o realizar una tarea.

Lectura5 partesUn recorrido editorial y navegable.
Práctica12 preguntasTest y tarjetas de memoria para abrir después de leer.
Objetivo2º de Educación Secundaria ObligatoriaFormato rápido para comprobar si el tema encaja.
Parte 1

Fundamentos del Pensamiento Computacional

Introducción a los algoritmos

Un algoritmo es una secuencia de instrucciones precisas, ordenadas y finitas que permiten resolver un problema o realizar una tarea. No es algo exclusivo de la informática; una receta de cocina o las instrucciones para montar un mueble son algoritmos de la vida cotidiana.

Todo algoritmo se compone de tres partes esenciales:

  1. Entrada (Input): Los datos necesarios para comenzar (ej. los ingredientes).
  2. Proceso: El conjunto de pasos lógicos para transformar la entrada (ej. cocinar).
  3. Salida (Output): El resultado final obtenido (ej. el plato terminado).

La eficiencia algorítmica es clave: un buen algoritmo no solo debe funcionar, sino hacerlo utilizando la menor cantidad de recursos y pasos posibles.

Descomposición de problemas

Cuando nos enfrentamos a un reto grande, la mejor estrategia es la descomposición. Consiste en dividir un problema complejo en subproblemas más pequeños y manejables.

  • Abstracción: Ignorar los detalles irrelevantes para centrarnos en lo que realmente importa.
  • Identificación de patrones: Reconocer similitudes entre los subproblemas para aplicar soluciones que ya conocemos.
  • Simplificación: Reducir la dificultad eliminando variables innecesarias hasta llegar a la esencia del problema.

Representación gráfica: Diagramas de flujo

Para visualizar un algoritmo antes de programarlo, utilizamos los diagramas de flujo. Estos usan una simbología estándar para representar el camino que siguen los datos:

SímboloNombreFunción
ÓvaloInicio / FinIndica dónde empieza y termina el proceso.
RectánguloProcesoRepresenta una acción o instrucción (ej. "Sumar 1").
RomboDecisiónUna pregunta que se responde con "Sí" o "No".
ParalelogramoEntrada / SalidaLectura de datos o muestra de resultados.

Es fundamental que el sentido de flujo sea claro, normalmente de arriba hacia abajo o de izquierda a derecha, conectando los bloques con flechas.


Parte 2

Estructuras de Control de Flujo

Estructuras secuenciales

Es la forma más simple de programación. Las instrucciones se ejecutan una tras otra, en el orden exacto en que han sido escritas o apiladas. En la programación por bloques, esto se visualiza como un apilamiento vertical donde el bloque superior siempre se ejecuta antes que el inferior. Si cambias el orden de los bloques, el resultado final probablemente cambie.

Estructuras condicionales

Permiten que el programa tome decisiones basándose en condiciones lógicas. Se basan en el álgebra de Boole, donde una condición solo puede ser Verdadera o Falsa.

  • Bloque 'si... entonces': La acción solo ocurre si la condición se cumple.
  • Bloque 'si... entonces... si no': Permite definir una alternativa. Si la condición es falsa, se ejecuta el código dentro del "si no".

Ejemplo: Si (puntos > 10) entonces [Mostrar "¡Ganaste!"] si no [Mostrar "Sigue intentando"].

Estructuras iterativas (Bucles)

Los bucles sirven para repetir un conjunto de instrucciones, evitando escribir el mismo código muchas veces y logrando una optimización de código real.

  1. Repeticiones infinitas: El programa repite la acción para siempre (típico en el movimiento de personajes).
  2. Bucles contados: Se repite un número exacto de veces (ej. "repetir 10 veces").
  3. Bucles condicionales: Se repiten "hasta que" ocurre algo o "mientras" se cumpla una condición.

Parte 3

Datos y Variables en Programación Visual

Gestión de variables

Una variable es como una caja con una etiqueta donde guardamos un dato que puede cambiar durante la ejecución del programa (como la puntuación de un juego).

  • Creación y nombrado: Deben tener nombres claros (ej. puntos, no x).
  • Asignación: Darle un valor inicial (inicializar).
  • Incremento/Decremento: Sumar o restar valores a la variable actual.
    • Matemáticamente: v=v+1v = v + 1

El ámbito de la variable define si solo un objeto puede verla (local) o si todos los objetos del programa tienen acceso a ella (global).

Tipos de datos básicos

Los programas manejan diferentes tipos de información:

  • Numéricos: Números enteros o decimales para cálculos.
  • Cadenas de texto (Strings): Palabras o frases.
  • Valores lógicos (Booleanos): Únicamente Verdadero o Falso.
  • Listas: Una colección ordenada de varios datos bajo un mismo nombre.

Operadores y expresiones

Los operadores nos permiten manipular los datos:

  • Aritméticos: ++, -, *, // y el módulo (resto de la división).
  • Lógicos: Y (ambas condiciones deben ser ciertas), O (al menos una debe ser cierta), NO (invierte el valor).
  • Comparación: <<, >>, ==.
  • Concatenación: Unir dos cadenas de texto (ej. "Hola " + "Mundo").

Recuerda siempre la prioridad de operaciones: las multiplicaciones y divisiones se resuelven antes que las sumas, a menos que uses paréntesis.


Parte 4

Interacción y Multimedia

Eventos y disparadores

Un programa no siempre es lineal; a menudo reacciona a lo que hace el usuario. Un evento es una señal que le dice al programa que debe ejecutar una acción.

  • Al presionar bandera verde: El inicio estándar en Scratch.
  • Eventos de entrada: Pulsar una tecla o hacer clic en un objeto.
  • Mensajes: Permiten que un objeto le "hable" a otro para coordinar acciones (ej. "Enviar mensaje: Juego Terminado").

Control de objetos y escenarios

En la programación visual, trabajamos sobre un escenario que utiliza coordenadas cartesianas.

  • El eje XX representa la posición horizontal (izquierda/derecha).
  • El eje YY representa la posición vertical (arriba/abajo).
  • El centro del escenario suele ser el punto (0,0)(0,0).

Podemos cambiar la apariencia mediante disfraces y fondos, y organizar la profundidad mediante capas (enviar al frente o atrás).

Sensores y entrada de datos

Los sensores permiten al programa "percibir" su entorno digital:

  • Colisiones: Detectar si un objeto toca a otro o a un color específico.
  • Interacción directa: El bloque de "preguntar y esperar" guarda la respuesta del usuario en una variable especial.
  • Distancia: Medir qué tan lejos está el puntero del ratón o el borde.

Parte 5

Modularidad y Buenas Prácticas

Creación de bloques personalizados

La modularización consiste en agrupar varias instrucciones bajo un nuevo nombre. Esto se conoce como crear una función o un bloque personalizado.

  • Reutilización: Si usas el mismo código en tres sitios, crea un bloque para no repetirlo.
  • Parámetros: Puedes pasarle información al bloque (ej. un bloque "Saltar" que reciba la "altura" del salto como dato).

Depuración y corrección de errores

Programar implica cometer errores, llamados bugs. La depuración es el proceso de encontrarlos y arreglarlos.

  • Ejecución paso a paso: Observar el programa lentamente para ver dónde falla.
  • Pruebas de escritorio: Seguir el algoritmo con papel y lápiz anotando los valores de las variables.
  • Comentarios: Escribir notas dentro del código para explicar qué hace cada parte. El código limpio es más fácil de mantener.

Documentación del proyecto

Un buen programador siempre documenta su trabajo. Esto incluye:

  1. Instrucciones de uso: Explicar al usuario qué teclas pulsar.
  2. Créditos: Citar de dónde se han sacado las imágenes o sonidos si no son propios.
  3. Licencias: Indicar si otros pueden copiar o mejorar tu trabajo (ej. Creative Commons).
  4. Descripción del algoritmo: Explicar brevemente la lógica principal del proyecto.
Después de leer

Pasa a la práctica con dos bloques bien visibles

Cuando hayas leído los apuntes, abre el test para comprobar lo que has entendido o las flashcards para memorizar las ideas importantes. Los dos se abren en una ventana propia.

Siguiente paso

¿Quieres ir más allá
del artículo?

Encuentra el mismo tema en Houki con el resto de preguntas, la repetición espaciada, las correcciones completas y un progreso seguido en el tiempo.