Todo el año pasado trabajé como profesor en uno de los centros de capacitación provinciales (en adelante, la UC), especializándome en programación de enseñanza. No nombraré este centro de capacitación, solo trataré de prescindir de los nombres de compañías, nombres de autores, etc.
Entonces, trabajé como profesor en Python y en Java. Este centro de capacitación compró materiales metodológicos para Java, y comenzaron Python cuando vine y les ofrecí esto.
Escribí un manual de capacitación para estudiantes (esencialmente un libro de texto o un manual de autoinstrucción) en Python, pero la enseñanza de Java y los materiales de enseñanza que se usaron allí tuvieron un pequeño impacto.
Decir que fueron terribles es no decir nada. El modus del libro de texto de Java, que es suministrado por una empresa muy conocida en Rusia, no era enseñarle a una persona los conceptos básicos de este lenguaje en general y el paradigma de OOP en particular, sino permitir que los padres que vinieron a abrir lecciones vean cómo hijo o hija canceló una serpiente o ajedrez de un libro de texto. ¿Por qué digo desmantelado? Muy simple, el hecho es que el libro de texto contenía hojas enteras (A4) de código, algunos de los cuales no se explicaron. Como resultado, el maestro debe controlar en qué punto del código se encuentra ahora cada alumno, explicando cada línea, o todo se desliza hacia la trampa.
Dirás: "Bueno, ¿qué pasa, deja que el maestro trabaje mejor, pero el ajedrez y la serpiente son realmente buenos!"
Bueno, todo sería genial si el número de personas en el grupo no fuera menor de 15 años, y eso ya es significativo, si vas a seguir a todos, explicando: "Pero aún así, ¿qué estamos escribiendo?"
Además del número de personas en el grupo, hay otro problema asociado con este manual. El código está escrito ... cómo decírtelo, simplemente horrible. Un conjunto de antipatterns, arcaicos, ya que el libro de texto no se ha actualizado durante mucho tiempo, y nuestro favorito, por supuesto, es el estilo de la guía. Por lo tanto, incluso si controla todos sus cargos y puede explicarles de manera rápida e inteligible lo que está escrito el código, el código en sí es tan terrible que enseñará, por decirlo suavemente, no eso.
Bueno, y el final, literalmente destruyendo este libro de texto, desde el principio no hay al menos una introducción adecuada que explique qué tipos de datos son, que son objetos y primitivos, qué criterio verifica la propiedad que genera esta dicotomía, etc. En el primer capítulo, usted y sus alumnos están invitados a hacer (cancelar) un programa que crea una ventana y escribe "¡Hola!", Pero no explica qué significa realmente esta hoja de códigos, solo enlaces a otras clases, por ejemplo, "main "- el punto de entrada, pero el concepto mismo de" punto de entrada "ni siquiera se pronuncia.
Para resumir, este papel usado fue un meme incluso entre educadores y líderes. Ella no les enseñó nada a los niños, una vez que me encontré con un grupo estudiando durante un año sobre estos materiales, como resultado ni siquiera podían escribir un ciclo, noté que todos eran muy inteligentes y pronto todo no fue tan malo. La mayoría de los colegas trataron de desviarse de los materiales de enseñanza para que el material se asimilara, y no solo para volar en el aire, aunque hubo personas menos conscientes que consideraron normal que su estudiante descartara sin ninguna explicación.
Cuando quedó claro que dejaría la CA, y el programa Python debía continuar de alguna manera el próximo año, comencé a escribir mi libro de texto. En resumen, lo dividí en dos partes, en la primera expliqué todo sobre los tipos de datos, su esencia, las operaciones con ellos y las instrucciones del idioma. Mientras tanto, hizo QnA para que el futuro maestro pudiera entender cómo el alumno aprendió el tema. Bueno, al final hice una pequeña tarea de proyecto. La primera parte explica los conceptos básicos del lenguaje y los mastica, que son aproximadamente 12-13 lecciones de 30-40 minutos. En la segunda parte, ya escribí sobre OOP, describí cómo la implementación de este paradigma en Python difiere de la mayoría de los demás, hice muchas referencias a la guía de estilo, etc. Para resumir: intenté ser lo más diferente posible de lo que había en el tutorial de Java. Hace poco escribí a un maestro actual de Python, solicité un comentario sobre los materiales, y ahora me alegra que todo esté bien, que los niños realmente entiendan la programación de Python.
¿Qué conclusión me gustaría sacar de esta historia: mis queridos padres, si deciden enviar a su hijo a un centro de enseñanza, observen cuidadosamente lo que están haciendo para que su hijo no pierda el tiempo en vano para que no lo desanime de programar en el futuro.
UPD: Como se señaló correctamente en el comentario, no dije casi nada sobre la presentación del material. Diré de inmediato que creo que debería haber más práctica, tanto como sea posible. Al final de cada lección en la primera parte, hice 4-5 pequeñas tareas prácticas sobre el tema del capítulo. Entre los capítulos estaban QnA (lecciones de control), donde también había tareas prácticas, pero ya evaluadas, también al final de la primera parte había un proyecto con un tema para elegir entre los propuestos. En la segunda parte, hice una introducción a OOP a través de la creación de un mini-juego de consola, cuyo desarrollo fue la segunda parte completa y la introducción completa al paradigma.