Lección 2: (Compresión de texto)

Grados 6-8 | Grades 9-12

Descripción

En algún momento, alcanzamos un límite físico de la rapidez con que podemos enviar bits y, si queremos enviar una gran cantidad de información más rápido, tenemos que encontrar una manera de representar la misma información con menos bits; es decir que debemos comprimir los datos. En esta lección, los estudiantes usarán el widget de compresión de texto para buscar patrones y sustituir símbolos por patrones de texto más grandes para comprimir segmentos de texto en inglés.

Objetivo

El principio básico detrás de la compresión es desarrollar un método o protocolo para usar menos bits para representar la información original. La forma en que representamos los datos comprimidos en esta lección, con un "diccionario" de patrones repetidos, es similar al esquema de compresión LZW, pero debe tenerse en cuenta que LZW es un poco diferente de lo que hacen los estudiantes en esta lección. Los estudiantes inventan su propio camino aquí. LZW se usa no solo para texto (archivos zip), sino también con el formato de archivo de imagen GIF.

Agenda

Primeros pasos (5-7 min)

Actividad (45 min)

Cierre (10 min)

Ampliación del aprendizaje

Objetivos

El alumnado podrá:

  • Colaborar con un compañero para encontrar una solución a un problema de compresión de texto mediante el widget de compresión de texto (esquema de compresión sin pérdidas).
  • Explicar por qué la cantidad óptima de compresión es imposible o "difícil" de identificar.
  • Explicar algunos factores que dificultan la compresión.
  • Describir el propósito y la justificación de la compresión sin pérdidas.

Preparación

  • Probar el widget de compresión de texto
  • Revisar los consejos de enseñanza para decidir qué opciones usar

Enlaces

Aviso! Por favor realice una copia de los documentos que piense compartir con los estudiantes

Para Teacher

Para Students

Vocabulario

  • Compresión sin pérdidas - un algoritmo de compresión de datos que permite reconstruir perfectamente los datos originales a partir de los datos comprimidos.

Guía docente

Primeros pasos (5-7 min)

Preparación: Abrvtua en ts mesges d txt (5-7 min)

Discussion Goal

Como preparación para pensar sobre la Compresión de textos, haz una conexión con las formas en las que la mayoría de la gente ya comprime texto en sus vidas por medio de abreviaturas y acrónimos con los cuales la mayoría de la gente tiene cierta experiencia en mensajes de texto.

Motiva algunas ideas sobre por qué alguien querría comprimir texto.

Anuncio:

  • "Cuando envías mensajes de texto a un amigo, ¿escribes para palabra de manera correcta?"
    • ¿Usas abreviaturas para palabras normales? Enumera tantas como puedas.
    • Escribe algunos ejemplos de cosas que podrías ver en un mensaje de texto que no sea español correcto.

Dales a los estudiantes un minuto para escribir y compartirlo con un compañero.

  • "¿Por qué usas estas abreviaturas? ¿Cuál es el beneficio?"
    • Respuestas posibles:
      • Para guardar caracteres/pulsaciones
      • Para esconder de compañeros/profesores
      • Para ser genial, inteligente, divertido
      • para "hablar en código"
      • Para decir lo mismo en menos espacio

¿De qué se trata esto? - Compresión: misma información, menos bits

  • La clase de hoy trata sobre compresión
  • Cuando abrevias o usas lenguaje de código para acortar el texto original, estás "comprimiendo texto". Las computadoras también hacen esto, para ahorrar tiempo y espacio.
  • El arte y la ciencia de la compresión tiene que ver con descubrir cómo representar la MISMA INFORMACIÓN con MENOS BITS.
  • ¿Por qué esto es importante? Una razón es que el espacio de almacenamiento está limitado y siempre preferirías usar menos bits si pudieras. Una razón mucho más convincente es que hay un límite superior para cuán rápido los bits pueden ser transmitidos por Internet.
  • ¿Qué sucedería si necesitásemos enviar una gran cantidad de texto más rápido por Internet, pero hemos alcanzado el límite físico de cuán rápido podemos enviar bits? Nuestra único opción es, de alguna manera, capturar la misma información con menos cantidad de bits; a esto le llamamos compresión.

Transición:

Analicemos un ejemplo de un mensaje de texto que ha sido comprimido de una manera clara.

Actividad (45 min)

Decodificar este texto misterioso (10-15 min)

  • Distribuir o mostrar la guía de la actividad: Decodifica este mensaje - Guía de actividades
  • Divide a los estudiantes en parejas o trabaja de manera individual.
  • Tarea: ¿Cuál fue el texto original?
  • Dales a los estudiantes unos pocos minutos para decodificar el texto. El texto debería ser un poema corto (ver resumen de actividad a continuación)
Guía de Actividad de Estudiantes Resumen de Actividad
Distribuir o mostrar la guía de la actividad: decode-this-message (Mostrar o dibujar tú mismo) Resumen de actividad: activity-recap-decode-this-message
Decodifica este mensaje - Guía de actividades Recapitulación de la Actividad - Decodificar este Mensaje - Repaso de la actividad

