Pensamiento Computacional – Unidad 2: Actividades – Descomposición de Problemas

2.2 Actividad 2.1: Collares

Descripción:

En una tienda nos indican que el costo de las joyas artesanales que crean dependen de color de las piedras o cuentas utilizadas. Así, queremos calcular el costo de un collar particular de cuentas verdes, rojas y azules.

¿Cómo calculo su precio? Una alternativa podría ser ir sumando el precio de cada cuenta. Otra estrategia podría ser, contar la cantidad de cuentas verdes y multiplicar por el valor de la verde; lo mismo para las rojas, las azules y ¡pronto!

Lo que hice en la segunda opción fue descomponer el problema: por un lado calcular la cantidad de cuentas de cada color y multiplicar por el valor de la cuenta de ese color, luego , sumando todos los valores tengo el total del collar.

 

2.3 Actividad 2.2: Famosos

Descripción:

Queremos adivinar una persona famosa en un tope de 20 preguntas. Cada alumno elige un personaje famoso y anota su nombre en un papel. Otro compañero lo tiene que adivinar formulando hasta 20 preguntas.

Podemos analizar la estrategia para adivinar al personaje. Tiene sentido preguntar inicialmente, por ejemplo, ¿»es Forlán?» o «¿es Shakira?». Probablemente no. Conviene hacer primero preguntas más generales, para descartar mayor cantidad de personas cada vez. Por ejemplo: ¿es hombre?, ¿vive?, ¿es deportista? …

Aquí aplicamos también descomposición de problemas.

 

Nota: ejemplo tomado de https://teachinglondoncomputing.files.wordpress.com/2014/01/activity-20questions.pdf.

 

2.4 Actividad 2.3: Mensajes de texto

Descripción:

Pedro tiene un celular de los más viejos. Para mandar, por ejemplo, la letra «E», debe presionar rápidamente 2 veces el número 3; si quiere mandar una «L» debe presionar rápidamente 3 veces el número 5.

Las amigas de Luis son: Miriam, Iris, Ema y Paz. Luis indica que presionó en total 6 veces para escribir el nombre de una de ellas. ¿Qué nombre eligió?

¿Cómo podemos resolver el problema? La estrategia puede ser descomponer en los distintos casos y analizar cada uno de los nombres en particular.

Así, analizamos que para escribir Miriam, como mínimo debe presionar 6 veces (si cada letra llevara un sólo toque), y para la letra «i» necesita 3 toques, así que ese nombre no puede ser porque superaría los 6 en total.

Para formar Iris: necesita 3 toques por cada letra «I», ya tendría los 6 ahí, pero aún faltan letras, así que queda descartado también.

Para escribir Ema, necesita 2 de la letra «E», 1 de la «M» y 1 de la «A», en total 4.

Para escribir Paz, necesita 1 de la «P», 1 de la «A» y 4 de la «Z», total 6.

¡Tenemos resuelto el problema a través de la descomposición! ¡Eligió a Paz!

Nota: Adaptado de Bebras Australia Computational Thinking Challenge, Tasks and Solutions 2015, http://www.bebras.edu.au/wp-content/uploads/2016/10/2015-Bebras-Solution-Guide.pdf

 

2.5 Actividad 2.4: Carga de Celular

Descripción:

Queremos cargar 1 hora cada uno de los 3 celulares de una familia, y tenemos solamente 2 cargadores. ¿Cuál es el tiempo mínimo para que los 3 celulares reciban una carga total de 1 hora cada uno?

Una primera idea sería poner a cargar uno a continuación del otro. ¿Cuánto tiempo llevaría? Llevaría 3 horas usando uno sólo de los cargadores. Otra opción sería poner a cargar dos de ellos una hora (uno en cada cargador), luego ponemos en uno de los cargadores el tercer celular por otra hora. El tiempo total en este caso es de 2 horas.

¿Podemos reducir este tiempo? Sí, si ponemos en uno de los cargadores un celular por una hora, en el otro ponemos el segundo celular por media hora, luego cambiamos en ese mismo cargador por el tercer celular (así al cabo de una hora, tenemos pronto el primer celular con su carga de una hora y los otros dos recibieron media hora cada uno). Luego de la hora, ponemos en cada cargador uno de los celulares que recibieron sólo 30 minutos de carga, para completar 30 minutos más. El tiempo total es 1 hora 30. ¡Una solución bien ingeniosa! Descompusimos el problema y aplicamos también trabajo en paralelo.

