¿Existen recursos para enseñar a los niños la programación funcional?

La programación funcional se basa fundamentalmente en el cálculo lambda . No veo cómo esto puede simplificarse para que un niño de 8 años lo entienda.

Al menos con la programación de procedimientos, puede ofrecer ideas intuitivas como hacer algo condicionalmente (if-then-else), o hacer algo repetidamente (loop), o reutilizar un fragmento de código de otro lugar (procedimiento o función).

Incluso con la programación orientada a objetos, puede ofrecer ideas intuitivas, como un objeto que tiene propiedades y comportamiento ( métodos ). Puede comparar una clase con un cortador de galletas y discutir la herencia (un cortador de galletas puede parecerse a otro cortador de galletas pero con pequeñas diferencias).

Pero, ¿qué ideas intuitivas puede ofrecer para funciones y cierres de primera clase , o para la inmutabilidad de datos? ¿Qué tal la coincidencia de patrones o la composición funcional ? Estas cosas son inherentemente matemáticas.

La mejor sugerencia que tengo es enseñar a los niños Smalltalk. ¿Por qué? En primer lugar, es un lenguaje muy, muy simple y fácil de aprender. ¡Toda su sintaxis puede caber en una tarjeta postal!

En segundo lugar, fue diseñado por el famoso Alan Kay et al. en Xerox PARC para enseñar programación a niños. ¡No hay mejor pedigrí que eso!

Tercero, Smalltalk depende en gran medida del uso de bloques , que son, en esencia, funciones y cierres de primera clase. Entonces, sin entrar en el cálculo lambda, los niños tendrán una idea automática de cómo se pasan los bloques de código y cómo se devuelven de otros bloques. Es la única forma en que Smalltalk funciona.

Más tarde, pueden facilitar su acceso a la programación funcional con esta comprensión básica de los bloques Smalltalk. Luego pueden aprender que la inmutabilidad se trata de prevenir la asignación de variables.

Si esto tiene sentido para usted, así es como puede comenzar en Smalltalk: la respuesta de Richard Kenneth Eng a ¿Cuál es el mejor lenguaje de programación para que un principiante aprenda desde cero?

Scratch es una plataforma muy buena con algunos buenos documentos que se pueden usar para enseñar a los niños cosas como funciones, variables, bucles y otras cosas mientras son divertidos para ellos.

sí, seguro que hay, de hecho, hay sitios web disponibles como: codecademy.com, udemy.com