AFAIK it's generally accepted that early programming should teach underlying concepts while being greatly engaging. For me that was turtle programming in primary school. Of course we're not in the 90's anymore so cooler tools exist.
Since he wants to make a game, UE4's graph-based editor might be a good way to go too.
One thing I would personally be wary of is the apparent insistence on Von Neumann architecture/imperative programming, but to my knowledge there is not much you can do about that and, for the moment, it makes sense for video games anyway.
EDIT: totally forgot, modding is a great place to start as well.
Church! I mean, Alonzo Church. Yeah I also wish there were more resources to start kids with functional programming. The great thing about it is you can start rather simply (if presented that way), get a lot of value just from practicing immutability and referential transparency, and then later it surprises you with extremely reusable concepts based on provable math.
I'm starting to think provable math should be at the basis rather than something to discover later. Show that composition of effects is not fundamentally different than composition of numbers as by e.g. addition or multiplication. I think that might give people a far better understanding early on about the usefulness of functional programming.
I agree with this in general. However, it depends a lot on your target audience. Some audiences won’t survive a math based curriculum whereas they could survive a more procedural learning track, except with immutability and pure functions. Then later they can discover all this amazing reusability based on math goodness. Analogous to multiplication tables before algebra (before calculus).
Maybe, but I think our view of math has been characterized far too much by stuffy classroom mathematics. I myself only started liking math after university.
Your analogy with multiplication tables and algebra is a good one. Here too I might be inclined to argue that learning algebra first might be better. Algebra expresses meaning, learning multiplication tables is just caching results.
In my case, I am mentoring a middle school youth. She is smart, but I still don't think starting with category theory would be the right approach for our circumstance. Typing something and seeing it affect the screen is more likely to keep interest at this stage.
Functional programming could be great for either approach, but as you said, most of the learning resources are not geared for it. Which is unfortunate.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
AFAIK it's generally accepted that early programming should teach underlying concepts while being greatly engaging. For me that was turtle programming in primary school. Of course we're not in the 90's anymore so cooler tools exist.
There are a variety of games and tools that teach programming concepts:
scratch.mit.edu/
store.steampowered.com/search/?sor...
mommypoppins.com/coding-kids-free-...
Since he wants to make a game, UE4's graph-based editor might be a good way to go too.
One thing I would personally be wary of is the apparent insistence on Von Neumann architecture/imperative programming, but to my knowledge there is not much you can do about that and, for the moment, it makes sense for video games anyway.
EDIT: totally forgot, modding is a great place to start as well.
After attending a meetup yesterday about, among other things, teaching fp to children, I would like to add a few resources:
I haven't tried any of these myself, they're all recommendations from someone who knows way more about teaching than I do.
There's also code.world but that was recommended by someone else.
I'm gonna check those games since he likes games so much. Thanks.
@drbearhands , another excellent resource to teach kids coding languages: codakid.com/kids-coding-languages/
You should add it to your list!
@drbearhands , another excellent resource to teach kids coding languages: codakid.com/kids-coding-languages/
You should add it to your list!
Church! I mean, Alonzo Church. Yeah I also wish there were more resources to start kids with functional programming. The great thing about it is you can start rather simply (if presented that way), get a lot of value just from practicing immutability and referential transparency, and then later it surprises you with extremely reusable concepts based on provable math.
I'm starting to think provable math should be at the basis rather than something to discover later. Show that composition of effects is not fundamentally different than composition of numbers as by e.g. addition or multiplication. I think that might give people a far better understanding early on about the usefulness of functional programming.
I agree with this in general. However, it depends a lot on your target audience. Some audiences won’t survive a math based curriculum whereas they could survive a more procedural learning track, except with immutability and pure functions. Then later they can discover all this amazing reusability based on math goodness. Analogous to multiplication tables before algebra (before calculus).
Maybe, but I think our view of math has been characterized far too much by stuffy classroom mathematics. I myself only started liking math after university.
Your analogy with multiplication tables and algebra is a good one. Here too I might be inclined to argue that learning algebra first might be better. Algebra expresses meaning, learning multiplication tables is just caching results.
Both approaches probably have their place.
In my case, I am mentoring a middle school youth. She is smart, but I still don't think starting with category theory would be the right approach for our circumstance. Typing something and seeing it affect the screen is more likely to keep interest at this stage.
Functional programming could be great for either approach, but as you said, most of the learning resources are not geared for it. Which is unfortunate.