Un detalle interesante es que podemos plantear un problema similar, análogo, en otro contexto completamente distinto. La situación podría ser: en una hamburguesería, previendo la hora pico de consumo, realizan la precocción de las hamburguesas. Cada hamburguesa debe tener 10 minutos de cocción (no necesariamente consecutivos). Hay 2 planchas para cocinar (que permiten una hamburguesa por vez) y 3 hamburguesas, ¿cuál es el tiempo mínimo que necesito para que las 3 tengan en total 10 minutos de precocción? ¿30 minutos? ¿20? ¿15?

Es un caso análogo al anterior. Si aplicamos la misma lógica que en el ejemplo de los cargadores, el tiempo mínimo para cocinar las 3 hamburguesas sería 15 minutos.

Este problema, en el área de computación, se conoce como «scheduling» o planificación. Por ejemplo, hay varias tareas para hacer y se deben repartir entre distintos procesadores de una misma computadora o entre distintas computadoras. Se debe decidir dónde se realizará cada una de esas tareas y por cuánto tiempo. Hay varios algoritmos para resolver este problema. El más sencillo, aunque no necesariamente óptimo, trata de ejecutar las tareas en el orden que llegan. En el ejemplo de la carga de celulares sería: «cargar el primer celular», luego «cargar el segundo celular», y finalmente «cargar el tercer celular».

 

2.6 Actividad 2.5: Desafío Palitos

Descripción:

El juego tiene 4 palitos o bolitas de un color, 4 de otro color diferente y un bloque de madera con 9 agujeros alineados como guía. Inicialmente, los palitos del mismo color están puestos en los extremos, dejando el centro vacío. El objetivo es invertir los palitos, esto es, si estaban a la izquierda todos los azules y a la derecha los verdes, deben quedar a la derecha todos los azules y a la izquierda los verdes.

Los movimientos permitidos son:

a) avanzar una posición un palito a un lugar vacío adyacente, o

b) saltar una posición sobre un palito del color contrario a una posición vacía.

¿Cómo hacemos la actividad en clase? Se reparte un juego a cada equipo de 3 o 4 estudiantes, se detallan las reglas y se les pide que lo resuelvan. Este proceso es observado por el docente y se toma nota de qué es lo que hacen los estudiantes. Se observa así que algunos estudiantes lo resuelven, otros detectan que no entendieron las reglas y abandonan, y algunos han generado ideas nuevas para nuevos problemas a partir del original.

El docente recorre los equipos y presta especial atención sobre qué estrategia utiliza cada equipo para resolver el juego. Algunas de las estrategias utilizadas comúnmente por los alumnos serán: prueba y error, simplificación del problema considerando 2 ó 3 palitos en vez de 4; e intención de deducir otras reglas o relaciones.

Como cierre y conclusión del juego, se discuten las observaciones realizadas y se anotan en el pizarrón las recomendaciones hacia la resolución de problemas, que combinan y resumen como principales puntos:

a) entender el objetivo,

b) entender las reglas,

c) evaluar alternativas (simplificar, ensayo y error, analogías),

d) resolver el problema, y

e) verificar.

Nota: Actividad presentada en Incorporación de «Kinesthetic Learning Activities» al curso de Programación I: uso y resultados, I. Kereki, CLEI 2009, http://fi.ort.edu.uy/innovaportal/file/5553/1/55531_1.pdf.

 

2.7 Actividad 2.6: Armar figuras

Descripción:

En esta actividad se solicita ir construyendo figuras geométricas reconocibles a partir de ciertas piezas o fichas. Se entrega a cada alumno un conjunto de fichas numeradas y se le indica que arme una figura geométrica reconocible utilizando únicamente la pieza 1 y la pieza 2. Luego que armó una primera figura, se señala que se incorpore la ficha 3, formando con esas 3 piezas una figura geométrica reconocible. A continuación, se indica que se forme una figura geométrica reconocible con las piezas 1, 2, 3, 4 y 5. El último paso es hacer una figura, también reconocible, que incorpore la sexta ficha. En la gran mayoría de los casos, la figura armada no permitirá agregar esta última ficha.

