Just as you most probably wouldn't be against a child learning a second language or learning to play music I see no reason why one would be against them learning programming.
Learning to program is like learning a language. The language spoken by most feedback mechanisms in the world, more than any individual national language.
The point is not to turn them into programmers but to make them comfortable and familiar with the construct of computer syntax.
Just like you don't need to learn Chinese you don't need to learn computer programming but just like learning chinese or playing an instrument will affect your thinking so will learning to program even if you don't end up a programmer.
We can't compare this with our own upbringing even though it's tempting just like our parents couldn't compare our upbringing with theirs.
> Just as you most probably wouldn't be against a child learning a second language or learning to play music
There is an obvious reason to oppose such things: opportunity cost. learning anything takes time, and the curriculum is full. If you want to teach a new topic, you will have to remove something else. This might not be worth it.
(That said, I still support basic programming and basic computational reasoning at school. I propose we take away some of the math away, though I don't know which math exactly.)
> There is an obvious reason to oppose such things: opportunity cost. learning anything takes time, and the curriculum is full.
The way I see it the bigger bottleneck is not time but motivation. You can fill a whole day with studies that a student isn't interested in and end up getting nowhere, or you can spend an hour on a topic that is able to hold a student's fascination--I would pick the latter any day. Engagement is simply a prerequisite for meaningful learning at scale; without it progress is slow and uneven at best.
Time and workload is certainly necessary to consider. However, removing parts of existing curriculum may not be the best way.
Considering the fact that computers have pervaded across domains, we could try integrating computational thinking with these domains. For example, you could teach Chemistry using simulations and modeling. It would deepen learning and, if the curriculum is well-structured, provide students the opportunity to learn computational thinking (within the context).
Integrating computational thinking in the existing curriculum has several benefits:
1. Deepen learning of the subject content: Enables active learning and knowledge construction
2. Learn programming concepts in the context: This is especially beneficial for students who have no prior programming experiences.
3. Not increase additional workload: Computational thinking (or as DiSessa puts it: "computational literacy") is a literacy skill like reading and writing. Here, we are proposing to use computers as a tool to think with.
This requires a lot of effort including providing professional development for teachers, restructuring curriculum, and supporting stakeholders through flexible implementation opportunities.
Up to a certain age, the mental models just aren't there yet to make it worthwhile. It's not that useful trying to teach a child programming when they are only learning to make out different letters or numbers or their concept of time (or any abstract thought for that matter) is very rudimentary.
That leaves you only able to teach them very basic things, which end up looking more like a game than something that you would regard as programming.
By the time a child is say 10, things start to change. At that point though, their personality and the general direction of their interests is going to drive itself.
Better to get them interested in building things, tinkering, abstract thought and games, etc. and help them develop mental models which make it easy to pick up programming later.
I think you are missing what Papers writing is about (or maybe I am misunderstanding you)
Sure it depends on age I never said it wouldn't. Just like they need to be able to handle an instrument to learn to play it children of course needs to be able to have some basic skills to do programming.
Papers writing isn't about infants learning to program it's not even about toddlers. It's about children in school and how they can use programming as a tool for creating, tinkering and thinking by using the computer as a simulator to simulate things that they internalized (like playing ball, running down hill, throwing stones).
It's not about creating production ready code.
My oldest son who is now 7 has been doing something called number stories in math for some years it's not far from computer program construction. Last year he did some basic programming in the way of number solving.
I simply don't understand this weird obsession with keeping kids from being exposed to programming I don't see what it's based on.
I don't think we are disagreeing. I was referencing pure text-based programming. I think if you extend programming to being things like specialized puzzles, etc. it is applicable to a much wider group of people and ages.
Just as you most probably wouldn't be against a child learning a second language or learning to play music I see no reason why one would be against them learning programming.
Learning to program is like learning a language. The language spoken by most feedback mechanisms in the world, more than any individual national language.
The point is not to turn them into programmers but to make them comfortable and familiar with the construct of computer syntax.
Just like you don't need to learn Chinese you don't need to learn computer programming but just like learning chinese or playing an instrument will affect your thinking so will learning to program even if you don't end up a programmer.
We can't compare this with our own upbringing even though it's tempting just like our parents couldn't compare our upbringing with theirs.