Canarias Go Retro: ¿Qué fue primero, el Logo o la tortuga?

lunes, 4 de julio de 2022

¿Qué fue primero, el Logo o la tortuga?

INTRODUCCIÓN

“I believe with Dewey, Montessori and Piaget that children learn by doing and by

thinking about what they do. And so the fundamental ingredients of educational

innovation must be better things to do and better ways to think about oneself

doing these things.”

· · ·

“We can give children unprecedented power to invent and carry out exciting

projects by providing them with access to computers, with a suitably clear and

intelligible programming language and with peripheral devices capable

of producing on-line real-time action.”

· · ·

“. . .in its embodiment as the physical computer, computation opens

 a vast universe of things to do. But the real magic comes when this 

 is combined with the conceptual power of theoretical ideas associated with computation.”

 [Papert 1972]

 

    Cuando era un joven usuario de los 8 bits estaba fascinado por los distintos lenguajes de programación disponibles para mi ZX Spectrum; de hecho, me atraían más que los juegos. Había visto el Logo en las revistas y siempre hablaban de sus gráficos hechos con la famosa tortuguita. Me parecía algo infantil y tremendamente limitado ya que todos tenían un "algo" en común, esa repetición de un patrón cambiando el tamaño o la orientación. No era atractivo desde mi punto de vista, así que nunca me acerqué a ese lenguaje.

    Pasaron los años, lustros, décadas y, en el 2021 me dio por participar en la Sinclair Crap Games Competition. Una de las categorías desafiaba a los candidatos a programar con un lenguaje que no hubiesen usado antes y me acordé del Logo. Seguía detestando esos gráficos de tortuga pero pensé que el lenguaje permitiría hacer algo más que sólo gráficos redundantes y me dije que haría un juego sin usar al quelonio de marras.

    Armado con el Intérprete de Logo, manual y libro de programación para el Spectrum, me adentré en territorio hostil para descubrir, desde el principio, un lenguaje fabuloso. Tremendamente superior al Basic de la época de los 8 bits, mucho más estructurado y con una increíble facilidad para manejar listas. Me quedé prendado y sorprendido porque no hubiese tenido más difusión a lo largo de los años.


    Esto me llevó a investigar un poco sobre los orígenes de tan interesante herramienta y a descubrir una fascinante historia y que las tortugas no siempre estuvieron ahí...

Logo, el lenguaje de las tortugas. Pero, ¿ siempre fue así ?


Seymour Papert

El padre de Logo fue un matemático y filósofo llamado Seymour Papert. Interesado en saber cómo mejorar la educación matemática de los niños pequeños, a principios de los años 60 había estudiado con Jean Piaget, un psicólogo suizo que defendía una filosofía del aprendizaje conocida como constructivismo.


Jean Piaget

    Cuando se da a los niños una nueva información, por ejemplo: que un giro completo se compone de 360 grados, es probable que sólo acepten esa información si ya tienen la comprensión subyacente requerida, como que un giro puede dividirse en mitades, cuartos y así sucesivamente, hasta llegar a los 360 grados. O incluso el concepto de que un número tan grande como 360 puede siquiera existir.

    De lo contrario, es probable que interpreten erróneamente la nueva información para que se ajuste a su comprensión actual ("Sólo entiendo los números hasta el 100, y por tanto deben significar 100") o que simplemente la ignoren, con un callado "syntax error" interno.

    Esto puede mejorar si a) el profesor explica los números hasta 360, b) el profesor explica la división y, por último, c) el profesor explica que cuando se gira, se está haciendo un círculo (Extender el brazo y la punta del dedo dibujará un círculo cuando se gira) y que si se gira hasta la mitad, se está moviendo 180 grados y así sucesivamente.

Esto puede no ser suficiente. Si el niño no entiende a, b y/o c, seguirá sin entenderlo.

Sin embargo, si el niño es capaz de explorar activamente estos conceptos en un entorno que tenga alguna medida de retroalimentación, la probabilidad de que gane en comprensión mejora. Por ejemplo, si el profesor les sugiere que giren al azar y les dice hasta dónde han girado cada vez que lo hacen, pronto aprenderán que si giran hasta la mitad, han girado 180 grados. Aprenderán que un giro completo es de 360 grados. Entenderán que el siguiente número después del 100 es el 101, y por tanto el siguiente número después del 200 es el 201. Y así sucesivamente. 

