SlideShare una empresa de Scribd logo
1 de 24
Una aproximación a la Didáctica del Logo. (parte 4)
Enrique Araujo Oviedo
Docente de Informática, I.E.D John F. Kennedy
Coordinador Red de Informática Educativa Localidad Octava, Rediel 8.
enriquearaujoviedo@gmail.com


LOGO, LOGO, ... LOGO. Sí, escrito en mayúsculas: el lenguaje para niños. Bueno esa no fue la
idea que me vendieron en el pregrado. Pero sí las editoriales y la misma Secretaría de
Educación; hasta compró equipos Atari para enseñar Logo en las escuelas!! De desquiciada
nada tenía la idea, ni por un lado ni por la otra: los equipos Atari, para su época (1986) eran
unas portentosas máquinas con cuatro (léase bién: cuatro) procesadores, pero con una escasa
memoria (64K, 128K y en el mejor de los casos 512K, claro estaban los Atari ST de 1024Kb,
pero esos no llegaron a la escuela). Del otro lado los cartridge (cartuchos) de Atari (en
español) eran y siguen siendo de lo mejor, pues que éste lenguaje lo que ha hecho es crecer y
mejorar cada vez. Bueno desde esa época y desde su diseño inicial LOGO ha sido un lenguaje
de programación bastante serio, basado precisamente en otro lenguaje muy poderoso como el
LISP. Desde esa época a ésta se nos ha escapado ese detalle precisamente: las listas y la
estructura de pensamiento subyacente en el manejo de las listas. Eso sí es lo que hay que
enseñarle a un niño: manejo de listas y la lógica de programación por listas. LOGO de alguna
manera ha conseguido a pesar de sus instructores y nosotros los maestros que los niños
adquieran unas valencias, que en la mayoría de los casos escapan a nuestro control,
desgraciadamente por no poseer ni estructuras de programación (no ser programadores) ni
conocer /dominar el lenguaje en su totalidad (desconocer la lógica de programación funcional,
ya mayoría todavía cree que la lógica de programación de LOGO es procedimental).

Bueno, el asunto a tratar en éste artículo es ese: cómo enseñar a los niños a adquirir las
estrategias de programación funcional, adquirir dominio del manejo de listas, observar cómo
las sentencias Logo son listas y resolver problemas utilizando listas, e.d, programando
soluciones en logo. Y todo esto para niños de grado sexto (10-12 años, aprox.)!

Lo primero sí es dar a conocer las primitivas Logo gráficas, especialmente las relativas a las
coordenadas referenciales. Realizar ejercicios en los que se involucren operaciones
aritméticas en los argumentos de los comandos. Así por ejemplo: FD 20*10,                    BK
(2*10+3*60) ó RT 3*90 (tomo como referencia el Logo en inglés, por ser el Logo estándar).
Con éste tipo de situaciones lo que se busca es que el estudiante distinga perfectamente que
existen dos elementos en éstas sentencias Logo: una parte literal (la cabeza) y una parte
numérica (la cola). Y que en general cualquier sentencia Logo, por compleja que sea es una
lista que posee éstos dos elementos: cabeza y cola. Simbólicamente: [ cabeza cola ] o
(cabeza, cola). Y que además ésta lista se puede representar por un grafo (ver teoría de grafos,
[ORE86] ) llamado árbol.
Entonces, en los ejemplos precedentes tenemos:



            LISTA                   CABEZA             COLA

            FD 20*10                   FD             20*10

            BK (2*10+3*60)             BK           (2*10+3*60)

            RT 3*90                    RT              3*90

                                     Tabla 1



No importa que tan compleja pueda ser una operación aritmética, es una sola entidad.

Sin embargo si existen unas listas que generan ciertas dudas, por ejemplo la lista:

                                   REPEAT 4[ FD 100 RT 90]

Veamos:

             LISTA                          CABEZA                        COLA

REPEAT 4[ FD 100 RT 90]                     REPEAT                  4[ FD 100 RT 90]

4[ FD 100 RT 90]                               4                     [ FD 100 RT 90]

[ FD 100 RT 90]                             FD 100                        RT 90

FD 100                                         FD                          100

RT 90                                          RT                           90

                                            Tabla 2

O en otras palabras:

[ CABEZA [ CABEZA [ [ CABEZA COLA] [ CABEZA COLA] ] ] ]

Pensar de ésta manera no es fácil; y menos aún resolver problemas reformulándolos de éste
modo. Se pensaría que para un niño la cosa es muy compleja y difícil y que por tanto es mejor
no enseñárselo. Nada más erróneo! El tipo de pensamiento que subyace al Logo se
denomina “sintético” y proviene del “análisis sintético”, que a diferencia del pensamiento
analítico (que se especializa en descomponer un todo en sus partes y estudiarlas por separado)
se encarga de observar un elemento particular de un todo, conservando el todo mismo. Una
vez familiarizado el niño resuelve problemas interesantes con éste método.

Podemos colocarle un ejercicio como el siguiente: “escriba como una lista el sistema solar”.

Solución:

              LISTA                                CABEZA                                COLA

[ SOL PLANETAS ]                                     SOL                           PLANETAS

[ PLAN_MAY PLAN_MEN ]                      PLANETAS MAYORES                  PLANETAS MENORES

PLANETAS MAYORES                                   URANO                       NEPTUNO JÚPITER
                                                                                  SATURNO

PLANETAS MENORES                                  PLUTÓN                     TIERRA VENUS MARTE
                                                                                  MERCURIO

                                                   Tabla 3



Obteniéndose la lista:

[ SOL [ URANO NEPTUNO JÚPITER SATURNO PLUTÓN TIERRA VENUS MARTE MERCURIO] ]

¿ Importa acaso el orden de los planetas?

Observése cómo la lista del sistema solar tiene únicamente dos elementos, pero la lista
constituída por la cola pareciera ser distinta si se consideran « planetas mayores » y «
planetas menores » como puede verse en las filas 2 a 4 de la tabla 3:

Las Listas L1:: [ PLAN_MAY   PLAN_MEN ]   y L2:: [PLANETAS MAYORES   PLANETAS MENORES]   son por supuesto
iguales.

Ahora L3:: [PLANETAS MAYORES]      [ URANO     NEPTUNO JÚPITER SATURNO]

y

L4:: [PLANETAS MAYORES]  [PLUTÓN TIERRA VENUS MARTE MERCURIO].

En L3 la CABEZA  URANO y la COLA  [ NEPTUNO JÚPITER SATURNO].

Nota: el símbolo  se usa para establecer equivalencias entre listas y el símbolo  para
establecer equivalencia entre elementos de una lista.

En otro artículo hé comentado acerca de las diferencias y similitudes de LOGO y LISP en el
manejo de las listas y sus operadores (“Lo que va del Lisp al Logo y otras minucias...”) , por
ahora bástenos saber que no es difícil para el estudiante de grado sexto comprender la lógica
del manejo de listas; muy por el contrario, es como un chicle en la boca.

Y bién en qué quedó nuestro ejercicio? Pues que el estudiante puede observar que la
estructura final del ejercicio es una lista de la forma: [ CABEZA [CABEZA COLA] ] y no importa
qué tan grande pueda ser la cola y que ésta a su vez sea una lista.

Se preguntará el docente: ¿Y cuál es la ganancia cognitiva que obtiene el estudiante de grado sexto al
manipular listas en lugar de aprender a manipular comandos Logo directamente? Pues que adquiere la
lógica de solución de problemas en Logo, o sea su formulación y representación por listas, lo que hace
fácil la estructuración modular de la propuesta de programación. Veamos un ejemplo, supongamos que
se pide a los niños que elaboren “el juego del triqui” para ser jugado por dos jugadores utilizando la
máquina como tablero (Obsérvese que éste es un problema débilmente estructurado). ¿Qué hacen los
niños? ¿Qué hace el maestro?


Vamos por partes, resolvamos la inquietud acerca de qué debe hacer el docente.

Mostrar a los niños que “el juego del triqui” tiene un tablero de la forma:



                                               El tablero está constituido por dos líneas
                                               paralelas horizontales, perpendiculares a
                                               otras dos líneas paralelas verticales.

                                               Una manera de realizarlo sería trazar
                                               primero una paralela horizontal y luego la
                                               otra, siguiendo la lógica visual. Pero la
                                               manera eficiente de construir el tablero no
                                               es esa; se requiere una unidad básica y a
                                               partir de ésta realizar el resto por
                                               modularidad y con reusabilidad           de
                                               código.
        Tablero del juego del Triqui.                                                          unidad base          Prototipo del tablero
                                               Se propone que la unidad base sea un
                   Fig. 1                      cuadrado y a partir de éste se construya el
                                               tablero.
                                                                                                                 Fig. 2




Observemos más en detalle:




Fig. 3. El tablero está constituido por cinco cuadrados: uno central, dos Fig. 4. Aquí se ha considerado el tablero central y los cuadrados en
verticales, arriba y abajo; y, dos horizontales, a derecha e izquierda del líneas punteadas, borrando uno de sus lados. Si se observa con
cuadrado central. Aunque debe considerarse que el tablero realmente detenimiento ésta es la única acción a realizar sobre el cuadrado
tiene nueve (9) casillas o escaques.                                central: borrar un segmento y al objeto resultante aplicarle sucesivas
                                                                    rotaciones. Con esto ya se tienen los módulos de construcción.

