Seems doubtful that the best path forward for CompSci education involves the traditional classroom model. I don't know a single good developer who chose their career because of--or had a learning breakthrough in--a high school course. The information flux is just too low, and changes to curricula lag terminally behind the state of the industry.
Not sure what you mean? The basics of programming- variables, loops, logic, decomposition of problems into smaller ones, data structures, etc... has not changed in the 20 years I have been doing this. High school level should be providing a basic introduction to the concepts, not trying to train kids for a F*NG job.
I didn't even know what programming was until I took a class in high school on a whim. And I was really good and fascinated by it. Stuff like that is what grade school is for. I didn't get any thing out of learning to knit or learning to use Autocad, but for some of my classmates it ignited something.
You are correct that the information velocity is too low. I think that's fine for thr kind of dabbling you mostly do in grade school though
I did learn how to program in middle school and high school in the 90s. And I know that several of my cohort also ended up working as programmers.
On one hand, a lot of what I learned there was self-guided. On the other hand, the core concepts of programming, as it's practiced by the folks I know (mostly procedural, object, and functional concepts and knowing how to CRUD data) haven't changed that much even in the 40 years since I first wrote "Hello World" on a commodore 64. The tools have certainly changed, but the music is the same.
But then, maybe that isn't "the traditional classroom model" (though I think it probably could be) and additionally I may not be a "good" developer. :D
This is true given that modern software development is more like trades work rather than science. There is no need for formal education to be an api plumber. Just pick up a framework and go with it. The ins and outs of how languages or databases work are irrelevant for most jira solving workers. Often deep knowledge is an issue, because it causes friction with trend followers that only know what the martin fowlers of the new fashion trend tells them to follow. Question the trend and off you go arguing with pigeons.
Eh, while it might not have sparked my interest I would say doing High School Computer Science electives certainly solidified "I want to program".
Actually doing the thing is important and given you can do that with Computer Science in schools discarding it because "you learn faster on your own" feels suboptimal.
Also while Internet access at home seems ubiquitous we don't have full coverage of high speed internet nationally so for some students being able to take a course could make all the difference.
I was going to regale you with how important my high school curriculum of programming and networking courses was in inspiring me to work in this field, but then I saw you said good developer. I ended up going into offsec instead of programming, but I still love coding and without those classes, I think I probably would've joined the military instead of ending up at a big tech company.
I don't think the end goal needs to be creating scientists. Programming at a basic level should a skill likelihood writing. No reason most of population shouldn't be able to do some basic stuff with python with jupyter or quick script.
I will say that the Apple IIc that I got exposed to in elementary school is the reason I’m into computers and got a CompSci degree. Some exposure to computers and possibly Scratch early should be seen as a good thing.
Learn how to push a button A on a machine to start it, how to push button B to stop it. This can be learnt (and tested) perfectly. It is the ultimate in skills-based education.
Along the way, having worked on a few machines, a worker may piece together some information about 'starting' and 'stopping'. However, this is beyond what's needed.
Should schools be about skill based education? Or about that beyond what's needed?Beyond what's needed won't get the employer a greater short term fungible labour marginal return, why pay for it? Shareholder value!
Does it matter that no one learns Flutter? Teaching Turing [1] may be a step too far in taking programming away from real life. So it's a balance. But so so much more goes into learning computer science than programming language of the day that can be learned from Udemy. From O(n log n) to O(n), how a computer works under the bonnet, what a LLM is, to legal aspects, there's a lot more to computer science as a skill. The challenge of the education system is balancing sketchy employers and pitch-fork public, and the influence they have, that want a cheap quick fix vs actually empowering and inspiring high schoolers' futures.