0.c.1 - Pensamiento Computacional - Abstracción

Objetivo

Comprender el concepto de "abstracción" como técnica de pensamiento computacional, identificando qué detalles son esenciales y cuáles pueden omitirse para simplificar la resolución de problemas.

1. Contenidos

1.1 ¿Qué es la abstracción?

La abstracción es la técnica que consiste en identificar y enfocarse en los detalles esenciales de un problema, ignorando aquellos aspectos que no son relevantes para el objetivo que se persigue. Es el proceso de simplificar una realidad compleja modelando únicamente sus características más importantes.

Características clave:

  • Filtrado de información: Separar lo relevante de lo irrelevante.
  • Generalización: Encontrar patrones comunes que permitan tratar casos similares de forma unificada.
  • Simplificación: Reducir la complejidad manteniendo la esencia del problema.
  • Modelado: Crear representaciones simplificadas de la realidad.

Ejemplo práctico 1: Mapa del metro

Problema: Orientarse en el metro de una ciudad grande.

Abstracción aplicada: Un mapa de metro no representa la distancia real entre estaciones ni las calles de la ciudad. Solo muestra las líneas, las estaciones y los transbordos. Los detalles geográficos exactos son irrelevantes para el objetivo de planificar una ruta, por lo que se abstraen (eliminan).

Ejemplo práctico 2: Lista de la compra

Problema: Recordar qué comprar en el supermercado.

Abstracción aplicada: En lugar de recordar cada producto por su marca, tamaño, color o precio exacto (detalles concretos), se utiliza una lista con nombres genéricos: "leche", "pan", "huevos". Se están abstrayendo los detalles específicos para centrarse en lo esencial: qué productos hay que adquirir.

Ejemplo práctico 3: Conducir un coche

Problema: Conducir un vehículo.

Abstracción aplicada: El conductor no necesita conocer el funcionamiento interno del motor, la inyección de combustible o el sistema de escape. Solo necesita una interfaz simplificada (volante, pedales, palanca de cambios). La complejidad mecánica está abstraída.

Beneficios en la vida real:

  • Reduce la carga cognitiva al manejar problemas complejos.
  • Permite crear modelos útiles sin necesidad de conocer todos los detalles.
  • Facilita la comunicación al usar conceptos generales en lugar de descripciones exhaustivas.
  • Posibilita la reutilización de soluciones en contextos diferentes.

La abstracción es fundamental en programación (funciones, clases, APIs), en matemáticas (variables, ecuaciones) y en la vida cotidiana (categorías, mapas, instrucciones). Sin abstracción, cada problema sería único y no podríamos aplicar soluciones generales.

1.2 Técnicas para aplicar la abstracción

Existen diversas estrategias para aplicar la abstracción en la resolución de problemas.

a) Generalización

Identificar patrones comunes entre diferentes casos concretos para crear una regla o modelo general.

  • Ejemplo: En lugar de crear un procedimiento diferente para calcular el área de cada figura geométrica, se abstrae en la fórmula general: área = base × altura (para rectángulos).
  • Cuándo usar: Cuando se repiten estructuras o comportamientos similares.

b) Eliminación de detalles irrelevantes

Identificar qué información no es necesaria para el objetivo y omitirla conscientemente.

  • Ejemplo: Para calcular el tiempo de viaje en coche, son relevantes la distancia y la velocidad media; es irrelevante el color del vehículo o la marca de los neumáticos.
  • Cuándo usar: En casi cualquier problema, para evitar saturación de información.

c) Modelado simplificado

Crear una representación simplificada que capture solo las características esenciales del sistema.

  • Ejemplo: Un diagrama de flujo de procesos empresariales abstrae los pasos clave ignorando las conversaciones informales u otros detalles menores.
  • Cuándo usar: Al analizar sistemas complejos con muchos componentes.

d) Clasificación y categorización

Agrupar elementos por características comunes, ignorando sus diferencias particulares.

  • Ejemplo: En una tienda online, los productos se clasifican en categorías (electrónica, ropa, hogar) abstrayendo las marcas o modelos específicos.
  • Cuándo usar: Para organizar grandes volúmenes de información o elementos.

e) Jerarquización de abstracción

Organizar la información en niveles de detalle, donde cada nivel oculta los detalles del nivel inferior.

  • Ejemplo: El sistema operativo de un ordenador abstrae el hardware (nivel bajo); las aplicaciones abstraen el sistema operativo (nivel medio); el usuario abstrae las aplicaciones (nivel alto).
  • Cuándo usar: En sistemas complejos con múltiples capas de funcionalidad.

