Problema cotidiano vs. Problema computable

Problema cotidiano Versión como problema computable
Decidir qué ruta tomar para llegar más rápido a la escuela. Dado un mapa con distancias y tráfico (entradas), calcular la ruta con menor tiempo usando un algoritmo de caminos mínimos (proceso) y devolver la ruta óptima (salida).
Contar cuánto dinero necesito para comprar varios artículos. Recibir una lista de precios (entradas), sumar todos los valores (proceso) y mostrar el total (salida).
Organizar tus tareas del día según su importancia. Recibir una lista de tareas con prioridad (entradas), ordenarlas por prioridad o tiempo (proceso) y generar un orden recomendado (salida).
Saber si tienes suficiente saldo para comprar un café. Entrada: saldo actual y precio del café. Proceso: comparar ambos valores. Salida: “Sí alcanza” o “No alcanza”.
Elegir una película para ver según tu estado de ánimo. Entrada: estado de ánimo y lista de géneros. Proceso: filtrar películas que coincidan. Salida: sugerencias.
Preparar una receta siguiendo pasos numerados. Entrada: lista de ingredientes + pasos. Proceso: ejecutar instrucciones en orden. Salida: platillo preparado correctamente.
Identificar qué materia estudiar primero. Entradas: calificaciones, tareas pendientes, fecha de exámenes. Proceso: aplicar reglas de prioridad. Salida: materia recomendada a estudiar.
Recordar cumpleaños de amigos. Entradas: fechas almacenadas. Proceso: comparar con fecha actual. Salida: lista de cumpleaños próximos o notificación.
Ver si una contraseña es segura. Entrada: cadena de texto. Proceso: analizar longitud, uso de símbolos, números y mayúsculas. Salida: nivel de seguridad.
Calcular cuántos litros de pintura necesito para pintar un cuarto. Entradas: largo, alto y ancho del cuarto, rendimiento por litro. Proceso: calcular área y dividir por rendimiento. Salida: litros necesarios.

Problemas cotidianos NO computables

  1. Decidir si amas o no a una persona. (Depende de sentimientos subjetivos imposibles de describir como datos exactos.)

  2. Elegir cuál pintura “se siente” más bonita. (La belleza es subjetiva y no puede formalizarse con reglas universales.)

  3. Saber si un chiste será gracioso para todos. (El humor depende del contexto, cultura, personalidad y estado emocional.)

  4. Determinar si es correcto moralmente tomar una decisión difícil. (Los juicios morales no tienen criterios objetivos y varían entre personas.)

  5. Decidir a quién contratar únicamente por “intuición”. (La intuición no puede expresarse como entrada–proceso–salida medible.)

  6. Escoger el mejor amigo entre varias personas. (Depende de vínculos emocionales, no cuantificables.)

  7. Determinar cuál recuerdo es el más importante de tu vida. (La importancia personal no puede cuantificarse ni describirse como algoritmo.)

  8. Predecir con certeza qué persona te caerá bien al conocerla. (Interacciones humanas impredecibles y subjetivas.)

  9. Saber si una comida te hará “feliz” ese día. (La felicidad no es un valor medible ni consistente.)

  10. Decidir qué carrera estudiar basado en tus sueños o aspiraciones. (Las aspiraciones cambian, no siguen reglas formales ni parámetros exactos.)

  11. Elegir la ropa que “mejor combine” según tu estilo personal. (La moda depende de gustos, no de reglas universales programables.)

  12. Identificar si una acción te hará sentir orgulloso. (El orgullo es una emoción no cuantificable.)

  13. Saber si un libro te cambiará la vida. (Depende de interpretación personal y contexto emocional.)

  14. Resolver un conflicto familiar donde intervienen emociones. (Interactúan variables humanas imposibles de formalizar por completo.)

  15. Saber si un cuadro abstracto “significa” algo específico. (La interpretación es subjetiva.)

Problemas cotidianos a analizar:

1. Organizar la distribución de pizzas para un evento escolar.
2. Decidir qué ruta tomar para ir del colegio a casa.

Cada grupo debe discutir cómo convertir ese problema cotidiano en uno computacional, respondiendo preguntas como:

  • ¿Qué datos necesitamos conocer primero? (entradas)
  • ¿Qué queremos obtener como resultado? (salidas)
  • ¿Qué pasos o lógica seguiríamos? (proceso)
  • ¿Qué condiciones podrían limitar la solución? (restricciones)

El objetivo es que los grupos transformen un problema real y ambiguo en un planteamiento preciso y ordenado. Con esta reflexión, los estudiantes comprenden la importancia de pensar como programadores, empezando siempre por un análisis adecuado del problema antes de escribir cualquier código.