Esto es lo que Papert aprendió con Piaget. Pero, obviamente, aunque es deseable, no es práctico que cada niño tenga un adulto que le dé información sobre todo lo que hace hasta que lo entienda. El mundo simplemente no tiene (y probablemente nunca tendrá) una proporción de 1 a 1 entre alumnos y profesores. Este era un problema que Piaget y Papert simplemente no podían superar.

Pero a principios de la década de 1960, surgió una nueva tecnología que Papert comprendió que podía eliminar su obstáculo: el ordenador.

DEC PDP-8

    Los ordenadores no se cansaban, no perdían la paciencia. Aunque en aquel momento eran grandes en tamaño y pequeños en número, a Papert no le costó ver el futuro, un futuro en el que las escuelas estaban llenas de terminales conectadas a ordenadores, uno para cada niño, con los que los alumnos podían explorar "mathland", un entorno sencillo en el que los conceptos matemáticos podían demostrarse mediante ensayo y error. Cuantos más datos aportaran los alumnos y más resultados absorbieran, antes comprenderían los conceptos. Los ordenadores parecían ser perfectos para la tarea de educar a los niños utilizando los principios constructivistas.

    En 1961, Papert había conocido a un estadounidense, Marvin Minsky, en una conferencia en Inglaterra.  Presentaron ponencias sorprendentemente similares y, a raíz de ello, conectaron. Así que, impulsado por su idea de utilizar los ordenadores para enseñar a los niños, en 1964, Papert fue a Estados Unidos y se unió al Grupo de Inteligencia Artificial de Minskey, un equipo de investigadores del Instituto Tecnológico de Massachusetts (MIT).

Marvin Misnky

    A Papert le impresionó la cultura centrada en la tecnología del MIT, y la actitud de que todo el mundo tenía el potencial de aprender lo que quisiera, una postura que Papert compartía. Los estudiantes a las órdenes de Minsky y Papert tenían vía libre para trabajar en lo que quisieran, fomentando la experimentación y la comprobación práctica incluso de las teorías más descabelladas. Papert vio cómo sus estudiantes, cuando se les animaba, adquirían grandes cantidades de conocimientos por su cuenta y colaboraban con otros para superar los obstáculos que encontraban en sus búsquedas. En el MIT, estos estudiantes eran conocidos como "hackers".

Daniel Bobrow

    Uno de estos hackers, Daniel Bobrow, se graduó y consiguió un trabajo en una empresa de investigación y desarrollo llamada Bolt, Beranek y Newman. A mediados de la década de 1960 habían empezado a explorar las tecnologías informáticas y su potencial. Bobrow se convirtió en jefe de su nuevo grupo de Inteligencia Artificial. Allí conoció a Wally Feurzeig, quien dirigía el grupo de educación de BBN. La carrera espacial había animado al gobierno estadounidense a buscar formas de mejorar la educación matemática en las escuelas, y BBN esperaba encontrar una solución. Ya habían desarrollado una tecnología de "tiempo compartido" que permitía que un ordenador central fuera utilizado por muchas personas al mismo tiempo, sólo necesitaban un software que funcionara en él y que los niños pudieran utilizar para aprender.

Wallace Feurzig

    Bobrow trajo a Papert y le presentó a Feurzeig, y los tres discutieron la idea de desarrollar un lenguaje informático para niños, el Mathland de Papert. Por aquel entonces, BBN tenía un invitado que mostró un nuevo lenguaje de programación llamado BASIC. En lugar de utilizar direcciones de memoria, BASIC utilizaba números de línea para seguir la ejecución y variables con nombre que se vinculaban de forma transparente a las direcciones de memoria. Estas abstracciones facilitaban la creación de programas de ordenador a los no informáticos.

Stringcomp

    Los investigadores de BBN crearon una versión de BASIC que llamaron Telcomp, que Feurzeig modificó para incluir cadenas de caracteres y llamó Stringcomp. BBN probó Stringcomp (utilizando teletipos, máquinas de escribir conectadas a un ordenador remoto) en ocho aulas de primaria y secundaria en 1966. Ese año, la asistente de Minsky en el MIT, Cynthia Solomon, se unió al equipo de Feurzeig en el MIT.

