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
-
Decidir si amas o no a una persona. (Depende de sentimientos subjetivos imposibles de describir como datos exactos.)
-
Elegir cuál pintura “se siente” más bonita. (La belleza es subjetiva y no puede formalizarse con reglas universales.)
-
Saber si un chiste será gracioso para todos. (El humor depende del contexto, cultura, personalidad y estado emocional.)
-
Determinar si es correcto moralmente tomar una decisión difícil. (Los juicios morales no tienen criterios objetivos y varían entre personas.)
-
Decidir a quién contratar únicamente por “intuición”. (La intuición no puede expresarse como entrada–proceso–salida medible.)
-
Escoger el mejor amigo entre varias personas. (Depende de vínculos emocionales, no cuantificables.)
-
Determinar cuál recuerdo es el más importante de tu vida. (La importancia personal no puede cuantificarse ni describirse como algoritmo.)
-
Predecir con certeza qué persona te caerá bien al conocerla. (Interacciones humanas impredecibles y subjetivas.)
-
Saber si una comida te hará “feliz” ese día. (La felicidad no es un valor medible ni consistente.)
-
Decidir qué carrera estudiar basado en tus sueños o aspiraciones. (Las aspiraciones cambian, no siguen reglas formales ni parámetros exactos.)
-
Elegir la ropa que “mejor combine” según tu estilo personal. (La moda depende de gustos, no de reglas universales programables.)
-
Identificar si una acción te hará sentir orgulloso. (El orgullo es una emoción no cuantificable.)
-
Saber si un libro te cambiará la vida. (Depende de interpretación personal y contexto emocional.)
-
Resolver un conflicto familiar donde intervienen emociones. (Interactúan variables humanas imposibles de formalizar por completo.)
-
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.