Entonces los módulos de construcción son:




                                                                       etapa 1: crear cuadrado               etapa 2: crear objeto


 Fig. 5. Un cuadrado que sirve de Fig. 6. Un cuadrado al que se le
 unidad base y corresponde al ha borrado un segmento (que
 cuadrado central.                aparece punteado en el dibujo) y
                                  que se constituye en el objeto a
                                  operar.




 El objeto soporte (cuadrado sin un
                                                                       etapa 3: sumar objeto a base          etapa 4: rotar objeto 90 grados
 segmento) se rotará tres veces sucesivas,
 aplicándosele una rotación a derecha de 90
 grados cada vez.




                                                                       etapa 5: rotar objeto 180 grds        etapa 6: rotar objeto 270 grds

                                                                                                        Fig. 8


Nota adicional: el tablero debe poderse dibujar en cualquier sitio dela pantalla, por tanto basta
clicar en un punto de la pantalla para que éste sea el punto centro del tablero, leyendo Logo
las coordenadas.

En Logo como sabemos tendríamos el siguiente código para los módulos “unidad base” y
“objeto”.

To cuadrado :lado
REPEAT 4[FD :lado RT 90]
End


To objeto :lado
cuadrado :lado
FD :lado RT 90 PE FD :lado PPT
PU REPEAT 2[RT 90 FD :lado ]
PD RT 180
END


TO tablero :lado
« aquí leer las coordenadas del punto actual »
CS                                       « borra pantalla »
cuadrado :lado                             « dibuja cuadrado central »
REPEAT 4[FD :lado objeto :lado] « dibuja las casillas »
END


Basta, escribir en la línea de sentencias: tablero 50 para obtener un tablero apropiado. Un
lado de 100 es más que suficiente, por lo que valdría la pena establecer restricciones máximo
70 y mínimo 30. Quedaría el módulo así:

TO tablero :lado
IF (OR :lado < 30 :lado >70) [PR [no se puede dibujar] STOP] « examina rango de trabajo »
CS                                         « borra pantalla »
cuadrado :lado                               « dibuja cuadrado central »
REPEAT 4[FD :lado objeto :lado RT 90] « dibuja las casillas »
END


Capturar las coordenadas del lugar donde se encuentra el cursor lo detallaremos más adelante, por ahora
bástenos que podamos dibujar el tablero del triqui. Además debemos considerar el hecho que el tablero
se pueda dibujar dentro del área de trabajo.


Obviamente ésta no es la única manera de trazar el tablero del triqui, pero es la más apropiada
para mostrar la modularidad y la reusabilidad de código (En el apéndice presento otra manera,
que no me parece la mejor pero cada quien “mata sus pulgas a su manera” reza un adagio
popular. Y en programación esto sí que es cierto: nadie programa igual a otra persona).

Sigamos. El nuevo problema que debe presentar el docente a sus alumnos consiste en ubicar cada casilla a
través de algún mecanismo para trazar luego la ficha correspondiente. Supongamos el problema así:
Juanito y Juanita están jugando, ya dibujaron el tablero en la parte superior de la pantalla. Juanita
empieza primero y seleccionó la casilla superio-izquierda para colocar su ficha que es un círculo, ¿cómo
hace juanita para llegar hasta esa casilla para dibujar su círculo?


Ataquemos pues el problema.

Se sabe que Logo posee de manera subyacente un sistema de coordenadas cartesianas, esto
es que a cada punto del área de trabajo le corresponde un par de coordenadas (xCor, yCor)
que fijan su posición. Así pues de lo que se trata entonces es de localizar las coordenadas del
punto centro de cada casilla, y para ello basta con saber las coordenadas de la casilla central,
es decir el punto donde “se hizo clic” para dibujar el tablero. Entonces de lo que se trata es de
capturar las coordenadas del punto donde se hizo clic con el botón izquierdo del mouse. Esto
realmente no es difícil porque Logo trae estos comandos, lo realmente interesante es cómo
plantearle al estudiante la pregunta para que se vea motivado a consultar en el lenguaje las
posibilidades.

Para efectos prácticos reduciré el problema a uno equivalente en el que el mouse aún no
tenga nada que ver, precisamente para efectos didácticos.

Consideremos que podemos mover la tortuga al azar hasta que presionemos enter o cualquier
otra tecla. Y en el sitio que quede la tortuga se dibuje el tablero, esta vez pondremos la
condición que no se borren los tableros anteriores.

Mover la tortuga al azar.

Logo trae el comando RANDOM que tiene el siguiente formato: RANDOM num. Esta
instrucción Logo devuelve un entero positivo menor que el del argumento, que servirá de
entrada al comando deseado. Así por ejemplo podemos escribir: FD RANDOM 100. Logo
devolverá un entero positivo menor que 100, supongamos 75 y éste servirá de argumento a
FD, quedando pues

                                  FD RANDOM 100  FD 75

(¿recuerda las equivalencias entre listas, arriba mencionadas?)

Como se trata de que se mueva al azar un poco más, consideremos que podemos rotar la
tortuga también aleatoriamente un número arbitrario de veces. Tenemos pues el
procedimiento mover.al.azar :

TO mover.al.azar :veces
PU HOME
REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ]
PD
END


Este sería un procedimiento para luego ser incluido como módulo dentro de un procedimiento
dibuja.tablero . O una versión empeorada si se va a trabajar desde la línea de sentecias:

TO mover.al.azar :veces
IF :veces < 0 [PR [Oye, no puedes usar un entero negativo!] STOP ]
IF :veces > 10 [PR [Oh, Oh! Muchas vueltas, pón un número menor que 10] STOP ]
PU HOME
REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ]
PD
END


O más complejo:
TO mover.al.azar :veces
IF :veces < 0 [MESSAGEBOX [ CUIDADO!] [Oye, no puedes usar un entero negativo!] STOP ]
IF :veces > 10 [MESSAGEBOX [ CUIDADO!] [Oh, Oh! Muchas vueltas, pón un número menor
que 10] STOP ]
PU SETH (REMAINDER 360 :veces*21)
REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ]
PD
END


Por supuesto que se pueden poner todas las restricciones del caso. Por ejemplo: podemos
querer que rote una vez a la derecha y otra a la izquierda o que rote un número al azar de
veces a la derecha y luego una vez a la izquierda. Para el primer caso basta agregar LT como
cola de la lista [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] quedando:

[ RT RANDOM :veces *10 FD RANDOM :veces *30 LT RANDOM :veces *5 ]

para el segundo caso hay que agregar otro RANDOM en la cabeza de la lista:

[ REPEAT RANDOM RT 360/:veces [RANDOM :veces *10 FD RANDOM :veces *30]                    LT
RANDOM :veces *5 BK RANDOM :veces *15]

consiguiendo una tortuga completamente loca!

Pero para no complicarnos tanto (por ahora...) dejemos el primer procedimiento
mover.al.azar .

Bueno ya tenemos una tortuga que se mueve al azar, pero que puede salirse de pantalla. Esto
lo resolveremos después. Por ahora concentrémonos en mover la tortuga y dibujar después.
Tenemos:

TO dibujar.triqui :veces :lado
mover.al.azar :veces
tablero :lado
END


La única dificultad que usualmente se le presenta al estudiante es recordar que debe
introducir el valor de las variables asociadas y en qué orden. Hay que trabajar en ello.

El siguiente problema a abordar será pues el de dibujar las fichas. Después abordaremos el de
posicionarla en cualquiera de las casillas. Consideremos eso sí el hecho que la ficha debe
quedar dentro de una casilla. Recordemos que cada casilla es un cuadrado porque con ésta
intención lo definimos desde el comienzo. El que cada casilla fuera un cuadrado nos sirve
porque así podemos fácilmente calcular su punto centro bien como el punto de corte de sus
diagonales o como un recorrido simple de dos segmentos medios perpendiculares que parte
de un vértice. Supongamos por ahora que el punto centro de una casilla tiene coordenadas
(xc, yc).
Fig. 9a.   Método por diagonales                         Fig. 9b.   Método por trayectoria de segmentos
                                                                                          medios

Sabemos que el cuadrado tiene segmentos de longitud :lado. Por tanto para llegar al punto
centro por el método de la figura 9a, sería:

To centro.casilla :lado
SETH 45
FD SQRT ( 2*( :lado /2)* (:lado /2))
END


Pues se trata de la hipotenusa de un triángulo rectángulo con catetos de longitud :lado.

Y por el método de la figura 9b, sería:

To centro.casilla :lado
FD :lado SETH 90 FD :lado SETH 0
END


Una vez escogido el método de llegar al centro dela casilla se dibuja la ficha según el turno del
jugador. Podemos hacer controlado el turno o libre, es decir que sea el jugador el que escriba
la ficha que le corresponde. En caso contrario sería el computador el que decida si la ficha
jugada es correcta según el turno o no. Tomemos por comodidad el caso libre.

Las fichas a dibujar son un circulo y una équis.

Caso ficha équis.

