ShanUKI · Actividad guiada

Representación compacta · Desafío Bebras + Python · Unidad 2 · CC2 · ANEP / Ceibal
Progreso: 0 / 8
Actividad guiada · Unidad 2

Representación compacta: del castor al código

Castor celebrando

Esta actividad tiene dos partes:

🧩 Primera parte · desenchufada. Resuelves un desafío de Bebras para entrenar el pensamiento computacional: lógica y comprensión del problema. Aquí no hace falta programar: vas a "cortar" un mensaje binario para descubrir qué dice.

🐍 Segunda parte · Python. Programas un decodificador que hace lo mismo que hiciste a mano, usando un diccionario, listas, un bucle while y un bucle anidado.

Cómo funciona esta guía
Avanza con la barra de pasos. En cada paso tienes una explicación, una pregunta para analizar y pistas. Si te trabas, puedes pulsar 🏳 Me rindo para ver la solución de ese paso. No pasa nada, pero el paso quedará marcado como "con ayuda" 🟡 en vez de "logrado" 🟢.
Primera parte · 1 de 3

El desafío del castor Javier

Tarjeta del Desafío Bebras: Representación compacta

El castor Javier representa letras con los dígitos 1 y 0. Como la T y la E son las letras más frecuentes, les da los códigos más cortos:

Javier le envió este mensaje a Yvonne:

1001001100010100010111000

Yvonne ya sabe que el mensaje termina con la letra E.

🧠 Analiza antes de seguir: el mensaje llega todo junto, sin espacios. ¿Cómo sabes dónde termina el código de una letra y empieza el de la siguiente? ¿Para qué te sirve saber que la última letra es E?
Primera parte · 2 de 3

✂ Decodificador interactivo

Cómo se usa: haz clic entre dos bits para segmentar el mensaje en ese punto. Cada segmento que coincide con un código de la tabla se colorea y muestra su letra; si un segmento no corresponde a ningún código, queda en rojo. Para quitar un corte, haz clic en la tijera ✂.

Cuando todos los segmentos sean códigos válidos, pulsa Comprobar.

📌 Dato del problema: Yvonne ya sabe que el mensaje termina con la letra E. Por eso los últimos dos bits (00) ya aparecen marcados y bloqueados 🔒 en el decodificador. Tu tarea es continuar descubriendo las letras restantes, avanzando de derecha a izquierda desde esa E.
    Primera parte · 3 de 3

    ¿Por qué es pensamiento computacional?

    Todo lo que maneja una computadora (textos, imágenes, sonidos) se guarda como una secuencia de bits. Para recuperar el original, cada código tiene que poder reconocerse sin confundirse con otro.

    Para comprimir un texto conviene usar códigos cortos para las letras frecuentes y más largos para las raras, pero hay que elegirlos con cuidado para que no haya ambigüedades.

    ➡ Leyendo desde la izquierda

    La primera letra es fácil: 1 → T. Pero después vienen 00… y aparece la duda: ¿es E (00) o el comienzo de A (0010)? Si eliges mal, te trabas más adelante y tienes que volver atrás.

    ⬅ Leyendo desde la derecha

    En este código ningún código es el final de otro: decimos que el código no tiene sufijos. Por eso, si lees de derecha a izquierda, siempre hay una única letra posible y nunca tienes que adivinar.

    Desde la izquierda: 1 | 00 ? | 0010 ? → hay que adivinar 1 00 0010 ? 1001100010100010111000 Desde la derecha: …1110 | 00 → R, E …0101 1110 00 RE

    ✔ Comprueba lo que entendiste

    🔁 Ahora tú: codifica una palabra

    Escribe una palabra usando solo las letras T, E, A, K, C, R o M (la M la agregamos para la segunda parte, con el código 0001). Mira cómo queda en binario: así es como guardará los datos tu programa.

    decodificador.py ⏳ Cargando Python…
    🖥 Consola
    Cierre

    ¡Misión decodificada! 🎉

    Javier e Yvonne
    Hiciste el mismo trabajo dos veces: primero a mano, pensando cómo cortar el mensaje, y después lo automatizaste en Python. Eso es pensamiento computacional: entender el problema, descomponerlo y escribir un algoritmo que lo resuelva siempre.

    Tus logros

    🚀 Desafío extra: en la segunda parte agregamos la M con el código 0001. Mira el final de ese código y compáralo con el de la T. ¿El código sigue sin tener sufijos? Si Javier mandara el mensaje todo junto, como en la primera parte, ¿podrías seguir leyéndolo desde la derecha sin dudar? ¿Por qué en tu programa no hay problema? (Pista: fíjate en cómo guarda los códigos la lista).