Cynthia Solomon

    Después de que Papert visitara estas aulas y viera la interacción entre los niños y el Stringcomp, se convenció de que el BASIC no era la respuesta, y que sería necesario escribir un nuevo lenguaje, más adecuado para el aprendizaje.

    Y lo que es más importante, el nuevo lenguaje tendría que demostrar de forma más adecuada cómo el ordenador llegaba a sus conclusiones. Papert consideraba que, debido a los requisitos de los ordenadores en cuanto a la instrucción literal, los niños podrían ver cómo "pensaba" el ordenador y darse cuenta de que ellos también pensaban así, lo que les ayudaría a descomponer los problemas en elementos más pequeños de la forma en que lo haría un ordenador al resolverlos. Así, el nuevo lenguaje serviría para un doble propósito, tanto para enseñar matemáticas como para saber cómo se resuelven.

    BASIC era demasiado monolítico en su estructura basada en comandos, y esas "partes más pequeñas" no podían mostrarse a sus usuarios, ya que ocurrían entre bastidores y fuera de la vista.

    Así pues, el nuevo lenguaje tendría que ser capaz de lograr lo que se podía lograr en BASIC, pero con pasos más pequeños que pudieran ser inspeccionados por los programadores novatos. Pero para evitar la repetición innecesaria y redundante de código, estos pasos tendrían que poder reutilizarse. Por su filosofía, Wally Feurzeig bautizó el nuevo lenguaje como "Logo", derivado de Logos, la palabra griega para "pensamiento".

    Minsky, Papert y Solomon mantuvieron varias discusiones sobre el funcionamiento de Logo. Solomon había aprendido algo del lenguaje de programación Lisp (un lenguaje en el que todo el código y los datos se escriben en forma de expresiones y listas, el nombre Lisp es la abreviatura de LISt Processing) cuando era asistente de Minsky, y apreciaba su potencia para manipular cadenas de caracteres en inglés, que reconocía  podía utilizarse como método para que los estudiantes pudieran observar los efectos del código informático sobre datos reconocibles o creados por ellos mismos.


    Tampoco vino mal al desarrollo que Lisp hubiera sido inventado por el mismo empleado de BBN (y antiguo alumno del MIT) que había desarrollado el sistema de tiempo compartido. Así, se decidió que el nuevo lenguaje sería una variante de Lisp.

    Sin embargo, Lisp tenía algunos inconvenientes en cuanto a su uso con los codificadores más jóvenes. Tenía una dependencia extrema de la estructura, utilizando una intrincada serie de paréntesis que a menudo daba lugar a errores difíciles de resolver (lo que dio lugar a los apodos Lost in Stupid Brackets y Lots of Irritating Superfluous Parentheses). Su intérprete también era voluminoso y no era interactivo, como BASIC.

 

    Al diseñar Logo, Papert, Minsky y Solomon tomaron los elementos de expresión, lista y cadena de Lisp, eliminando gran parte de la necesidad de paréntesis al hacer suposiciones sobre el análisis sintáctico y las entradas, y permitiendo posteriormente el "apilamiento" de lo que llamaron "primitivas" (funciones que pueden o no resolverse en un valor) en una sola línea, de manera que se podía escribir


PRINT SUM 4 4

8

y el ordenador emitiría 8, o:

TYPE 1 TYPE 2 TYPE 3

123

y el ordenador emitiría 123


Las listas permitían la manipulación de cadenas que Solomon esperaba:

(PRINT PICK [RED GREEN BLUE] PICK [DOG CAT BOAT])

BLUE BOAT

RED DOG

GREEN CAT

etc.


Otro ejemplo de la facilidad de Logo para manejar listas:

TO - crea una definición de procedimiento

OUTPUT - devuelve el valor a la llamada al procedimiento

PICK - elige un elemento al azar de una lista


TO NOUN

OUTPUT PICK [BIRDS DOGS WORMS DONKEYS GEESE CATS [GUINEA PIGS]]

