Enseñar a los niños a programar

Hola Me llamo Michael Kapelko. He estado desarrollando software profesionalmente por más de 10 años. Los últimos años se dedicaron a iOS. Desarrollo juegos y herramientas de desarrollo de juegos en mi tiempo libre.


Resumen


Hoy quiero compartir mi experiencia de enseñar a los niños a programar. Voy a discutir los siguientes temas:


  • organización del proceso de aprendizaje
  • plan de aprendizaje
  • juego de memoria
  • herramientas de desarrollo
  • lecciones
  • resultados y planes

Organización del proceso de aprendizaje.


El proceso de aprendizaje se lleva a cabo como parte de la responsabilidad social corporativa: una empresa proporciona una sala con equipos y conecta a los empleados que quieren probarse en el papel de maestros con empleados que quieren que sus hijos sean educados. Todo esto se hace voluntariamente.


Los maestros potenciales se dividen en grupos para que cada grupo contenga tres maestros: uno experimentado y dos novatos. Tal grupo de tres maestros dirige un grupo de estudiantes. Los estudiantes se dividen en grupos por edad y habilidades.


Participé en el programa como maestra por segunda vez en 2018. Los niños tenían alrededor de diez años. Nuestro grupo estuvo activo de octubre a diciembre de 2018 cada sábado, 10: 00-12: 00. Utilizando mi posición como maestra, también traje a mi esposa como estudiante.


Plan de aprendizaje


La primera vez que participé en el programa, nuestro grupo enseñó a los niños de manera bastante inconsciente: se nos ocurrían tareas simples para explicar a los diferentes operadores. Al final del curso no teníamos nada concreto que evaluar, analizar y compartir.


Esta segunda vez decidí que vamos a crear un juego de memoria con niños. Decidí considerar el curso exitoso si al final del curso cada niño sería capaz de crear un juego de memoria simple desde cero en una hora.


Para lograr eso, estábamos recreando el mismo juego desde cero en cada lección. Me gustaría enfatizar que no usamos cuentas personales para guardar el progreso. Nuestra tarea era salvar la habilidad de crear juegos en la cabeza, no en una PC.


Juego de memoria


Veamos qué es el juego de memoria.


1) En el caso más simple, tenemos 16 cartas, solo 8 de ellas son únicas, el resto 8 son duplicados de las únicas.



Como puede ver, solo tenemos dos tarjetas con un gato, solo dos tarjetas con un perro, etc.


2) Al principio barajamos las cartas y las colocamos con la cara hacia abajo.



3) El primer jugador del juego gira un par de cartas.



4) Si las cartas difieren, se vuelven a poner boca abajo.



5) El siguiente jugador gira otro par de cartas.



6) Si las cartas son iguales, se retiran del campo.



El objetivo del juego es eliminar todas las cartas del campo. No hay competencia aquí, por lo que el juego se puede jugar solo.


Por un lado, el juego de memoria es bastante simple. Por otro lado, la implementación del juego requiere una funcionalidad esencial que cada juego más o menos complejo tiene:


  • creación de artículos
  • arreglo de artículos
  • selección de artículos
  • comparación de artículos
  • eliminación de elementos coincidentes

Herramientas de desarrollo


Utilizamos Scratch como nuestra herramienta de desarrollo. Scratch es una gran herramienta para enseñar a los niños a programar porque cada acción, cada operación se representa gráficamente.


Por ejemplo, puede rotar un gato 360 grados en 1 segundo con el siguiente script:



Así es como se ve en acción:



Me gustaría enfatizar que Scratch es una solución bastante exitosa para representar código gráficamente. Por ejemplo, una solución paga de SAP utiliza un concepto similar de cubos para programar la lógica:



Los usuarios solo pueden ingresar valores en campos predefinidos. Si los usuarios quieren más funcionalidad, tienen que recurrir a los scripts.


Personalmente, nunca he presenciado ninguna desaceleración en Scratch, y hubo muchas en la solución de SAP.


La primera lección


La primera lección fue introductoria, no usamos PC.


