18 comments

[ 4.2 ms ] story [ 59.1 ms ] thread
It's still work in progress. Only a few articles for the moment. I would be happy to hear your thoughts about the best way to teach functional programming to kids.
define kid

strong math knowledge needed to understand it. polish notation could be also confusing.

I have always found polish notation simple because it is so consistent.

The problem seems like the problem with Clojure (instead of say Racket) would be the uninformative error messages.

One problem is that kids, at least in the UK, are taught to say "one plus one" not "plus one one".
Sure, but when I was new to Lisp, I mentally read it as "add one to one". The first element of the expression is a verb, not a preposition.

This might be good thing to discuss in a tutorial aimed at kids.

My kids get very easily used to the lisp notation where the operator is always on first position
Have you used this on actual kids? I feel you would learn very quickly from them.

As an adult, I can only speak for myself, and although this is nice, I think it is comparable to the functional programming programs for adults out there (for instance, Microsoft's online F# tutorial, or Coursera's Scala tutorial). The pictures and things aren't making it easier for me. I don't know if it will be different for kids.

I have went over this tutorial with my kids (12 and 13 years old) and they enjoyed it a lot.
That's great.

Did you try the regular "adult" tutorials with them? It would be interesting to see if they liked this more, or found one of them interesting.

Functional programming is already extremely abstract, and children (and many adults) have a very difficult time with abstraction. You should find a way to make these lessons into some sort of story. Perhaps each chapter contributes to some overall program. All the abstract math-for-math's sake will be REALLY unappealing to most children, guaranteed.
Completely agree. Its easier for kids to learn through stories and examples that accompany the story.

One fundamental aspect of functional programing is that it specifies the use of functions as arguments.

I like the chapter suggestion. Maybe each chapter builds upon a function that the kids can relate to. The subsequent chapters can use the previous functions as "arguments" or objects so that they understand this concept.

There is some good content for how kids can learn to program but not why kids should learn. I would focus on building equations kids would relate to, like "graphing the change in temperature in the town from Frozen" or "how much walking it takes to evolve a pokemon".

These examples probably show how little I know about children. You can probably think of some better ones.

Whoa... this is all over the place. The imagery suggests this is a tutorial for 6-8 year olds, but the language would be incomprehensible to any child under the age of 16.

The design is also pretty cluttered -- no child under the age of 16 is going to have the patience to get through those huge walls of text.

This should really be called 'Functional Programming for Teenagers, Maybe, or College Kids Who Don't Know How to Program'.

Do any of the developers have ANY experience in childhood education at all???

For kids alone, it is indeed difficult. But if the parent knows a bit about Lisp and goes over the tutorial with them, the kids can learn and even enjoy!
Sadly this set of tutorials seem to follow the disturbing trend that "Computer Programming is Math." I think this is wrong.

Computer Programming is field of turning informal and vague declarations of a process into an infinity accurate declaration of a process. It is also the field of doing that in a simple and maintainable way.

It is as much related to spelling and literature as it is mathematics. What I think it more closely relates to is philosophy and logical analysis. I think it is also a disservice to people to wrongly inform them of what will be expected of them by saying "this field is math."