Resumen: ¿Cuánto se comprimió?

Para responder, necesitamos comparar la cantidad de caracteres en el poema original con la cantidad de caracteres necesarios para representar la versión comprimida.

Desglosémoslo.

  • Mostrar o Distribuir ideas para uno mismo de: Recapitulación de la Actividad - Decodificar este Mensaje - Repaso de la actividad (se muestra en la tabla anterior)

  • Nota importante:

    • El poema comprimido no es solamente esta parte: Si fueses a enviar esto a alguien a través de Internet, no podrían decodificarlo.
    • El texto comprimido completo incluye tanto el texto comprimido y la clave para resolverlo.
    • Por lo tanto, debes dar cuenta del número total de caracteres en el mensaje más la cantidad total de caracteres en clave para ver cuánto has comprimido en el original.

Transición

Ahora intentarás probar descomprimir algunas cosas por tus propios medios.

Usa la widget de compresión de texto

Content Corner

El video explica un poco sobre la compresión en general; la diferencia entre compresión sin pérdida y compresión imperfecta. La clase de hoy en día trata sobre compresión sin pérdida; abordaremos compresión imperfecta en una o dos clases después de analizar la codificación de imágenes.

Teaching Tip

Es elección del profesor si muestra el video a toda la clase o deja que los estudiantes la miren desde dentro de Estudio de Código. En cada una, hay beneficios y desventajas.

Opción por considerar: Haz que los estudiantes conozcan la herramienta de compresión de texto ANTES de mostrar el video. Puede que los estudiantes sean más receptivos a alguna parte de la información en el video y hayan intentado usar primero la herramienta.

Comunicación y colaboración: Para desarrollar la comunicación y colaboración entre estudiantes, incluye uno de los siguientes escenarios en clase:

  • Haz que los estudiantes a quienes se le haya asignado el mismo poema comparen resultados, o siéntalos en la misma área del aula.
  • Haz que tenga una pequeña competición amigable (pero ten cuidado de no propiciar una "mala" competición) para ver qué parejas pueden comprimir más el poema. Usa un poema que ninguno de los estudiantes haya comprimido aún.
  • Para cada poema, haz que los grupos que lo hayan hecho descubran el mejor de la clase, y regístralo en el tablero o en alguna parte en donde la gente lo pueda ver.
    • Crea un objetivo de clase de elevar los porcentajes de compresión para los cuatro poemas lo más alto posible.
    • Puede que se les pida a los grupos con los mejores porcentajes de compresión que compartan su estrategia con la clase.

Puede que los estudiantes no quieran compartirla si sienten que no tienen los mejores resultados, pero los estudiantes deberían ver el trabajo de otros, y ofrecer consejos y estrategias.

Video: Compresión de Texto con Aloe Blacc - Video

  • El video explica la compresión.
  • Demuestra el uso de la Herramienta de Compresión de Texto.
  • NOTA: Este video emerge automáticamente cuando los estudiantes visitan la etapa de compresión de texto en Estudio de Código.
  • Divide a los estudiantes en grupos de 2.
  • Asigna a cada pareja uno de los poemas brindados y desafíalos, como pareja, a comprimir su poema lo más que puedan.
  • Brinda o coloca instrucciones simples en el tablero para que los estudiantes puedan avanzar.
    • Desafío: comprime tu poema asignado lo más que puedas.
    • Compara con otros grupos para ver si puedes mejorar.
    • Intenta desarrollar una estrategia general que llevará a una buena compresión.

  • Después de un tiempo, haz que las parejas que hayan trabajado en el mismo poema se junten para comparar esquemas. Como grupo, su trabajo es obtener la mejor compresión de ese poema para la clase.
  • Opcionalmente: puedes entregar Text Compression (optional) - Activity Guide, que incluye también las instrucciones y les proporciona tareas a los estudiantes. Puede que funcione bien como actividad o evaluación fuera de la clase.

Cierre (10 min)

Discute las propiedades y desafíos relacionados con la compresión

Pide a los grupos que hagan una pausa para debatir las preguntas al final de la actividad.

Anuncio:

  • "¿Qué es lo que dificulta esta compresión?"

    • Alienta a que respondan. Deberían aparecer algunos de estos problemas: Puedes comenzar de varias maneras diferentes. Las decisiones del comienzo afectan a las del final. Una vez que encuentres uno grupo de patrones, otros emergerán.
    • Hay un punto de inflexión: puede que estés progresando en la compresión, pero en algún punto, la balanza se invierte y el diccionario comienza a volverse tan grande que pierdes el beneficio de contar con él. Pero luego puede que comiences a volver a persona el diccionario para modificar algunas partes.
  • "¿Creemos que estas cantidades de compresión que hemos encontrado son las mejores? ¿Hay alguna forma de saber cuál es la mejor comprensión?"

    • Probablemente no sepamos cuál es el mejor.
    • Hay tantas posibilidades que es difícil saber. Resulta ser que la única manera de garantizar la compresión perfecta es la fuerza bruta. Esto implica intentar todo el grupo posible de sustituciones. Incluso para textos pequeños, esto tomará demasiado tiempo. La "mejor" es realmente la mejor que hemos encontrado hasta ahora.
  • "Pero hay un proceso que una persona puede seguir para encontrar la mejor (o una muy buena) compresión para una porción de texto?"

    • Sí, pero es imprecisa; esto se podría dejar como una pregunta pendiente.

