Fundamentos de Algoritmia y Pensamiento Computacional
Introducción a la resolución de problemas
El pensamiento computacional es una habilidad que nos permite abordar problemas complejos, comprenderlos y desarrollar soluciones que una computadora pueda ejecutar. El núcleo de esta habilidad es el algoritmo.
Un algoritmo se define como una secuencia ordenada y finita de pasos que conducen a la solución de un problema. Para que un algoritmo sea eficaz, debe cumplir tres fases críticas:
- Entrada (Input): Son los datos iniciales que necesitamos para trabajar.
- Proceso: Es el conjunto de operaciones y pasos lógicos que transforman la entrada.
- Salida (Output): Es el resultado final obtenido tras el procesamiento.
Un algoritmo debe ser preciso, definido (si se sigue dos veces, se obtiene el mismo resultado) y finito. Antes de escribir una sola línea de código, es vital realizar un análisis del problema para identificar qué datos tenemos y qué queremos lograr.
Representación gráfica de algoritmos
Para visualizar la lógica de un programa antes de programarlo, utilizamos los diagramas de flujo (o flujogramas). Estos utilizan una simbología estándar:
- Óvalo: Inicio y fin del algoritmo.
- Paralelogramo: Entrada o salida de datos (lectura/escritura).
- Rectángulo: Proceso o instrucción (operaciones matemáticas, asignaciones).
- Rombo: Decisión o condición (determina el camino a seguir según una pregunta de sí/no).
El diseño de flujogramas ayuda a detectar errores de lógica de forma visual y es una herramienta de comunicación esencial entre programadores.
El lenguaje del pseudocódigo
El pseudocódigo es un lenguaje intermedio entre el lenguaje humano y el lenguaje de programación. No tiene una sintaxis tan rígida como Python o C++, pero sigue una estructura lógica clara.
Su objetivo principal es la legibilidad. Al escribir pseudocódigo, utilizamos palabras clave como INICIO, LEER, MOSTRAR y FIN. Es fundamental incluir comentarios (anotaciones que el ordenador ignora) para explicar partes complejas del código, lo que facilita que otras personas (o nosotros mismos en el futuro) entiendan el programa.