END


TO VERB

OUTPUT PICK [HATE TRIP BITE LOVE]

END


TO ADJECTIVE

OUTPUT PICK [RED PECULIAR JUMPING FAT FUZZY [FUZZY WUZZY]]

END


TO SENGEN

PRINT (SENTENCE ADJECTIVE NOUN VERB ADJECTIVE NOUN)

SENGEN

END


Cuando se llama a SENGEN, este código produce frases como:

RED GUINEA PIGS TRIP FUZZY WUZZY DONKEYS

PECULIAR BIRDS HATE JUMPING DOGS

FAT WORMS HATE PECULIAR WORMS

FAT GEESE BITE JUMPING CATS


    Uno se podría preguntar: ¿SENGEN compone las frases como lo hacemos los adultos o como lo hicimos cuando aprendimos a hablar o a escribir? También: ¿qué relación tiene SENGEN con la comprensión de la  gramática? La primera pregunta está abierta a la investigación y a la especulación. La segunda pregunta puede ser más fácil de responder. A menudo, cuando hablaron de este proyecto con los niños no relacionaban el proceso de programación con la gramática. Más tarde, cuando utilizaban sus programas, los niños exclamaban con frecuencia: "¡Así que por eso los llaman sustantivos y verbos!". Los niños también comenzaron a apreciar los sistemas formales. El estudio de la gramática mediante la generación de oraciones que obedecen a ciertas reglas requiere que el programador sea consciente tanto de las reglas como de las excepciones.

    Como este programa parece hacer oraciones sensatas sin saber mucho de gramática los niños a menudo desarrollan un aprecio por el ingenio. Por ejemplo, SENGEN no sabe que algunas palabras son singulares y otras son plurales, o que los sustantivos singulares deben ir acompañados de verbos singulares.

    No conoce los tiempos verbales ni las relaciones entre pronombres. Su aparente inteligencia proviene de la elección de palabras y categorías por parte del programador. SENGEN construye frases a partir de listas de vocabulario de sustantivos, verbos, adjetivos, etc. A continuación, reúne sus selecciones de acuerdo consimples reglas gramaticales.

    En 1968-69, una clase de alumnos de séptimo grado (12 años) se enfrentó a SENGEN. El principal fallo que encontraron fue no que no daba importancia a si una palabra o frase era un sustantivo, un verbo o un adjetivo.

    A los niños les resultó relativamente sencillo crear procedimientos para producir listas de palabras de las que otro procedimiento podía seleccionar una palabra, pero entonces se quedaron completamente sorprendidos cuando sus frases tenían este aspecto:


GEESE FAT WORMS GEESE JUMPING

DOGS JUMPING CATS FUZZY FAT

DOGS PECULIAR FUZZY DOGS FAT

GEESE HATE DONKEYS DOGS BIRDS

FUZZY WUZZY HATE FUZZY FUZZY BIRDS

FUZZY WUZZY PIGS DONKEYS FUZZY BIRDS


Cuando en realidad ellos esperaban esto:

FUZZY GUINEA PIGS LOVE JUMPING DOGS

RED WORMS TRIP RED DONKEYS

FAT GUINEA PIGS BITE FAT CATS

RED GUINEA PIGS LOVE FUZZY GUINEA PIGS

FUZZY GUINEA PIGS HATE RED WORMS

PECULIAR GUINEA PIGS HATE FAT WORMS

    Es entonces cuando los niños se sorprenden y se dan cuenta de que sí necesitan separar los verbos de los sustantivos. Nadie tuvo que decirles cuáles eran los fallos. Sabían lo suficiente sobre la construcción de oraciones para ver los errores, y ahora estaban aprendiendo explícitamente algunas reglas gramaticales que ya conocían implícitamente. Al fin y al cabo, eran experimentados creadores de frases comprensibles.

    Logo era mucho más parecido a BASIC en su sintaxis y uso, a la vez que permitía muchas características que BASIC no tenía, como la posibilidad de crear "procedimientos" con el comando TO, listas de primitivas que podían ser nombradas y ejecutadas como cualquier otra primitiva, como por ejemplo:

TO BOX

   REPEAT 4 [

      FORWARD 10

      RIGHT 90

   ]

