¿Es un lenguaje de programación visual como Scratch una buena manera para que los niños aprendan a codificar?

Hola
De hecho, ayudo en un club de código de escuela primaria después de la escuela y usamos Scratch mucho. Para comenzar, los niños pueden manejarlo para contar historias / animación y jugar con los gráficos y los sonidos, pero pronto llegan al punto de querer hacer un juego.

Básicamente, desde cero, asocia el código con sprites o fondos. Las variables pueden ser locales o globales, y puede usar una transmisión para que los sprites se comuniquen entre sí si no hay una variable global. También puede definir bloques personalizados (funciones de pensar).

Una vez que los niños estuvieron contentos con eso, hicimos sesiones preguntándoles qué les gustaría construir, luego, dividiéndolo en pedazos, les mostraría la semana siguiente. (Nunca había usado scratch hasta después de mi primera sesión). Estas son las cosas que querían hacer

1. Mueva Sprites de varias maneras (eventos, bucles, por dirección, por coordenadas x / y)
2. Dispara cosas

Ahora puede hacer mucho de eso sin siquiera crear una variable, pero pronto nos encontramos con problemas como este.

1.¿Cómo obtengo más de una viñeta en la pantalla sin copiar por sprites de viñeta?

En scratch puede “clonar” un sprite en el código, el clon es una instancia separada de un sprite que puede tener un poco de comportamiento único (por ejemplo, cambiar x e y)

2. ¿Cómo evito que haya demasiadas balas en la pantalla?

Se necesitaba una variable para contar cuando las balas fueron creadas / destruidas verificadas contra algún límite.

3.¿Cómo detengo el teclado disparando demasiadas balas?

Esperar 0.3 segundos después de presionar la tecla antes de buscar otra tecla parece ser el número mágico.

4. Cómo muevo enemigos al azar

Usando las funciones de rand, jugando con los límites superior e inferior que pronto definieron como variables llamadas “oscilación” “distancia antes de girar”, etc.

5. ¿Cómo hago un seguimiento de las vidas?

Variable … lo bueno es que puede alternar una variable para que sea visible en la pantalla, lo que es bueno para la depuración, o también puede ser un beneficio funcional (es decir, lo deja en manos del usuario final para ver cuántas vidas tienen sin tener para construir explícitamente algo para mostrar una variable)

6. ¿Cómo hago que ocurra la gravedad?

Como una variable que constantemente afectaba un movimiento de sprites hacia abajo (-y) en el camino.

7.¿Cómo construyo combo de movimiento especial?

He mantenido esto en espera ya que necesita una lista para registrar el combo requerido, y luego algunos contadores para verificar el éxito, ya que cada entrada de la lista coincide, lo que se restablece cuando falla. (Todavía no están listos)

8. ¿Cómo reboto correctamente de otro sprite?

Scratch tiene rebotes en los bordes de la pantalla incorporados, pero no sprites. Esto no es trivial, ya que no hay forma de saber fácilmente el ángulo de un sprite … y si quieres hacerlo correctamente va más allá de sus niveles matemáticos, por lo que están trabajando en formas de trabajo más simples y aceptables.

9. ¿Cómo hago que una parte de un sprite se comporte de manera diferente a la otra?

Inteligentemente, un alumno dividió un sprite en dos, y creó un bucle que se aseguró de que las partes componentes del sprite siguieran al maestro. En un caso, era una torreta de tanque encima de un tanque: quería que girara independientemente del cuerpo. En otro caso fue la boca de una especie de cosa pacífica mutante. Si la polilla tocó a un enemigo, el enemigo murió pero el enemigo tocó cualquier otra parte, el pacman perdió una vida.

10. ¿Cómo hago para que un malo encuentre el camino correcto y más corto a través de un laberinto hasta un regalo?

Estoy tratando de descubrir que hay una manera fácil de explicarles el algoritmo A * a esa edad, pero esperaré y veré.

Ahora estamos trabajando en proyectos más grandes y están compartiendo el trabajo, por lo que nos enfocamos en hacer que las variables solo sean globales si realmente las necesita, y crear bloques personalizados.

La mejora más grande que he visto es en cómo dividen los problemas en trozos manejables … y he alentado a alejarme de la computadora y usar lápiz y papel cuando están atascados.

En realidad es muy divertido y he estado jugando con la idea de replicar el clásico Chaos de Julian Gallop Spectrum en él 😉

Vengo del mismo fondo, mi primera computadora fue una Apple IIE cuando tenía unos 11 años. Empecé a aprender applesoft basic cuando tenías numerar tus líneas de código, arcaico ahora, jajaja. Actualmente trabajo como desarrollador web independiente ahora.

Si fuera a enseñarle a un niño a codificar (de 8 a 11 años), comenzaría con scratch. Los niños son realmente inteligentes. Lo que es frustrante ahora es que todos quieren simplificar la programación para los niños. La magia de la programación es que no importa cuán tonta sea una cosa como imprimir hola una y otra vez, es el hecho de que fue algo que hiciste tú solo. Además, cuando era niño, era muy divertido poder hacer algo que los adultos no podían hacer.

Google Harvard CS50. ¡Es asombroso! Comenzarán desde cero y avanzarán a C y Javascript. Permítales trabajar a su propio ritmo si quieren pasar 6 semanas rascando, ¡que así sea! El objetivo no es superarlo en 10 semanas, sino crear un sincero logro. Si les gusta, lo mantendrán.