Resumen práctico:

Técnica Pregunta guía Qué se abstrae
Generalización¿Qué tienen en común estos casos?Diferencias específicas
Eliminación de detalles¿Qué información es prescindible?Datos irrelevantes
Modelado simplificado¿Cuál es la versión más simple?Complejidad secundaria
Clasificación¿Qué grupos puedo formar?Particularidades individuales
Jerarquización¿Qué nivel de detalle necesito ahora?Capas inferiores

Regla de oro: Abstraer bien significa saber exactamente qué detalles mantener y cuáles descartar según el objetivo. El nivel de abstracción adecuado depende del contexto y del problema a resolver.

2. Ejercicios

Ejercicio 1: Abstracción por eliminación de detalles

Diseñar un sistema de navegación GPS para bicicletas en una ciudad.

Enunciado:

Una empresa quiere desarrollar un navegador GPS específico para ciclistas urbanos. El mapa de la ciudad contiene muchísima información: nombres de calles, números de portal, sentido del tráfico, semáforos, pasos de peatones, carriles bici, pendientes, tipo de asfalto, parques, fuentes, bancos, farolas, contenedores de basura, paradas de autobús, estaciones de BiciMAD, etc.

Tarea:

  1. Identificar qué elementos del mapa son esenciales para un ciclista que usa el GPS (deben mantenerse en el modelo abstracto).
  2. Identificar qué elementos son irrelevantes (pueden abstraerse/eliminarse).
  3. Explicar brevemente por qué cada elemento esencial es necesario y por qué cada elemento irrelevante puede eliminarse.

Tabla para completar:

Elementos esenciales (mantener) Justificación Elementos irrelevantes (abstraer) Justificación
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________

Preguntas de reflexión:

  • ¿Cambiaría tu selección si el GPS fuera para conductores de coches? ¿Por qué?
  • ¿Y si fuera para personas con movilidad reducida en silla de ruedas?
  • ¿Qué conclusión obtienes sobre la relación entre objetivo y nivel de abstracción?

Ejercicio 2: Abstracción por generalización

Crear un modelo abstracto para calcular costes de envío de una tienda online.

Enunciado:

Una tienda online vende productos de diferentes tipos: libros (peso ~0.5 kg), ropa (peso ~0.3 kg), electrónica (peso~1.5 kg) y muebles (peso variable hasta 30 kg). Actualmente, la empresa tiene reglas de envío diferentes para cada tipo de producto, lo que complica el sistema. Se pide abstraer mediante generalización para crear un modelo único de cálculo de envíos.

Datos concretos (sin abstraer):

  • Libros: 2,50 € por cada libro (independientemente del peso).
  • Ropa: 3,00 € fijos + 0,50 € por prenda adicional.
  • Electrónica: 5,00 € si pesa menos de 1 kg, 8,00 € si pesa más.
  • Muebles: 20,00 € + 1,00 € por kg.

Tarea:

  1. Identificar qué variables esenciales influyen en el coste de envío en todos los casos (ejemplo: peso, cantidad de unidades, etc.).
  2. Propón una fórmula o modelo general que pueda calcular el coste de envío para cualquier producto utilizando solo esas variables esenciales.
  3. Comprueba que tu modelo general puede aproximar (con un margen razonable) los costes específicos de cada tipo de producto.

Esquema para resolver:

Variables esenciales identificadas:

  • 1. _________________
  • 2. _________________
  • 3. _________________

Modelo general propuesto (fórmula):

Coste_envío = _________________________________

Comprobación (aproxima cada caso con tu fórmula):

  • Libro (0.5 kg): Coste real 2,50 € → Coste aproximado ____ €
  • Ropa (0.3 kg, 2 prendas): Coste real 3,50 € → Coste aproximado ____ €
  • Electrónica (1.2 kg): Coste real 8,00 € → Coste aproximado ____ €
  • Mueble (15 kg): Coste real 35,00 € → Coste aproximado ____ €

Preguntas de reflexión:

  • ¿Tu modelo general pierde precisión en algún caso? ¿Vale la pena esa pérdida por la simplicidad ganada?
  • ¿Qué otro detalle podrías incluir en la abstracción para mejorar la precisión sin complicar demasiado?
  • ¿En qué situaciones sería preferible NO abstraer y mantener las reglas específicas por producto?

Reto

Observa tu entorno cotidiano e identifica tres ejemplos de abstracción que uses sin darte cuenta. Describe cuál es el objetivo y qué detalles concretos estás omitiendo (abstrayendo) en cada caso.

Bibliografía