El plan era:


  1. Reunirse
  2. Juega el juego de memoria con cartas
  3. Aprende el concepto de algoritmo
  4. Detalla el algoritmo del juego
  5. Analiza la lección

1) reunión


Tanto los maestros como los estudiantes se paran en círculo. Esto iguala a todos y hace que todos sean miembros del equipo.


El primer miembro del equipo dice su nombre y por qué decidió tomar el curso. El segundo miembro del equipo y el resto primero repiten el nombre y la historia de cada miembro del equipo anterior antes de contar sus propios nombres e historias.


Así es como se ve:


  1. John: "Mi nombre es John, voy a estudiar Scratch porque mi padre me obliga a hacerlo"
  2. Alex: "Este es John, está haciendo Scratch porque su padre quiere que lo haga. Mi nombre es Alex, y este es mi cuarto año con Scratch"
  3. Ann: "Ese es John, sus padres lo obligan a hacer Scratch. Este es Alex, es un veterano de Scratch. Y yo soy Ann, una maestra novata, así que voy a aprender junto con todos ustedes"

Tal formato de reunión tiene los siguientes objetivos:


  • Llegar a conocerse
    • Cada miembro del equipo debe conocer a otros miembros del equipo por su nombre.
  • Espacio común
    • Todos están en el círculo, no en un escritorio de trabajo, esto evita la distracción de los niños por los juegos de PC
  • La igualdad
    • Tanto los maestros como los estudiantes están en el mismo círculo, esto iguala a todos como miembros del equipo sin jerarquía
  • Atencion
    • Cada miembro del equipo debe escuchar con atención para poder repetir correctamente lo que otros dijeron
  • Retroalimentación
    • Cada miembro del equipo debe ser lo más claro posible al expresar sus pensamientos, de lo contrario, nadie podría repetirlos.
  • Divertido
    • Los problemas de memorización producen muchas risas

2) Juego de memoria con cartas


  1. Toma 8 pares de las mismas cartas de dos mazos de cartas
  2. Coloque las tarjetas en una cuadrícula de 4 x 4, boca abajo
  3. Los estudiantes se paran alrededor de una mesa
  4. Cada estudiante, uno por uno, gira un par de cartas
    4.1. Si las cartas coinciden, se sacan del campo
    4.2. Si las cartas difieren, se vuelven a poner boca abajo

Los estudiantes están ansiosos por jugar juegos de mesa. Durante la fiesta del juego, los maestros dicen en voz alta cada paso del algoritmo del juego.


Después de un par de fiestas, es hora de descubrir qué es el algoritmo.


3) El concepto de algoritmo


  1. Pregunte primero a los estudiantes, escúchelos para conocer su nivel.
  2. Corrija lo que dicen los estudiantes si estuvieran cerca de una respuesta esperada
  3. Pídales a los estudiantes que escriban un algoritmo para mover a un hombre del estado "se encuentra fuera de una habitación" a "se sienta y trabaja en una PC"

A los estudiantes les gusta ir a la pizarra y escribir, por lo que le pedimos a cada estudiante que venga y escriba un solo paso del algoritmo a la vez. El estudiante más activo debe ejecutar el algoritmo siguiéndolo estrictamente.


4) El algoritmo del juego.


Pida a los alumnos que compongan el algoritmo del juego. Una vez más, deje que los estudiantes se acerquen al pizarrón y agreguen un paso del algoritmo a la vez. Una vez que el algoritmo esté listo, vuelve a jugar con las cartas. Ahora, cada estudiante debe decir el paso del algoritmo que ejecuta.


Así es como se ve:


  1. John: "Coloca 16 cartas boca abajo"
  2. Alex: "Gira un par de cartas"
  3. Paul: "Si las cartas difieren, gíralas boca abajo nuevamente"
  4. Dan: "Gira otro par de cartas"
  5. Mike: "Si las cartas coinciden, sácalas del campo"

5) Analiza la lección


Eso es todo para la primera lección. Los maestros finalmente tienen tiempo para discutir la lección: hablar sobre los niños, acercarse a los niños tímidos y activos, planificar las próximas lecciones.