Ampliación del aprendizaje

Mundo real: Compresión Zip

  • Experimenta con zip usando archivos de texto con diferentes contenidos. ¿Los resultados para archivos pequeños son igual de buenos que para archivos grandes? (En las Mac, en Finder, elige "get info" de un archivo para ver el número de bytes total dentro del archivo, ya que Finder solo muestra 4 KB para cualquier archivo que sea menor que eso).
    • Advertencia: los resultados pueden variar. Zip funciona realmente bien para el texto, pero podría no comprimir muy bien otros archivos, porque ya están comprimidos o no tienen la misma clase de patrones embebidos que tienen los documentos de texto.

Desafío: Investiga el algoritmo LZW

  • La compresión .zip está basada en el Esquema de compresión LZW

  • Si bien la idea detrás de la herramienta de compresión de texto es similar al algoritmo (zip) LZW, rastrear la ruta de compresión y descompresión es algo desafiante. Aprender más sobre LZW y lo que ocurre en el curso de este algoritmo sería un proyecto de extensión excelente para algunas personas.

Normas de aprendizaje

Ver las normas del curso

Estándares para ciencias de la computación CSTA K-12 (2011)

CL - Colaboración
  • CL.L2:3 - Colabora con compañeros, expertos y otras personas mediante prácticas colaborativas como la programación en parejas, trabajando en equipos de proyectos y participando en actividades de aprendizaje activo en grupo.
CPP - Práctica de computación y programación
  • CPP.L2:4 - Demuestra una comprensión de los algoritmos y su aplicación práctica.
CT - Pensamiento computacional
  • CT.L2:9 - Interactúa con modelos y simulaciones específicos de contenido (por ejemplo, ecosistemas, epidemias, dinámica molecular) para apoyar el aprendizaje y la investigación.
  • CT.L3B:8 - Usa modelos y simulaciones para ayudar a formular, refinar y probar hipótesis científicas.
  • CT.L3B:9 - Analiza datos e identifica patrones mediante modelado y simulación.

Principios de ciencias de la computación

2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe la variedad de abstracciones utilizadas para representar datos. [P3]
  • 2.1.1A - Los datos digitales están representados por abstracciones en diferentes niveles.
  • 2.1.1B - En los niveles inferiores, todos los datos digitales están representados por bits.
  • 2.1.1C - En un nivel superior, los bits se agrupan para representar abstracciones, incluidos, entre otros, números, caracteres y color.
2.2 - Multiple levels of abstraction are used to write programs or create other computational artifacts
2.2.1 - Desarrolla una abstracción al escribir un programa o crear otros artefactos informáticos. [P2]
  • 2.2.1B - Una abstracción extrae características comunes de ejemplos específicos para generalizar conceptos.
3.1 - People use computer programs to process information to gain insight and knowledge.
3.1.1 - Usa computadoras para procesar información, encontrar patrones y probar hipótesis sobre información procesada digitalmente para obtener información y conocimiento. [P4]
  • 3.1.1A - Las computadoras se usan de forma iterativa e interactiva cuando se procesa información digital para obtener información y conocimiento.
  • 3.1.1D - Se puede obtener información y conocimiento traduciendo y transformando información representada digitalmente.
  • 3.1.1E - Los patrones pueden surgir cuando los datos se transforman utilizando herramientas computacionales.
3.1.2 - Colabora al procesar información para obtener información y conocimiento. [P6]
  • 3.1.2A - La colaboración es una parte importante de la resolución de problemas basados ​​en datos.
  • 3.1.2B - La colaboración facilita la resolución de problemas computacionales mediante la aplicación de múltiples perspectivas, experiencias y conjuntos de habilidades.
  • 3.1.2C - La comunicación entre los participantes que trabajan en problemas basados ​​en datos da lugar a una mejor comprensión y conocimiento.
  • 3.1.2D - La colaboración para desarrollar hipótesis y preguntas, y para probar hipótesis y responder preguntas sobre los datos, ayuda a los participantes a obtener información y conocimiento.
3.1.3 - Explica la comprensión y el conocimiento adquiridos de los datos procesados ​​digitalmente mediante el uso de visualizaciones, anotaciones y lenguaje preciso. [P5]
  • 3.1.3A - Las herramientas y el software de visualización pueden comunicar información sobre datos.
  • 3.1.3E - La interactividad con los datos es un aspecto de la comunicación.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analice cómo la representación, el almacenamiento, la seguridad y la transmisión de datos implican la manipulación computacional de la información. [P4]
  • 3.3.1A - Las representaciones de datos digitales implican compensaciones relacionadas con problemas de almacenamiento, seguridad y privacidad.