Me estoy preparando para enseñar a alguien a programar. Cuando aprendí el material del curso, utilicé gráficos de tortuga para los primeros ejercicios. Al leer los libros de texto de introducción, no he encontrado uno que use la técnica. ¿Otros encontraron útil este enfoque? Si no, ¿cuál es una mejor forma de aprender a programar?¿Te pareció útil aprender a programar con gráficos de tortuga?
Respuesta
Aprendí a programar en BASIC escribiendo programas simples dibujando caras (me refiero a círculos y cuadrados) en la pantalla. De alguna manera, la programación de las tortugas nunca fue lo mío, aunque algunos de mis amigos aprendieron de esa manera. Más tarde me mudé a Pascal, luego a Delphi, Java y C++/C#. En mi opinión, el truco es "sorprender" a su estudiante e impresionar/potenciar las cosas potenciales que puede lograr escribiendo sus propios programas. De hecho, demostraría algo de programación de GUI o programación de juegos. Es mucho más fácil aprender lo básico manteniendo el objetivo final en mente.
Recientemente me encontré con SmallBasic - un ambiente de programación genial para niños diseñado para enseñar conceptos. Yo probaría eso. Viene con un documento bastante completo que describe cómo usarlo.
A finales de los 80, antes de programar en C, estaba programando en Applesoft BASIC y Logo. De niño, pensé que el turtle era excelente porque simplificaba la programación. Si decido enseñarle a mis hijos el logotipo, probablemente inicie el here para obtener un intérprete de Logo desarrollado activamente.
Creo que depende de la edad del grupo objetivo.
Si son niños (yo diría que hasta 12-14 años), hacer cualquier gráfico fácil es una buena manera de motivarlos; por otro lado, no espere que aprendan mucho sobre programación real o algoritmos.
Si son adolescentes (14-18), tal vez todavía es bueno usar algunos algoritmos que dan resultados bonitos (por ejemplo 3D o fractales), pero ya que son más viejos y capaces de un pensamiento más abstracto, no lo hago Creo que los gráficos de tortugas 2D son lo suficientemente interesantes.
Si son mayores, hacer cualquier gráfico es una distracción. A esa edad, deberían tener suficiente motivación interna para aprender sin ningún tipo de fantasía.
Para resumir, creo que los gráficos sofisticados tienen un rol más motivacional (que vea lo que hizo rápido, y es fácil mostrarles a los demás lo que puede hacer con una computadora) que el rol de aprendizaje (que haría el aprendizaje real programación más fácil).
Lo más importante de LOGO son las funciones definidas por el usuario. Es muy bueno para transmitir eso, siempre y cuando lo enfatices. Muestre de forma interactiva cómo dibujar un cuadrado, luego cree una nueva palabra llamada cuadrado. Luego, muestra cómo puedes dibujar patrones usando cuadrado. Luego haz esos patrones en palabras, y así sucesivamente.
Cuando obtuve mi primera computadora (VIC-20) y comencé a programar, fue muy difícil explicarles a mis padres lo que estaba haciendo.
Mi madre realizó un curso de computación preparándose para un proyecto de computarización de la biblioteca en la que trabajó. Tuvieron un par de clases presentándoles la programación. Después de aprender LOGO ella llegó a casa y dijo que de repente entendió en lo que me estaba metiendo.
¡Así que LOGO con gráficos de tortuga nos acercó más!
Escribí un script/código en un dialecto tipo c para un juego llamado Doom2 antes de saber qué programa era, así que cuando se trataba de aprender conceptos como punteros, herencia y polimorfismo, encontraba lo básico muy fácil porque Podría construir un modelo mental no solo para ayudarme a comprender, sino también para apreciar cuán interesantes son las cosas como los punteros y las matrices.
Un amigo mío es un buen estudiante de programación, pero se frustra cuando no puede visualizar un algoritmo funcionando, cuando comencé a ayudar a otros estudiantes encontré que tenían el mismo problema, si no podían ver algo que funciona es difícil de apreciar como un programador principiante, el mismo amigo elocuentemente sugirió que "les muestre un poco de mierda chulo loco y luego mostrarles cómo se hace". Tiene razón, incluso si alguien realmente quiere aprender algo, podrá recurrir a más energía mental si cree que lo que está aprendiendo le permite hacer cosas increíbles.
Mi mejor consejo es el siguiente: AL COMIENZO pasar el menor tiempo de programación a la consola POSIBLE
Te hace sentir constreñidos y sus esfuerzos parecen inútiles, sólo después de que usted lo aprecia como un frente fin debe ser utilizado para aprender a programar. Yo no usaría el logotipo porque no creo que pueda enseñar conceptos como el polimorfismo o la herencia antes mencionados casi tan bien como otros métodos, sé que un amigo mío le está enseñando a un adolescente a programar usando XNA en un envoltorio, Creo que cualquier cosa que te permita embeber una imagen en la pantalla está bien. De esta forma puedes ver por qué querrías una clase base abstracta llamada EnemyEntity con un comportamiento heredado por zombies y perros, etc. No es que los conceptos sean difíciles de entender, es solo que al principio son difíciles de apreciar.
Podría seguir, pero creo que pone en evidencia lo que he aprendido enseñando a los demás. Creo que el uso de gráficos en la programación de enseñanza permite a los estudiantes obtener la capacidad de construir modelos mentales de conceptos intangibles más rápido que cualquier otro.
XNA Si quieres enseñar C# que es una increíble biblioteca de gráficos, simplemente escribe una clase de sprite de envoltura para ocultar tanta complejidad al principio y conceptos de enseñanza.
SDL Una biblioteca de nivel inferior si vas a empezar con C++
Durante una de mis papeles de informática de primer año que utilizamos Java para crear patrones fractales a través de un objeto de tortuga.
Fue muy divertido ver visualmente si implementamos correctamente el algoritmo requerido para producir un determinado patrón. Sin embargo, responda la pregunta principal, no diría que la programación a través de una tortuga es útil. Yo diría que la mejor manera de enseñarle a alguien a programar es hacer que construya su propia aplicación para hacer lo que quiera que haga. Esto les da control creativo, y si se atascan, pueden aprender a resolver un problema.
Podría ser peor en la enseñanza de la programación que utilizando una herramienta como Scratch. Es una interfaz de programación de arrastrar y soltar y se puede utilizar para enseñar conceptos básicos de programación con algunos resultados visuales divertidos (como se puede ver en la galería de su sitio web).
Rob
Scratch es genial. También tiene incorporados gráficos de tortuga (los comandos del lápiz) – tfinniga
Hice un "computación para los niños" por supuesto en los últimos años ochenta, y había una extensa sección sobre gráficos de tortuga utilizando logotipo. Honestamente, estaba aburrido hasta las lágrimas, y aprendí prácticamente nada de eso.
Creo que "programar la tortuga" podría funcionar mejor para alguien que tiene inclinaciones artísticas, o enormemente para la geometría, pero, en general, hay problemas mucho más interesantes para atacar, incluso para los niños.
Ah, los recuerdos del viejo logo. Creo que obtuve más de una lección de geometría que una lección de programación, por ejemplo, averiguar cuánto girar en varios puntos para producir una forma, diseño o patrón en particular. Puede funcionar si planea mezclar geometría con la programación, pero si la persona no tiene los conceptos básicos de geometría, p. qué es un cuadrado y cómo es diferente de otras formas de 4 lados, qué es un triángulo, etc.
Utilicé el logotipo y la tortuga en la escuela también, una gran introducción.
Parece que nuestros hijos obtendrán una interfaz ligeramente actualizada con Microsoft Kodu. Se ve muy impresionante. Es un lenguaje de programación basado en iconos creado para crear juegos que se ejecutan en X-Box Live.
El logotipo me dio una imagen muy clara (sin juego de palabras) sobre cómo funcionarían las funciones recursivas, y como estaba programando ensamblaje en ese momento, la necesidad de volver al estado anterior al volver a un método se hizo evidente con Logo.
Implementaciones recursivas de cosas donde también es muy fácil ver el efecto de.
Actualmente estoy aprendiendo python y usando un poco de tortuga. En los laboratorios no lo hemos usado, pero nuestra tarea sí. Es bueno saber que existe, y es una buena manera de obtener ciertos comandos y sintaxis. En general, no creo que fuera completamente necesario.
Cuando era joven, me pareció muy interesante. Fue uno de los primeros lenguajes de programación que aprendí, aunque lo he usado durante dos días. Comenzó mi interés en la programación.
Hoy en día, creo que la sintaxis es un poco confusa porque la mayoría de las declaraciones son abreviaturas. Hoy en día, las computadoras son mucho más poderosas por lo que el lenguaje podría beneficiarse de una declaración más clara. Otro factor es el idioma nativo de la persona que está aprendiendo a usarlo. Si el inglés no es su lengua materna, entonces Logo se vuelve un poco más complejo de entender. Entonces, si le estás enseñando Logo a los niños, primero asegúrate de que estén familiarizados con los términos en inglés. (Es bastante fácil si eres una persona nativa de habla inglesa. Más complejo si eres originalmente holandés, alemán, francés, portugués. Incluso más complejo si eres ruso o chino porque tendrías que adaptarte a un personaje diferente establecido también.)
Acabo de comenzar a enseñar a mi hijo de 7 años a programar usando Logo, y se está divirtiendo muchísimo. Los comandos son bastante fáciles para su capacidad de lectura limitada y le encanta dibujar imágenes geniales con los gráficos de tortuga. Me sorprendió lo bien que retenía lo que había aprendido al usarlo, así que siento que fue una buena opción para su edad.
Para los niños mayores (o adultos) otros idiomas podría tener más ventajas como lengua principiante aunque
Te sugiero comenzar con un lenguaje interpretado como logotipo (no compilado) debido a la calidad de los mensajes de error. Leer los mensajes de error es muy importante en este proceso. Además, en el nivel fácil, Logo le permite ejecutar sus instrucciones una por una en modo directo y llevarlas a sus procedimientos cuando obtiene los resultados esperados.
@ Alex: MicroWorlds es una versión comercial de Logo y existe en inglés, español, portugués, italiano, ruso, etc. es una gran ventaja si no eres una persona nativa de habla inglesa.
LOGO no es solo Turtle-Graphics. También hay otros conceptos interesantes que provienen de LISP. 'Tortuga' es solo la guinda del pastel y el lado "imperativo" de Logo. :)
La experiencia personal, tu caso es distinto ...
Mi primer encuentro con un ordenador era gráficos de tortuga en mi adolescencia. Me encantó e inmediatamente me enganché. (¿Quizás porque por primera vez alguien [algo] hizo exactamente lo que le dije que hiciera?)
La respuesta visual e instantánea me hizo querer hacer más y más. Realmente quería averiguar cómo reproducir las imágenes que vi en el libro que estaba usando. Sin que yo incluso lo clasificara como "trabajo", lentamente aumentó mis habilidades iniciales de programación y mi confianza pude aprender por mi cuenta.
Lo atribuyo a haberme enviado por el camino en el que estoy hoy, un desarrollador de software feliz que no puede creer que me paguen por hacer este trabajo (lo sé, lo sé, todo el reír corporativo aparte, me gusta mi trabajo).
Como dije, YMMV.
Tenemos introducción a las lecciones de programación para "gráficos de tortugas" y otros aspectos de la programación, como MVC. Eche un vistazo a nuestro software de cursos TKP para SmallBasic (y pronto también para Java) en el TKP site.
- 1. ¿Dónde comienzo a aprender a programar bots?
- 2. ¿Un juego educativo para aprender a programar?
- 3. ¿Cómo puede alguien sin experiencia aprender a programar?
- 4. ¿Cómo comenzaría a aprender a programar en Flex?
- 5. Teoría de gráficos útil para los desarrolladores de software?
- 6. ¿Cómo comenzar a aprender a programar, codificar o leer el kernel de Linux?
- 7. ¿Debo aprender Swing antes de aprender JavaFx?
- 8. tortuga Subversion - deshacer la actualización
- 9. ¿Cómo comenzar a programar un microcontrolador?
- 10. tortuga SubWCRev.exe Pre-Construcción Evento
- 11. Cómo utilizar tortuga SPARQL php
- 12. Recursos para aprender Emacs
- 13. ¿Qué te hace querer aprender Common Lisp? ¿Qué quieres de eso?
- 14. ¿Dónde está el mejor lugar para volver a aprender la programación de gráficos
- 15. aprender a usar AJAX con CodeIgniter
- 16. ¿Estás tomando Perl y qué te atrapó?
- 17. ¿Cuál es un buen punto de partida, tutorial o proyecto para aprender a programar la base de datos?
- 18. ¿Qué debo aprender: Quartz u OpenGL ES?
- 19. proyecto noob para aprender Spring/Hibernate
- 20. ¿Qué técnica de programación funcional es difícil de aprender pero útil después?
- 21. Empezando a aprender Windbg
- 22. ¿Comenzarías a aprender Smalltalk?
- 23. ¿Puedo programar CUDA de Nvidia usando solo Python o tengo que aprender C?
- 24. Buenos recursos para aprender a depurar php
- 25. Tratando con gráficos masivos - Vendedor ambulante
- 26. ¿Cómo mantenerse seco? ¡No te repitas a ti mismo!
- 27. Programar serializar la clase a xsd
- 28. Conversión de gráficos con ExportString
- 29. ¿Qué te confunde con la API de Widgets de Magento?
- 30. ¿Cómo muevo la tortuga en LOGO?
c.f. http://stackoverflow.com/questions/1003841/how-do-i-move-the-turtle-in-logo – skaffman