Veamos las siguientes figuras ilustrativas que nos ayudarán a elaborar el procedimiento.




  Fig. 10a Ubicamos el centro   Fig. 10b. Trazamos primer tramo   Fig. 10c. Nos devolvemos    Fig. 10d.Trazamos segundo tramo
Fig. 10e nos devolvemos   Fig. 10f. Hemos trazado la équis   Fig. 10g. Y ahora qué hacer?




El procedimiento realmente es muy sencillo:

TO equis :lado
centro.casilla :lado
primer.tramo :lado
segundo.tramo :lado
END


TO primer.tramo :lado
SETH 315                                   « da la orientación del tramo a la tortuga »
FD (3/4)*SQRT ( 2*(:lado /2)* ( :lado /2))     « avanza tres cuartos de la semidiagonal desde el
centro »
BK (3/2)* SQRT ( 2*(:lado /2)* (:lado /2)) « retrocede trazando dos semidiagonales »
FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2))     « se devuelve al centro »
SETH 0                                     « establece orientación estándar »
END


TO segundo.tramo :lado
SETH 45
FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2))
BK (3/2)* SQRT ( 2*(:lado /2)* (:lado /2))
FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2))
SETH 0
END


Abordemos ahora, el trazado de la ficha círculo.

Caso ficha circulo.

Con ésta ficha si no tendremos ningún inconveniente pues Logo dispone de una procedimiento
ARC, cuyo formato es ARC ángulo radio.

Nota: The turtle does not move in this command. It draws an arc (part of a circle) based on the
turtle heading, turtle position and the given arguments. The arc starts at the rear of the turtle
heading. The size is based on the radius. The current turtle position will be at the center of
the arc. Arc will also follow wrap/fence/windows modes. ARC 360 radius will of course draw a
circle.

TO circulo :lado
centro.casilla :lado
ARC 360 :lado/2
END


Así pues ya tenemos tablero y fichas. Entonces a jugar!!!

Eh, éh! Un momento y cómo posicionamos las fichas en las casillas?

Establezcamos para resolver éste problema lo siguiente: leemos el tablero de izquierda a
derecha y de arriba hacia abajo en trama de zeta. Para hacerlo más claro, numerémos cada
casilla de 1 a 9 así:

                                              1      2      3

                                              4      5      6

                                              7      8      9

                                                  Fig. 11

Tomando como referencia la casilla del centro podemos ir a cualquier otra, de acuerdo a los
siguientes esquemas:




Fig. 12a. Camino a la casilla 2.   Fig. 12b. Camino a la casilla 8     Fig. 12c. Camino a la casilla 4     Fig. 12d. Camino a la casilla 6




Fig. 12e. Camino a la casilla 1      Fig. 12f. Camino a la casilla 7     Fig. 12g. Camino a la casilla 3    Fig. 12h. Camino a la casilla 9
Hé dispuesto los esquemas de talmodo que se puedan observar las trayectorias de acuerdo a
su simétrica. Así la figura 12a. (trayectoria hacia la casilla 2) tiene como simétrica a la figura
12b. (trayectoria hacia la casilla 8) , así sucesivamente. Esto lo puede observar fácilmente un
niño de grado sexto si posee precurrentes de simetría (simetría axial, preferentemente).

Los procedimientos se realizan por código simétrico:



TO casilla2 :lado                                TO casilla8 :lado
PU SETH 0                                        PU SETH 180
FD :lado SETH 0                                  FD :lado SETH 0
PD                                               PD
END                                              END


TO casilla4 :lado                                TO casilla6 :lado
PU SETH 270                                      PU SETH 90
FD :lado SETH 0                                  FD :lado SETH 0
PD                                               PD
END                                              END


TO casilla1 :lado                                TO casilla7 :lado
casilla1 SETH 270                                casilla8 SETH 270
FD :lado SETH 0                                  FD :lado SETH 0
PD                                               PD
END                                              END


TO casilla3 :lado                                TO casilla9 :lado
casilla1 SETH 90                                 casilla8 SETH 90
FD :lado SETH 0                                  FD :lado SETH 0
PD                                               PD
END                                              END


El juego se puede depurar muchísmo más, pero para el caso es más que suficiente. A
propósito, un poquito largo el ejemplo, ¿no?

Muy bonito todo eso, se preguntará el lector. Pero qué tiene que ver todo esto con las listas? A
qué horas vuelven a aparecer?

Bueno el asunto es que siempre estuvimos manipulando listas. Cada subproblema conducía a
elaborar un procedimiento que se convierte en módulo dentro de otro procedimiento. Esto es
una lista dentro de otra lista.
NOTA FINAL: Recuerde apreciado colega, que la didáctica es un asunto el maestro no del
alumno, así que lo visto en el presente artículo estaba dirigido exclusivamente al docente. No
se puede implementar éste trabajo directamente al alumno, sería un exabrupto. Como dice
Jimmy Neutrón: no lo intentes en casa! Hay que dosificarlo al nivel de los alumnos, cada
colegio tiene sus particularidades y sus propios niveles de crecimiento y desarrollo por tanto
sus alumnos poseen unas características diferenciales que deben ser tomadas en cuenta a la
hora de aplicar un trabajo como el presente.
Anexo 1
Todo el código completo.
To cuadrado :lado                  To objeto :lado
REPEAT 4[FD :lado RT 90]           cuadrado :lado
End                                FD :lado RT 90 PE FD :lado PPT
                                   PU REPEAT 2[RT 90 FD :lado ]
                                   PD RT 180
                                   END

TO tablero :lado                   TO mover.al.azar :veces
CS                                 IF :veces < 0 [MESSAGEBOX [ CUIDADO!]
cuadrado :lado                     [Oye, no puedes usar un entero negativo!]
REPEAT 4[FD :lado objeto :lado]    STOP ]
END                                IF :veces > 10 [MESSAGEBOX [ CUIDADO!]
                                   [Oh, Oh! Muchas vueltas, pón un número
                                   menor que 10] STOP ]
                                   PU SETH (REMAINDER 360 :veces*21)
                                   REPEAT     RANDOM :veces [ RT RANDOM
                                   :veces *10 FD RANDOM :veces *30 ]
                                   PD
                                   END

TO dibujar.triqui :veces :lado     TO casilla1 :lado
mover.al.azar :veces               casilla2 :lado SETH 270 FD :lado
tablero :lado                      SETH 0
END                                PD
                                   END
TO casilla2 :lado                  TO casilla3 :lado
PU SETH 0                          Casilla2 :lado SETH 90 FD :lado
FD :lado SETH 0                    SETH 0
PD                                 PD
END                                END

TO casilla4 :lado                  TO casilla6 :lado
PU SETH 270                        PU SETH 90
FD :lado SETH 0                    FD :lado SETH 0
PD                                 PD
END                                END

TO casilla7 :lado                  TO casilla8 :lado
casilla8 :lado SETH 270 FD :lado   PU SETH 180
SETH 0                             FD :lado SETH 0
PD                                 PD
END                                END
TO casilla9 :lado                             TO primer.tramo :lado
casilla8 :lado SETH 90 FD :lado               SETH 315
SETH 0                                        FD (3/4)*SQRT ( 2*( :lado /2)* ( :lado /2))
PD                                            BK (3/2)* SQRT ( 2*( :lado /2)* (:lado /2))
END                                           FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2))
                                              SETH 0
                                              END

TO segundo.tramo :lado                        TO circulo :lado
SETH 45                                       centro.casilla :lado
FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2))    ARC 360 :lado /2
BK (3/2)* SQRT ( 2*( :lado /2)* (:lado /2))   END
FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2))
SETH 0
END

To centro.casilla :lado                       TO equis :lado
FD :lado SETH 90 FD :lado SETH 0              primer.tramo :lado
END                                           segundo.tramo : :lado
                                              END
TO dibujar.triqui :veces :lado
mover.al.azar :veces
tablero :lado
END
ANEXO 2
Haciéndolo más legible con un valor predeterminado:

To cuadrado
REPEAT 4[FD 40 RT 90]
End

To objeto
cuadrado
FD 40 RT 90 PE FD 40 PPT
PU REPEAT 2[RT 90 FD 40]
PD RT 180
END

TO tablero
SETPENCOLOR 220 10 10
SETH 0
cuadrado
REPEAT 4[FD 40 objeto ]
END
ANEXO 3
Pruebe este sencillo programa para ver cómo se mueve la tortuga al azar

TO mover.al.azar :veces
IF :veces < 0 [MESSAGEBOX [ CUIDADO!] [Oye, no puedes usar un entero negativo!] STOP ]
IF :veces > 10 [MESSAGEBOX [ CUIDADO!] [Oh, Oh! Muchas vueltas, pón un número menor
que 10] STOP ]
PU SETH (REMAINDER 360 :veces*21)
REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ]
PD
SETPENCOLOR 225 10 10
SETTEXTSIZE 26 SETTEXTFONT [TAHOMA] LABEL [AQUI ESTOY!]
END
Anexo 4



                                    Juego del Triqui
                                 Observaciones generales

Logo ofrece un espacio bastante dúctil para el diseño y elaboración de juegos. Presentaremos
las ideas generales de cómo se desarrolló un proyecto para elaborar el juego del Triqui con
estudiantes de grado sexto.

