
Este texto abordará los fundamentos de la programación, cubriendo algoritmos, estructuras de datos y programación orientada a objetos.
Algoritmos: La receta de la computación
Un algoritmo es una secuencia ordenada de pasos para resolver un problema.
Piensa en una receta de cocina. Tiene pasos claros que debes seguir.
Must Read
Por ejemplo, un algoritmo para sumar dos números sería: 1. Pedir el primer número. 2. Pedir el segundo número. 3. Sumar los dos números. 4. Mostrar el resultado.
Pasos para crear un algoritmo
Primero, define el problema claramente. ¿Qué quieres lograr?
Segundo, identifica las entradas (los datos que necesitas). ¿Qué información necesitas para resolver el problema?
Tercero, diseña los pasos lógicos. ¿Cómo vas a usar las entradas para obtener la salida deseada?
Cuarto, prueba tu algoritmo. ¿Funciona correctamente con diferentes entradas?

Ejemplo: Algoritmo para encontrar el número mayor entre dos números
1. Pedir el primer número (llamémoslo A).
2. Pedir el segundo número (llamémoslo B).
3. Si A es mayor que B, entonces el número mayor es A.
4. Si B es mayor o igual que A, entonces el número mayor es B.
5. Mostrar el número mayor.
Estructuras de Datos: Organizando la información
Una estructura de datos es una forma específica de organizar y almacenar datos en una computadora.

Diferentes estructuras son mejores para diferentes tareas.
Pensemos en un armario: puedes organizar tu ropa por tipo, color o temporada. De forma similar, las estructuras de datos organizan la información.
Tipos comunes de estructuras de datos
Arrays (Arreglos): Una colección de elementos del mismo tipo, almacenados en posiciones consecutivas de memoria. Fácil acceso a los elementos por su índice (posición).
Listas enlazadas: Una colección de elementos (nodos), donde cada nodo contiene un dato y un puntero al siguiente nodo. Flexibles, pero el acceso a un elemento requiere recorrer la lista.
Pilas (Stacks): Estructura LIFO (Last In, First Out - Último en entrar, primero en salir). Imagina una pila de platos.
Colas (Queues): Estructura FIFO (First In, First Out - Primero en entrar, primero en salir). Imagina una fila de personas esperando.
Programación Orientada a Objetos (POO)
La POO es un paradigma de programación que utiliza "objetos" para diseñar aplicaciones.
Un objeto es una instancia de una clase. Piensa en una clase como un plano y el objeto como la casa construida a partir de ese plano.
Cada objeto tiene atributos (datos) y métodos (acciones que puede realizar).
Conceptos clave de la POO
Clase: Una plantilla o blueprint para crear objetos. Define los atributos y métodos que tendrán los objetos de esa clase.
Objeto: Una instancia específica de una clase. Cada objeto tiene sus propios valores para los atributos.
Herencia: Una clase puede heredar atributos y métodos de otra clase (clase padre o superclase). Promueve la reutilización de código.

Encapsulamiento: Ocultar los detalles internos de un objeto y exponer solo una interfaz pública. Protege la integridad de los datos.
Polimorfismo: La capacidad de un objeto de tomar muchas formas. Permite que diferentes clases respondan al mismo mensaje de diferentes maneras.
Ejemplo: Clase "Coche"
Atributos: marca, modelo, color, velocidad.
Métodos: acelerar, frenar, girar.
Puedes crear varios objetos "Coche", cada uno con diferentes valores para sus atributos (por ejemplo, un coche rojo marca "Toyota" y un coche azul marca "Ford").
Cada coche podrá acelerar, frenar y girar, aunque lo hagan de manera ligeramente diferente.