When I was in mid-school, a decade back (in India) we had regular classes on Basic and C++ in high school. I might be completely wrong in generalizing but haven't the schools in US picked up on this trend?
When I was in mid-school, a decade back (in India) we had regular classes on Basic and C++ in high school. I might be completely wrong in generalizing but haven't the schools in US picked up on this trend?
There are lots of reasons, but I think the largest contributing factor is that these teaching staff doesn't exist.
In most high schools, there is no dedicated "programming" or "CS" teacher. Often these courses of off-loaded to a business-y person. In my experience, these were pretty useless and sometimes worse than useless. E.g. in one case this person was a retired math teacher who was tenured but awful, and "computer class" seemed like a low-impact place to put them.
If a Math or Science teacher wanted to teach a programming class and had been around for a few years (and got along with their administrators), they could probably get away with teaching one section a year. Maybe scale up if there's demand and the department isn't under-staffed. But that's fairly rare, because lots of math people don't really "get" CS.
This would certainly help.
1) I do not believe the school administrators "get" computers beyond knowing how to use things like a web browser, email, MS Office, or education databases for K-12 research projects. They cannot set effective policy and direction because they do not have a clue what it is they need to do.
2) Many (most?) parents do not know or care about what programming entails or do not understand how computer programming might be extremely beneficial for their kid. Without parents pushing for these courses nothing is going to change since groups of vocal parents are the one thing that school administrators generally act for.
3) Finding qualified individuals is going to be tough. People who do not understand programming cannot teach kids to program. People who understand how to program AND are good at teaching are an extremely rare commodity. You can find lots of one or the other, but the ones who can do both are probably already employed doing something more rewarding (personally or economically).
4) We, as a society, need to determine what is important to teach. Is it computer science or is it programming? You can get a lot of mileage out of just teaching programming, but CS is a beautiful thing that fits more in line with a true academic mission - but CS does not imply any programming.
Why is that surprising? I am a professional programmer and frankly, it's a trade skill. Teaching kids at school how to program is like teaching them plumbing or how to be an electrician. To specialise that early is just crazy. Sure, teach general logical problem solving, but to specialise as far as what is a niche skill?
Sure, this is an unpopular viewpoint on Hacker News, where the audience is self-selecting to the viewpoint that programming is the most important life skill there is and that 90 percent of the population should learn to program, but that's just the typical nonsense any self-selecting audience ends up groupthinking. If this were a farming forum, people would be shouting "why aren't we teaching children how to grow turnips?".
The problem isn't that everyone doesn't learn it, but that noone learns it.
It wouldn't be a big deal if the elective were available but not taken by everyone. The problem is that in most cases, there isn't a programming class. Period. Ever.
> "why aren't we teaching children how to grow turnips?".
Why wouldn't we want to teach kids the basics of gardening? I was taught in elementary school, as part of our unit on "Biology" in second and third grade.
In fact, teaching programming to kids as a trade skill is likely to turn them off.