[Sur] Posibles mejoras turtleart
Luis Michelena
luis.michelena en gmail.com
Mie Oct 15 14:12:14 EDT 2008
Quería hacer una consulta a titulo personal sobre turtleart.
Desde siempre he sido un enamorado de logo y esta reencarnación me gusta
mucho, junto con scratch.
Hace un tiempo que estoy haciendo algunas pruebas con turtleart y me han
dado ganas de ampliar turtle art un poco.
La idea es crear:
variables de tipo cadena
variables de tipo booleano(si o no)
permitir crear:
variables de tipo cadena de caracteres
procedimientos nominados, y no solo stack1 o stack2
pasaje explicito de parámetros, que permita hacer recursión
funciones(definidas dentro de TA y no usando python) con tipo
explicito de salida(numérico, booleano o cadena), que permitan utilizar su
salida en llamadas, por ejemplo a avanzar. Y permitan definir alcance local
de los parámetros.
La idea es poner algunas primitivas nuevas:
evaluar "pepito" para llamar a la función booleana pepito
calcular "pepito" para llamar a la función entera
obtener palabra de "pepito" para llamar a la función de cadena pepito
hacer "pepito" para ejecutar el procedimiento pepito.
Por eso les quería preguntar si les parece que sería un cambio útil desde el
punto de vista pedagógico y didáctico: por ejemplo permitirles definir su
multiplicación como multiplicación iterada o con definición recursiva.
La razón de esta proposición es que me parece que no es demasiado intuitivo
que una vez llamar a stack1 signifique hacer una estrella y al siguiente sea
hacer un polígono regular. Además para muchas cosas dos procedimientos y
variables me resultan por demás pocos para algunos problemas. Además que la
resolución de problemas es más entendible cuando se permite llamar las cosas
por su nombre y modularizar las acciones para permitir trabajar en distintos
niveles de abstracción además que la resolución en forma recursiva me parece
que es intuitiva y permite obtener resultados muy vistosos en forma
relativamente simple... por ejemplo para hacer una forma fractal.
La idea de permitir las funciones de cadena es que me parece que, por
ejemplo (y tomando las practicas con letras ya comentadas en la lista), que
estaría muy bueno poder hacer una función que dibuje cada letra (incluido el
espacio) y después una función que tome una cadena y haga:
para escribir_oracion oracion:
largo_oración=largo(oración)
iterar pos entre 1 y largo_oracion:
letra=posicion pos de oracion
hacer escribir_letra letra
derecha 90
avanzar 10
izquierda 90
que les permitiría hacer lo que quieren hacer a los niños y como contenido
actitudinal los induciría a intentar ir resolviendo los problemas
partiéndolos en problemas más pequeños.
Como trabajo a futuro, me pregunto si les resultaría interesante la
posibilidad de poder importar en un script otros archivos .ta como librerías
de funciones que les permita utilizar lo producido antes por ellos o otros.
Y que haya una pestaña especial en TA que sea compartiendo (o algo así), que
se habilite cuando se está en una instancia compartida, que permita pasarse
con el compañero los archivos de ta que ya hice o que el me mande alguno que
hizo.
Además generar otro formato de archivo de TA que sea (casi) un archivo logo
correcto, porque el formato actual no es muy legible. Esto permitiría pasar
más adelante a versiones más potentes de logo sin perder lo ya hecho.
Y por último crear una interfaz amigable que permita agregar nuevas
funcionalidades más avanzadas utilizando python, del estilo de la raíz
cuadrada, en forma visual. un ejemplo de esto sería por ejemplo en el caso
de querer dibujar un triángulo rectángulo, poder definir(o utilizando la
función predefinida correspondiente de python) la función arcotangente, que
era una de las herramientas idóneas para ese problema:
para triangulorectangulo cateto1 cateto2:
avanzar cateto1
derecha 90
avanzar cateto2
hipotenusa=raizcuadrada ((cateto1 * cateto1) + (cateto2 * cateto2))
dirección=180 - arcotangente(cateto1/cateto2)
derecha direccion
avanzar hipotenusa
o
para triangulorectangulo hipotenusa angulo:
avanzar hipotenusa
retrocede rhipotenusa
derecha angulo
avanzar hipotenusa * coseno(angulo)
izquierda 90
avanzar hipotenusa * seno(angulo)
lo que me parece que sería una linda forma de ir entrándose en la idea de
trigonometría, que es un concepto que nace naturalmente al necesitar hacer
un manejo cualitativo de la geometría(que es un aspecto casi diría
intrínseco de logo y por herencia de TA), para hacerlo menos árido, podría
ser utilizado el dibujar una casa en su encarnación más típica, cuando el
techo no está inclinado a 45 o 60 grados.
Felicidades a los que llegaron hasta acá ;)
Como añadidura, me pongo a la disposición en caso que les interese una
charla sobre formas de abordar este tema en el aula, o gracias al tutorial
de Walter, hacer un pequeño taller "hands on" sobre como trasladar funciones
disponibles en python a turtleart, que significaría un pequeño paseo por
turtleArt, paint, develop(o aunque sea vi si develop no está pronto), y
python(aunque en este paso el código de TA no es el más adecuado). Aunque
claro me tienen que dar un tiempito para que lo prepare ;-)
Saludos,
Luis Michelena
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-sur/attachments/20081015/efdb55c9/attachment.htm
More information about the olpc-Sur
mailing list