Fundamentos de la informática y algoritmos
En este curso exploraremos los conceptos esenciales que sustentan la informática básica y la lógica algorítmica. Cada apartado está diseñado para reforzar el aprendizaje mediante ejemplos…

En el método "Divide y Vencerás", ¿qué ventaja se obtiene al dividir un problema complejo en módulos más pequeños?
Según la definición de hardware, ¿cuál de los siguientes componentes NO pertenece al hardware interno de una computadora?
En un diagrama de flujo, ¿qué símbolo representa una decisión que permite bifurcar el proceso según una condición?
¿Cuál de los siguientes valores de código ASCII corresponde a un carácter de control?
Al declarar una variable de tipo "Real" en pseudocódigo, ¿qué tipo de datos puede almacenar?
En la estructura cíclica "Para", ¿qué ocurre si el límite superior es menor que el límite inferior?
¿Cuál es la diferencia principal entre un lenguaje de bajo nivel y uno de alto nivel?
En el contexto de los tipos de datos, ¿qué operador se utiliza para comprobar igualdad entre dos variables?
Al diseñar un algoritmo para calcular el promedio de una lista de N números, ¿qué paso es esencial antes de la división final?
Introducción a los fundamentos de la informática y algoritmos
En este curso exploraremos los conceptos esenciales que sustentan la informática básica y la lógica algorítmica. Cada apartado está diseñado para reforzar el aprendizaje mediante ejemplos claros, analogías visuales y explicaciones detalladas. Al finalizar, podrás identificar diferencias clave entre tipos de algoritmos, comprender la arquitectura de hardware interno, interpretar diagramas de flujo y distinguir entre lenguajes de programación de bajo y alto nivel.
Algoritmos finitos vs. algoritmos no finitos
¿Qué es un algoritmo finito?
Un algoritmo finito es aquel que garantiza su terminación después de un número limitado de pasos, sin importar la entrada. Esta propiedad es fundamental para asegurar que los programas produzcan resultados en un tiempo predecible.
Características distintivas
- Terminación garantizada: siempre llega a una condición de parada.
- Complejidad calculable: permite estimar el número máximo de iteraciones.
- Ejemplo práctico: una rutina que suma los números del 1 al 10.
En contraste, un algoritmo no finito puede entrar en bucles infinitos o depender de condiciones que nunca se cumplen, lo que lo hace inadecuado para la mayoría de aplicaciones productivas.
Piensa en una carrera que siempre llega a la meta: esa es la esencia de la finitud.
Método "Divide y Vencerás"
Dividir un problema complejo en módulos más pequeños es una estrategia poderosa que aporta facilidad de verificación y mantenimiento. Cada sub‑problema puede ser resuelto, probado y depurado de forma independiente antes de combinarse en la solución global.
Ventajas principales
- Reducción de la complejidad cognitiva para el programador.
- Posibilidad de reutilizar módulos en diferentes proyectos.
- Mejora de la legibilidad del código y de la documentación.
- Facilidad para aplicar pruebas unitarias.
Esta metodología se refleja en algoritmos clásicos como la búsqueda binaria o el ordenamiento rápido (Quicksort), donde cada paso recursivo trabaja sobre una porción del conjunto original.
Imagina piezas de LEGO que se revisan una a una antes de ensamblar la figura completa.
Hardware interno vs. periféricos externos
El hardware interno comprende todos los componentes que se encuentran dentro del chasis de la computadora y que son esenciales para su funcionamiento básico.
Componentes internos típicos
- Procesador central (CPU).
- Memoria de acceso aleatorio (RAM).
- Disco duro interno (HDD o SSD).
- Tarjeta madre y sus circuitos de soporte.
Periféricos externos
Dispositivos como el ratón (mouse), teclado, impresora o webcam se conectan mediante puertos (USB, Bluetooth, etc.) y no forman parte del hardware interno.
Recuerda: el mouse es un periférico externo, mientras que la CPU, RAM y HDD son internos.
Diagramas de flujo: símbolos y su significado
Los diagramas de flujo son herramientas visuales que representan la lógica de un algoritmo mediante símbolos estandarizados.
El símbolo de decisión
El rombo contiene una condición lógica y permite bifurcar el proceso en dos caminos (sí / no). Es el único símbolo que indica una elección basada en una evaluación booleana.
- Rombo: decisión o condición.
- Rectángulo: proceso o acción.
- Óvalo: inicio o fin del algoritmo.
- Flechas: flujo de control entre símbolos.
Rombo = decisión, condición dentro.
Código ASCII y caracteres de control
El estándar ASCII asigna a cada carácter un número del 0 al 127. Dentro de este rango, los valores 0‑31 y el 127 son considerados caracteres de control, ya que no representan símbolos imprimibles.
Ejemplo de carácter de control
El valor 10 corresponde al salto de línea (LF), utilizado para iniciar una nueva línea en texto plano. A diferencia de caracteres como el espacio (32) o la letra "A" (65), el salto de línea no produce un símbolo visible.
Control = no visible.
Tipos de datos en pseudocódigo: el tipo "Real"
En pseudocódigo, declarar una variable como Real indica que la variable puede almacenar números con parte decimal, también conocidos como números de punto flotante.
Usos comunes
- Cálculos científicos que requieren precisión decimal.
- Representación de medidas físicas (peso, altura, temperatura).
- Operaciones financieras con centavos.
Este tipo difiere de Entero (solo sin decimales) y de Cadena (texto).
Piensa en un vaso medio lleno: el nivel del líquido representa la parte decimal.
Estructura cíclica "Para" (for)
El bucle Para ejecuta un bloque de instrucciones mientras la variable de control cumpla una condición de rango. Si el límite superior es menor que el límite inferior, la condición inicial ya es falsa y el cuerpo del bucle no se ejecuta ninguna vez.
Ejemplo práctico
Para i = 10 hasta 5 paso 1
imprimir(i)
FinPara
En este caso, la salida será vacía porque 10 > 5 y la condición de inicio no se cumple.
Recuerda: límite superior < límite inferior → nada.
Diferencias entre lenguajes de bajo nivel y alto nivel
Los lenguajes de programación se clasifican según su cercanía al hardware.
Lenguaje de bajo nivel
- Están estrechamente ligados a la arquitectura del procesador.
- Ofrecen control directo sobre registros, memoria y operaciones de máquina.
- Ejemplos: ensamblador, lenguaje máquina.
Lenguaje de alto nivel
- Abstraen los detalles del hardware, enfocándose en la lógica del problema.
- Son más legibles y portables entre diferentes plataformas.
- Ejemplos: Python, Java, C#.
Esta separación permite a los desarrolladores elegir el nivel de abstracción adecuado según la necesidad de rendimiento o rapidez de desarrollo.
Piensa en hardware vs. abstracción.
Conclusión y próximos pasos
Hemos revisado los conceptos clave que forman la base de la informática y la lógica algorítmica: finitud de algoritmos, estrategia "Divide y Vencerás", distinción entre hardware interno y periféricos, símbolos de diagramas de flujo, códigos ASCII de control, tipos de datos reales, comportamiento del bucle Para y la diferencia entre lenguajes de bajo y alto nivel.
Para consolidar el aprendizaje, se recomienda:
- Practicar la escritura de pseudocódigo aplicando cada tipo de estructura.
- Diseñar diagramas de flujo para problemas cotidianos.
- Identificar componentes internos y externos en el equipo que utilizas.
- Experimentar con un lenguaje de bajo nivel (por ejemplo, ensamblador) y comparar su sintaxis con un lenguaje de alto nivel como Python.
Con la práctica constante, estos fundamentos se convertirán en herramientas poderosas para abordar desafíos más complejos en el mundo de la informática.