Tomamos las siguientes decisiones:


  1. Organice a los estudiantes de manera que los activos se sienten junto a los tímidos como "active-shy-active-shy-etc" para que no terminemos con dos grupos de estudiantes tímidos y activos en diferentes lados de una sala, lo que obstaculizaría la productividad .
  2. Solo acepte respuestas precisas de los estudiantes porque a los estudiantes activos les gusta moverse, lo que dificulta la disciplina.

La segunda y la tercera lección.


Comenzábamos cada lección con la misma reunión: nos poníamos de pie en círculo, decíamos nuestros nombres y lo que hacíamos. Los que no hicieron nada deberían haber dicho por qué. Al igual que antes, todos deberían repetir primero lo que dijeron los miembros anteriores del equipo.


Pasamos la segunda lección para crear requisitos para un elemento del campo de juego y luego crear el elemento en Scratch. Esto fue moderadamente exitoso.


Pasamos la tercera lección tratando de crear 16 elementos y organizarlos en cuadrícula 4x4. Fracasamos miserablemente porque no podíamos explicar el sistema de coordenadas a los estudiantes. Se hizo evidente que los planes de lecciones eran solo planes, la realidad tenía sus propias demandas.


Vimos dos formas de abordar el problema:


  1. Sigue estudiando el sistema de coordenadas arriesgándote a no terminar el juego al final del curso
  2. Cambia los requisitos del juego para que el sistema de coordenadas no sea necesario

Fuimos de la segunda manera porque, después de todo, no somos una escuela, nuestro objetivo era enseñar a los niños a crear el juego, es decir, usar habilidades en la práctica, no en la teoría. Es por eso que reemplazamos la cuadrícula 4x4 con un círculo de 16 elementos.


Esta solución generó algunos pensamientos en mi cabeza:


  1. A menudo se puede encontrar un camino más simple para resolver un problema.
  2. Este camino es más sencillo de entender, aunque menos flexible.
  3. Uno puede ir por el camino más difícil para aumentar la flexibilidad mucho más tarde cuando sea absolutamente necesario
  4. La simplificación se acerca a la meta, la compleja se mueve en la dirección opuesta

La cuarta y el resto de las lecciones.


La cuarta lección marcó el final de presentar requisitos en clase porque hacerlo comenzó a tomar demasiado tiempo. Elegimos la práctica sobre la teoría una vez más para cumplir con la fecha límite. Esta vez, todos los requisitos se realizaron antes de la lección. Aún así, nadie los leyó.


Pasamos la cuarta y la quinta lecciones para crear 16 elementos en círculo, seleccionar un par de elementos y unirlos.


Comenzamos a recrear el juego completo desde cero en la sexta lección. Cada vez que los estudiantes recreaban el juego completo cada vez más rápido. En la octava lección presentamos una tabla de clasificación para rastrear qué tan rápido cada alumno recrea una parte específica del juego.


La ultima leccion


Cuando se acercaba la última lección, todos podían crear el juego de memoria desde cero de manera más o menos independiente en dos horas.


Aquí está la tabla de clasificación de la última lección (los nombres están ocultos):



La tabla de clasificación está en ruso, aquí están los subtítulos traducidos:


  • Nombre
  • Círculo de artículos
  • Selección de pares
  • Ocultar todo
  • Ocultar un par

Aquí puedes presenciar la creación del juego de memoria desde cero por el estudiante más rápido: en solo media hora.



Resultados y planes


Los resultados superaron mis expectativas:


  • tres estudiantes llegaron en una hora o más rápido
  • dos estudiantes llegaron en una hora y media o más rápido

Este año planeo hacer otra ronda de recreación del juego de memoria. Sin embargo, voy a reemplazar Scratch con las herramientas de Opensource Game Studio: los estudiantes usarán las páginas Lua, Git y GitHub.



ACTUALIZACIÓN: Enseñar a la gente a programar en 2019

Source: https://habr.com/ru/post/438320/


All Articles