Códigos binarios

El proceso de codificación corresponde al de "traducir" un modo de representación de información en otro modo. Así, al utilizar códigos para transmitir la información a distancia, una letra se traduce en una serie de puntos y rayas, o de unos y ceros, o luces prendidas y apagadas. Una vez que la información codificada llega a destino, se la decodifica. Esto es, se la vuelve a convertir para que recupere su forma original.

En la actualidad, la mayoría de los códigos utilizados en las nuevas tecnologías de la información y de las comunicaciones poseen una cantidad fija (o múltiplos de esa cantidad fija) de dígitos binarios, cada uno de los cuales corresponde a un bit (binary digit, dígito binario en inglés). Esto no sucede con todos los códigos. Uno de los más conocidos debido a su frecuente aparición en enciclopedias y textos de diverso tipo es el código Morse, hoy prácticamente en desuso. Este código tiene una longitud variable y en realidad, contrariamente a lo que aparenta, no es un código binario sino ternario. Posee tres elementos que son el pulso largo, el pulso corto y el espacio.

Cuando se codifica información en computadoras se dispone solamente de dos símbolos ("0" y "1") y no existe nada equivalente a un espacio. Esto obliga a definir modos de determinar cuándo finaliza una "letra" del mensaje y cuándo comienza la siguiente. Un modo de solucionar este problema es normalizar los códigos para que tengan longitud fija. Éste es el motivo por el que se trabaja con grupos de bits de longitud preacordada. El uso extendido de esta solución ha llevado a darle nombre a una agrupación típica que es el byte, que se pronuncia "báit", y corresponde al grupo de 8 bits.

Para que un código sea válido es necesario que la decodificación tenga una única interpretación. Sobre este último punto es que se propone un trabajo con los alumnos.

La primera parte puede realizarse en cualquier aula, mientras que la segunda (de carácter opcional o complementario) requiere del uso de computadoras. Pensamos esta propuesta con el fin de que los alumnos:

Duración estimada de la actividad: dos a tres clases.

Desarrollo de la propuesta

  1. Se organizan grupos de al menos tres alumnos cada uno y se los provee de dos fichas o tarjetas en blanco y un cuaderno. Se les propone que codifiquen, en una de las fichas, un mensaje de pocas palabras (tres o cuatro) utilizando como referencia el código Morse, adaptando las rayas como unos y los puntos como ceros, y separando cada letra mediante un espacio. Luego, se propone que cada alumno le pase su mensaje a un compañero (por ejemplo, al de la derecha) y que a su vez reciba un mensaje codificado cuyo contenido desconoce. Cada alumno debe decodificar el mensaje que recibió y escribirlo en una hoja propia. El docente puede entregarles una tabla con el código Morse o pedirles a ellos que la busquen en textos o enciclopedias.
    Por ejemplo, si el mensaje es "EN CLAVE", quedaría "0 10 1010 0100 01 0001 0".
  2. Se sugiere hacer notar aquí que el Morse es considerado por algunas personas como un código de tres símbolos y no de dos: punto, raya y espacio. Así puede promoverse una breve discusión en el grupo para que cada uno argumente sobre el sentido y la razonabilidad de esta afirmación.
  3. Se propone luego que cada alumno tome la tarjeta que recibió y haga una copia en otra tarjeta pero salteando los espacios en blanco que separan una letra de la siguiente. Luego pasará la nueva tarjeta a otro compañero para que intente decodificarla, lo que provocará grandes dificultades de interpretación. Puede ponerse esto en evidencia pidiendo que comparen los resultados de la interpretación del mensaje con espacios y sin espacios.
    Por ejemplo, el mensaje anterior "0101010 010 0 010 0 010" podría ser interpretado como "0;10;1010;0100;01;0001;0" (EN CLAVE), o como "01;0;10;1;0010;0;0100;010" (AENTFELR), o de muchas otras formas posibles.
  4. Se pide entonces a los alumnos que encuentren una solución creando un nuevo código que permita codificar frases utilizando ceros o unos sin espacios que los separen. El modo de trabajo es libre y podrá consistir en inventar un nuevo código o en modificar el código Morse, si así lo desean.
  5. Es de esperar que las soluciones se ubiquen en alguna de estas tres categorías:
    a. longitud fija: que evita el problema del espacio como modo de separar cada letra. Esto puede conseguirse creando un código completamente nuevo o modificando el código Morse con ceros hasta completar una cantidad fija de cifras (pueden ser cuatro). Por ejemplo: la A que es "01" se transforma en "0100", y la T que es "1" se transforma en "1000".
    b. longitud variable: en la que cada palabra del código propuesto sea identificable porque no forma parte del comienzo de ninguna otra. Por ejemplo: A es 01, B es 001, C es 0001, etc.;
    c. símbolo de finalización: permite utilizar longitud variable por medio de la incorporación de un "símbolo" que corresponde al fin de letra (por ejemplo seleccionando como símbolo de finalización el "0001" y modificando aquellas palabras de códigos en las que pueda haber tres ceros juntos).
  6. Se sugiere dejar que los alumnos intenten proponer soluciones dentro de los grupos, y en caso de necesidad, ayudarlos brindándoles pistas mediante preguntas como: ¿qué pasaría si todos los códigos fueran de la misma longitud? ¿No se podría inventar una palabra de código que significara "fin de letra"?
  7. Se propone cerrar el trabajo comentando que cada "cifra" de las utilizadas recibe el nombre de bit y que en muchas ocasiones resulta necesario el trabajo con grupos de bits de longitud fija. Un tamaño fijo de bits muy común es el de grupos de a ocho, que se denominan bytes (se pronuncia "báits"), y que es la unidad de medida de la memoria de las computadoras.

La computadora como herramienta

En caso de disponer de un laboratorio que tenga computadoras, la propuesta puede incluir una segunda parte para trabajar en base a textos algo más extensos mediante el uso de un procesador de texto y de la función de "búsqueda y reemplazo". De este modo el procesador de textos tomará la función de procesar información, en un sentido más técnico que el que se le atribuye normalmente. Así, para codificar un mensaje se lo escribirá y luego se procederá a buscar todas las "A" y reemplazarlas por "01", y así siguiendo con cada letra del código. Incluso es posible automatizar el proceso mediante la creación de macros dentro del Word. Esto permitirá la puesta a prueba de diferentes códigos en forma automática. También permitirá utilizar la herramienta de "contar caracteres con espacios" para poder comparar de manera rápida la eficiencia del código utilizado por diferentes grupos de alumnos.