¡Usted se sorprenderá! ¡Apuesto a que la mayoría de los estudiantes de 5to grado podrían completar un curso CS50 en cualquier universidad! ¡Me encantó la programación desde el principio y siempre fue muy decepcionante ir a la biblioteca y pedir un libro en las computadoras y recibir un libro para colorear!

Echa un vistazo al curso por ti mismo, ¡es gratis y mira si te va bien!

PD: Trabajo fuera del espacio de trabajo compartido y cuando la gente me pregunta cómo comenzar a aprender a programar por su cuenta, ¡este es el curso que recomendaría si tenían 8 u 80 años!

¡Espero que ayude! ¡Y buena suerte!

Creo que es realmente difícil de decir: las respuestas aquí dan las opiniones de sus autores, pero no creo que se basen en datos reales o en algo más grande que una impresión.

He visto algunas cosas interesantes hechas por niños con Scratch, pero para mí parece que puede enseñar ciertos conceptos erróneos sobre la programación. A diferencia del caso de los lenguajes de programación reales, el enfoque visual no parece escalar demasiado bien, por lo que existe este techo de cristal que no puede ir más allá.

Además, al menos en mi caso, la programación es una experiencia muy vocal o lógica, y la metáfora de bloques coloridos que representan estructuras de control simplemente parece incómoda.

Por supuesto, puede intentarlo (sin presionar demasiado, si resulta divertido, sería genial), pero tenga en cuenta que es un experimento y no descubriremos su resultado hasta dentro de 15 años. Pero mi apuesta es que idiomas como Smalltalk o Racket son una mejor opción.

EDITAR: puede encontrar este video valioso (es más bien a favor de Scratch)

Scratch es la mejor herramienta para iniciar a un joven en la ‘programación’. Debido a que es gráfico, no hay frustración con los problemas de sintaxis. Muchos sprites incorporados y operaciones de alto nivel hacen que los primeros proyectos funcionen fácilmente. La remezcla es una excelente manera de aprender de los demás.

Tenga en cuenta que Scratch no se trata solo de programar en el sentido clásico. Se puede usar para contar historias, arte y más.

¿Qué sigue después del rasguño? Esa es una pregunta mucho más difícil. Si quieres entrar en la programación clásica, Python es una buena opción.

Todos los niños difieren pero, en general, sí; Está bien considerado en los círculos educativos. No me muevo en esos círculos, pero soy moderador en el foro Raspberry Pi y veo a muchas personas de tipo educativo hablando muy bien de él e invirtiendo tiempo y energía en ello. Enseña muchos de los conceptos fundamentales de programación sin los requisitos de sintaxis.

Hay un lenguaje de seguimiento que se basa en Java, pero personalmente no les enseñaría a los niños Java; Prefiero Python y tal vez ir allí a través de la biblioteca PyGame.

Aquellos de nosotros que aprendimos con BASIC probablemente lo hicimos a una edad bastante mayor que los niños a los que se dirige Scratch. No soy un pedagogo, por lo que no puedo ser preciso, pero supongo que Scratch iría hasta los primeros años de la adolescencia, dependiendo del niño y de cuánto tiempo hayan estado aprendiendo.

Esto es de un usuario antiguo de scratch, js, processingjs, html, css, etc. Más o menos, Scratch es un buen punto de partida, mucho mejor que code.org, pero recomendaría comenzar con ProcessingJS en KA. Enseña programación mucho mejor IMO.

Sí, la codificación desde cero es la mejor manera de aprender, una vez que eres un profesional, puedes usar plantillas, Framework o CMS
Muchas personas tienen problemas con sus sitios web debido a errores de conexión y como no dominan el código, se pierden.

Creo que la respuesta aquí es analizar los problemas que el niño quiere resolver y encontrar formas de lograrlo.

Soy de una época similar a la tuya. Para hacer cualquier cosa que tenías que programar. Los niños modernos están acostumbrados al concepto de dispositivos que otras personas ya han programado de alguna manera. El problema es que generalmente ya no hay incentivo para escribir tus propias cosas.

Para superar esto, comenzaría a pensar en un proyecto que logre algo que no pueda obtenerse fácilmente de otra manera, o que se haga mejor de manera personalizada.

Un buen ejemplo de esto podría ser algo como iluminación personalizada para su habitación. Las luces y los cables son bastante fáciles de explicar, pero ¿cómo vamos a controlarlo? En ese momento, puede traer un arduino o raspberry pi o similar y mostrar cómo se puede hacer para controlar el sistema.

Creo que probablemente se puede hacer usando scratch, o de lo contrario, algo como Python es fácil de entender para la mayoría de las personas. Pero comenzaría con lo que quieres hacer y trabajaré hacia atrás, en lugar de encontrar algo para que aprendan sin razón aparente.

Creo que Scratch es una excelente manera de comenzar. Pueden hacer muchas cosas solos rápidamente. Y es muy gráfico con animaciones, que es lo que los niños encuentran divertido.

Si se involucran, siempre puede descargar Visual Basic y comenzar a usarlos en una programación más tradicional.

En mi opinión, es una excelente manera para que los niños aprendan a codificar. En lugar de escribir muchos códigos y sintaxis, a los niños les encantaría programar con bloques. Por lo general, BASIC se enseñan en la escuela en Nepal. Pero aún así todos no están dando lo mejor de sí. Si hubiera scratch en lugar de BASIC, creo que les ayudaría mucho. Me parece ilustrativo. ¡También tengo solo 14 años y uso scratch!