Ya los estudiantes saben elaborar el procedimiento de un cuadrado y posicionar un cuadrado
en diferentes lugares (1), por tanto posicionar dos cuadrados consecutivos no es ningún
problema. Sin embargo un tablero de Triqui no es una secuencia de cuadrados propiamente
dicha; pues sólo el escaque del centro es cerrado, los demás son abiertos. Y esto es lo que se
les manifiesta a los estudiantes en forma de problema: “Dibujar el tablero de un Triqui.
Verifíquese en papel cuántas maneras hay, posibles de elaborarlo, partiendo de un cuadrado
base (2)”.

Entre los modos encontrados por los estudiantes tenemos:

   a) Modo en el que se dibujan los nueve cuadrados y posteriormente se borra el borde
      exterior del cuadrado grande formado por los nueve cuadrados base.
   b) Modo en se dibuja el cuadrado central, luego a otro cuadrado base se le borra un lado;
      posteriormente se posicionan cuatro de estos sobre los lados del cuadrado central.
   c) Modo en que dibuja una escalera de dos escalones, con el cuadrado base en el centro;
      se gira la estructura y se traslapan.

Otros modos que no tomaron el consideración la unidad base:

   a) Trazar dos rectas paralelas y perpendiculares dos a dos
   b) Trazar dos rectas paralelas, voltearlas en ángulo recto y traslaparlas (montarlas sobre
      las anteriores)

Veamos con algún detalle, alguno de ellos: Modo b)
Se considera el croquis del cuadrado base y a continuación se establecen los segmentos que
definirían el tablero. En la imagen los segmentos se ven en líneas punteadas.



En otro croquis se considera el cuadrado base y el segmento a eliminar de dicho cuadrado. El
segmento a eliminar, según el croquis es el segmento superior.




Ahora el cuadrado sin un segmento se ubicará sobre el segmento superior del cuadrado
central. En logo, la idea ya no es tan intuitiva, pues se requiere posicionar primero la tortuga
en un vértice, por ejemplo, y a continuación ejecutar el procedimiento que dibuje el cuadrado
sin el lado superior; nótese además que no se elimina cualquier lado sino el superior.
Una vez posicionado el cuadrado sin segmento superior, se realiza una copia y posteriormente
se gira 90 grados a la derecha para que el lado abierto quede hacia la derecha. Luego se
coloca en lugar señalado en el croquis.




Nuevamente, la idea es muy atractiva desde el punto de vista del papel y posiblemente desde
un editor gráfico. Pero desde la perspectiva de la programación en Logo la idea se vuelve un
poco engorrosa: a)se debe establecer posición anterior de la tortuga y b) se debe posicionar la
tortuga nuevamente para c) dibujar cuadrado sin segmento superior, previamente girado (3).
El siguiente escaque sigue el proceso del anterior. El análisis global del proceso puede dar una
idea muy enriquecedora de cómo utilizar la recursión en lugar de la iteración (4). Finalmente
se tiene el tablero




                                       Tablero terminado.
Después de analizar las distintas posibilidades, los estudiantes escogieron el método que más
les convino, según su parecer. El siguiente módulo es el trabajo resultante de un grupo de
trabajo:
El código se muestra tal como lo escribieron los estudiantes del grupo, con las observaciones
del docente:

       Código Logo para el Juego del Triqui. (Grupo del estudiante Huérfano, M. 601)
       TO BOLA
        PD ST
        SETH 90 REPEAT 4 [FD 20 RT 90] SETH 0
       END

       TO CASILLA1
        PU SETH 0 SETXY -50 50
       END

       TO CASILLA2
        PU SETH 0 SETXY -10 50
       END

       TO CASILLA3
        PU SETH 0 SETXY 30 50
       END

       TO CASILLA4
        PU SETH 0 SETXY -50 10
       END

       TO CASILLA5
        PU SETH 0 SETXY -10 10
       END

       TO CASILLA6
        PU SETH 0 SETXY -30 10
       END

       TO CASILLA7
       ;mejorar
        PU SETH 0 SETXY -50 30
       END

       TO CASILLA8
       ;mejorar
PU SETH 0 SETXY -10 30
       END

       TO CASILLA9
        PU SETH 0 SETXY 30 -30
       END

       TO CROQUIS
        CS
        PU SETXY -20      70 PD SETY -70
        PU SETXY 20       70 PD SETY -70
        PU SETXY -70      20 PD SETX 70
        PU SETXY -70      -20 PD SETX 70
       END

       TO EQUIS
        PD ST
        SETH 135 FD SQRT (800)
        SETH -90 PU FD 20 PD
        SETH 45 FD SQRT (800)
        PU HOME
       END

       TO JUGAR
        PR [ESCOJA:     EQUIS (X) O BOLITA (O)]
        MAKE "TECLA     READCHAR
        IF :TECLA =     "X [EQUIS STOP]
        IF :TECLA =     "O [BOLA STOP]
        JUGAR
       END

       TO LEER
        MAKE "TECLITA READCHAR
        IF :TECLITA = "1 [CASILLA1 JUGAR]
        IF :TECLITA = "2 [CASILLA2 JUGAR]
        IF :TECLITA = "3 [CASILLA3 JUGAR]
        IF :TECLITA = "4 [CASILLA4 JUGAR]
        IF :TECLITA = "5 [CASILLA5 JUGAR]
        IF :TECLITA = "6 [CASILLA6 JUGAR]
        IF :TECLITA = "7 [CASILLA7 JUGAR]
        IF :TECLITA = "8 [CASILLA8 JUGAR]
        IF :TECLITA = "9 [CASILLA9 JUGAR]
        LEER
       ;el posicionamiento en las casillas 6,7,8 y 9; falla
       END

       TO TRIQUI
       ;hay que mejorar el juego usando ventanas
       ;no es claro cuando se indica la casilla y la ficha
        CT
        CROQUIS
        LEER
       END




El presente trabajo se realizó con estudiantes de grado sexto del colegio John F. Kennedy, en el
año 2004. Enrique Araújoviedo.
(1) ver Trabajo y guías sobre posicionamiento de objetos en el sistema referencial.

(2) ver Trabajo y guías sobre construcción de figuras a partir de una unidad base.

(3) ver Trabajo y guías sobre operaciones sobre figuras y estructuras.

(4) ver Trabajo y guías sobre iteración y recursión.

Más contenido relacionado

Similar a Aproximación a la Didactica del Logo(Parte4)

Inteligencia Artificial del Juego SUDOKU SAMURAI
Inteligencia Artificial del Juego SUDOKU SAMURAIInteligencia Artificial del Juego SUDOKU SAMURAI
Inteligencia Artificial del Juego SUDOKU SAMURAISNPP
 
5 juegos ludicos para lograr destrezas del estudiante.
5 juegos ludicos para lograr destrezas del estudiante.5 juegos ludicos para lograr destrezas del estudiante.
5 juegos ludicos para lograr destrezas del estudiante.grupocooperativo49
 
Tema de investigacion del desarrollo del cubo derubik
Tema de investigacion del desarrollo del cubo derubikTema de investigacion del desarrollo del cubo derubik
Tema de investigacion del desarrollo del cubo derubikrosa montoya
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointnormaleticia16
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointnormaleticia16
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointnaumrivera
 
Planillas de cálculo electrónico - Conceptos básicos
Planillas de cálculo electrónico - Conceptos básicos Planillas de cálculo electrónico - Conceptos básicos
Planillas de cálculo electrónico - Conceptos básicos Ricardo Leithner
 
Compilacion curso de matematicas
Compilacion curso de matematicasCompilacion curso de matematicas
Compilacion curso de matematicasnoritatauro
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointnormaleticia16
 
Taller de tangram
Taller de tangramTaller de tangram
Taller de tangramnancytamara
 
Solución del cubo de rubik
Solución del cubo de rubikSolución del cubo de rubik
Solución del cubo de rubikalbertaco10
 
Dobble: el juego de salón que esconde un tesoro matemático
Dobble: el juego de salón que esconde un tesoro matemáticoDobble: el juego de salón que esconde un tesoro matemático
Dobble: el juego de salón que esconde un tesoro matemáticoAndrius Navas
 
Trabajo especial de computacion 6to "B" HMJ
Trabajo especial de computacion 6to "B" HMJTrabajo especial de computacion 6to "B" HMJ
Trabajo especial de computacion 6to "B" HMJXiorubeth Sanchez Cañas
 

Similar a Aproximación a la Didactica del Logo(Parte4) (20)

Inteligencia Artificial del Juego SUDOKU SAMURAI
Inteligencia Artificial del Juego SUDOKU SAMURAIInteligencia Artificial del Juego SUDOKU SAMURAI
Inteligencia Artificial del Juego SUDOKU SAMURAI
 
Rubik
RubikRubik
Rubik
 
Rubik
RubikRubik
Rubik
 
Rubik
RubikRubik
Rubik
 
Rubik
RubikRubik
Rubik
 
5 juegos ludicos para lograr destrezas del estudiante.
5 juegos ludicos para lograr destrezas del estudiante.5 juegos ludicos para lograr destrezas del estudiante.
5 juegos ludicos para lograr destrezas del estudiante.
 