END

que puede ser ejecutado simplemente escribiendo:

BOX

mejor aún:

TO POLY :SIDES :SIZE

   REPEAT :SIDES [

      FORWARD :SIZE

      RIGHT 360 / :SIDES

   ]

END

los dos puntos indican una variable o contenedor para almacenar un valor.

POLY 4 10

volvería a crear nuestra caja, pero el usuario podría proporcionar cualquier valor deseado, como la suma. Esto satisface la necesidad de Papert de tener la capacidad de demostrar la resolución de problemas informáticos en trozos más pequeños, al tiempo que permite la reutilización del código. Los estudiantes podían crear ellos mismos los procedimientos BOX o POLY, y luego utilizarlos en otros procedimientos. Se formaría una imagen en sus mentes de la jerarquía de ejecución, comprendiendo así mejor cómo el ordenador, y ellos mismos, pensaban.

POLY con diferentes parámetros

    Pero... Nos estamos adelantando con BOX y POLY, ¡ porque al principio Logo no tenía una tortuga ! Cuando Logo se probó inicialmente en un aula de séptimo grado (en 1968 en la Muzzey Junior High School de Lexington, Massachusetts), los estudiantes utilizaban los mismos teletipos que se habían utilizado en la prueba de Stringcomp, y utilizaban Logo para manipular listas y cadenas en lugar de una tortuga. Lo cual funcionó bastante bien para atraer a los estudiantes que tenían un buen nivel de inglés, pero no con aquéllos que no lo tenían.

    Además, en el teletipo las matemáticas seguían siendo sólo números, independientemente de la forma más elegante en que Logo podía descomponer las ecuaciones matemáticas. Los niños que no "entendían" los números seguían sin entenderlos. Papert deseaba algún tipo de representación gráfica, pero la tecnología de la época lo impedía. Así que, hacia el final del ensayo, tuvo la idea de crear un robot físico, que pudiera moverse por el suelo y dibujar representaciones gráficas de los resultados matemáticos.


    Papert y Solomon dejaron BBN y volvieron al MIT, donde formaron el Logo Group. En Inglaterra se habían desarrollado dos robots que podían deambular por un espacio, su inventor los apodó "tortoises" (*). El Grupo Logo desarrolló sus propios robots, llamándolos "turtles" (*). Al tener acceso a costosos equipos de imagen por ordenador, también desarrollaron una tortuga virtual que vivía en la pantalla del ordenador.


    Añadieron primitivas a Logo para controlar la tortuga: FORWARD, BACK LEFT, RIGHT (ADELANTE, ATRÁS A LA IZQUIERDA, A LA DERECHA). Y descubrieron que Papert tenía razón: los niños se aficionaron a la tortuga, que permitía a los usuarios de Logo tener una perspectiva dentro del ordenador, la de la tortuga, en lugar de depender de la comprensión de conceptos abstractos de rutas de código o números. La estructura procedural de Logo permitía "enseñar" a la tortuga: enseñarle a dibujar un cuadrado, enseñarle a dibujar un polígono, crearlos dentro de su entorno, interactuar con ellos y darles forma como un niño que garabatea en la pared de su habitación.


    La tortuga permitía que se formara un vínculo empático entre ella y el niño, lo que daba al niño una doble sensación de logro cuando la tortuga conseguía lo que el niño le decía que hiciera: tanto porque el niño daba las instrucciones correctas a la tortuga, como porque la tortuga llevaba a cabo con éxito esas instrucciones, siendo el resultado de lo segundo la prueba de lo primero. El niño también podía "pensar como la tortuga" cuando desarrollaba los procedimientos y los depuraba, moviéndose por la habitación como lo haría la tortuga, averiguando aproximadamente lo que necesitaba que hiciera la tortuga, y luego refinando su programa según fuera necesario.

    Aunque las capacidades de manejo de cadenas de texto y listas de Logo son impresionantes, es justo decir que la tortuga hizo a Logo. Tanto las tortugas físicas como las virtuales fueron utilizadas por los alumnos de quinto curso de la Bridge School de Lexington en una prueba realizada durante 1970 y 1971. Pero tanto los robots como los terminales de vídeo eran caros en la década de 1970, y las escuelas no habían adoptado de forma generalizada los terminales informáticos; por tanto, no hubo un uso amplio de Logo en la década de 1970.

