Tema 1 - Algoritmos y Programas
Este tema explora los conceptos fundamentales de la programación, comenzando por la definición de un programa como un conjunto de instrucciones para que la computadora realice tareas.
🧮 Algoritmos
Un concepto clave que se resalta es el de algoritmo. Un algoritmo es una serie de pasos ordenados y finitos para resolver un problema, y es la base de todo lo que hace una computadora.
- Un algoritmo debe ser preciso, definido y finito.
- A diferencia de un programa, un algoritmo puede ser expresado en lenguaje natural.
- Para que una computadora ejecute un algoritmo, este debe ser traducido a un programa.
- La estructura general de un algoritmo incluye una cabecera, un cuerpo con declaraciones, e instrucciones.
🔢 Codificación de la Información
Para que un ordenador pueda procesar información, esta debe ser codificada en un formato que pueda entender, es decir, en secuencias de 0s y 1s (sistema binario).
-
Un bit es la unidad mínima de información, representando un
0o un1. -
Un byte son 8 bits y se utiliza como una unidad básica de almacenamiento.
-
Existen múltiplos del byte, como el kilobyte, megabyte, gigabyte, etc.

💻 Lenguajes de Programación
Para escribir un programa, se utilizan lenguajes de programación, que son un conjunto de reglas y símbolos para construir programas. Existen diferentes tipos:
- Lenguaje máquina: El lenguaje nativo de los ordenadores, basado en secuencias de 0s y 1s.
- Lenguaje ensamblador: Usa nombres simbólicos para representar instrucciones, más fácil que el lenguaje máquina, pero aún dependiente de la arquitectura (x86, x64, ArmV7, etc.).
- Lenguajes de alto nivel: Más cercanos al lenguaje humano e independientes de la máquina. Ejemplos: C/C++, Python, Java.
❓ Compiladores e Intérpretes
Para que una computadora ejecute un programa escrito en un lenguaje de alto nivel, se utiliza un traductor, que puede ser un compilador o un intérprete:
- Compiladores: Traducen todo el código fuente a código máquina en una sola operación, generando un programa ejecutable.
- Intérpretes: Traducen y ejecutan el programa instrucción por instrucción, permitiendo corregir errores sobre la marcha, aunque son menos eficientes.
🔎 Paradigmas de Programación
Un paradigma de programación es un estilo de desarrollo de software. Algunos ejemplos son:
- Imperativa: Se define la secuencia de pasos a ejecutar.
- Orientada a Objetos: Se basa en la creación de objetos que interactúan entre sí.
- Declarativa: Describe qué se necesita resolver en lugar de cómo hacerlo.
- Funcional: Se basa en la definición y uso de funciones.
- Guiada por Eventos: El flujo del programa está determinado por eventos externos.
- Concurrente: Permite ejecutar múltiples tareas simultáneamente.
Paradigmas más Comunes
Programación Imperativa (Procedimental)
Este enfoque define claramente los pasos a ejecutar en orden secuencial. El código se organiza en subprogramas (funciones, procedimientos). Ejemplos de lenguajes: C, Java, Go.
Programación Orientada a Objetos
Se basa en la creación de clases y objetos. Los programas están compuestos por objetos que interactúan entre sí. Ventajas: reutilización de código y mejor organización. Ejemplos: C++, Java.
Programación Declarativa (Lógica)
Este enfoque se centra en el qué resolver, dejando que el sistema se encargue del cómo. Utiliza reglas y hechos para encontrar soluciones. Ejemplos: Prolog, SQL.
Programación Funcional
Se basa en la definición y combinación de funciones. La recursividad es un concepto clave. Ejemplos: Python, Kotlin, JavaScript.
Programación Guiada por Eventos
El flujo del programa está controlado por eventos externos, como interacciones del usuario. Ejemplos: Java, Visual Basic.
Programación Concurrente
Permite la ejecución simultánea de múltiples tareas a través de procesos o hilos de ejecución. Ejemplo: Java.
Un mismo lenguaje puede implementar varios de estos paradigmas, dependiendo del enfoque del programador.