Tema de investigacion del desarrollo del cubo derubik
Tema de investigacion del desarrollo del cubo derubikTema de investigacion del desarrollo del cubo derubik
Tema de investigacion del desarrollo del cubo derubik
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power point
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power point
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power point
 
Planillas de cálculo electrónico - Conceptos básicos
Planillas de cálculo electrónico - Conceptos básicos Planillas de cálculo electrónico - Conceptos básicos
Planillas de cálculo electrónico - Conceptos básicos
 
Calculo y resolucion de problemas
Calculo y resolucion de problemasCalculo y resolucion de problemas
Calculo y resolucion de problemas
 
Compilacion curso de matematicas
Compilacion curso de matematicasCompilacion curso de matematicas
Compilacion curso de matematicas
 
La tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power pointLa tierra y el sistema solar presentacion power point
La tierra y el sistema solar presentacion power point
 
Problemario 5c2b0-matematicas
Problemario 5c2b0-matematicasProblemario 5c2b0-matematicas
Problemario 5c2b0-matematicas
 
Taller de tangram
Taller de tangramTaller de tangram
Taller de tangram
 
Solución del cubo de rubik
Solución del cubo de rubikSolución del cubo de rubik
Solución del cubo de rubik
 
Dobble: el juego de salón que esconde un tesoro matemático
Dobble: el juego de salón que esconde un tesoro matemáticoDobble: el juego de salón que esconde un tesoro matemático
Dobble: el juego de salón que esconde un tesoro matemático
 
Mis logros oki
Mis logros okiMis logros oki
Mis logros oki
 
Trabajo especial de computacion 6to "B" HMJ
Trabajo especial de computacion 6to "B" HMJTrabajo especial de computacion 6to "B" HMJ
Trabajo especial de computacion 6to "B" HMJ
 

Más de SED - Fundación Galileo para el Desarrollo del Pensamiento, la Ciencia y la Tecnología

Más de SED - Fundación Galileo para el Desarrollo del Pensamiento, la Ciencia y la Tecnología (20)

Andrea, la niña descomplicada
Andrea, la niña descomplicadaAndrea, la niña descomplicada
Andrea, la niña descomplicada
 
El profe molina (v1)
El profe molina (v1)El profe molina (v1)
El profe molina (v1)
 
Acuerdos men fecode sept10-2013
Acuerdos men fecode sept10-2013Acuerdos men fecode sept10-2013
Acuerdos men fecode sept10-2013
 
La lógica de la sopa
La lógica de la sopaLa lógica de la sopa
La lógica de la sopa
 
El oficio de maestro mi profesora gloria ojeda
El oficio de maestro   mi profesora gloria ojedaEl oficio de maestro   mi profesora gloria ojeda
El oficio de maestro mi profesora gloria ojeda
 
Mi modelo, la pedagogia involuta
Mi modelo, la pedagogia involutaMi modelo, la pedagogia involuta
Mi modelo, la pedagogia involuta
 
Modelo pedagógico orientado al diseño
Modelo pedagógico orientado al diseñoModelo pedagógico orientado al diseño
Modelo pedagógico orientado al diseño
 
Glifos (ingenia)
Glifos (ingenia)Glifos (ingenia)
Glifos (ingenia)
 
Micromundos Para Desocupados Parte Ii
Micromundos Para Desocupados Parte IiMicromundos Para Desocupados Parte Ii
Micromundos Para Desocupados Parte Ii
 
Micromundos Para Desocupados Parte I
Micromundos Para Desocupados Parte IMicromundos Para Desocupados Parte I
Micromundos Para Desocupados Parte I
 
De La Idea Al Proyecto(Parte4)
De La Idea Al Proyecto(Parte4)De La Idea Al Proyecto(Parte4)
De La Idea Al Proyecto(Parte4)
 
Comprender Y Aprender2
Comprender Y Aprender2Comprender Y Aprender2
Comprender Y Aprender2
 
De La Idea Al Proyecto(Parte1)
De La Idea Al Proyecto(Parte1)De La Idea Al Proyecto(Parte1)
De La Idea Al Proyecto(Parte1)
 
Pres Logo 01
Pres Logo 01Pres Logo 01
Pres Logo 01
 
Cerebro,Ojo,Mano
Cerebro,Ojo,ManoCerebro,Ojo,Mano
Cerebro,Ojo,Mano
 
Juego De Polinomios
Juego De PolinomiosJuego De Polinomios
Juego De Polinomios
 
Teoria De Las Hileras
Teoria De Las HilerasTeoria De Las Hileras
Teoria De Las Hileras
 
Juego De Polinomios
Juego De PolinomiosJuego De Polinomios
Juego De Polinomios
 
Hileras De Dominos (Ejercicios Propuestos)
Hileras De Dominos (Ejercicios Propuestos)Hileras De Dominos (Ejercicios Propuestos)
Hileras De Dominos (Ejercicios Propuestos)
 
Aulas Inteligentes -Cuento-
Aulas Inteligentes -Cuento-Aulas Inteligentes -Cuento-
Aulas Inteligentes -Cuento-
 

Último

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 

Último (20)

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 

