Dada la tarea de enseñar a un grupo de niños de secundaria los conceptos básicos de la programación, ¿cuál sería un camino educativo óptimo para un curso de seis semanas?

Las sugerencias de Scratch (y lenguajes similares) son geniales, estos lenguajes son juguetones y gratificantes para el programador temprano. Una forma particularmente útil de utilizar Scratch para presentar la programación a los niños es mediante el uso de la función para compartir y “mezclar” Scratch para eliminar parte de la frustración asociada con el inicio de un programa desde cero (sin juego de palabras).

En lugar de comenzar desde una etapa en blanco y tener que pasar por numerosos pasos [aparentemente] tediosos antes de que las cosas se vuelvan emocionantes y gratificantes, cree un proyecto base en su propia cuenta reutilizable y comience la lección haciendo que sus estudiantes vayan a la URL de su proyecto compartido y presione el botón “remezcla”. Cada estudiante ahora tendrá su propia copia (rama) de su proyecto base, incluidos todos los recursos y el código fuente para jugar y ampliar. Permítales explorarlo y proponer sus propias ideas para hacerlo funcionar y mejorarlo (y proporcionar una orientación mínima si no lo hacen)

A medida que sus alumnos se vuelven más competentes, proporcione cada vez menos funciones en su proyecto base y guíelos hacia ideas de mejora más desafiantes (mejor, déjelos enfrentar estos desafíos ellos mismos), pídales que sigan la puntuación y las “vidas”, agregue efectos de sonido , cree niveles de dificultad (mientras sus alumnos descubrirán variables, eventos, lógica, máquinas de estado simples, etc.)

Como ejemplo, puede comenzar con un proyecto base “pong” en el que ya ha configurado un escenario y sprites para las paletas y la pelota, pero solo agrega bloques de código para hacer que la pelota se mueva y rebote en las “paredes”. Sus alumnos deberán descubrir cómo hacer que las paletas se muevan, hacer que la pelota rebote contra las palas, detectar bolas perdidas, etc., pero no tendrán que seguir [en este punto] un procedimiento largo para dibujar / cargar sprites, etc.

Me gusta mucho la sugerencia de Daniel Van Dale de usar una secuencia de mini-proyectos; mucha exploración de los estudiantes y muy poca charla de maestros es el camino a seguir con este grupo de edad. Su objetivo debe ser darles una visión general de algunas cosas que la programación puede hacer, y darles la oportunidad de divertirse mientras hacen la programación. Si tiene éxito con estos dos objetivos, esta podría ser la clase de programación más importante que toman (incluso si se convierten en profesionales de la programación). No me preocuparía demasiado por enseñarles algoritmos, estructuras de datos o idiomas particulares. (¡Aunque estos conceptos surgirán durante el curso de su clase, entonces aprenderán algunos ejemplos específicos de estos! Simplemente no es particularmente importante cuáles en este momento).

Me gustaría agregar que es muy importante utilizar proyectos que los estudiantes encuentren interesantes. Los proyectos orientados a gráficos que menciona Daniel son excelentes ejemplos de esto. Para los niños de esta edad, evitaría proyectos más abstractos como resolver problemas matemáticos, trabajar con datos científicos o manipular texto, a menos que un niño sugiera uno de estos y esté muy entusiasmado.

Lenguaje de programación Scratch. 6 semanas es una cantidad de tiempo perfecta para una presentación. Hay un montón de videos tutoriales en el sitio web. Además, las “tarjetas de rascar” son una instantánea increíble de bloques de código comunes. Enseñé esto a un grupo de 7º grado en 7 semanas con algunas mini lecciones sobre lógica, tipos de juegos (desplazamiento lateral, de arriba hacia abajo, por turnos, bla, bla). En cada clase, di un pequeño problema, como hacer que un personaje suba la colina, salte de una pared, haga que pac-man coma los gránulos en lugar de caminar a través de ellos, anime su nombre. Su tarea final fue hacer un juego funcional con puntaje y personajes, y di puntos extra por cada extra, como vidas, niveles múltiples, dificultad creciente, animaciones, escenas de corte, etc. La creatividad que surgió de la mayoría de ellos fue impresionante. . Para los niños que no querían hacer nada, comencé haciendo Pong con ellos paso a paso, y luego conseguí que hicieran un juego propio. Esos tipos hicieron juegos que sorprendentemente se parecían a Pong, pero al menos cambiaron cosas como fondo y aún así lograron alterar mi código para hacer cosas diferentes. Nadie se sentó y no hizo nada.

Dependiendo de sus objetivos específicos, tiene una variedad de opciones. Si solo planea seis semanas para niños en edad de escuela intermedia, puede consultar algunos lenguajes de programación visual:

– Scratch por MIT ( http://scratch.mit.edu )

– Snap por Berkeley ( http://snap.berkeley.edu )

– Blockly de Google ( https://code.google.com/p/blockly/ )

Scratch fue el primer proyecto y se orientó hacia el aprendizaje exploratorio independiente. Fue desarrollado con la idea de que los estudiantes podrían aprender cosas extracurriculares en las que tal vez no tengan un instructor que los ayude.

Snap es muy similar a Scratch, excepto con algunas extensiones del lenguaje que permiten la creación de bloques personalizados y un sistema de mensajería más avanzado.

Blockly es desarrollado por Google y creado para una variedad de aplicaciones, creo. Un beneficio de Blockly es su funcionalidad de generación de código que podría ayudar a cerrar la brecha entre la programación visual y la programación de JavaScript o Python.

Por supuesto, hay otras opciones como Python, JavaScript, etc., o el uso de clases en línea como academia de códigos, pero presentarles un lenguaje visual podría ayudar a eliminar matices como pequeños errores de sintaxis y podría permitirle centrarse más en los conceptos de programación.