What math concepts are they going to learn in a dumbed-down high school CS class that will help them enough to justify that kind of expense?
Variables and functions. See http://xkcd.com/1050/. It's the one where an ex-student is proud of the fact that in 20 years no one has asked her to solve for 'x'. This comic wouldn't exist if people were actually seeing how they probably actually do use some basic algebra, but they just don't know it. And at least if they saw it very blatantly being used in programming, they could at least understand why it's part of their school curriculum.
it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives
1. It's becoming a somewhat regular part of the lives of more and more people.
IMO. time spent teaching to code would be better spent on the 3 Rs
2. Once you've mastered aRithmetic, then what? Should students keep doing speed timed multiplication tests in 7-12th grade? Lots of students struggle with math above arithmetic. They could see why arithmetic is useful, but anything above that? Not so much. So by having the students apply math concepts to accomplish something (ie programming), they'll improve in High School level maths.
I haven't used them much myself, but guards aren't just a synonym for if-not.
You're right, guard is a synonym for if-not return.
That defer keyword looks like the mother of all hidden bugs. If you end up finishing a statement, not in the way you intended, and all of a sudden resources are getting cleaned up before you used them. I'd stay away from that one.
I get introducing repeat to replace do, but at the same time giving do a different meaning than the rest of the languages! There will be no end to confusion over that.
US students are in many cases barely able to read and fail miserably at math.
It's possible that they fail miserably at math because they never get to apply to math beyond busy work. But if they spend some time programming, and can see how many of the math principles apply to something, many will start getting better at math.
How about a $4 billion school lunch program,
Um, negative ROI?
or extra teachers, or tutoring
To teach the students CS?
or athletics programs,
I don't think that we need more of my tax dollars going to football.
or teaching them all the things they barely have the resources for now?
The students will probably be better at understanding math concepts if they could apply them when programming CS assignments. And then when they start doing better at math, and can see how it can be applied, it'll probably trickle over to being better in science class.
No. Sorry. Programming is something you have to want to do if you want to do it right. And let's be blunt here, code that's just plainly WRONG, we already have enough of.
So your argument is that now, when there's no public education for programming and lots of people self teach themselves, that there's lots of bad programs. But if everyone got a foundation in programming, and more got exposed to it who wouldn't have other wise, that there all programs would become even worse?
A well-rounded education and encouraging curiosity
And how is teaching CS not providing a well-rounded education and not encouraging curiosity? There are stories after stories of people who became programmers who found programming to be the thing in their life which encouraged that curiosity more than anything else. Every article on how men 'stole' CS from women involves a quote where a woman who dropped out of CS talked about how there would be a group of students who weren't taking the courses as a class, but more it was their life. They lived, breathed and did practically nothing but learned the ins and outs of computers. And since they weren't as passionate about it, they self selected themselves out, thinking that something was wrong with them. CS definitely encourages curiosity.
There is one way to find out if a man is honest -- ask him. If he says "Yes" you know he is crooked. -- Groucho Marx