PIEP • POO • PEE
Universidad Nacional de Colombia
Objetivo: presentar tres enfoques de programación y la ruta del curso.
Paradigmas: PIEP (imperativa), POO (orientada a objetos), PEE (orientada a vectores).
if, for, whileEste paradigma funciona muy bien cuando queremos control total sobre el orden de ejecución.
Ejemplo: un cajero automático sigue exactamente los pasos:
verificar tarjeta → pedir PIN → consultar saldo → entregar dinero.
PIEP es ideal para tareas de bajo nivel o algoritmos detallados, como ordenar una lista con bubblesort o controlar el movimiento de un robot.
La lógica se organiza en funciones y procedimientos, como una receta de cocina.
Conviene cuando necesitamos modelar un sistema complejo con muchas entidades que interactúan.
Ejemplo: en un videojuego tenemos clases como Jugador, Enemigo y Arma, cada una con atributos y métodos.
Gracias a la orientación a objetos podemos reutilizar código (una clase Enemigo puede extenderse a Dragón o Zombi) y mantener el sistema ordenado aun cuando crece.
Es el enfoque más usado en software empresarial, aplicaciones móviles y videojuegos.
Este paradigma es útil cuando trabajamos con grandes volúmenes de datos y cálculos vectorizados.
Ejemplo en R: calcular la media de millones de observaciones con una sola línea:
PEE permite escribir poco código para mucho trabajo, lo que lo hace excelente para análisis de datos, aprendizaje automático y prototipado rápido.
Aquí pensamos en dar órdenes paso a paso.
Usamos estructuras como if, for, while para controlar el flujo.
El programa se organiza en procedimientos o funciones.
Ejemplo típico: C o Pascal.
👉 Ejemplo sencillo: decirle a una calculadora que sume números uno tras otro con instrucciones bien definidas.
👉 Ejemplo: en un videojuego, un objeto Jugador tiene nombre, puntos de vida y métodos como saltar() o correr().
👉 Ejemplo: en lugar de sumar número por número, dices x + y y sumas dos vectores completos en una sola instrucción.
En resumen:
PIEP = instrucciones paso a paso.
POO = modelar con objetos.
PEE = operar con colecciones completas.
Aquí damos órdenes paso a paso y usamos funciones sueltas.
Ahora agrupamos datos y métodos dentro de una clase León, creando un objeto.
class Leon:
def __init__(self, edad, peso, nombre):
self.edad = edad
self.peso = peso
self.nombre = nombre
def rugir(self):
print("¡Rooaaar!")
def comer(self):
print(f"{self.nombre} está comiendo...")
def dormir(self):
print(f"{self.nombre} está durmiendo...")
# Crear objeto
simba = Leon(5, 190.5, "Simba")
# Uso
print(simba.nombre, simba.edad, simba.peso)
simba.rugir()
simba.comer()
simba.dormir()En lugar de pensar en un solo león, pensamos en un conjunto de leones y aplicamos operaciones vectorizadas.
import pandas as pd
# Conjunto de leones
leones = pd.DataFrame({
"nombre": ["Simba", "Nala", "Mufasa"],
"edad": [5, 4, 12],
"peso": [190.5, 150.2, 210.0]
})
# Métodos como operaciones vectoriales
leones["accion"] = "comer" # Todos están comiendo
print(leones)
# Cambiar acción a todos
leones["accion"] = "dormir"
print(leones)✨ Resumen:
Comparación entre PIEP, POO y PEE
Programación en lenguajes estadísticos