Una aproximación a la Didáctica del Logo. (parte 2)

Enrique Araújoviedo (2001): Foro Local de Informática Educativa, Loca...
su didáctica; en pretender abordar un desarrollo sin los concebidos prerrequisitos
geométricos. Surge la pregunta: ¿se deb...
es una lista de palabras con algunos tipos de identificadores para separar segmentos de
palabras. El párrafo tiene un iden...
Esta definición es bastante débil por cuanto no admite listas como:

a) [ a [ e i o u] ]

b) [ a [ e i] o [u] ]

c) [ [ ] ...
Upcoming SlideShare
Loading in …5
×

Aproximación a la Didactica del Logo(Parte2)

714 views

Published on

Didactica del Logo

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
714
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aproximación a la Didactica del Logo(Parte2)

  1. 1. Una aproximación a la Didáctica del Logo. (parte 2) Enrique Araújoviedo (2001): Foro Local de Informática Educativa, Localidad Octava. Bogotá. Logo es un lenguaje basado en listas. Pero realmente es poco lo que se muestra de él sobre esto. Casi todos los tratados o trabajos están basados en su capacidad gráfica, de la que no carecen –hoy por hoy- la mayoría de los lenguajes de programación. Por tanto no vamos a resaltar -pero sí utilizar su capacidad gráfica, que no podemos desconocerlo, es excepcional- en éste trabajo esta potencialidad sino preocuparnos un poco más en esa ventaja que tiene sobre muchos lenguajes maduros y experimentados. Logo, por supuesto es un lenguaje maduro y experimentado, pero tiene un adalid que son las listas y las capacidades mentales que requieren para su tratamiento. Hé visto recientemente un trabajo sobre cómo abordar el trabajo gráfico con Logo utilizando diagramas de flujo; es un gran esfuerzo, pero muy reforzado. Los diagramas de flujo (libres) no son una buena estructura para abordar la programación en Logo y en general los lenguajes basados en listas como Lisp. La pretensión de éste apartado es mostrar cómo aprovechar el potencial de Logo (la programación en estructuras de listas) para desarrollar un tipo de pensamiento específico: el heurísitico. Los docentes de informática sabemos que el lenguaje, por antonomasia para enseñar a programar es el Lenguaje Pascal; hoy existen versiones de lenguajes libres muy buenas como Léxico, sin embargo, haciendo a un lado la discusión acerca de cómo empezar a enseñar a programar –cuando de enseñar a programar se trata- muchos creemos que Logo en la etapa primaria cumple cabalmente las expectativas tanto de la estructuración de la programación como las de desarrollo de pensamiento. Igualmente mucha gente defiende que el lenguaje que hay que enseñar es el C++ -cosa que no discuto porque comparto, pero en una etapa final de la Educación Básica-. De manera semejante, creo que es horrendo enseñar VisualBasic –no porque sea un lenguaje malo; no, todo lo contrario, es un lenguaje profesional que requiere madurez para obtener resultados que ameriten su uso; cosa parecida pasa con Java-. Retomando nuestro asunto que es la formación inicial en la programación y en esto hacemos alusión a enseñar a programar a niños entre los 8 y los 12 años. En este espacio son también muy buenos entornos de trabajo como como KPL (basado en lenguaje Basic) y scracth (basado en lenguaje Logo). Pero una cosa son los entornos de trabajo y otra bien diferente son las IDE (los ambientes de desarrollo). En éstas últimas por ejemplo, existe la posibilidad de la compilación y por tanto la ejecución del producto independiente del entorno. Enseñar a programar a los niños y jóvenes con Logo ha seguido una directriz, que consiste en enseñar a elaborar figuras según una secuencia de comandos. Cuando las figuras son básicas o que requieren un patrón predeterminado, es decir con una geometría a lo más definidas a patrones de simetría axial, o grupos básicos la dificultad es mínima; pero cuando requiere de estructuras geométricas más exigentes (teselaciones, fractales,…) el ejercicio de la programación se vuelve engorroso y tortuoso en la medida que se requieren fuertes conocimientos geométricos previos. En este sentido el fracaso no radica en el lenguaje sino en
  2. 2. su didáctica; en pretender abordar un desarrollo sin los concebidos prerrequisitos geométricos. Surge la pregunta: ¿se debe tener fuertes conocimientos geométricos para aprender a programar en Logo? Antes de responder, debe aclararse que una cosa es enseñar a programar con Logo y otra es enseñar a programar en Logo. El objetivo de la enseñanza de la programación es la primera; pues como se manifestó arriba se puede “enseñar a programar con Pascal”, “se puede “enseñar a programar con C++”, se puede “enseñar a programar con Delphi”, etc. El fin último es enseñar a programar, el lenguaje es la herramienta; el medio. Pero si de lo que se trata es de enseñar el lenguaje como tal, se requieren precisamente esas estructuras de programación y otros recursos como la diagramación libre, la estructurada y en general los lenguajes de representación. Aprender un lenguaje de programación se puede hacer desde cero o desde el púlpito de un Gurú. Mucha gente, después de haber trabajado por años con un lenguaje, tuvo que aprender un nuevo lenguaje en pocas semanas; de no haber tenido esas estructuras de programación habrían durado mucho más e incluso tardar años en la reconversión. En alguna medida las didácticas de una segunda lengua se asemejan a las didácticas de la enseñanza de un lenguaje de programación y éstas se diferencian de las didácticas de la programación. Esto es que aprender a programar se puede realizar sin el conocimiento de un lenguaje de programación, como lo propone precisamente el proyecto Léxico. Así pues, enseñar Logo, a programar en Logo es muy diferente a aprender a programar con Logo. Para aprender a programar con Logo, la metáfora de las figuras y el uso de una geometría básica está bien; pero para aprender a programar en Logo, esa metáfora no es útil. Primero porque realmente sí se requieren serios conocimientos geométricos, algebraicos y topológicos y segundo porque en este enfoque no es evidente el trabajo subyacente de las listas, que es la razón de ser de Logo. Los lenguajes, en general, tienen unos espacios de definición: intentad hacer una página web con C++; intentad hacer un protocolo de red con Cobol o Fortran (que se puede se puede, claro. A costa de que?) Semejante cosa ocurre con Logo. Su diseño inicial y su pretensión no es ser un lenguaje profesional (quizás para ello esté LISP) sino ser un lenguaje para la enseñanza y dentro de éste campo para desarrollar estructuras de pensamiento. Tal vez por ello, muchos de los entornos Logo están elaborados en lenguajes profesionales; un excelente entorno (Logográfico –argentino-) ha sido desarrollado con VisualBasic; los clásicos (WMSLogo, FMSlogo) han sido desarrollados en C++; un entorno muy bueno (el Xlogo) ha sido desarrollado en java y el último entorno que conocí fue elaborado en Python. No conozco ningún compilador de C++ o Pascal elaborado en Logo (eso sería como elaborar un diccionario de español elaborado en inglés). Después de estas disquisiciones entremos en materia. Lo que pretendemos es enseñar a programar en Logo y por ello su enfoque serán las listas. Tampoco vamos a ir muy lejos –el tiempo y el espacio apremian-, solamente trataremos lo básico; lo necesario para trabajar con listas. LAS LISTAS En general, todos sabemos que es una lista; las entendemos como una secuencia (horizontal o vertical) de expresiones que pueden estar ordenadas o no. Así, un directorio telefónico es una lista con algunos tipos de identificadores para separar segmentos de expresiones. Un párrafo
  3. 3. es una lista de palabras con algunos tipos de identificadores para separar segmentos de palabras. El párrafo tiene un identificador de inicio (usualmente un espacio previo y una letra mayúscula) y otro indicador de final (usualmente el punto aparte y un espacio posterior). Un “punto seguido” es un indicador de separación de un segmento del párrafo y divide el párrafo, pero no lo concluye; cosa semejante podría decirse de la “coma” y el “punto y coma”. Un “espacio en blanco” es un delimitador de separación. En Logo las listas están asociadas a un tipo de estructuras arbóreas (ver artículo sobre estructuras en árbol) que nos permiten establecer la secuencia de los elementos que contiene la lista. Una lista en Logo tiene un identificador de inicio (el paréntesis cuadrado “[“ ) y un identificador de terminación (el paréntesis cuadrado “]“ ). Los elementos de la lista deben una relación matemática : → ℕcon el conjunto de elementos de la lista. Dos listas son estar contenidos entre estos dos identificadores. Los elementos están ordenados de acuerdo a diferentes si dadas : → ℕ y : → ℕ se tiene que ≠ . Más específicamente , diríamos que y deben ser tales que : → ⊊ℕ y : → ⊊ con ≠ . ℕ Una lista puede ser vacía. En este caso su único elemento es el “caracter en blanco”. El “caracter en blanco” o “espacio en blanco” sólo se considera como elemento en éste único caso, en los demás se considera como un indicador de separación entre elementos. Es claro pues que no se puede utilizar el espacio en blanco dos veces seguidas para indicar por ejemplo: (caracter)(espacio en blanco)(espacio en blanco)(caracter). Pues esto sería lo mismo que: (caracter)(espacio en blanco)(caracter). Y por tanto no se admite: (espacio en blanco)(espacio en blanco)(espacio en blanco)(espacio en blanco)…(espacio en blanco)(espacio en blanco). Ya que todos ellos equivaldrían a uno solo. Logo además de considerar las listas, dispone de otros tipos de datos como las “palabras”. Una palabra es un conjunto de caracteres (letras, números, caracteres especiales: alfanuméricos, símbolos de puntuación, símbolos de acento, etc.). Se tiene pues que el “carácter en blanco” define la “palabra vacía”. Ejemplos de palabras serían: a, 4, color, amarillo, ioki, aníbalnicolás, siuleuquirneojuaraodeivo, a2009m11d26, 1+4=5, 9^2igual81, unodostres. Para el intérprete del lenguaje Logo (que en adelante llamaremos simplemente Logo) una palabra puede ser cualquier cosa que contenga un caracter o muchos siempre y cuando no estén separados por el delimitador “espacio en blanco”. A su vez una lista no es más que un conjunto de palabras o de listas o de combinaciones de palabras y listas. Existen muchas definiciones de lista. La primera y más elemental es decir que: Definición 1: Una lista es un conjunto de palabras. Ejemplos: a) [ a e i o u]; b) [ 1 2 3 4]; c) [ a A7 i(8) águila uh!]; d) [ … y Aladino dijo: ábrete sésamo!]; e) [ uno dos tres]; f) [ uno tres dos]; g) [ 1 dos 3]; h) [ unodostres]; i) [ ]. Es claro que las listas (e) y (f) son distintas porque aunque los elementos son los mismos, el orden es distinto. En las listas (e) y (g) los elementos son distintos; en la lista (h), hay un solo elemento, lo mismo que en la lista (i).
  4. 4. Esta definición es bastante débil por cuanto no admite listas como: a) [ a [ e i o u] ] b) [ a [ e i] o [u] ] c) [ [ ] [ a [ e ] ] [ [ i ] [ [o] ] [u] ] Una definición más precisa sería: Definición 2: Secuencia ordenada de palabras y/o listas delimitadas entre los indicadores “[“ y “]”.

×