Así, si se empieza con la construcción, por ejemplo, de un cuadrado, no es posible incorporar la última pieza, es necesario volver atrás y reestructurar el modelo. O sea, a pesar de haber procedido correctamente en cada fase, se requiere reestructurar la solución para poder incluir la última pieza.

Cuando diseñamos software, a veces, ocurre la situación que presentamos. Se van modelando los distintos requerimientos, como por ejemplo: “el sistema debe permitir tal cosa”, “tal proceso se realiza de tal manera”, pero luego, aparece un nuevo requerimiento que no es posible incluirlo en el diseño actual, es necesario reestructurar.

Hay que tener esto presente cuando resolvemos problemas.

 

Nota: Actividad presentada en “Incorporación de «Kinesthetic Learning Activities» al curso de Programación I: uso y resultados”, I. Kereki, CLEI 2009, http://fi.ort.edu.uy/innovaportal/file/5553/1/55531_1.pdf

 

2.8 Actividad 2.7: Imágenes de Casas

Descripción:

En esta actividad, se muestran las siguientes 8 imágenes, que incluyen una casa con y sin árbol, de día y de noche, con y sin personas:

Cada alumno debe responder si:

a) ¿Quieres una imagen que sea de día?

b) ¿Quieres una imagen que tenga un árbol?

c) ¿Quieres una imagen que tenga personas?

A partir de las 3 respuestas, se debe elegir la imagen que cumpla las 3 condiciones que indicó. Así, cada alumno responde las preguntas con «sí» o «no» y otro le otorga la imagen que eligió de acuerdo a esas respuestas.

Además de estar vinculado con el tema de descomposición, este problema está relacionado con la representación de información en la computadora usando «bits».

En Computación, un bit es un dígito binario y es la unidad mínima de información. Puede valer 0 ó 1. En este ejemplo, cada imagen tiene asociados 3 bits. Así, vinculamos el primer bit a «día», el segundo a «árbol» y el tercero a «personas». La respuesta «sí» se puede ver como 1 y la respuesta «no» se puede ver como 0.

 

Las secuencias posibles de 3 bits son: 000, 001, 010, 011, 100, 101, 110 y 111. Así, la imagen «de día, con árbol y sin personas», corresponde al valor 110.

 

Nota: Actividad adaptada de http://www.bebras.edu.au/wp-content/uploads/2016/10/2015-Bebras-Solution-Guide.pdf.

 

2.9 Actividad 2.8: Personajes de TV

Descripción:

Llevamos a la clase varias fotos o caricaturas de personajes de TV y dibujos animados.

La idea es analizar las características de ellos en cuanto a la resolución de problemas.

Algunas imágenes posibles son:

a) Pinky y Cerebro: aquí se destaca la persistencia y cómo manejan situaciones difíciles.

b) Dr House: analiza, trabaja en equipo, busca una posible causa, y la evalúa hasta el final. Si no es, recomienza.

c) Sheldon (The Big Bang Theory): analiza en detalle, trabaja solo.

d) El Coyote (del Correcaminos): la persistencia es una de sus características. Utiliza ensayo y error como metodología de resolución de problemas.

e) McGiver: aprovecha los elementos que dispone para resolver creativamente los problemas.

f) Sherlock Holmes: analiza todo y realiza deducciones lógicas.

¿Qué otros personajes podríamos incorporar en la lista y analizar?

 

2.10 Cierre de la unidad

En esta unidad trabajamos con la noción de descomposición de problemas, que significa dividir un problema inicialmente complejo, en subproblemas que probablemente sean más sencillos de resolver. Luego, combinando sus soluciones tenemos el problema original resuelto.

Como ejemplos , vimos juegos como el de los palitos, el cual nos permitió además discutir sobre estrategias de resolución de problemas en general. También hicimos actividades como la de adivinar el personaje elegido por una persona, cargamos en forma eficiente varios celulares y mandamos mensajes. En todos ellos, aplicamos descomposición.

En la próxima unidad trabajaremos con reconocimiento de patrones, una estrategia importante dentro del pensamiento computacional. ¡Ahí vamos!