70s LOGO

    Sin embargo, la aparición en el mercado de los ordenadores domésticos a finales de la década de 1970 brindó la oportunidad de que Logo llegara a un segmento más amplio de la población. En 1980, Solomon, Minskey, Papert y dos canadienses fundaron Logo Computer Systems Inc. (LCSI) y en 1981 publicaron una versión de Logo para el ordenador Apple II.


    El Logo se convirtió en un símbolo del cambio en la educación matemática elemental y en la naturaleza de la propia escuela.

    La búsqueda de aprovechar el potencial del ordenador para ofrecer nuevas formas de enseñanza y aprendizaje se convirtió en un nuevo enfoque y principio rector en el desarrollo del lenguaje Logo. Abarcó un ámbito cada vez más amplio que incluía el lenguaje natural, la música, los gráficos, la animación, la narración de historias, la geometría de las tortugas, los robots y otros dispositivos físicos.

Creado con el software Turtlespaces

    Como anécdota, añado que mi aportación a la Crap Games Compo fue una adaptación del juego de cartas Seven/Eleven publicado por Tim Hartnell y reescrito por mí en Logo. Sin usar ni maltratar ningún ser con caparazón:


Sirva este artículo como humilde homenaje

 a todas estas personas que quisieron ver más allá 

en la educación de nuestros hijos.


REFERENCIAS:

- History of Logo, C.Solomon, B.Harvey, K.Kahn, H.Lieberman, M.L.Miller, M.Minsky, A.Papert, B.Silverman

- Past and Future Turtles: The Evolution of the Logo Programming Language by Paleotronic

- logothings.github.io by Cynthia Solomon


(*) En inglés "tortoise" se refiere a las tortugas terrestres, mientras que "turtle" son las marinas.

6 comentarios:

FoG dijo...

Enhorabuena Kempston!, me parece brillante tu artículo sobre Logo. Es verdad que fue infrautilizado, en la época el Basic se comió otras posibilidades, al menos a nivel educacional. No recuerdo que nos enseñasen el Logo, ni que lo plantearan siquiera.

Airam Cruz dijo...

Felicidades por este gran artículo. Bien documentado y redactado. Ahora la programación en la educación secundaria (en primaria creo que es inexistente) se centra sobretodo en scratch o python. En scratch incluso hay unos módulos que imitan a la tortuga de Logo y tienes que ir programando para que salga un dibujo por la pantalla.
En mi próximo artículo (se publica la próxima semana) hablaré de un framework y lenguaje que podría meterse dentro de los institutos como una alternativa más a los que se están usando en la actualidad.

Monseñor Geraldo Rivera dijo...

Cuando kem se curra algo, se lo curra a tope, mis dieses.

Mc nolo dijo...

Me acabas de rescatar de la memoria un profundo recuerdo.... No recuerdo la edad que tendría, no sé si fue en 7º u 8º, pero recuerdo ir de escursión al recién estrenado por aquel entoces Museo de la ciencia en Las Palmas de G.C. y enseñarnos allí en un ordenador con monitor de fósforo verde el Logo y dejarnos experimentar con él

Txinto dijo...

La leche! Pintaza de artículo! En cuanto encuentre tiempo me lo voy a leer seguro. A mí también me llamó la atención y tonteé con el del MSX. La lástima es que tonteé muy tarde, y ya no sabía qué hacer con él. Me parecía lo que hoy llamaríamos el lenguaje de un plotter o impresora 3D. Viendo por encima que lo revisitaste con similar perspectiva, seguro que me respondes un montón de dudas. Muchas gracias!!

Almighty God dijo...

Muchas Gracias Kempston, me ha encantado. Aunque lo vi en varias revistas nunca me llamo la atención este lenguaje, pero realmente a nivel de enseñanza lo veo como un esfuerzo muy adelantado a su tiempo. La verdad es que veo que sigue siendo muy dificil incorporar nuevas tecnologías y métodos de enseñanza incluso hoy en día en las escuelas actuales.