Aproximación a la Didactica del Logo(Parte4)

  • 1. Una aproximación a la Didáctica del Logo. (parte 4) Enrique Araujo Oviedo Docente de Informática, I.E.D John F. Kennedy Coordinador Red de Informática Educativa Localidad Octava, Rediel 8. enriquearaujoviedo@gmail.com LOGO, LOGO, ... LOGO. Sí, escrito en mayúsculas: el lenguaje para niños. Bueno esa no fue la idea que me vendieron en el pregrado. Pero sí las editoriales y la misma Secretaría de Educación; hasta compró equipos Atari para enseñar Logo en las escuelas!! De desquiciada nada tenía la idea, ni por un lado ni por la otra: los equipos Atari, para su época (1986) eran unas portentosas máquinas con cuatro (léase bién: cuatro) procesadores, pero con una escasa memoria (64K, 128K y en el mejor de los casos 512K, claro estaban los Atari ST de 1024Kb, pero esos no llegaron a la escuela). Del otro lado los cartridge (cartuchos) de Atari (en español) eran y siguen siendo de lo mejor, pues que éste lenguaje lo que ha hecho es crecer y mejorar cada vez. Bueno desde esa época y desde su diseño inicial LOGO ha sido un lenguaje de programación bastante serio, basado precisamente en otro lenguaje muy poderoso como el LISP. Desde esa época a ésta se nos ha escapado ese detalle precisamente: las listas y la estructura de pensamiento subyacente en el manejo de las listas. Eso sí es lo que hay que enseñarle a un niño: manejo de listas y la lógica de programación por listas. LOGO de alguna manera ha conseguido a pesar de sus instructores y nosotros los maestros que los niños adquieran unas valencias, que en la mayoría de los casos escapan a nuestro control, desgraciadamente por no poseer ni estructuras de programación (no ser programadores) ni conocer /dominar el lenguaje en su totalidad (desconocer la lógica de programación funcional, ya mayoría todavía cree que la lógica de programación de LOGO es procedimental). Bueno, el asunto a tratar en éste artículo es ese: cómo enseñar a los niños a adquirir las estrategias de programación funcional, adquirir dominio del manejo de listas, observar cómo las sentencias Logo son listas y resolver problemas utilizando listas, e.d, programando soluciones en logo. Y todo esto para niños de grado sexto (10-12 años, aprox.)! Lo primero sí es dar a conocer las primitivas Logo gráficas, especialmente las relativas a las coordenadas referenciales. Realizar ejercicios en los que se involucren operaciones aritméticas en los argumentos de los comandos. Así por ejemplo: FD 20*10, BK (2*10+3*60) ó RT 3*90 (tomo como referencia el Logo en inglés, por ser el Logo estándar). Con éste tipo de situaciones lo que se busca es que el estudiante distinga perfectamente que existen dos elementos en éstas sentencias Logo: una parte literal (la cabeza) y una parte numérica (la cola). Y que en general cualquier sentencia Logo, por compleja que sea es una lista que posee éstos dos elementos: cabeza y cola. Simbólicamente: [ cabeza cola ] o (cabeza, cola). Y que además ésta lista se puede representar por un grafo (ver teoría de grafos, [ORE86] ) llamado árbol.
  • 2. Entonces, en los ejemplos precedentes tenemos: LISTA CABEZA COLA FD 20*10 FD 20*10 BK (2*10+3*60) BK (2*10+3*60) RT 3*90 RT 3*90 Tabla 1 No importa que tan compleja pueda ser una operación aritmética, es una sola entidad. Sin embargo si existen unas listas que generan ciertas dudas, por ejemplo la lista: REPEAT 4[ FD 100 RT 90] Veamos: LISTA CABEZA COLA REPEAT 4[ FD 100 RT 90] REPEAT 4[ FD 100 RT 90] 4[ FD 100 RT 90] 4 [ FD 100 RT 90] [ FD 100 RT 90] FD 100 RT 90 FD 100 FD 100 RT 90 RT 90 Tabla 2 O en otras palabras: [ CABEZA [ CABEZA [ [ CABEZA COLA] [ CABEZA COLA] ] ] ] Pensar de ésta manera no es fácil; y menos aún resolver problemas reformulándolos de éste modo. Se pensaría que para un niño la cosa es muy compleja y difícil y que por tanto es mejor
  • 3. no enseñárselo. Nada más erróneo! El tipo de pensamiento que subyace al Logo se denomina “sintético” y proviene del “análisis sintético”, que a diferencia del pensamiento analítico (que se especializa en descomponer un todo en sus partes y estudiarlas por separado) se encarga de observar un elemento particular de un todo, conservando el todo mismo. Una vez familiarizado el niño resuelve problemas interesantes con éste método. Podemos colocarle un ejercicio como el siguiente: “escriba como una lista el sistema solar”. Solución: LISTA CABEZA COLA [ SOL PLANETAS ] SOL PLANETAS [ PLAN_MAY PLAN_MEN ] PLANETAS MAYORES PLANETAS MENORES PLANETAS MAYORES URANO NEPTUNO JÚPITER SATURNO PLANETAS MENORES PLUTÓN TIERRA VENUS MARTE MERCURIO Tabla 3 Obteniéndose la lista: [ SOL [ URANO NEPTUNO JÚPITER SATURNO PLUTÓN TIERRA VENUS MARTE MERCURIO] ] ¿ Importa acaso el orden de los planetas? Observése cómo la lista del sistema solar tiene únicamente dos elementos, pero la lista constituída por la cola pareciera ser distinta si se consideran « planetas mayores » y « planetas menores » como puede verse en las filas 2 a 4 de la tabla 3: Las Listas L1:: [ PLAN_MAY PLAN_MEN ] y L2:: [PLANETAS MAYORES PLANETAS MENORES] son por supuesto iguales. Ahora L3:: [PLANETAS MAYORES]  [ URANO NEPTUNO JÚPITER SATURNO] y L4:: [PLANETAS MAYORES]  [PLUTÓN TIERRA VENUS MARTE MERCURIO]. En L3 la CABEZA  URANO y la COLA  [ NEPTUNO JÚPITER SATURNO]. Nota: el símbolo  se usa para establecer equivalencias entre listas y el símbolo  para establecer equivalencia entre elementos de una lista. En otro artículo hé comentado acerca de las diferencias y similitudes de LOGO y LISP en el manejo de las listas y sus operadores (“Lo que va del Lisp al Logo y otras minucias...”) , por
  • 4. ahora bástenos saber que no es difícil para el estudiante de grado sexto comprender la lógica del manejo de listas; muy por el contrario, es como un chicle en la boca. Y bién en qué quedó nuestro ejercicio? Pues que el estudiante puede observar que la estructura final del ejercicio es una lista de la forma: [ CABEZA [CABEZA COLA] ] y no importa qué tan grande pueda ser la cola y que ésta a su vez sea una lista. Se preguntará el docente: ¿Y cuál es la ganancia cognitiva que obtiene el estudiante de grado sexto al manipular listas en lugar de aprender a manipular comandos Logo directamente? Pues que adquiere la lógica de solución de problemas en Logo, o sea su formulación y representación por listas, lo que hace fácil la estructuración modular de la propuesta de programación. Veamos un ejemplo, supongamos que se pide a los niños que elaboren “el juego del triqui” para ser jugado por dos jugadores utilizando la máquina como tablero (Obsérvese que éste es un problema débilmente estructurado). ¿Qué hacen los niños? ¿Qué hace el maestro? Vamos por partes, resolvamos la inquietud acerca de qué debe hacer el docente. Mostrar a los niños que “el juego del triqui” tiene un tablero de la forma: El tablero está constituido por dos líneas paralelas horizontales, perpendiculares a otras dos líneas paralelas verticales. Una manera de realizarlo sería trazar primero una paralela horizontal y luego la otra, siguiendo la lógica visual. Pero la manera eficiente de construir el tablero no es esa; se requiere una unidad básica y a partir de ésta realizar el resto por modularidad y con reusabilidad de código. Tablero del juego del Triqui. unidad base Prototipo del tablero Se propone que la unidad base sea un Fig. 1 cuadrado y a partir de éste se construya el tablero. Fig. 2 Observemos más en detalle: Fig. 3. El tablero está constituido por cinco cuadrados: uno central, dos Fig. 4. Aquí se ha considerado el tablero central y los cuadrados en verticales, arriba y abajo; y, dos horizontales, a derecha e izquierda del líneas punteadas, borrando uno de sus lados. Si se observa con
  • 5. cuadrado central. Aunque debe considerarse que el tablero realmente detenimiento ésta es la única acción a realizar sobre el cuadrado tiene nueve (9) casillas o escaques. central: borrar un segmento y al objeto resultante aplicarle sucesivas rotaciones. Con esto ya se tienen los módulos de construcción. Entonces los módulos de construcción son: etapa 1: crear cuadrado etapa 2: crear objeto Fig. 5. Un cuadrado que sirve de Fig. 6. Un cuadrado al que se le unidad base y corresponde al ha borrado un segmento (que cuadrado central. aparece punteado en el dibujo) y que se constituye en el objeto a operar. El objeto soporte (cuadrado sin un etapa 3: sumar objeto a base etapa 4: rotar objeto 90 grados segmento) se rotará tres veces sucesivas, aplicándosele una rotación a derecha de 90 grados cada vez. etapa 5: rotar objeto 180 grds etapa 6: rotar objeto 270 grds Fig. 8 Nota adicional: el tablero debe poderse dibujar en cualquier sitio dela pantalla, por tanto basta clicar en un punto de la pantalla para que éste sea el punto centro del tablero, leyendo Logo las coordenadas. En Logo como sabemos tendríamos el siguiente código para los módulos “unidad base” y “objeto”. To cuadrado :lado REPEAT 4[FD :lado RT 90] End To objeto :lado cuadrado :lado
  • 6. FD :lado RT 90 PE FD :lado PPT PU REPEAT 2[RT 90 FD :lado ] PD RT 180 END TO tablero :lado « aquí leer las coordenadas del punto actual » CS « borra pantalla » cuadrado :lado « dibuja cuadrado central » REPEAT 4[FD :lado objeto :lado] « dibuja las casillas » END Basta, escribir en la línea de sentencias: tablero 50 para obtener un tablero apropiado. Un lado de 100 es más que suficiente, por lo que valdría la pena establecer restricciones máximo 70 y mínimo 30. Quedaría el módulo así: TO tablero :lado IF (OR :lado < 30 :lado >70) [PR [no se puede dibujar] STOP] « examina rango de trabajo » CS « borra pantalla » cuadrado :lado « dibuja cuadrado central » REPEAT 4[FD :lado objeto :lado RT 90] « dibuja las casillas » END Capturar las coordenadas del lugar donde se encuentra el cursor lo detallaremos más adelante, por ahora bástenos que podamos dibujar el tablero del triqui. Además debemos considerar el hecho que el tablero se pueda dibujar dentro del área de trabajo. Obviamente ésta no es la única manera de trazar el tablero del triqui, pero es la más apropiada para mostrar la modularidad y la reusabilidad de código (En el apéndice presento otra manera, que no me parece la mejor pero cada quien “mata sus pulgas a su manera” reza un adagio popular. Y en programación esto sí que es cierto: nadie programa igual a otra persona). Sigamos. El nuevo problema que debe presentar el docente a sus alumnos consiste en ubicar cada casilla a través de algún mecanismo para trazar luego la ficha correspondiente. Supongamos el problema así: Juanito y Juanita están jugando, ya dibujaron el tablero en la parte superior de la pantalla. Juanita empieza primero y seleccionó la casilla superio-izquierda para colocar su ficha que es un círculo, ¿cómo hace juanita para llegar hasta esa casilla para dibujar su círculo? Ataquemos pues el problema. Se sabe que Logo posee de manera subyacente un sistema de coordenadas cartesianas, esto es que a cada punto del área de trabajo le corresponde un par de coordenadas (xCor, yCor) que fijan su posición. Así pues de lo que se trata entonces es de localizar las coordenadas del punto centro de cada casilla, y para ello basta con saber las coordenadas de la casilla central, es decir el punto donde “se hizo clic” para dibujar el tablero. Entonces de lo que se trata es de
  • 7. capturar las coordenadas del punto donde se hizo clic con el botón izquierdo del mouse. Esto realmente no es difícil porque Logo trae estos comandos, lo realmente interesante es cómo plantearle al estudiante la pregunta para que se vea motivado a consultar en el lenguaje las posibilidades. Para efectos prácticos reduciré el problema a uno equivalente en el que el mouse aún no tenga nada que ver, precisamente para efectos didácticos. Consideremos que podemos mover la tortuga al azar hasta que presionemos enter o cualquier otra tecla. Y en el sitio que quede la tortuga se dibuje el tablero, esta vez pondremos la condición que no se borren los tableros anteriores. Mover la tortuga al azar. Logo trae el comando RANDOM que tiene el siguiente formato: RANDOM num. Esta instrucción Logo devuelve un entero positivo menor que el del argumento, que servirá de entrada al comando deseado. Así por ejemplo podemos escribir: FD RANDOM 100. Logo devolverá un entero positivo menor que 100, supongamos 75 y éste servirá de argumento a FD, quedando pues FD RANDOM 100  FD 75 (¿recuerda las equivalencias entre listas, arriba mencionadas?) Como se trata de que se mueva al azar un poco más, consideremos que podemos rotar la tortuga también aleatoriamente un número arbitrario de veces. Tenemos pues el procedimiento mover.al.azar : TO mover.al.azar :veces PU HOME REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] PD END Este sería un procedimiento para luego ser incluido como módulo dentro de un procedimiento dibuja.tablero . O una versión empeorada si se va a trabajar desde la línea de sentecias: TO mover.al.azar :veces IF :veces < 0 [PR [Oye, no puedes usar un entero negativo!] STOP ] IF :veces > 10 [PR [Oh, Oh! Muchas vueltas, pón un número menor que 10] STOP ] PU HOME REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] PD END O más complejo:
  • 8. TO mover.al.azar :veces IF :veces < 0 [MESSAGEBOX [ CUIDADO!] [Oye, no puedes usar un entero negativo!] STOP ] IF :veces > 10 [MESSAGEBOX [ CUIDADO!] [Oh, Oh! Muchas vueltas, pón un número menor que 10] STOP ] PU SETH (REMAINDER 360 :veces*21) REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] PD END Por supuesto que se pueden poner todas las restricciones del caso. Por ejemplo: podemos querer que rote una vez a la derecha y otra a la izquierda o que rote un número al azar de veces a la derecha y luego una vez a la izquierda. Para el primer caso basta agregar LT como cola de la lista [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] quedando: [ RT RANDOM :veces *10 FD RANDOM :veces *30 LT RANDOM :veces *5 ] para el segundo caso hay que agregar otro RANDOM en la cabeza de la lista: [ REPEAT RANDOM RT 360/:veces [RANDOM :veces *10 FD RANDOM :veces *30] LT RANDOM :veces *5 BK RANDOM :veces *15] consiguiendo una tortuga completamente loca! Pero para no complicarnos tanto (por ahora...) dejemos el primer procedimiento mover.al.azar . Bueno ya tenemos una tortuga que se mueve al azar, pero que puede salirse de pantalla. Esto lo resolveremos después. Por ahora concentrémonos en mover la tortuga y dibujar después. Tenemos: TO dibujar.triqui :veces :lado mover.al.azar :veces tablero :lado END La única dificultad que usualmente se le presenta al estudiante es recordar que debe introducir el valor de las variables asociadas y en qué orden. Hay que trabajar en ello. El siguiente problema a abordar será pues el de dibujar las fichas. Después abordaremos el de posicionarla en cualquiera de las casillas. Consideremos eso sí el hecho que la ficha debe quedar dentro de una casilla. Recordemos que cada casilla es un cuadrado porque con ésta intención lo definimos desde el comienzo. El que cada casilla fuera un cuadrado nos sirve porque así podemos fácilmente calcular su punto centro bien como el punto de corte de sus diagonales o como un recorrido simple de dos segmentos medios perpendiculares que parte de un vértice. Supongamos por ahora que el punto centro de una casilla tiene coordenadas (xc, yc).
  • 9. Fig. 9a. Método por diagonales Fig. 9b. Método por trayectoria de segmentos medios Sabemos que el cuadrado tiene segmentos de longitud :lado. Por tanto para llegar al punto centro por el método de la figura 9a, sería: To centro.casilla :lado SETH 45 FD SQRT ( 2*( :lado /2)* (:lado /2)) END Pues se trata de la hipotenusa de un triángulo rectángulo con catetos de longitud :lado. Y por el método de la figura 9b, sería: To centro.casilla :lado FD :lado SETH 90 FD :lado SETH 0 END Una vez escogido el método de llegar al centro dela casilla se dibuja la ficha según el turno del jugador. Podemos hacer controlado el turno o libre, es decir que sea el jugador el que escriba la ficha que le corresponde. En caso contrario sería el computador el que decida si la ficha jugada es correcta según el turno o no. Tomemos por comodidad el caso libre. Las fichas a dibujar son un circulo y una équis. Caso ficha équis. Veamos las siguientes figuras ilustrativas que nos ayudarán a elaborar el procedimiento. Fig. 10a Ubicamos el centro Fig. 10b. Trazamos primer tramo Fig. 10c. Nos devolvemos Fig. 10d.Trazamos segundo tramo
  • 10. Fig. 10e nos devolvemos Fig. 10f. Hemos trazado la équis Fig. 10g. Y ahora qué hacer? El procedimiento realmente es muy sencillo: TO equis :lado centro.casilla :lado primer.tramo :lado segundo.tramo :lado END TO primer.tramo :lado SETH 315 « da la orientación del tramo a la tortuga » FD (3/4)*SQRT ( 2*(:lado /2)* ( :lado /2)) « avanza tres cuartos de la semidiagonal desde el centro » BK (3/2)* SQRT ( 2*(:lado /2)* (:lado /2)) « retrocede trazando dos semidiagonales » FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2)) « se devuelve al centro » SETH 0 « establece orientación estándar » END TO segundo.tramo :lado SETH 45 FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2)) BK (3/2)* SQRT ( 2*(:lado /2)* (:lado /2)) FD (3/4)*SQRT ( 2*(:lado /2)* (:lado /2)) SETH 0 END Abordemos ahora, el trazado de la ficha círculo. Caso ficha circulo. Con ésta ficha si no tendremos ningún inconveniente pues Logo dispone de una procedimiento ARC, cuyo formato es ARC ángulo radio. Nota: The turtle does not move in this command. It draws an arc (part of a circle) based on the turtle heading, turtle position and the given arguments. The arc starts at the rear of the turtle heading. The size is based on the radius. The current turtle position will be at the center of
  • 11. the arc. Arc will also follow wrap/fence/windows modes. ARC 360 radius will of course draw a circle. TO circulo :lado centro.casilla :lado ARC 360 :lado/2 END Así pues ya tenemos tablero y fichas. Entonces a jugar!!! Eh, éh! Un momento y cómo posicionamos las fichas en las casillas? Establezcamos para resolver éste problema lo siguiente: leemos el tablero de izquierda a derecha y de arriba hacia abajo en trama de zeta. Para hacerlo más claro, numerémos cada casilla de 1 a 9 así: 1 2 3 4 5 6 7 8 9 Fig. 11 Tomando como referencia la casilla del centro podemos ir a cualquier otra, de acuerdo a los siguientes esquemas: Fig. 12a. Camino a la casilla 2. Fig. 12b. Camino a la casilla 8 Fig. 12c. Camino a la casilla 4 Fig. 12d. Camino a la casilla 6 Fig. 12e. Camino a la casilla 1 Fig. 12f. Camino a la casilla 7 Fig. 12g. Camino a la casilla 3 Fig. 12h. Camino a la casilla 9
  • 12. Hé dispuesto los esquemas de talmodo que se puedan observar las trayectorias de acuerdo a su simétrica. Así la figura 12a. (trayectoria hacia la casilla 2) tiene como simétrica a la figura 12b. (trayectoria hacia la casilla 8) , así sucesivamente. Esto lo puede observar fácilmente un niño de grado sexto si posee precurrentes de simetría (simetría axial, preferentemente). Los procedimientos se realizan por código simétrico: TO casilla2 :lado TO casilla8 :lado PU SETH 0 PU SETH 180 FD :lado SETH 0 FD :lado SETH 0 PD PD END END TO casilla4 :lado TO casilla6 :lado PU SETH 270 PU SETH 90 FD :lado SETH 0 FD :lado SETH 0 PD PD END END TO casilla1 :lado TO casilla7 :lado casilla1 SETH 270 casilla8 SETH 270 FD :lado SETH 0 FD :lado SETH 0 PD PD END END TO casilla3 :lado TO casilla9 :lado casilla1 SETH 90 casilla8 SETH 90 FD :lado SETH 0 FD :lado SETH 0 PD PD END END El juego se puede depurar muchísmo más, pero para el caso es más que suficiente. A propósito, un poquito largo el ejemplo, ¿no? Muy bonito todo eso, se preguntará el lector. Pero qué tiene que ver todo esto con las listas? A qué horas vuelven a aparecer? Bueno el asunto es que siempre estuvimos manipulando listas. Cada subproblema conducía a elaborar un procedimiento que se convierte en módulo dentro de otro procedimiento. Esto es una lista dentro de otra lista.
  • 13. NOTA FINAL: Recuerde apreciado colega, que la didáctica es un asunto el maestro no del alumno, así que lo visto en el presente artículo estaba dirigido exclusivamente al docente. No se puede implementar éste trabajo directamente al alumno, sería un exabrupto. Como dice Jimmy Neutrón: no lo intentes en casa! Hay que dosificarlo al nivel de los alumnos, cada colegio tiene sus particularidades y sus propios niveles de crecimiento y desarrollo por tanto sus alumnos poseen unas características diferenciales que deben ser tomadas en cuenta a la hora de aplicar un trabajo como el presente.
  • 14. Anexo 1 Todo el código completo. To cuadrado :lado To objeto :lado REPEAT 4[FD :lado RT 90] cuadrado :lado End FD :lado RT 90 PE FD :lado PPT PU REPEAT 2[RT 90 FD :lado ] PD RT 180 END TO tablero :lado TO mover.al.azar :veces CS IF :veces < 0 [MESSAGEBOX [ CUIDADO!] cuadrado :lado [Oye, no puedes usar un entero negativo!] REPEAT 4[FD :lado objeto :lado] STOP ] END IF :veces > 10 [MESSAGEBOX [ CUIDADO!] [Oh, Oh! Muchas vueltas, pón un número menor que 10] STOP ] PU SETH (REMAINDER 360 :veces*21) REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] PD END TO dibujar.triqui :veces :lado TO casilla1 :lado mover.al.azar :veces casilla2 :lado SETH 270 FD :lado tablero :lado SETH 0 END PD END TO casilla2 :lado TO casilla3 :lado PU SETH 0 Casilla2 :lado SETH 90 FD :lado FD :lado SETH 0 SETH 0 PD PD END END TO casilla4 :lado TO casilla6 :lado PU SETH 270 PU SETH 90 FD :lado SETH 0 FD :lado SETH 0 PD PD END END TO casilla7 :lado TO casilla8 :lado casilla8 :lado SETH 270 FD :lado PU SETH 180 SETH 0 FD :lado SETH 0 PD PD END END
  • 15. TO casilla9 :lado TO primer.tramo :lado casilla8 :lado SETH 90 FD :lado SETH 315 SETH 0 FD (3/4)*SQRT ( 2*( :lado /2)* ( :lado /2)) PD BK (3/2)* SQRT ( 2*( :lado /2)* (:lado /2)) END FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2)) SETH 0 END TO segundo.tramo :lado TO circulo :lado SETH 45 centro.casilla :lado FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2)) ARC 360 :lado /2 BK (3/2)* SQRT ( 2*( :lado /2)* (:lado /2)) END FD (3/4)*SQRT ( 2*( :lado /2)* (:lado /2)) SETH 0 END To centro.casilla :lado TO equis :lado FD :lado SETH 90 FD :lado SETH 0 primer.tramo :lado END segundo.tramo : :lado END TO dibujar.triqui :veces :lado mover.al.azar :veces tablero :lado END
  • 16. ANEXO 2 Haciéndolo más legible con un valor predeterminado: To cuadrado REPEAT 4[FD 40 RT 90] End To objeto cuadrado FD 40 RT 90 PE FD 40 PPT PU REPEAT 2[RT 90 FD 40] PD RT 180 END TO tablero SETPENCOLOR 220 10 10 SETH 0 cuadrado REPEAT 4[FD 40 objeto ] END
  • 17. ANEXO 3 Pruebe este sencillo programa para ver cómo se mueve la tortuga al azar TO mover.al.azar :veces IF :veces < 0 [MESSAGEBOX [ CUIDADO!] [Oye, no puedes usar un entero negativo!] STOP ] IF :veces > 10 [MESSAGEBOX [ CUIDADO!] [Oh, Oh! Muchas vueltas, pón un número menor que 10] STOP ] PU SETH (REMAINDER 360 :veces*21) REPEAT RANDOM :veces [ RT RANDOM :veces *10 FD RANDOM :veces *30 ] PD SETPENCOLOR 225 10 10 SETTEXTSIZE 26 SETTEXTFONT [TAHOMA] LABEL [AQUI ESTOY!] END
  • 18. Anexo 4 Juego del Triqui Observaciones generales Logo ofrece un espacio bastante dúctil para el diseño y elaboración de juegos. Presentaremos las ideas generales de cómo se desarrolló un proyecto para elaborar el juego del Triqui con estudiantes de grado sexto. Ya los estudiantes saben elaborar el procedimiento de un cuadrado y posicionar un cuadrado en diferentes lugares (1), por tanto posicionar dos cuadrados consecutivos no es ningún problema. Sin embargo un tablero de Triqui no es una secuencia de cuadrados propiamente dicha; pues sólo el escaque del centro es cerrado, los demás son abiertos. Y esto es lo que se les manifiesta a los estudiantes en forma de problema: “Dibujar el tablero de un Triqui. Verifíquese en papel cuántas maneras hay, posibles de elaborarlo, partiendo de un cuadrado base (2)”. Entre los modos encontrados por los estudiantes tenemos: a) Modo en el que se dibujan los nueve cuadrados y posteriormente se borra el borde exterior del cuadrado grande formado por los nueve cuadrados base. b) Modo en se dibuja el cuadrado central, luego a otro cuadrado base se le borra un lado; posteriormente se posicionan cuatro de estos sobre los lados del cuadrado central. c) Modo en que dibuja una escalera de dos escalones, con el cuadrado base en el centro; se gira la estructura y se traslapan. Otros modos que no tomaron el consideración la unidad base: a) Trazar dos rectas paralelas y perpendiculares dos a dos b) Trazar dos rectas paralelas, voltearlas en ángulo recto y traslaparlas (montarlas sobre las anteriores) Veamos con algún detalle, alguno de ellos: Modo b)
  • 19. Se considera el croquis del cuadrado base y a continuación se establecen los segmentos que definirían el tablero. En la imagen los segmentos se ven en líneas punteadas. En otro croquis se considera el cuadrado base y el segmento a eliminar de dicho cuadrado. El segmento a eliminar, según el croquis es el segmento superior. Ahora el cuadrado sin un segmento se ubicará sobre el segmento superior del cuadrado central. En logo, la idea ya no es tan intuitiva, pues se requiere posicionar primero la tortuga en un vértice, por ejemplo, y a continuación ejecutar el procedimiento que dibuje el cuadrado sin el lado superior; nótese además que no se elimina cualquier lado sino el superior.
  • 20. Una vez posicionado el cuadrado sin segmento superior, se realiza una copia y posteriormente se gira 90 grados a la derecha para que el lado abierto quede hacia la derecha. Luego se coloca en lugar señalado en el croquis. Nuevamente, la idea es muy atractiva desde el punto de vista del papel y posiblemente desde un editor gráfico. Pero desde la perspectiva de la programación en Logo la idea se vuelve un poco engorrosa: a)se debe establecer posición anterior de la tortuga y b) se debe posicionar la tortuga nuevamente para c) dibujar cuadrado sin segmento superior, previamente girado (3).
  • 21. El siguiente escaque sigue el proceso del anterior. El análisis global del proceso puede dar una idea muy enriquecedora de cómo utilizar la recursión en lugar de la iteración (4). Finalmente se tiene el tablero Tablero terminado. Después de analizar las distintas posibilidades, los estudiantes escogieron el método que más les convino, según su parecer. El siguiente módulo es el trabajo resultante de un grupo de trabajo:
  • 22. El código se muestra tal como lo escribieron los estudiantes del grupo, con las observaciones del docente: Código Logo para el Juego del Triqui. (Grupo del estudiante Huérfano, M. 601) TO BOLA PD ST SETH 90 REPEAT 4 [FD 20 RT 90] SETH 0 END TO CASILLA1 PU SETH 0 SETXY -50 50 END TO CASILLA2 PU SETH 0 SETXY -10 50 END TO CASILLA3 PU SETH 0 SETXY 30 50 END TO CASILLA4 PU SETH 0 SETXY -50 10 END TO CASILLA5 PU SETH 0 SETXY -10 10 END TO CASILLA6 PU SETH 0 SETXY -30 10 END TO CASILLA7 ;mejorar PU SETH 0 SETXY -50 30 END TO CASILLA8 ;mejorar
  • 23. PU SETH 0 SETXY -10 30 END TO CASILLA9 PU SETH 0 SETXY 30 -30 END TO CROQUIS CS PU SETXY -20 70 PD SETY -70 PU SETXY 20 70 PD SETY -70 PU SETXY -70 20 PD SETX 70 PU SETXY -70 -20 PD SETX 70 END TO EQUIS PD ST SETH 135 FD SQRT (800) SETH -90 PU FD 20 PD SETH 45 FD SQRT (800) PU HOME END TO JUGAR PR [ESCOJA: EQUIS (X) O BOLITA (O)] MAKE "TECLA READCHAR IF :TECLA = "X [EQUIS STOP] IF :TECLA = "O [BOLA STOP] JUGAR END TO LEER MAKE "TECLITA READCHAR IF :TECLITA = "1 [CASILLA1 JUGAR] IF :TECLITA = "2 [CASILLA2 JUGAR] IF :TECLITA = "3 [CASILLA3 JUGAR] IF :TECLITA = "4 [CASILLA4 JUGAR] IF :TECLITA = "5 [CASILLA5 JUGAR] IF :TECLITA = "6 [CASILLA6 JUGAR] IF :TECLITA = "7 [CASILLA7 JUGAR] IF :TECLITA = "8 [CASILLA8 JUGAR] IF :TECLITA = "9 [CASILLA9 JUGAR] LEER ;el posicionamiento en las casillas 6,7,8 y 9; falla END TO TRIQUI ;hay que mejorar el juego usando ventanas ;no es claro cuando se indica la casilla y la ficha CT CROQUIS LEER END El presente trabajo se realizó con estudiantes de grado sexto del colegio John F. Kennedy, en el año 2004. Enrique Araújoviedo.
  • 24. (1) ver Trabajo y guías sobre posicionamiento de objetos en el sistema referencial. (2) ver Trabajo y guías sobre construcción de figuras a partir de una unidad base. (3) ver Trabajo y guías sobre operaciones sobre figuras y estructuras. (4) ver Trabajo y guías sobre iteración y recursión.